| export default { | |
|     methods: { | |
|         // 设置月份数据 | |
|         setMonth() { | |
|             // 月初是周几 | |
|             const day = dayjs(this.date).date(1).day() | |
|             const start = day == 0 ? 6 : day - 1 | |
| 
 | |
|             // 本月天数 | |
|             const days = dayjs(this.date).endOf('month').format('D') | |
| 
 | |
|             // 上个月天数 | |
|             const prevDays = dayjs(this.date).endOf('month').subtract(1, 'month').format('D') | |
| 
 | |
|             // 日期数据 | |
|             const arr = [] | |
|             // 清空表格 | |
|             this.month = [] | |
| 
 | |
|             // 添加上月数据 | |
|             arr.push( | |
|                 ...new Array(start).fill(1).map((e, i) => { | |
|                     const day = prevDays - start + i + 1 | |
| 
 | |
|                     return { | |
|                         value: day, | |
|                         disabled: true, | |
|                         date: dayjs(this.date).subtract(1, 'month').date(day).format('YYYY-MM-DD') | |
|                     } | |
|                 }) | |
|             ) | |
| 
 | |
|             // 添加本月数据 | |
|             arr.push( | |
|                 ...new Array(days - 0).fill(1).map((e, i) => { | |
|                     const day = i + 1 | |
| 
 | |
|                     return { | |
|                         value: day, | |
|                         date: dayjs(this.date).date(day).format('YYYY-MM-DD') | |
|                     } | |
|                 }) | |
|             ) | |
| 
 | |
|             // 添加下个月 | |
|             arr.push( | |
|                 ...new Array(42 - days - start).fill(1).map((e, i) => { | |
|                     const day = i + 1 | |
| 
 | |
|                     return { | |
|                         value: day, | |
|                         disabled: true, | |
|                         date: dayjs(this.date).add(1, 'month').date(day).format('YYYY-MM-DD') | |
|                     } | |
|                 }) | |
|             ) | |
| 
 | |
|             // 分割数组 | |
|             for (let n = 0; n < arr.length; n += 7) { | |
|                 this.month.push( | |
|                     arr.slice(n, n + 7).map((e, i) => { | |
|                         e.index = i + n | |
| 
 | |
|                         // 自定义信息 | |
|                         const custom = this.customList.find((c) => c.date == e.date) | |
| 
 | |
|                         // 农历 | |
|                         if (this.lunar) { | |
|                             const { | |
|                                 IDayCn, | |
|                                 IMonthCn | |
|                             } = this.getLunar(e.date) | |
|                             e.lunar = IDayCn == '初一' ? IMonthCn : IDayCn | |
|                         } | |
| 
 | |
|                         return { | |
|                             ...e, | |
|                             ...custom | |
|                         } | |
|                     }) | |
|                 ) | |
|             } | |
|         } | |
|     } | |
| }
 |