Nuxt 中的日历组件

Calendar component in Nuxt

我第一次在这里发帖。

我正在尝试在 nuxt 中创建日历以用于注册时间。 我在此处粘贴的代码用于创建日历,但我想制作天数数组 相反,它是一个对象数组,因此它不仅包含日期,还包含 属性 工作时间和加班时间等

但是当我试图让它成为 Data() 中的一个对象时,我不知道如何从加载天数代码中获取日期。 希望有人能帮忙

<template>
  <div id="container" >
    <div>{{ $moment().format('dddd - do.MMMM.yyyy') }}</div>

   <!--eslint-disable -->
    <div class="grid-container">
    <p class="grid-item">September</p>
    <p class="grid-item"></p>
    <p class="grid-item">A</p>
    <p class="grid-item">O</p>
    <p class="grid-item">Fl</p>
    <p class="grid-item">S</p>
    <p class="grid-item">Fe</p>
    </div>
  <div v-for="(day, index) in days" class="grid-container">
    <p class="grid-item">{{ day.format("Do") }}</p>
    <p class="grid-item">{{ day.format("dddd") }}</p>
    <p class="grid-item">0</p>
    <p class="grid-item">0</p>
    <p class="grid-item">0</p>
    <p class="grid-item">0</p>
    <p class="grid-item">0</p>
  </div>
  </div>
</template>
<script>/* eslint-disable */
import moment from 'moment'


export default {
  data(){
    return{
    days: []
    }
  },
  mounted(){
    //load days
    let monthDate = moment().startOf('month')
    this.days = [...Array(monthDate.daysInMonth())].map((_, i) => {
      return monthDate.clone().add(i, 'day')
    })
  }

}
</script>
<style scoped>
  .grid-container{
    display: inline-grid;
    grid-template-columns: auto auto auto auto auto auto auto;

  }
  .grid-item {
    width: 125px;
    background-color: rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(0, 0, 0, 0.8);
    padding: 5px;
    font-size:16px;
    text-align: center;
  }

</style>

构建数组时,您可以像这样创建一个对象数组:

let monthDate = moment().startOf("month");
this.days = [...Array(monthDate.daysInMonth())].map((_, i) => {
  return {
    date: monthDate.clone().add(i, "day"),
    workhours: 0,
    overtime: 0
  };
});

在 map 函数中,我们 return 一个对象而不是单个 属性

<div v-for="(day, index) in days" :key="index" class="grid-container">
  <p class="grid-item">{{ day.date.format("Do") }}</p>
  <p class="grid-item">{{ day.date.format("dddd") }}</p>
  <p class="grid-item">{{ day.workhours }}</p>
  <p class="grid-item">{{ day.overtime }}</p>
</div>