"use strict"; const common_vendor = require("../../common/vendor.js"); const request_api = require("../../request/api.js"); const common_assets = require("../../common/assets.js"); const echarts = require("../../uni_modules/lime-echart/static/echarts.min.js"); const _sfc_main = { data() { return { navH: common_vendor.inject("navHeight"), contentTop: "", currentDate: "", // 最终要赋值的日期 selectedDate: "", // 临时存储选中的日期 allStockData: [], filteredData: [], conceptStocksList: [], alertTypeConfig: { "surge": { text: "异动", color: "#FF7A45", // rgb(255, 122, 69) filter: "brightness(0) saturate(100%) invert(54%) sepia(60%) saturate(467%) hue-rotate(344deg) brightness(102%) contrast(101%)" }, "shrink_surge_up": { text: "缩量急涨", color: "#722ED1", // rgb(114, 46, 209) filter: "brightness(0) saturate(100%) invert(24%) sepia(90%) saturate(2865%) hue-rotate(266deg) brightness(87%) contrast(98%)" }, "volume_surge_up": { text: "放量急涨", color: "#EB2F96", // rgb(235, 47, 150) filter: "brightness(0) saturate(100%) invert(34%) sepia(82%) saturate(1970%) hue-rotate(313deg) brightness(91%) contrast(94%)" }, "volume_oscillation": { text: "放量震荡", color: "#13C2C2", // rgb(19, 194, 194) filter: "brightness(0) saturate(100%) invert(71%) sepia(62%) saturate(487%) hue-rotate(142deg) brightness(91%) contrast(93%)" }, "surge_up": { text: "急涨", color: "#FF4D4F", // rgb(255, 77, 79) filter: "brightness(0) saturate(100%) invert(42%) sepia(93%) saturate(727%) hue-rotate(346deg) brightness(102%) contrast(104%)" }, "surge_down": { text: "急跌", color: "#52C41A", // rgb(82, 196, 26) filter: "brightness(0) saturate(100%) invert(68%) sepia(65%) saturate(456%) hue-rotate(71deg) brightness(91%) contrast(86%)" }, "shrink_surge_down": { text: "缩量急跌", color: "#FF7A45", // rgb(255, 122, 69) filter: "brightness(0) saturate(100%) invert(54%) sepia(60%) saturate(467%) hue-rotate(344deg) brightness(102%) contrast(101%)" } }, topLists: [ { title: "大盘涨跌幅", value: "+0.00%", color: "#EC3440", backIcon: "/static/icon/gegu/gg-top-0.png" }, { title: "涨停/跌停", value: "+0.00%", color: "#070707", backIcon: "/static/icon/gegu/gg-top-1.png" }, { title: "多空对比", value: "0/0", color: "#070707", backIcon: "/static/icon/gegu/gg-top-2.png" }, { title: "今日成交额", value: "0万亿", color: "#070707", backIcon: "/static/icon/gegu/gg-top-3.png" }, { title: "A股总市值", value: "0万亿", color: "#070707", backIcon: "/static/icon/gegu/gg-top-4.png" }, { title: "连板龙头", value: "0只", color: "#F59B38", backIcon: "/static/icon/gegu/gg-top-5.png" } ], topLists2: [ { title: "超大盘股", value: "(>1000亿)" }, { title: "大盘股", value: "(500-1000亿)" }, { title: "中盘股", value: "(100-500亿)" } ], list2Index: 0, typeList: [ { title: "缩量急涨", backIcon: "/static/icon/gegu/cate-0.png" }, { title: "异动", backIcon: "/static/icon/gegu/cate-1.png" }, { title: "急跌", backIcon: "/static/icon/gegu/cate-2.png" }, { title: "急涨", backIcon: "/static/icon/gegu/cate-3.png" }, { title: "放量震荡", backIcon: "/static/icon/gegu/cate-4.png" } ], marketAlertsList: [], formattedAvg: 0, upCount: 0, downCount: 0, limit_up_ratio: 0, searchResultTop: "", //搜索结果 contentTop: "", keywords: "", //搜索关键字 searchShow: false, //是否展示搜索结果 searchResultList: [], //搜索结果 selectSearchStockInfo: null, //选中的搜索股票信息 isShowTime: false, ec: { lazyLoad: true }, // 延迟加载 ECharts chart: null, y2MaxText: "", // 右侧顶部最大值文本(例:2.36% / -0.89%) y2MinText: "" // 右侧底部最小值文本(例:-3.12% / 0.56%) }; }, onLoad(e) { this.activeIndex = e.index; this.searchResultTop = this.navH + (20 + 70) / 750 * common_vendor.inject("windowWidth"); this.contentTop = this.navH + (20 + 70 + 25) / 750 * common_vendor.inject("windowWidth"); this.conceptsDailyTop(); const now = /* @__PURE__ */ new Date(); const year = now.getFullYear(); const month = (now.getMonth() + 1).toString().padStart(2, "0"); const day = now.getDate().toString().padStart(2, "0"); this.currentDate = `${year}-${month}-${day}`; }, onShow() { this.isShowTime = false; this.marketHeatmap(); this.marketStatistics(); this.marketHotspotListOverview(); }, methods: { truncateText(text, length) { if (!text) return ""; return text.length > length ? text.substring(0, length) + "..." : text; }, /** * 点击搜索 */ clickSearch() { if (this.keywords) { this.getSearchStockInfoListData(); } else this.selectSearchStockInfo = null; }, /** * 点击搜索结果背景 */ clickSearchResultBg() { this.searchShow = false; }, /** * 点击搜索结果列表项 */ clickSearchResultListItem(item) { this.selectSearchStockInfo = item; this.searchShow = false; this.getStockBasicInfoData(); }, /** * 根据输入内容获取搜索列表项 */ getSearchStockInfoListData() { let param = { q: this.keywords, limit: 10 }; request_api.searchStockInfo(param).then((res) => { this.searchResultList = res.data; this.searchShow = this.searchResultList.length > 0; }).catch((error) => { }); }, /** * 获取股票基本信息 */ getStockBasicInfoData() { let code = this.stockCode; if (this.selectSearchStockInfo) { code = this.selectSearchStockInfo.stock_code; } common_vendor.index.navigateTo({ url: "/pagesStock/stockCenterDetails/stockCenterDetails?code=" + code }); }, /** * 获取股票当前市场价格信息 */ getQuoteDetailsData() { let code = this.stockCode; if (this.selectSearchStockInfo) { code = this.selectSearchStockInfo.stock_code; } quoteDetailsInfo(code).then((res) => { this.quoteDetailsInfo = res.data; }).catch((error) => { }); }, formatAlpha(value) { if (value === null || value === void 0 || isNaN(Number(value))) { return "0.0"; } return Number(value).toFixed(1); }, handleTypeClick(index) { this.list2Index = index; this.marketHeatmap(this.currentDate); }, getTableItem(obj) { const marketCap = obj.market_cap ? obj.market_cap.toFixed(2) : "0.00"; const amount = obj.amount ? obj.amount.toFixed(2) : "0.00"; const changePercent = obj.change_percent ? Number(obj.change_percent) : 0; let changePercentStr = ""; let changeType = ""; if (changePercent > 0) { changePercentStr = `+${changePercent}%`; changeType = "positive"; } else if (changePercent < 0) { changePercentStr = `${changePercent}%`; changeType = "negative"; } else { changePercentStr = "0%"; changeType = "zero"; } return [ [obj.stock_name, obj.stock_code], [changePercentStr, "", changeType], // 第三个元素存类型标记 [`${marketCap}亿元`], [`${amount}亿元`], [obj.industry || "暂无"] // 处理行业为空的情况 ]; }, // 处理涨停比:转百分比 + 四舍五入(可指定保留小数位数) formatLimitUpRatio(value, decimalPlaces = 0) { if (!value || isNaN(Number(value))) { return "0%"; } const percentValue = Number(value) * 100; const result = decimalPlaces === 0 ? Math.round(percentValue) : percentValue.toFixed(decimalPlaces); return `${result}%`; }, conceptsDailyTop() { request_api.conceptsDailyTop().then((res) => { }).catch((error) => { }); }, marketHeatmap(currentDate) { let param = { limit: 500 }; if (this.isShowTime) { if (currentDate && currentDate !== "undefined" && currentDate.trim() !== "") { param.date = currentDate; } } request_api.marketHeatmap(param).then((res) => { this.topLists[2].value = res.statistics.rising_count + "/" + res.statistics.falling_count; this.allStockData = res.data || []; const limitUpCount = this.allStockData.filter((s) => { const changePercent = Number(s.change_percent); return !isNaN(changePercent) && changePercent >= 9.9; }).length; const limitDownCount = this.allStockData.filter((s) => { const changePercent = Number(s.change_percent); return !isNaN(changePercent) && changePercent <= -9.9; }).length; this.topLists[1].value = limitUpCount + "/" + limitDownCount; this.topLists[5].value = limitUpCount + "只"; this.filterStockByMarketCap(); }).catch((error) => { }); }, // 根据市值区间筛选数据 filterStockByMarketCap() { const { list2Index, allStockData } = this; let filtered = []; switch (list2Index) { case 0: filtered = allStockData.filter((item) => item.market_cap > 1e3); break; case 1: filtered = allStockData.filter((item) => item.market_cap >= 500 && item.market_cap <= 1e3); break; case 2: filtered = allStockData.filter((item) => item.market_cap >= 100 && item.market_cap <= 500); break; default: filtered = allStockData; } this.filteredData = filtered.slice(0, 10); }, marketStatistics() { request_api.marketStatistics().then((res) => { this.topLists[3].value = this.formatToTrillion(res.summary.total_amount); this.topLists[4].value = this.formatToTrillion(res.summary.total_market_cap); }).catch((error) => { this.topLists[3].value = "0.0 万亿"; this.topLists[4].value = "0.0 万亿"; }); }, formatToTrillion(num) { if (typeof num !== "number" || isNaN(num)) { return "0.0 万亿"; } const trillionValue = (num / 1e4).toFixed(1); return `${trillionValue} 万亿`; }, marketHotspotListOverview() { let param = { date: this.currentDate }; request_api.marketHotspotOverview(param).then((res) => { var _a; const data = res == null ? void 0 : res.data; const alerts = ((_a = res == null ? void 0 : res.data) == null ? void 0 : _a.alerts) || []; const changePct = res.data.index.change_pct; let numPct = 0; if (changePct && !isNaN(Number(changePct))) { numPct = Number(changePct); } const roundedPct = Math.round(numPct * 100) / 100; const fixedPct = roundedPct.toFixed(2); let formattedPct = ""; if (roundedPct > 0) { formattedPct = `+${fixedPct}%`; } else if (roundedPct < 0) { formattedPct = `${fixedPct}%`; } else { formattedPct = "0.00%"; } const color = roundedPct > 0 ? "#EC3440" : roundedPct < 0 ? "#01AB5D" : "#666666"; this.topLists[0].value = formattedPct; this.topLists[0].color = color; const processedAlerts = alerts.map((alertItem) => { const stocks = alertItem.stocks || []; const validStocks = stocks.filter((s) => s.change_pct != null && !isNaN(Number(s.change_pct))); const avgChange = validStocks.length > 0 ? validStocks.reduce((sum, s) => sum + Number(s.change_pct), 0) / validStocks.length : 0; const upCount = validStocks.filter((s) => Number(s.change_pct) > 0).length; const downCount = validStocks.filter((s) => Number(s.change_pct) < 0).length; const roundedAvg = Math.round(avgChange * 100) / 100; const formattedAvg = roundedAvg > 0 ? `+${roundedAvg.toFixed(2)}` : roundedAvg.toFixed(2); return { ...alertItem, alpha: avgChange, // 供模板中判断颜色和显示数值 upCount, // 上涨股票数 downCount, // 下跌股票数 formattedAvg // 格式化后的均涨值(带正负号) }; }); const sortByTimeDesc = (a, b) => { const timeToMinutes = (timeStr) => { const [hours, minutes] = timeStr.split(":").map(Number); return hours * 60 + minutes; }; const minutesA = timeToMinutes(a.time); const minutesB = timeToMinutes(b.time); return minutesB - minutesA; }; const sortedAlerts = processedAlerts.sort(sortByTimeDesc); this.marketAlertsList = sortedAlerts; this.initChart(data.index.timeline, processedAlerts); }).catch((error) => { }); }, async initChart(timeline, alerts) { if (!timeline || timeline.length === 0) return; const chart = await this.$refs.chartRef.init(echarts); this.chartInstance = chart; const xAxisTime = timeline.map((item) => { var _a; return ((_a = item.time) == null ? void 0 : _a.trim()) || ""; }); const yAxisPrice = timeline.map((item) => Number(item.price) || 0); const changePctList = timeline.map((item) => Number(item.change_pct)).filter((val) => !isNaN(val) && val !== null && val !== void 0); const validPrices = yAxisPrice.filter((val) => val !== 0 && !isNaN(val)); const priceMin = validPrices.length > 0 ? Math.min(...validPrices) : 0; const priceMax = validPrices.length > 0 ? Math.max(...validPrices) : 0; const priceRange = priceMax - priceMin; const yAxisMin = priceRange > 0 ? priceMin - priceRange * 0.1 : priceMin; const yAxisMax = priceRange > 0 ? priceMax + priceRange * 0.25 : priceMax; let y2Min = 0, y2Max = 0; if (changePctList.length > 0) { y2Min = Math.min(...changePctList); y2Max = Math.max(...changePctList); this.y2MaxText = Number(y2Max).toFixed(2) + "%"; this.y2MinText = Number(y2Min).toFixed(2) + "%"; } else { this.y2MaxText = "0.00%"; this.y2MinText = "0.00%"; } const alertObj = {}; let totalAlert = 0; let sameTimeCount = 0; let sameScoreCount = 0; alerts.forEach((alert) => { var _a; if (!alert) return; const alertTime = ((_a = alert.time) == null ? void 0 : _a.trim()) || ""; const alertScore = Number(alert.importance_score); if (alertTime === "" || isNaN(alertScore)) return; const idx = xAxisTime.findIndex((t) => (t == null ? void 0 : t.trim()) === alertTime); if (idx === -1) return; totalAlert++; if (!alertObj[alertTime]) { alertObj[alertTime] = { ...alert, idx, importance_score: alertScore }; } else { sameTimeCount++; const existAlert = alertObj[alertTime]; if (alertScore > existAlert.importance_score) { alertObj[alertTime] = { ...alert, idx, importance_score: alertScore }; } else if (alertScore === existAlert.importance_score) { sameScoreCount++; } } }); const timeToMinutes = (timeStr) => { const [hour, minute] = timeStr.split(":").map(Number); return hour * 60 + minute; }; const get10MinGroup = (minutes) => { const startMin = Math.floor(minutes / 10) * 10; const endMin = startMin + 9; const formatTime = (m) => { const h = Math.floor(m / 60).toString().padStart(2, "0"); const mi = (m % 60).toString().padStart(2, "0"); return `${h}:${mi}`; }; return `${formatTime(startMin)}-${formatTime(endMin)}`; }; const filterBy10MinGroup = (alertObj2) => { const alertGroupList = Object.keys(alertObj2).filter((time) => time && time.includes(":")).map((time) => { const minutes = timeToMinutes(time); return { group: get10MinGroup(minutes), // 所属10分钟分组 score: alertObj2[time].importance_score, // 告警评分 data: alertObj2[time] // 原始告警数据 }; }); if (alertGroupList.length === 0) return {}; const groupMap = {}; alertGroupList.forEach((item) => { if (!groupMap[item.group]) { groupMap[item.group] = []; } groupMap[item.group].push(item); }); const finalAlertObj = {}; Object.keys(groupMap).forEach((groupName) => { const groupItems = groupMap[groupName]; const sortedItems = groupItems.sort((a, b) => b.score - a.score); const topItem = sortedItems[0]; finalAlertObj[topItem.data.time] = topItem.data; }); return finalAlertObj; }; const filteredAlertObj = filterBy10MinGroup(alertObj); const originalKeyLen = Object.keys(alertObj).length; const filteredKeyLen = Object.keys(filteredAlertObj).length; const groupDetail = Object.keys(filteredAlertObj).map((time) => { const minutes = timeToMinutes(time); return { time, group: get10MinGroup(minutes), score: filteredAlertObj[time].importance_score }; }); common_vendor.index.__f__("log", "at pages/geGuCenter/geGuCenter.vue:957", "===== 告警点处理全统计(10分钟分组版)====="); common_vendor.index.__f__("log", "at pages/geGuCenter/geGuCenter.vue:958", "1. 过滤后有效告警总数量:", totalAlert); common_vendor.index.__f__("log", "at pages/geGuCenter/geGuCenter.vue:959", "2. 相同时间的告警去重数量:", sameTimeCount); common_vendor.index.__f__("log", "at pages/geGuCenter/geGuCenter.vue:960", "3. 相同时间且相同评分数量:", sameScoreCount); common_vendor.index.__f__("log", "at pages/geGuCenter/geGuCenter.vue:961", "4. 基础去重后(同时间最高评分)数量:", originalKeyLen); common_vendor.index.__f__("log", "at pages/geGuCenter/geGuCenter.vue:962", "5. 10分钟分组后(每组取最高评分)数量:", filteredKeyLen); common_vendor.index.__f__("log", "at pages/geGuCenter/geGuCenter.vue:963", "6. 分组详情(时间→所属分组→评分):", groupDetail); common_vendor.index.__f__("log", "at pages/geGuCenter/geGuCenter.vue:964", "7. 分组后最终告警详情:", filteredAlertObj); const alertPoints = Object.values(filteredAlertObj).map((alert) => { const validIdx = !isNaN(alert.idx) && alert.idx >= 0 && alert.idx < xAxisTime.length ? alert.idx : 0; const xVal = xAxisTime[validIdx] || ""; const yVal = !isNaN(yAxisPrice[validIdx]) ? yAxisPrice[validIdx] : 0; return { name: alert.concept_name || "未知概念", // 概念名兜底 coord: [xVal, yVal], // 确保x轴值严格匹配xAxis.data,y轴值有效 value: yVal, itemStyle: { color: "#FF4444" }, // 告警点红色 label: { formatter() { return alert.concept_name; }, show: true, position: "top", fontSize: 10, color: "#FF4444", fontWeight: "500", distance: 5 } }; }).filter(Boolean); common_vendor.index.__f__("log", "at pages/geGuCenter/geGuCenter.vue:991", "8. 最终ECharts告警点数据(10分钟分组):", alertPoints); const option = { grid: { left: "4%", right: "8%", bottom: "8%", top: "10%", containLabel: true }, xAxis: { type: "category", boundaryGap: false, data: xAxisTime, axisLabel: { fontSize: 12, rotate: 30, interval: Math.floor(xAxisTime.length / 6) }, axisTick: { alignWithLabel: true, interval: Math.floor(xAxisTime.length / 6) } }, yAxis: [ { type: "value", min: yAxisMin, max: yAxisMax, nameTextStyle: { fontSize: 12 }, axisLabel: { formatter: (val) => val.toFixed(0), fontSize: 12 }, splitLine: { lineStyle: { type: "dashed", color: "#EEEEEE" } }, boundaryGap: [0.05, 0.05] // 上下留5%缓冲,避免顶点告警点被裁剪 } ], dataZoom: [], series: [ { name: "上证指数", type: "line", smooth: true, symbol: "circle", symbolSize: 5, itemStyle: { color: "#0092FF" }, lineStyle: { width: 2, color: "#0092FF", shadowColor: "rgba(0,146,255,0.5)", shadowBlur: 8, shadowOffsetY: 3, shadowOffsetX: 0 }, areaStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "rgba(0,146,255,0.25)" }, { offset: 1, color: "rgba(0,146,255,0)" } ]) }, data: yAxisPrice, // 保留所有markPoint显示修复配置(强制显示/层级/样式) markPoint: { show: true, // 强制开启显示(关键!) symbol: "circle", symbolSize: 5, // 比折线大,避免被遮挡 z: 10, // 层级置顶,不被任何元素遮挡 data: alertPoints, itemStyle: { color: "#FF4444", borderColor: "#fff", // 白色描边,更醒目 borderWidth: 1 }, label: { show: true, position: "top", fontSize: 10, color: "#FF4444", fontWeight: "500", distance: 6, backgroundColor: "rgba(255,255,255,0.8)", // 标签白色背景,防融合 padding: [2, 4], borderRadius: 2, borderColor: "#FF4444", // 白色描边,更醒目 borderWidth: 1 } }, yAxisIndex: 0 } ] }; common_vendor.index.__f__("log", "at pages/geGuCenter/geGuCenter.vue:1082", "7. 分组后最终告警详情:", JSON.stringify(option.series)); chart.setOption(option, true); common_vendor.index.onWindowResize(() => { this.chartInstance && this.chartInstance.resize(); }); }, itemDetails(item) { common_vendor.index.navigateTo({ url: "/pagesStock/stockCenterDetails/stockCenterDetails?code=" + item.stock_code }); }, moreAction() { if (this.isShowTime) { common_vendor.index.navigateTo({ url: "/pages/geGuCenter/detail?currentDate=" + this.currentDate }); } else { common_vendor.index.navigateTo({ url: "/pages/geGuCenter/detail" }); } }, allAction(index) { if (index == 1) { this.$refs["typePopup"].open(); } else if (index == 2) { this.$refs["datePopup"].open(); } }, closeAction(index) { if (index == 1) { this.$refs["typePopup"].close(); } else if (index == 2) { this.$refs["datePopup"].close(); } else if (index == 3) { this.$refs["detailPopup"].close(); } }, handleDateChange(date) { this.selectedDate = date; common_vendor.index.__f__("log", "at pages/geGuCenter/geGuCenter.vue:1124", "选中的日期:", date); }, confirmAction(index) { if (index == 1) { this.$refs["typePopup"].close(); } else if (index == 2) { if (this.selectedDate) { this.currentDate = this.selectedDate; common_vendor.index.__f__("log", "at pages/geGuCenter/geGuCenter.vue:1133", "最终确认的日期:", this.currentDate); } else { const now = /* @__PURE__ */ new Date(); const year = now.getFullYear(); const month = (now.getMonth() + 1).toString().padStart(2, "0"); const day = now.getDate().toString().padStart(2, "0"); this.currentDate = `${year}-${month}-${day}`; } this.isShowTime = true; this.marketHeatmap(this.currentDate); this.marketStatistics(); this.marketHotspotListOverview(); this.$refs["datePopup"].close(); } }, bkydAction(item) { this.$refs["detailPopup"].open(); this.formattedAvg = item.formattedAvg, this.upCount = item.upCount, this.downCount = item.downCount, this.limit_up_ratio = item.limit_up_ratio, this.conceptStocksDetails(item.concept_id); }, conceptStocksDetails(concept_id) { common_vendor.index.__f__("log", "at pages/geGuCenter/geGuCenter.vue:1160", "concept_id", concept_id); request_api.conceptStocks(concept_id, {}).then((res) => { if (res.data && res.data.stocks) { let rawData = res.data.stocks; this.conceptStocksList = rawData.sort((a, b) => { const aValue = a.change_pct === null || a.change_pct === void 0 ? -999 : Number(a.change_pct); const bValue = b.change_pct === null || b.change_pct === void 0 ? -999 : Number(b.change_pct); return bValue - aValue; }); } else { common_vendor.index.__f__("warn", "at pages/geGuCenter/geGuCenter.vue:1179", "接口返回数据格式异常", res); } }).catch((error) => { }); }, // 格式化涨跌幅显示(处理正负号、保留两位小数) formatChangePct(change_pct) { if (typeof change_pct !== "number") return "0.00%"; const symbol = change_pct >= 0 ? "+" : ""; return `${symbol}${change_pct.toFixed(2)}%`; }, // 获取涨跌幅文字颜色(涨红跌绿,平盘灰色) getChangeColor(change_pct) { if (typeof change_pct !== "number") return "#888888"; if (change_pct > 0) return "#EC3440"; if (change_pct < 0) return "#00B42A"; return "#888888"; } } }; if (!Array) { const _easycom_navBar2 = common_vendor.resolveComponent("navBar"); const _easycom_l_echart2 = common_vendor.resolveComponent("l-echart"); const _easycom_uni_popup2 = common_vendor.resolveComponent("uni-popup"); const _easycom_LCCalendar22 = common_vendor.resolveComponent("LCCalendar2"); (_easycom_navBar2 + _easycom_l_echart2 + _easycom_uni_popup2 + _easycom_LCCalendar22)(); } const _easycom_navBar = () => "../../components/navBar/navBar.js"; const _easycom_l_echart = () => "../../uni_modules/lime-echart/components/l-echart/l-echart.js"; const _easycom_uni_popup = () => "../../uni_modules/uni-popup/components/uni-popup/uni-popup.js"; const _easycom_LCCalendar2 = () => "../../components/LCCalendar2/LCCalendar2.js"; if (!Math) { (_easycom_navBar + _easycom_l_echart + _easycom_uni_popup + _easycom_LCCalendar2)(); } function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return common_vendor.e({ a: common_vendor.p({ leftText: "个股中心", hideNavBg: true, hideBack: true }), b: common_assets._imports_0, c: common_assets._imports_1, d: common_vendor.o([($event) => $data.keywords = $event.detail.value, ($event) => $options.clickSearch()]), e: $data.keywords, f: common_vendor.s("top:" + $data.navH + "px;"), g: $data.searchShow }, $data.searchShow ? { h: common_vendor.f($data.searchResultList, (item, index, i0) => { return { a: common_vendor.t(item.stock_code), b: common_vendor.t(item.stock_name), c: index, d: common_vendor.o(($event) => $options.clickSearchResultListItem(item), index) }; }), i: common_vendor.s("top:" + $data.searchResultTop + "px;"), j: common_vendor.o(($event) => $options.clickSearchResultBg()) } : {}, { k: common_vendor.f($data.topLists, (item, index, i0) => { return { a: item.backIcon, b: common_vendor.t(item.title), c: common_vendor.t(item.value), d: item.color, e: index }; }), l: common_vendor.f($data.topLists2, (item, index, i0) => { return { a: common_vendor.t(item.title), b: $data.list2Index == index ? "#BB8520" : "#070707", c: $data.list2Index == index ? "#FFFAF1" : "#FFFFFF", d: common_vendor.t(item.value), e: $data.list2Index == index ? "#BB8520" : "#070707", f: common_vendor.o(($event) => $options.handleTypeClick(index), index), g: index, h: `1rpx solid ${$data.list2Index == index ? "#F2C369" : "#D2D2D2"}` }; }), m: common_vendor.f(["股票名称", "涨跌幅", "市值", "成交额", "行业"], (item, index, i0) => { return { a: common_vendor.t(item), b: index }; }), n: common_vendor.f($data.filteredData, (obj, j, i0) => { return { a: common_vendor.f($options.getTableItem(obj), (item, index, i1) => { return common_vendor.e({ a: common_vendor.t(item[0]), b: index == 0 }, index == 0 ? { c: common_vendor.t(item[1]) } : {}, { d: index, e: index == 0 ? "#222222" : index == 1 ? item[2] === "positive" ? "#EC3440" : "#01AB5D" : "#666666" }); }), b: common_vendor.o(($event) => $options.itemDetails(obj)), c: j % 2 == 0 ? "#fff" : "#FAFAFC" }; }), o: common_assets._imports_2$3, p: common_vendor.o((...args) => $options.moreAction && $options.moreAction(...args)), q: common_assets._imports_3$7, r: common_assets._imports_4$1, s: common_vendor.o(($event) => $options.allAction(1)), t: common_vendor.t($data.currentDate), v: common_assets._imports_4$1, w: common_vendor.o(($event) => $options.allAction(2)), x: common_vendor.sr("chartRef", "c7f5c964-1"), y: common_vendor.t($data.y2MaxText), z: common_vendor.t($data.y2MinText), A: common_assets._imports_3$7, B: common_vendor.f($data.marketAlertsList, (item, index, i0) => { var _a, _b, _c, _d; return common_vendor.e({ a: common_vendor.t(item.time), b: common_vendor.t($options.truncateText(item.concept_name, 5)), c: ((_a = $data.alertTypeConfig[item.alert_type]) == null ? void 0 : _a.filter) || "", d: common_vendor.t(((_b = $data.alertTypeConfig[item.alert_type]) == null ? void 0 : _b.text) || "异动"), e: ((_c = $data.alertTypeConfig[item.alert_type]) == null ? void 0 : _c.color) || "#FF7A45", f: "1rpx solid " + (((_d = $data.alertTypeConfig[item.alert_type]) == null ? void 0 : _d.color) || "#FF7A45"), g: common_vendor.t(item.formattedAvg), h: Number(item.alpha) > 0 ? "#EC3440" : "#01AB5D", i: common_vendor.t(item.upCount), j: item.upCount > 0 ? "#EC3440" : "#888888", k: common_vendor.t(item.downCount), l: item.downCount > 0 ? "#01AB5D" : "#888888", m: common_vendor.t(Math.round(item.final_score)), n: item && Number(item.limit_up_ratio) > 0 && !isNaN(Number(item.limit_up_ratio)) }, item && Number(item.limit_up_ratio) > 0 && !isNaN(Number(item.limit_up_ratio)) ? { o: common_vendor.t($options.formatLimitUpRatio(item.limit_up_ratio, 0)) } : {}, { p: index, q: common_vendor.o(($event) => $options.bkydAction(item), index) }); }), C: common_assets._imports_5$3, D: common_vendor.s("top:" + $data.contentTop + "px;"), E: common_vendor.o(($event) => $options.closeAction(1)), F: common_vendor.o(($event) => $options.confirmAction(1)), G: common_vendor.f($data.typeList, (item, index, i0) => { return { a: item.backIcon, b: common_vendor.t(item.title), c: index }; }), H: common_vendor.sr("typePopup", "c7f5c964-2"), I: common_vendor.p({ type: "bottom", safeArea: false }), J: common_vendor.o(($event) => $options.closeAction(2)), K: common_vendor.o(($event) => $options.confirmAction(2)), L: common_vendor.o($options.handleDateChange), M: common_vendor.sr("datePopup", "c7f5c964-3"), N: common_vendor.p({ type: "bottom", safeArea: false }), O: common_assets._imports_6$1, P: common_vendor.o(($event) => $options.closeAction(3)), Q: common_vendor.t($data.formattedAvg), R: Number($data.formattedAvg) > 0 ? "#EC3440" : "#01AB5D", S: common_vendor.t($data.upCount), T: $data.upCount > 0 ? "#EC3440" : "#888888", U: common_vendor.t($data.downCount), V: $data.downCount > 0 ? "#01AB5D" : "#888888", W: common_vendor.t($options.formatLimitUpRatio($data.limit_up_ratio, 0)), X: common_vendor.f($data.conceptStocksList, (item, index, i0) => { return { a: common_vendor.t(item.name), b: common_vendor.t(item.code), c: common_vendor.t($options.formatChangePct(item.change_pct)), d: $options.getChangeColor(item.change_pct), e: index, f: index % 2 == 0 ? "#fff" : "#FAFAFC" }; }), Y: common_vendor.sr("detailPopup", "c7f5c964-5"), Z: common_vendor.p({ type: "bottom", safeArea: false }) }); } const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); wx.createPage(MiniProgramPage); //# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/geGuCenter/geGuCenter.js.map