Files
JiaZhiQianYan/unpackage/dist/dev/mp-weixin/pages/index/index.js
2025-06-30 19:02:44 +08:00

632 lines
21 KiB
JavaScript

"use strict";
const common_vendor = require("../../common/vendor.js");
const request_api = require("../../request/api.js");
const utils_util = require("../../utils/util.js");
const common_assets = require("../../common/assets.js");
const echarts = require("../../uni_modules/lime-echart/static/echarts.min.js");
const _sfc_main = {
data() {
return {
menuTop: common_vendor.inject("menuTop"),
menuH: common_vendor.inject("menuHeight"),
navH: common_vendor.inject("navHeight"),
contentTop: "",
listTop: "",
sortListTop: "",
keywords: "",
//关键词
sortList: [],
timeCategoryList: [],
selectTimeCategory: 0,
topCategoryList: ["全部", "大周期", "大消费", "大金融地产", "TMT板块", "公共产业板块"],
selectTopCategory: 0,
secondCategoryList: ["全部", "石油石化", "煤炭", "有色金属", "钢铁", "基础化工", "建筑材料"],
selectSecondCategory: 0,
screenCategoryList: ["日期范围", "行业分类", "重要性"],
selectYearMonth: "",
//选择的年月日
startDate: "",
//选择开始日期
startTimeStamp: "",
//开始日期时间戳
endDate: "",
//选择结束日期
endTimeStamp: "",
//结束日期时间戳
weekList: ["一", "二", "三", "四", "五", "六", "日"],
monthDateList: [],
selectMonthIndex: 0,
//选中月份下标
selectMonth: "",
//选中年月
industryTopCategoryList: ["巨潮行业分类", "新财富行业分类", "申银万国行业分类", "证监会行业分类"],
selectScreenCategory: 0,
importanceList: [],
//重要性数组
selectImportanceIndex: 0,
//选择重要性下标
option: {
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow"
},
confine: true
},
grid: {
left: "0%",
right: "0%",
top: "0%",
bottom: "20%"
},
xAxis: [
{
type: "category",
data: ["跌停", "跌停~5%", "5~1%", "1~0%", "平盘", "0~1%", "1~5%", "5%~涨停", "涨停"],
axisTick: {
show: false
},
axisLine: {
show: false
},
axisLabel: {
fontSize: 10,
interval: "0",
textStyle: {
color: function(value, index) {
return index == 0 ? "#355422" : index == 8 ? "#C00000" : "#515151";
}
}
}
}
],
yAxis: [
{
type: "value",
show: false,
axisTick: { show: false }
}
],
series: [
{
name: "热度",
type: "bar",
label: {
show: true,
position: "top",
fontSize: 12
},
data: [
{
value: 0,
itemStyle: { color: "#355422" },
label: {
textStyle: { color: "#355422" }
}
},
{
value: 44,
itemStyle: { color: "#35542299" },
label: {
textStyle: { color: "#355422" }
}
},
{
value: 315,
itemStyle: { color: "#355422CC" },
label: {
textStyle: { color: "#355422" }
}
},
{
value: 1264,
itemStyle: { color: "#355422" },
label: {
textStyle: { color: "#355422" }
}
},
{
value: 1064,
itemStyle: { color: "#ACB0C0" },
label: {
textStyle: { color: "#666" }
}
},
{
value: 1809,
itemStyle: { color: "#C00000" },
label: {
textStyle: { color: "#C00000" }
}
},
{
value: 602,
itemStyle: { color: "#C00000CC" },
label: {
textStyle: { color: "#C00000" }
}
},
{
value: 44,
itemStyle: { color: "#C0000099" },
label: {
textStyle: { color: "#C00000" }
}
},
{
value: 0,
itemStyle: { color: "#C00000" },
label: {
textStyle: { color: "#C00000" }
}
}
]
}
]
},
eventList: [],
page: 1,
loadAll: false,
getRateStr: utils_util.getRateStr,
getRateUpOrDown: utils_util.getRateUpOrDown,
getLocaleTime: utils_util.getLocaleTime
};
},
onLoad() {
this.contentTop = this.navH + (75 + 20) / 750 * common_vendor.inject("windowWidth");
this.listTop = this.contentTop + (22 + 80 + 72 + 44 + 44) / 750 * common_vendor.inject("windowWidth");
this.sortListTop = this.navH + (22 + 80 + 80) / 750 * common_vendor.inject("windowWidth");
this.getEventFilterListData();
this.getEventListData();
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
let monthDateList = [];
this.selectMonthIndex = 20 * 12 + currentMonth - 1;
this.selectMonth = currentYear + "-" + (currentMonth > 9 ? currentMonth : "0" + currentMonth);
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() || 7;
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, 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, timestamp: time });
}
let nextMonthFirstDay = new Date(i, j + 1, 1);
let lastDayOfMonth = new Date(nextMonthFirstDay - 24 * 60 * 60 * 1e3);
let lastDayWeek = lastDayOfMonth.getDay() || 7;
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, timestamp: time });
}
monthDateList.push(daysOfMonth);
}
}
this.monthDateList = monthDateList;
},
onPullDownRefresh() {
this.page = 1;
this.getEventListData();
},
methods: {
loadMoreData() {
if (!this.loadAll) {
this.page++;
this.getEventListData();
}
},
async init() {
const chart = await this.$refs.chartRef.init(echarts);
chart.setOption(this.option);
},
/**
* 点击搜索
*/
clickSearch() {
this.page = 1;
this.getEventListData();
},
/**
* 点击事件筛选
* @param {Object} index
*/
clickTimeCategoryItem(index) {
if (this.selectTimeCategory != index) {
this.selectTimeCategory = index;
}
},
/**
* 点击排序
*/
clickSortItem() {
this.$refs["sortPopup"].open();
},
/**
* 点击筛选
*/
clickScreenItem() {
this.$refs["screenPopup"].open();
},
/**
* 点击筛选弹窗取消
*/
clickCancel() {
this.$refs["screenPopup"].close();
},
/**
* 点击筛选弹窗确定
*/
clickCertain() {
this.clickCancel();
this.clickSearch();
},
/**
* 点击筛选分类
* @param {Object} index
*/
clickScreenCategoryItem(index) {
if (this.selectScreenCategory != index) {
this.selectScreenCategory = index;
}
},
/**
* 点击选择一级分类
* @param {Object} index
*/
clickTopCategoryItem(index) {
if (this.selectTopCategory != index) {
this.selectTopCategory = index;
}
},
/**
* 点击选择二级分类
* @param {Object} index
*/
clickSecondCategoryItem(index) {
if (this.selectSecondCategory != index) {
this.selectSecondCategory = index;
}
},
/**
* 点击上个月
*/
clickPreMonth() {
if (this.selectMonthIndex > 0) {
this.selectMonthIndex--;
let monthList = this.monthDateList[this.selectMonthIndex];
let month = "";
for (let item of monthList) {
if (item.isCurrentMonth) {
month = item.month;
break;
}
}
this.selectMonth = this.monthDateList[this.selectMonthIndex][0].year + "-" + (month > 9 ? month : "0" + month);
}
},
/**
* 点击下个月
*/
clickNextMonth() {
if (this.selectMonthIndex < this.monthDateList.length - 1) {
this.selectMonthIndex++;
let monthList = this.monthDateList[this.selectMonthIndex];
let month = "";
for (let item of monthList) {
if (item.isCurrentMonth) {
month = item.month;
break;
}
}
this.selectMonth = this.monthDateList[this.selectMonthIndex][0].year + "-" + (month > 9 ? month : "0" + month);
}
},
/**
* 点击选择开始日期和结束日期
* @param {Object} item
*/
clickSelectDate(item) {
if (this.startDate) {
let date1 = new Date(this.startDate);
let date2 = new Date(item.date);
if (date1 > date2) {
this.endDate = this.startDate;
this.endTimeStamp = this.startTimeStamp;
this.startDate = item.date;
this.startTimeStamp = item.timestamp;
} else {
this.endDate = item.date;
this.endTimeStamp = item.timestamp;
}
} else {
this.startDate = item.date;
this.startTimeStamp = item.timestamp;
}
},
/**
* 点击选择重要性
*/
clickImportanceItem(index) {
if (this.selectImportanceIndex != index) {
this.selectImportanceIndex = index;
}
},
/**
* 查看事件详情
*/
clickEventItem(id) {
common_vendor.index.navigateTo({
url: "/pages/index/eventDetails/eventDetails?id=" + id
});
},
/**
* 获取事件筛选项
*/
getEventFilterListData() {
request_api.eventFilterList().then((res) => {
let timeList = [...res.data.available_sorts];
this.timeCategoryList = timeList.splice(0, 2);
let sortList = [...res.data.available_sorts];
for (let item of sortList) {
if (item.name == "最新") {
item.icon = "/static/icon/home/new.png";
}
if (item.name == "热门") {
item.icon = "/static/icon/home/hot.png";
}
if (item.name == "收益率") {
item.icon = "/static/icon/home/yield.png";
}
}
this.sortList = res.data.available_sorts.splice(0, 3);
this.importanceList = res.data.available_importance_levels;
this.importanceList.unshift({ desc: "全部", key: "all", name: "全部" });
}).catch((error) => {
});
},
/**
* 获取事件列表数据
*/
getEventListData() {
let param = { page: this.page, keywords: this.keywords };
if (this.startDate) {
param.start_date = this.startDate;
}
if (this.endDate) {
param.end_date = this.endDate;
}
if (this.selectImportanceIndex > 0) {
param.importance = this.importanceList[this.selectImportanceIndex].key;
}
request_api.eventList(param).then((res) => {
if (res.success) {
if (this.page == 1) {
this.eventList = res.data.events;
} else
this.eventList = this.eventList.concat(res.data.events);
}
}).catch((error) => {
});
}
}
};
if (!Array) {
const _easycom_uni_popup2 = common_vendor.resolveComponent("uni-popup");
_easycom_uni_popup2();
}
const _easycom_uni_popup = () => "../../uni_modules/uni-popup/components/uni-popup/uni-popup.js";
if (!Math) {
_easycom_uni_popup();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: common_assets._imports_0,
b: common_vendor.s("top:" + $data.menuTop + "px;line-height:" + $data.menuH + "px;"),
c: common_assets._imports_1,
d: $data.keywords,
e: common_vendor.o(($event) => $data.keywords = $event.detail.value),
f: common_vendor.o(($event) => $options.clickSearch()),
g: common_vendor.s("top:" + $data.navH + "px;"),
h: common_vendor.f($data.timeCategoryList, (item, index, i0) => {
return {
a: common_vendor.t(item.name),
b: common_vendor.n("item " + ($data.selectTimeCategory == index ? "select" : "")),
c: index,
d: common_vendor.o(($event) => $options.clickTimeCategoryItem(index), index)
};
}),
i: common_assets._imports_2,
j: common_vendor.o(($event) => $options.clickSortItem()),
k: common_assets._imports_3,
l: common_vendor.o(($event) => $options.clickScreenItem()),
m: common_vendor.f($data.topCategoryList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: common_vendor.n("item relative " + ($data.selectTopCategory == index ? "select" : "")),
c: index,
d: common_vendor.o(($event) => $options.clickTopCategoryItem(index), index)
};
}),
n: common_vendor.f($data.secondCategoryList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: common_vendor.n("item " + ($data.selectSecondCategory == index ? "select" : "")),
c: index,
d: common_vendor.o(($event) => $options.clickSecondCategoryItem(index), index)
};
}),
o: common_vendor.s("top:" + $data.contentTop + "px"),
p: common_vendor.f($data.eventList, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item.importance),
b: common_vendor.n("level " + item.importance),
c: common_vendor.t(item.title),
d: common_vendor.t(item.description),
e: $data.getRateUpOrDown(item.related_avg_chg)
}, $data.getRateUpOrDown(item.related_avg_chg) ? {
f: common_assets._imports_4
} : {
g: common_assets._imports_5
}, {
h: common_vendor.t($data.getRateStr(item.related_avg_chg)),
i: common_vendor.n("rateItem " + ($data.getRateUpOrDown(item.related_avg_chg) ? "down" : "up")),
j: $data.getRateUpOrDown(item.related_max_chg)
}, $data.getRateUpOrDown(item.related_max_chg) ? {
k: common_assets._imports_4
} : {
l: common_assets._imports_5
}, {
m: common_vendor.t($data.getRateStr(item.related_max_chg)),
n: common_vendor.n("rateItem " + ($data.getRateUpOrDown(item.related_max_chg) ? "down" : "up")),
o: $data.getRateUpOrDown(item.related_week_chg)
}, $data.getRateUpOrDown(item.related_week_chg) ? {
p: common_assets._imports_4
} : {
q: common_assets._imports_5
}, {
r: common_vendor.t($data.getRateStr(item.related_week_chg)),
s: common_vendor.n("rateItem " + ($data.getRateUpOrDown(item.related_week_chg) ? "down" : "up")),
t: common_vendor.t($data.getLocaleTime(item.created_at)),
v: common_vendor.t(item.view_count),
w: common_vendor.t(item.post_count),
x: common_vendor.t(item.follower_count),
y: common_vendor.o(($event) => $options.clickEventItem(item.id), index),
z: index
});
}),
q: common_assets._imports_1$1,
r: common_assets._imports_2$1,
s: common_assets._imports_3$1,
t: common_vendor.s("top:" + $data.listTop + "px"),
v: common_vendor.o(($event) => $options.loadMoreData()),
w: common_assets._imports_9,
x: common_vendor.f($data.sortList, (item, index, i0) => {
return {
a: item.icon,
b: common_vendor.t(item.name),
c: index
};
}),
y: common_vendor.s("margin-top:" + $data.sortListTop + "px;"),
z: common_vendor.sr("sortPopup", "9dfd58d8-0"),
A: common_vendor.p({
type: "top",
["mask-background-color"]: "transparent"
}),
B: common_assets._imports_2$2,
C: common_vendor.s("height:" + $data.menuH + "px;"),
D: common_vendor.f($data.screenCategoryList, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item),
b: $data.selectScreenCategory == index
}, $data.selectScreenCategory == index ? {} : {}, {
c: common_vendor.n("item relative " + ($data.selectScreenCategory == index ? "select" : "")),
d: index,
e: common_vendor.o(($event) => $options.clickScreenCategoryItem(index), index)
});
}),
E: $data.selectScreenCategory == 0
}, $data.selectScreenCategory == 0 ? {
F: common_vendor.t($data.startDate),
G: common_vendor.t($data.endDate),
H: common_assets._imports_11,
I: common_vendor.o(($event) => $options.clickPreMonth()),
J: common_vendor.t($data.selectMonth),
K: common_assets._imports_12,
L: common_vendor.o(($event) => $options.clickNextMonth()),
M: common_vendor.f($data.weekList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index
};
}),
N: common_vendor.f($data.monthDateList[$data.selectMonthIndex], (item, index, i0) => {
return common_vendor.e({
a: item.isToday || item.date == $data.startDate || item.date == $data.endDate
}, item.isToday || item.date == $data.startDate || item.date == $data.endDate ? {
b: common_vendor.t(item.day)
} : common_vendor.e({
c: item.timestamp > $data.startTimeStamp && item.timestamp < $data.endTimeStamp
}, item.timestamp > $data.startTimeStamp && item.timestamp < $data.endTimeStamp ? {
d: common_vendor.t(item.day)
} : common_vendor.e({
e: !item.isCurrentMonth
}, !item.isCurrentMonth ? {
f: common_vendor.t(item.day)
} : {
g: common_vendor.t(item.day)
})), {
h: index,
i: common_vendor.o(($event) => $options.clickSelectDate(item), index)
});
})
} : {}, {
O: $data.selectScreenCategory == 1
}, $data.selectScreenCategory == 1 ? {
P: common_vendor.f($data.industryTopCategoryList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index
};
}),
Q: common_assets._imports_1
} : {}, {
R: $data.selectScreenCategory == 2
}, $data.selectScreenCategory == 2 ? {
S: common_vendor.f($data.importanceList, (item, index, i0) => {
return {
a: common_vendor.t(item.name),
b: common_vendor.n("item " + ($data.selectImportanceIndex == index ? "select" : "")),
c: index,
d: common_vendor.o(($event) => $options.clickImportanceItem(index), index)
};
})
} : {}, {
T: common_vendor.o(($event) => $options.clickCancel()),
U: common_vendor.o(($event) => $options.clickCertain()),
V: common_vendor.s("padding-top:" + $data.menuTop + "px;"),
W: common_vendor.sr("screenPopup", "9dfd58d8-1"),
X: common_vendor.p({
type: "top"
})
});
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/index/index.js.map