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 | ||
|  |                         } | ||
|  |                     }) | ||
|  |                 ) | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | } |