"use strict"; const common_vendor = require("../../common/vendor.js"); const common_assets = require("../../common/assets.js"); const _sfc_main = { name: "LCCalendar", data() { return { weekList: ["日", "一", "二", "三", "四", "五", "六"], monthDateList: [], selectMonthIndex: 0, //选中月份下标 selectMonth: "", //选中年月 selectDateStr: "", //选中日期 startDateStr: "", //开始日期 endDateStr: "" //结束日期 }; }, created() { let currentDate = /* @__PURE__ */ new Date(); let currentYear = currentDate.getFullYear(); let currentMonth = currentDate.getMonth() + 1; let currentDay = currentDate.getDate(); this.selectMonthIndex = 20 * 12 + currentMonth - 1; this.selectMonth = currentYear + "年" + currentMonth + "月"; this.startDateStr = currentYear + "-" + (currentMonth > 9 ? currentMonth : "0" + currentMonth) + "-01"; this.endDateStr = this.selectDateStr = currentYear + "-" + (currentMonth > 9 ? currentMonth : "0" + currentMonth) + "-" + (currentDay > 9 ? currentDay : "0" + currentDay); this.generateMonthDateListData(); this.$emit("date-change", this.selectDateStr); }, methods: { /** * 获取当前时间前一天的数据 */ getYesterdayDateData() { let currentDate = /* @__PURE__ */ new Date(); let selectDate = new Date(currentDate); selectDate.setDate(selectDate.getDate() - 1); let selectYear = selectDate.getFullYear(); let selectMonth = selectDate.getMonth() + 1; let selectDay = selectDate.getDate(); this.selectDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-" + (selectDay > 9 ? selectDay : "0" + selectDay); this.$emit("date-change", this.selectDateStr); }, /** * 生成日期数组 */ generateMonthDateListData() { let currentDate = /* @__PURE__ */ new Date(); let currentYear = currentDate.getFullYear(); let currentMonth = currentDate.getMonth() + 1; let currentDay = currentDate.getDate(); let monthDateList = []; for (var i = currentYear - 20; i < currentYear + 20; i++) { for (var j = 0; j < 12; j++) { let date = new Date(i, j + 1, 0); let firstDayOfMonth = new Date(i, j + 1, 0); firstDayOfMonth.setDate(1); let currentMonthDay = date.getDate(); let firstDayWeek = firstDayOfMonth.getDay() + 1; let daysOfMonth = []; for (var k = 1; k <= currentMonthDay; k++) { let newDate = new Date(i, j + 1, 0); newDate.setDate(k); let newMonth = newDate.getMonth() + 1; let newDay = newDate.getDate(); let time = newDate.getTime(); let date2 = i + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay); daysOfMonth.push({ date: date2, year: i, month: newMonth, day: newDay, isToday: i == currentYear && newMonth == currentMonth && newDay == currentDay ? true : false, isCurrentMonth: true, isLastDay: newDay == currentMonthDay ? true : false, timestamp: time }); } for (var k = 0; k < firstDayWeek - 1; k++) { let year = i; let month = j; if (j < 1) { year = i - 1; month = 12; } let lastMonthDay = new Date(year, month, 0).getDate(); let newDate = new Date(year, month - 1, lastMonthDay - k); let newMonth = newDate.getMonth() + 1; let newDay = newDate.getDate(); let time = newDate.getTime(); let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay); daysOfMonth.unshift({ date: date2, year, month: newMonth, day: newDay, isToday: false, isCurrentMonth: false, isLastDay: false, timestamp: time }); } let nextMonthFirstDay = new Date(i, j + 1, 1); let lastDayOfMonth = new Date(nextMonthFirstDay - 24 * 60 * 60 * 1e3); let lastDayWeek = lastDayOfMonth.getDay() + 1; for (var k = 1; k < 8 - lastDayWeek; k++) { let year = i; let month = j; if (month > 11) { month = 0; year++; } let newDate = new Date(year, month + 1, k); let newMonth = newDate.getMonth() + 1; let newDay = newDate.getDate(); let time = newDate.getTime(); let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay); daysOfMonth.push({ date: date2, year, month: newMonth, day: newDay, isToday: false, isCurrentMonth: false, isLastDay: false, timestamp: time }); } monthDateList.push(daysOfMonth); } } this.monthDateList = monthDateList; }, /** * 点击上个月 */ clickPreMonth() { if (this.selectMonthIndex > 0) { this.selectMonthIndex--; let monthList = this.monthDateList[this.selectMonthIndex]; let year = ""; let month = ""; for (let item of monthList) { if (item.isCurrentMonth) { year = item.year; month = item.month; break; } } let lastDay = ""; for (let item of monthList) { if (item.isLastDay) { lastDay = item.day; break; } } this.selectMonth = year + "年" + month + "月"; this.startDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-01"; this.endDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-" + lastDay; common_vendor.index.__f__("log", "at components/LCCalendar2/LCCalendar2.vue:228", "点击上个月"); } }, /** * 点击下个月 */ clickNextMonth() { if (this.selectMonthIndex < this.monthDateList.length - 1) { this.selectMonthIndex++; let monthList = this.monthDateList[this.selectMonthIndex]; let year = ""; let month = ""; for (let item of monthList) { if (item.isCurrentMonth) { year = item.year; month = item.month; break; } } let lastDay = ""; for (let item of monthList) { if (item.isLastDay) { lastDay = item.day; break; } } this.selectMonth = year + "年" + month + "月"; this.startDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-01"; this.endDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-" + lastDay; common_vendor.index.__f__("log", "at components/LCCalendar2/LCCalendar2.vue:257", "点击下个月"); } }, monthChange(e) { let currentDate = /* @__PURE__ */ new Date(); let currentYear = currentDate.getFullYear(); let yearMonth = e.detail.value; let selectYear = parseInt(yearMonth.split("-")[0]); let selectMonth = parseInt(yearMonth.split("-")[1]); this.selectMonthIndex = (selectYear - (currentYear - 20)) * 12 + selectMonth - 1; this.selectMonth = selectYear + "年" + selectMonth + "月"; this.startDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-01"; let lastDayOfMonth = new Date(selectYear, selectMonth, 0); this.endDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-" + lastDayOfMonth.getDate(); common_vendor.index.__f__("log", "at components/LCCalendar2/LCCalendar2.vue:274", "月份变更"); }, /** * 点击选择开始日期和结束日期 * @param {Object} item */ clickSelectDate(item) { if (!item.isCurrentMonth) return; if (this.selectDateStr != item.date) { this.selectDateStr = item.date; this.chgStockData = item; common_vendor.index.__f__("log", "at components/LCCalendar2/LCCalendar2.vue:285", "点击某天"); this.$emit("date-change", this.selectDateStr); } } } }; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return { a: common_assets._imports_0$1, b: common_vendor.o(($event) => $options.clickPreMonth()), c: common_vendor.t($data.selectMonth), d: common_vendor.o((...args) => $options.monthChange && $options.monthChange(...args)), e: common_assets._imports_2$3, f: common_vendor.o(($event) => $options.clickNextMonth()), g: common_vendor.f($data.weekList, (item, index, i0) => { return { a: common_vendor.t(item), b: index }; }), h: common_vendor.f($data.monthDateList[$data.selectMonthIndex], (item, index, i0) => { return common_vendor.e({ a: item.date == $data.selectDateStr }, item.date == $data.selectDateStr ? { b: common_vendor.t(item.day), c: common_vendor.n("date select up") } : common_vendor.e({ d: !item.isCurrentMonth }, !item.isCurrentMonth ? { e: common_vendor.t(item.day) } : { f: common_vendor.t(item.day), g: common_vendor.n("date up") }), { h: index, i: common_vendor.o(($event) => $options.clickSelectDate(item), index) }); }) }; } const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); wx.createComponent(Component); //# sourceMappingURL=../../../.sourcemap/mp-weixin/components/LCCalendar2/LCCalendar2.js.map