UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

152 lines (144 loc) 4.7 kB
/** * xdesign v1.0.6 * (c) 2023 xdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var dayjs = require('dayjs'); var calendar_const = require('./const.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs); var getDay = function getDay(dt) { var day = dayjs__default["default"](dt).day(); if (day === 0) { day = 7; } return day; }; var getDayCn = function getDayCn(num) { var re = ""; var numStr = num.toString(); if (numStr in calendar_const.DAY_CN_MAP) { re = calendar_const.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__default["default"](date).format(format), filterDate: null, formattedFilterDate: null, isShowWeekend: true }); }; for (var num = calendar_const.FIRST_MONTH_OF_YEAR; num <= calendar_const.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__default["default"]("".concat(year, "-").concat(month)).startOf("month").toDate(); var end = dayjs__default["default"](dayjs__default["default"]("".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__default["default"](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__default["default"](date)); }) : curDate.isSame(dayjs__default["default"](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; }; var createDefaultCurDate = function createDefaultCurDate() { return dayjs__default["default"](dayjs__default["default"]().format("YYYY-MM-DD")); }; exports.addDate = addDate; exports.createDefaultCurDate = createDefaultCurDate; exports.createMonthCellsData = createMonthCellsData; exports.createYearCellsData = createYearCellsData; exports.getCellColIndex = getCellColIndex; exports.getDay = getDay; exports.getDayCn = getDayCn; //# sourceMappingURL=utils.js.map