| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- "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();
- common_vendor.index.setNavigationBarTitle({ title: "量化交易大师" });
- });
- 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);
|