"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"), windowWidth: common_vendor.inject("windowWidth"), contentTop: "", listTop: "", sortListTop: "", keywords: "", //关键词 sortList: [], selectSortKey: "", //选中排序key timeCategoryList: [], selectTimeCategory: 0, stockCategoryList: [], topScrollWidth: 0, secondScrollWidth: 0, selectTopCategory: 0, topScrollLeft: 0, selectSecondCategory: 0, secondScrollLeft: 0, screenCategoryList: ["日期范围", "行业分类", "重要性"], selectYearMonth: "", //选择的年月日 startDate: "", //选择开始日期 startTimeStamp: "", //开始日期时间戳 endDate: "", //选择结束日期 endTimeStamp: "", //结束日期时间戳 weekList: ["一", "二", "三", "四", "五", "六", "日"], monthDateList: [], selectMonthIndex: 0, //选中月份下标 selectMonth: "", //选中年月 industryTopCategoryList: [], //行业一级分类 selectIndustryTopCategory: 0, // 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 * this.windowWidth; this.listTop = this.contentTop + (22 + 80 + 72) / 750 * this.windowWidth; this.sortListTop = this.navH + (22 + 80 + 80) / 750 * this.windowWidth; this.getEventFilterListData(); this.getEventListData(); this.getIndustryCategoryListData(); this.getStockCategoryListData(); 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; }, onReady() { common_vendor.index.createSelectorQuery().select("#topCategory").boundingClientRect((rect) => { this.topScrollWidth = Math.round(rect.width); }).exec(); common_vendor.index.createSelectorQuery().select("#secondCategory").boundingClientRect((rect) => { if (rect) { this.secondScrollWidth = Math.round(rect.width); } }).exec(); }, 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; if (index == 0) { this.getEventListData(); } else this.getHotEventListData(); } }, /** * 点击排序 */ clickSort() { this.$refs["sortPopup"].open(); }, /** * 点击排序选项 */ clickSortListItem(item) { this.selectSortKey = item.key; this.$refs["sortPopup"].close(); if (this.selectTimeCategory == 0) { this.getEventListData(); } else this.getHotEventListData(); }, /** * 点击筛选 */ 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(event, index) { if (this.selectTopCategory != index) { this.selectTopCategory = index; let offsetLeft = event.currentTarget.offsetLeft; this.topScrollLeft = offsetLeft - this.topScrollWidth / 2; if (index == 0) { this.listTop = this.contentTop + (22 + 80 + 72) / 750 * this.windowWidth; } else this.listTop = this.contentTop + (22 + 80 + 72 + 44 + 44) / 750 * this.windowWidth; } }, /** * 点击选择二级分类 * @param {Object} index */ clickSecondCategoryItem(event, index) { if (this.selectSecondCategory != index) { this.selectSecondCategory = index; let offsetLeft = event.currentTarget.offsetLeft; this.secondScrollLeft = offsetLeft - this.secondScrollWidth / 2; } }, /** * 点击上个月 */ 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; } }, /** * 选择行业分类一级分类 */ clickSelectIndustryTopCategoryItem(index) { if (this.selectIndustryTopCategory != index) { this.selectIndustryTopCategory = index; } }, /** * 点击选择重要性 */ clickImportanceItem(index) { if (this.selectImportanceIndex != index) { this.selectImportanceIndex = index; } }, /** * 点击展开收起内容 * @param {Object} index */ clickExpandOrRetract(index) { this.eventList[index].isExpand = !this.eventList[index].isExpand; }, /** * 点击相关股票 * @param {Object} code */ clickLookRelatedStockItem(code) { common_vendor.index.navigateTo({ url: "/pages/index/stockDetails/stockDetails?code=" + code }); }, /** * 点击关注事件 * @param {Object} id */ clickFollowEvent(id) { request_api.followEvent(id).then((res) => { common_vendor.index.showToast({ title: res.message, icon: "none" }); }).catch((error) => { }); }, /** * 查看事件详情 */ clickEventItem(id) { common_vendor.index.navigateTo({ url: "/pages/index/eventDetails/eventDetails?id=" + id }); }, /** * 获取事件筛选项 */ getEventFilterListData() { request_api.filterOptions().then((res) => { if (res.code == 200) { let timeList = [...res.data.sort_options]; this.timeCategoryList = timeList.splice(0, 2); let sortList = [...res.data.sort_options]; 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.sort_options.splice(0, 3); this.importanceList = res.data.importance_options; this.importanceList.unshift({ desc: "全部", key: "all", name: "全部" }); } else common_vendor.index.showToast({ title: res.message, icon: "none" }); }).catch((error) => { }); }, /** * 获取行业分类 */ getIndustryCategoryListData() { request_api.industryCategoryList().then((res) => { this.industryTopCategoryList = res.data; }).catch((error) => { }); }, /** * 获取股票分类 */ getStockCategoryListData() { request_api.stockCategoryList().then((res) => { if (res.code == 200) { for (let item of res.data) { item.sub_sectors.unshift("全部"); } res.data.unshift({ primary_sector: "全部", sub_sectors: [] }); this.stockCategoryList = res.data; } else common_vendor.index.showToast({ title: res.message, icon: "none" }); }).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; } if (this.selectSortKey) { param.sort = this.selectSortKey; } 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) => { }); let token = common_vendor.index.getStorageSync("token"); if (!token) { let param1 = { email: "1198731706@qq.com", password: "Aa123456", isJson: 1 }; request_api.loginByEmail(param1).then((res) => { if (res.code == 200) { common_vendor.index.setStorageSync("token", res.data.token); } else common_vendor.index.showToast({ title: res.message, icon: "none" }); }).catch((error) => { }); } }, /** * 获取热门事件数据 */ getHotEventListData() { request_api.homeData().then((res) => { if (res.code == 200) { if (this.page == 1) { this.eventList = res.data.events; } else this.eventList = this.eventList.concat(res.data.events); } else common_vendor.index.showToast({ title: res.message, icon: "none" }); }).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$1, j: common_vendor.o(($event) => $options.clickSort()), k: common_assets._imports_3$1, l: common_vendor.o(($event) => $options.clickScreenItem()), m: common_vendor.f($data.stockCategoryList, (item, index, i0) => { return { a: common_vendor.t(item.primary_sector), b: common_vendor.n("item relative " + ($data.selectTopCategory == index ? "select" : "")), c: index, d: common_vendor.o(($event) => $options.clickTopCategoryItem($event, index), index) }; }), n: $data.topScrollLeft, o: $data.stockCategoryList.length > 0 && $data.stockCategoryList[$data.selectTopCategory].sub_sectors.length > 0 }, $data.stockCategoryList.length > 0 && $data.stockCategoryList[$data.selectTopCategory].sub_sectors.length > 0 ? { p: common_vendor.f($data.stockCategoryList[$data.selectTopCategory].sub_sectors, (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($event, index), index) }; }), q: $data.secondScrollLeft } : {}, { r: common_vendor.s("top:" + $data.contentTop + "px"), s: 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: common_vendor.n("content " + (item.isExpand ? "" : "retract")), f: common_vendor.o(($event) => $options.clickExpandOrRetract(index), index), g: $data.getRateUpOrDown(item.related_avg_chg) }, $data.getRateUpOrDown(item.related_avg_chg) ? { h: common_assets._imports_1$1 } : { i: common_assets._imports_2$2 }, { j: common_vendor.t($data.getRateStr(item.related_avg_chg)), k: common_vendor.n("rateItem " + ($data.getRateUpOrDown(item.related_avg_chg) ? "down" : "up")), l: $data.getRateUpOrDown(item.related_max_chg) }, $data.getRateUpOrDown(item.related_max_chg) ? { m: common_assets._imports_1$1 } : { n: common_assets._imports_2$2 }, { o: common_vendor.t($data.getRateStr(item.related_max_chg)), p: common_vendor.n("rateItem " + ($data.getRateUpOrDown(item.related_max_chg) ? "down" : "up")), q: $data.getRateUpOrDown(item.related_week_chg) }, $data.getRateUpOrDown(item.related_week_chg) ? { r: common_assets._imports_1$1 } : { s: common_assets._imports_2$2 }, { t: common_vendor.t($data.getRateStr(item.related_week_chg)), v: common_vendor.n("rateItem " + ($data.getRateUpOrDown(item.related_week_chg) ? "down" : "up")), w: common_vendor.f(item.related_stocks, (sitem, sindex, i1) => { return { a: common_vendor.t(sitem.stock_name), b: common_vendor.t(($data.getRateUpOrDown(sitem.daily_change) ? "" : "+") + sitem.daily_change), c: sindex, d: common_vendor.o(($event) => $options.clickLookRelatedStockItem(sitem.stock_code), sindex) }; }), x: common_vendor.t($data.getLocaleTime(item.created_at)), y: common_vendor.t(item.view_count), z: common_vendor.t(item.post_count), A: common_vendor.t(item.follower_count), B: common_vendor.o(($event) => $options.clickFollowEvent(item.id), index), C: common_vendor.o(($event) => $options.clickEventItem(item.id), index), D: index }); }), t: common_assets._imports_3, v: common_assets._imports_4, w: common_assets._imports_7, x: common_vendor.s("top:" + $data.listTop + "px"), y: common_vendor.o(($event) => $options.loadMoreData()), z: common_assets._imports_11$1, A: common_vendor.f($data.sortList, (item, index, i0) => { return { a: item.icon, b: common_vendor.t(item.name), c: index, d: common_vendor.o(($event) => $options.clickSortListItem(item), index) }; }), B: common_vendor.s("margin-top:" + $data.sortListTop + "px;"), C: common_vendor.sr("sortPopup", "9dfd58d8-0"), D: common_vendor.p({ type: "top", ["mask-background-color"]: "transparent" }), E: common_assets._imports_2, F: common_vendor.s("height:" + $data.menuH + "px;"), G: 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) }); }), H: $data.selectScreenCategory == 0 }, $data.selectScreenCategory == 0 ? { I: common_vendor.t($data.startDate), J: common_vendor.t($data.endDate), K: common_assets._imports_11, L: common_vendor.o(($event) => $options.clickPreMonth()), M: common_vendor.t($data.selectMonth), N: common_assets._imports_12, O: common_vendor.o(($event) => $options.clickNextMonth()), P: common_vendor.f($data.weekList, (item, index, i0) => { return { a: common_vendor.t(item), b: index }; }), Q: 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) }); }) } : {}, { R: $data.selectScreenCategory == 1 }, $data.selectScreenCategory == 1 ? { S: common_vendor.f($data.industryTopCategoryList, (item, index, i0) => { return { a: common_vendor.t(item.classification_name), b: common_vendor.n("item " + ($data.selectIndustryTopCategory == index ? "select" : "")), c: index, d: common_vendor.o(($event) => $options.clickSelectIndustryTopCategoryItem(index), index) }; }), T: common_assets._imports_1, U: common_vendor.t($data.industryTopCategoryList[$data.selectIndustryTopCategory].classification_name) } : {}, { V: $data.selectScreenCategory == 2 }, $data.selectScreenCategory == 2 ? { W: 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) }; }) } : {}, { X: common_vendor.o(($event) => $options.clickCancel()), Y: common_vendor.o(($event) => $options.clickCertain()), Z: common_vendor.s("padding-top:" + $data.menuTop + "px;"), aa: common_vendor.sr("screenPopup", "9dfd58d8-1"), ab: 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