1.28 更换echarts文件

This commit is contained in:
尚政杰
2026-01-28 14:43:26 +08:00
parent 3c6e5392cc
commit da90511b86
421 changed files with 45838 additions and 570 deletions

View File

@@ -0,0 +1,430 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const request_api = require("../../request/api.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
name: "LCCalendar",
data() {
return {
weekList: ["日", "一", "二", "三", "四", "五", "六"],
monthDateList: [],
selectMonthIndex: 0,
//选中月份下标
selectMonth: "",
//选中年月
selectDateStr: "",
//选中日期
startDateStr: "",
//开始日期
endDateStr: "",
//结束日期
selectYear: "",
Month: "",
calendarApiData: []
// 新增:存储接口返回的日历数据
};
},
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.getYesterdayDateData();
this.generateMonthDateListData();
this.emitDateChange(currentYear, currentMonth, currentDay, this.getTodayItem(currentYear, currentMonth, currentDay));
},
mounted() {
this.getCalendarCombinedData();
},
methods: {
/**
* 获取当天的item数据合并接口数据
*/
getTodayItem(year, month, day) {
const targetDate = `${year}-${month > 9 ? month : "0" + month}-${day > 9 ? day : "0" + day}`;
const currentMonthList = this.monthDateList[this.selectMonthIndex] || [];
const localItem = currentMonthList.find((item) => item.date === targetDate) || null;
if (!localItem)
return null;
const apiData = this.getCalendarItemByDate(targetDate) || {};
return {
...localItem,
zt_count: apiData.zt_count || 0,
top_sector: apiData.top_sector || "-",
// 可补充其他接口字段
zaban_rate: apiData.zaban_rate || "0%"
// 示例:炸板率
};
},
/**
* 触发日期变更事件传递包含接口数据的item
*/
emitDateChange(year, month, day, item) {
const yearMonth = `${year}-${month > 9 ? month : "0" + month}`;
const fullDate = `${year}-${month > 9 ? month : "0" + month}-${day > 9 ? day : "0" + day}`;
this.$emit("date-change", {
yearMonth,
fullDate,
item: item || {
// 兜底无item时赋值空对象+默认值
date: fullDate,
year,
month,
day,
zt_count: 0,
top_sector: "-",
zaban_rate: "0%"
},
year,
month,
day
});
},
/**
* 获取当前时间前一天的数据
*/
getYesterdayDateData() {
let currentDate = /* @__PURE__ */ new Date();
let selectDate = new Date(currentDate);
selectDate.setDate(selectDate.getDate() - 1);
selectDate.getFullYear();
selectDate.getMonth() + 1;
selectDate.getDate();
this.selectYear = selectDate.getFullYear();
this.Month = selectDate.getMonth() + 1;
},
/**
* 根据日期查找接口中的日历数据
* @param {String} dateStr 格式2026-01-01
* @returns {Object} 匹配的日历数据
*/
getCalendarItemByDate(dateStr) {
if (!dateStr || !this.calendarApiData.length)
return null;
const formatDate = dateStr.replace(/-/g, "");
return this.calendarApiData.find((item) => item.date === formatDate) || null;
},
/**
* 根据zt_count和是否休市获取背景色样式类
* @param {Number} count zt_count数值
* @param {Number} index 日期下标(判断是否休市)
* @returns {String} 样式类名
*/
getZtCountBgClass(count, index) {
if (index % 7 === 0 || index % 7 === 6 || count === 0 || count === null || count === void 0) {
return "";
}
if (count >= 80)
return "zt-bg-80";
if (count >= 60)
return "zt-bg-60";
if (count >= 40)
return "zt-bg-40";
return "zt-bg-40-less";
},
/**
* 根据zt_count值获取文字颜色
* @param {Number} count zt_count数值
* @param {Number} index 日期下标(用于判断周末)
* @returns {String} 文字颜色值
*/
getZtCountTextColor(count, index) {
if (index !== void 0 && (index % 7 === 0 || index % 7 === 6)) {
return "#999999";
}
if (count === void 0 || count === null || count === 0) {
return "#2A2A2A";
}
if (count >= 80)
return "#5D288F";
if (count >= 60)
return "#BE1B1B";
if (count >= 40)
return "#F59B38";
return "#2958AA";
},
/**
* 获取日历接口数据
*/
async getCalendarCombinedData() {
try {
let param = {
year: this.selectYear,
month: this.Month
};
const res = await request_api.calendarCombinedData(param);
if (res.success && Array.isArray(res.data)) {
this.calendarApiData = res.data;
common_vendor.index.__f__("log", "at components/LCCalendar/LCCalendar.vue:258", "日历数据加载成功", this.calendarApiData);
if (this.selectDateStr) {
const [year, month, day] = this.selectDateStr.split("-").map(Number);
this.emitDateChange(year, month, day, this.getTodayItem(year, month, day));
}
} else {
this.calendarApiData = [];
common_vendor.index.__f__("warn", "at components/LCCalendar/LCCalendar.vue:266", "日历接口返回数据格式异常", res);
}
} catch (error) {
this.calendarApiData = [];
common_vendor.index.__f__("error", "at components/LCCalendar/LCCalendar.vue:270", "获取日历数据失败", error);
}
},
/**
* 生成日期数组
*/
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;
this.selectYear = year;
this.Month = month;
this.getCalendarCombinedData();
common_vendor.index.__f__("log", "at components/LCCalendar/LCCalendar.vue:405", "点击上个月");
}
},
/**
* 点击下个月
*/
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/LCCalendar/LCCalendar.vue:434", "点击下个月");
this.selectYear = year;
this.Month = month;
this.getCalendarCombinedData();
}
},
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/LCCalendar/LCCalendar.vue:454", "月份变更");
this.selectYear = selectYear;
this.Month = selectMonth;
this.getCalendarCombinedData();
},
/**
* 点击选择开始日期和结束日期
* @param {Object} item
*/
clickSelectDate(item, index) {
if (!item.isCurrentMonth)
return;
if (this.selectDateStr != item.date) {
this.selectDateStr = item.date;
const apiData = this.getCalendarItemByDate(item.date) || {};
const mergedItem = {
...item,
// 本地日期基础数据
zt_count: apiData.zt_count || 0,
// 涨停家数默认0
top_sector: apiData.top_sector || "-",
// 热门板块,默认'-'
zaban_rate: apiData.zaban_rate || "0%",
// 炸板率,示例字段
isWeekend: index % 7 === 0 || index % 7 === 6
// 是否周末
};
this.chgStockData = mergedItem;
const [year, month, day] = item.date.split("-").map(Number);
this.emitDateChange(year, month, day, mergedItem);
common_vendor.index.__f__("log", "at components/LCCalendar/LCCalendar.vue:482", "点击某天(含接口数据)", mergedItem);
}
}
}
};
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_assets._imports_1$16,
d: common_vendor.t($data.selectDateStr),
e: common_assets._imports_1$2,
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) => {
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
return common_vendor.e({
a: item.date == $data.selectDateStr
}, item.date == $data.selectDateStr ? common_vendor.e({
b: common_vendor.t(item.day),
c: index % 7 == 0 || index % 7 == 6
}, index % 7 == 0 || index % 7 == 6 ? {} : common_vendor.e({
d: ((_a = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _a.zt_count) > 0
}, ((_b = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _b.zt_count) > 0 ? {
e: common_vendor.t((_c = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _c.zt_count),
f: $options.getZtCountTextColor((_d = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _d.zt_count),
g: common_vendor.t(((_e = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _e.top_sector) || "-"),
h: $options.getZtCountTextColor((_f = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _f.zt_count)
} : {}), {
i: common_vendor.n($options.getZtCountBgClass((_g = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _g.zt_count))
}) : common_vendor.e({
j: !item.isCurrentMonth
}, !item.isCurrentMonth ? {} : common_vendor.e({
k: common_vendor.t(item.day),
l: index % 7 == 0 || index % 7 == 6 ? "#999999" : "#2A2A2A",
m: index % 7 == 0 || index % 7 == 6
}, index % 7 == 0 || index % 7 == 6 ? {} : common_vendor.e({
n: ((_h = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _h.zt_count) > 0
}, ((_i = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _i.zt_count) > 0 ? {
o: common_vendor.t((_j = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _j.zt_count),
p: $options.getZtCountTextColor((_k = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _k.zt_count),
q: common_vendor.t(((_l = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _l.top_sector) || "-"),
r: $options.getZtCountTextColor((_m = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _m.zt_count)
} : {}), {
s: common_vendor.n($options.getZtCountBgClass((_n = $options.getCalendarItemByDate(item.date)) == null ? void 0 : _n.zt_count))
})), {
t: index,
v: 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/LCCalendar/LCCalendar.js.map