"use strict"; const common_vendor = require("../../common/vendor.js"); const utils_api = require("../../utils/api.js"); const utils_auth = require("../../utils/auth.js"); const _sfc_main = { __name: "rank", setup(__props) { const isLoggedIn = common_vendor.ref(false); const portfolio = common_vendor.ref({ balance: 1e5, profit: 0, profitRate: 0 }); const myRank = common_vendor.ref({ rank: 5, rate: 0 }); const mockLeaderboard = [ { rank: 1, name: "量化王者 ***", rate: 35.2 }, { rank: 2, name: "短线猎手 ***", rate: 28.9 }, { rank: 3, name: "趋势追踪者 ***", rate: 22.1 }, { rank: 4, name: "稳健投资 ***", rate: 18.5 }, { rank: 5, name: "价值发现 ***", rate: 15.3 } ]; const leaderboard = common_vendor.ref(mockLeaderboard); const formatAmount = (amount) => { return amount.toLocaleString("zh-CN"); }; const formatProfit = (profit) => { return Math.abs(profit).toLocaleString("zh-CN"); }; const formatRate = (rate) => { return rate.toFixed(2); }; const getRankClass = (rank) => { if (rank === 1) return "rank-first"; if (rank === 2) return "rank-second"; if (rank === 3) return "rank-third"; return ""; }; const checkLoginAndLoadData = () => { isLoggedIn.value = utils_auth.isLoggedIn(); console.log("[模拟排名] 登录状态:", isLoggedIn.value); if (isLoggedIn.value) { loadRealData(); } else { leaderboard.value = mockLeaderboard; } }; const goToLogin = () => { common_vendor.index.navigateTo({ url: "/pages/login/login" }); }; const loadRealData = async () => { try { const portfolioRes = await utils_api.getUserPortfolio(); if (portfolioRes.code === 0 && portfolioRes.data) { portfolio.value = portfolioRes.data; } } catch (err) { console.error("获取资产数据失败:", err); } try { const leaderboardRes = await utils_api.getLeaderboard(); if (leaderboardRes.code === 0 && leaderboardRes.data) { leaderboard.value = leaderboardRes.data.list || []; myRank.value = leaderboardRes.data.myRank || { rank: 5, rate: 0 }; } } catch (err) { console.error("获取排行榜数据失败:", err); } }; common_vendor.onMounted(() => { checkLoginAndLoadData(); }); common_vendor.onShow(() => { checkLoginAndLoadData(); }); return (_ctx, _cache) => { return common_vendor.e({ a: common_vendor.t(formatAmount(portfolio.value.balance)), b: common_vendor.t(formatProfit(portfolio.value.profit)), c: common_vendor.t(formatRate(portfolio.value.profitRate)), d: common_vendor.n(portfolio.value.profitRate >= 0 ? "profit-positive" : "profit-negative"), e: common_vendor.t(myRank.value.rank), f: common_vendor.t(myRank.value.rate >= 0 ? "+" : ""), g: common_vendor.t(myRank.value.rate), h: common_vendor.n(myRank.value.rate >= 0 ? "rate-positive" : "rate-negative"), i: common_vendor.f(leaderboard.value, (item, index, i0) => { return { a: common_vendor.t(item.rank), b: common_vendor.n(getRankClass(item.rank)), c: common_vendor.t(item.name), d: common_vendor.t(item.rate >= 0 ? "+" : ""), e: common_vendor.t(item.rate), f: common_vendor.n(item.rate >= 0 ? "rate-positive" : "rate-negative"), g: index }; }), j: !isLoggedIn.value ? 1 : "", k: !isLoggedIn.value }, !isLoggedIn.value ? { l: 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);