You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
import dayjs from 'dayjs/esm/index' 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 } }) ) } } } }
|