tdesign-vue
Version:
135 lines (131 loc) • 3.91 kB
JavaScript
/**
* tdesign v1.12.1
* (c) 2025 tdesign
* @license MIT
*/
import dayjs from 'dayjs';
import { DAY_CN_MAP, FIRST_MONTH_OF_YEAR, LAST_MONTH_OF_YEAR } from './const.js';
var getDay = function getDay(dt) {
var day = dayjs(dt).day();
if (day === 0) {
day = 7;
}
return day;
};
var getDayCn = function getDayCn(num) {
var re = "";
var numStr = num.toString();
if (numStr in DAY_CN_MAP) {
re = DAY_CN_MAP[numStr];
}
return re;
};
var getCellColIndex = function getCellColIndex(firstDayOfWeek, dt) {
var re = 0;
var day = getDay(dt);
if (day >= firstDayOfWeek) {
re = day - firstDayOfWeek;
} else {
re = 7 - firstDayOfWeek + day;
}
return re;
};
var addDate = function addDate(dt, days) {
var d = new Date(dt);
d.setDate(d.getDate() + days);
return d;
};
var createYearCellsData = function createYearCellsData(props, state) {
var year = state.curSelectedYear,
curDate = state.curDate,
curDateList = state.curDateList;
var format = props.format,
multiple = props.multiple;
var monthsArr = [];
var _loop = function _loop(num) {
var date = new Date(year, num - 1);
var isCurrent = multiple ? !!curDateList.find(function (item) {
return item.year() === year && parseInt(item.format("M"), 10) === num;
}) : curDate.year() === year && parseInt(curDate.format("M"), 10) === num;
monthsArr.push({
mode: "year",
isCurrent: isCurrent,
date: date,
formattedDate: dayjs(date).format(format),
filterDate: null,
formattedFilterDate: null,
isShowWeekend: true
});
};
for (var num = FIRST_MONTH_OF_YEAR; num <= LAST_MONTH_OF_YEAR; num++) {
_loop(num);
}
return monthsArr;
};
var createMonthCellsData = function createMonthCellsData(props, state) {
var year = state.curSelectedYear,
month = state.curSelectedMonth,
firstDayOfWeek = state.realFirstDayOfWeek,
curDate = state.curDate,
curDateList = state.curDateList;
var format = props.format,
multiple = props.multiple;
var daysArr = [];
var begin = dayjs("".concat(year, "-").concat(month)).startOf("month").toDate();
var end = dayjs(dayjs("".concat(year, "-").concat(month)).endOf("month").format("YYYY-MM-DD")).toDate();
var days = end.getDate();
var beginDateColIndex = getCellColIndex(firstDayOfWeek, begin);
var arr = [];
var num = 1;
var createCellData = function createCellData(belongTo, isCurrent, date, weekOrder) {
var day = getDay(date);
return {
mode: "month",
belongTo: belongTo,
isCurrent: isCurrent,
day: day,
weekOrder: weekOrder,
date: date,
formattedDate: dayjs(date).format(format),
filterDate: null,
formattedFilterDate: null,
isShowWeekend: true
};
};
var judgeIsCurrent = function judgeIsCurrent(date) {
var isCurrent = multiple ? !!curDateList.find(function (item) {
return item.isSame(dayjs(date));
}) : curDate.isSame(dayjs(date));
return isCurrent;
};
for (var i = 0; i < beginDateColIndex; i++) {
var date = addDate(begin, i - beginDateColIndex);
arr.push(createCellData(-1, false, date, num));
if (arr.length === 7) {
daysArr.push(arr);
arr = [];
num += 1;
}
}
for (var _i = 0; _i < days; _i++) {
var _date = addDate(begin, _i);
var isCurrent = judgeIsCurrent(_date);
arr.push(createCellData(0, isCurrent, _date, num));
if (arr.length === 7) {
daysArr.push(arr);
arr = [];
num += 1;
}
}
if (arr.length) {
var nextMonthCellNum = 7 - arr.length;
for (var _i2 = 0; _i2 < nextMonthCellNum; _i2++) {
var _date2 = addDate(end, _i2 + 1);
arr.push(createCellData(1, false, _date2, num));
}
daysArr.push(arr);
}
return daysArr;
};
export { addDate, createMonthCellsData, createYearCellsData, getCellColIndex, getDayCn };
//# sourceMappingURL=utils.js.map