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.
85 lines
2.6 KiB
85 lines
2.6 KiB
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 |
|
} |
|
}) |
|
) |
|
} |
|
} |
|
} |
|
}
|
|
|