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