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