From 785fa4416d657655420792c4ac94096e2ec8d96b Mon Sep 17 00:00:00 2001 From: Mars <3361409208a@gmail.com> Date: Wed, 10 Jun 2026 17:33:06 +0800 Subject: [PATCH] =?UTF-8?q?perf(player):=20=E4=BC=98=E5=8C=96=20Tab=20?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E6=80=A7=E8=83=BD=E5=B9=B6=E6=94=B9=E8=BF=9B?= =?UTF-8?q?=E6=8A=95=E6=B3=A8=E5=8E=86=E5=8F=B2=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 主 Tab 启用 keep-alive,恢复各页滚动位置,避免切页重复加载与重复请求 - 首页数据缓存、余额/头像共用 profile 缓存,冠军盘与串关面板按需加载 - 球赛与串关列表新增「仅显示待开赛」筛选 - 重构历史注单卡片,展示注单类型、赔率与日期 Co-authored-by: Cursor --- apps/player/src/components/BetHistoryCard.vue | 96 +++++++++++++++---- .../player/src/components/CashBalanceChip.vue | 15 +-- apps/player/src/components/UserAvatarMenu.vue | 6 +- .../src/components/parlay/ParlayPanel.vue | 34 +++++++ apps/player/src/composables/usePlayerHome.ts | 3 +- apps/player/src/layouts/MainLayout.vue | 32 +++++-- apps/player/src/main.ts | 6 ++ apps/player/src/router/index.ts | 10 +- apps/player/src/views/FootballView.vue | 61 +++++++++++- apps/player/src/views/HomeView.vue | 2 +- 10 files changed, 212 insertions(+), 53 deletions(-) diff --git a/apps/player/src/components/BetHistoryCard.vue b/apps/player/src/components/BetHistoryCard.vue index 9d079b4..7ebaf16 100644 --- a/apps/player/src/components/BetHistoryCard.vue +++ b/apps/player/src/components/BetHistoryCard.vue @@ -88,6 +88,18 @@ const subtitle = computed(() => { const stakeAmount = computed(() => formatMoney(props.bet.stake, locale.value)); +const oddsText = computed(() => { + const o = props.bet.totalOdds; + if (o == null || o === '' || o === 0) return ''; + const n = parseFloat(String(o)); + return Number.isFinite(n) ? n.toFixed(2) : String(o); +}); + +const betTypeLabel = computed(() => { + if (props.bet.isParlay) return t('bet.parlay'); + return props.bet.betType || ''; +}); + const returnAmount = computed(() => { if (statusKey.value === 'won') return formatMoney(props.bet.actualReturn, locale.value); if (statusKey.value === 'pending') return formatMoney(props.bet.potentialReturn, locale.value); @@ -107,17 +119,22 @@ function goDetail() {