"use strict"; const common_vendor = require("../../common/vendor.js"); const utils_auth = require("../../utils/auth.js"); const utils_api = require("../../utils/api.js"); const _sfc_main = { __name: "rank", setup(__props) { const isLoggedIn = common_vendor.ref(false); const myStocks = common_vendor.ref([]); const loadMyStocks = () => { if (!isLoggedIn.value) { myStocks.value = []; return; } try { const stocks = common_vendor.index.getStorageSync("my_stocks") || []; myStocks.value = stocks; console.log("[我的股票] 加载股票列表:", stocks.length, "只"); } catch (e) { console.error("加载股票列表失败:", e); myStocks.value = []; } }; const goToLogin = () => { common_vendor.index.navigateTo({ url: "/pages/login/login" }); }; const removeStock = (index) => { common_vendor.index.showModal({ title: "确认删除", content: `确定要删除 ${myStocks.value[index].name} 吗?`, confirmText: "删除", cancelText: "取消", success: (res) => { if (res.confirm) { myStocks.value.splice(index, 1); common_vendor.index.setStorageSync("my_stocks", myStocks.value); common_vendor.index.showToast({ title: "删除成功", icon: "success" }); } } }); }; const refreshQuote = async (stock, index) => { try { common_vendor.index.showLoading({ title: "刷新中..." }); const quoteRes = await utils_api.getStockQuotes(stock.code); console.log("[我的股票] 行情数据:", quoteRes); if (quoteRes.code === 200 && quoteRes.data && quoteRes.data.length > 0) { const quoteData = quoteRes.data[0]; myStocks.value[index].priceChange = quoteData.priceChange; myStocks.value[index].changePercent = quoteData.changePercent; common_vendor.index.setStorageSync("my_stocks", myStocks.value); common_vendor.index.hideLoading(); common_vendor.index.showToast({ title: "刷新成功", icon: "success" }); } else { common_vendor.index.hideLoading(); common_vendor.index.showToast({ title: "获取行情失败", icon: "none" }); } } catch (e) { common_vendor.index.hideLoading(); console.error("刷新行情失败:", e); common_vendor.index.showToast({ title: "刷新失败", icon: "none" }); } }; const getChangeClass = (value) => { if (!value || value === "--") return ""; if (value.startsWith("+") || value.match(/^[\d.]/) && !value.startsWith("-")) { return "change-up"; } if (value.startsWith("-")) { return "change-down"; } return ""; }; const formatDate = (timestamp) => { const date = new Date(timestamp); const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, "0"); const day = String(date.getDate()).padStart(2, "0"); const hours = String(date.getHours()).padStart(2, "0"); const minutes = String(date.getMinutes()).padStart(2, "0"); return `${year}-${month}-${day} ${hours}:${minutes}`; }; common_vendor.onLoad(() => { isLoggedIn.value = utils_auth.isLoggedIn(); console.log("[我的股票] 登录状态:", isLoggedIn.value); console.log("[我的股票] Token:", common_vendor.index.getStorageSync("user_token")); loadMyStocks(); }); common_vendor.onShow(() => { isLoggedIn.value = utils_auth.isLoggedIn(); console.log("[我的股票] 登录状态:", isLoggedIn.value); console.log("[我的股票] Token:", common_vendor.index.getStorageSync("user_token")); loadMyStocks(); common_vendor.index.setNavigationBarTitle({ title: "量化交易大师" }); }); return (_ctx, _cache) => { return common_vendor.e({ a: myStocks.value.length > 0 }, myStocks.value.length > 0 ? { b: common_vendor.f(myStocks.value, (stock, index, i0) => { return { a: common_vendor.t(stock.name), b: common_vendor.t(stock.code), c: common_vendor.o(($event) => removeStock(index), index), d: common_vendor.t(stock.priceChange || "--"), e: common_vendor.n(getChangeClass(stock.priceChange)), f: common_vendor.t(stock.changePercent || "--"), g: common_vendor.n(getChangeClass(stock.changePercent)), h: common_vendor.t(formatDate(stock.addTime)), i: common_vendor.o(($event) => refreshQuote(stock, index), index), j: index }; }) } : {}, { c: !isLoggedIn.value ? 1 : "", d: !isLoggedIn.value }, !isLoggedIn.value ? { e: common_vendor.o(goToLogin) } : {}); }; } }; const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "D:/program/gupiao-wx/src/pages/rank/rank.vue"]]); wx.createPage(MiniProgramPage);