87 lines
2.6 KiB
JavaScript
87 lines
2.6 KiB
JavaScript
|
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
|
||
|
}
|
||
|
})
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|