feat(player+api): 桌面端钱包/注单栏重构,首页快速下注与移动端体验优化

桌面端:
- 新增 DesktopWalletPageHeader 统一钱包子导航,移除重复大标题
- 重构我的余额页布局(居中窄卡片 + 余额/统计/账户设置)
- 新增 DesktopBetSlipRail 可折叠注单侧栏,优化 BetSlipPanel 交互
- 首页 upcoming 赛事卡片支持胜平负/让球/大小球快速下注
- 优化 DesktopShell 布局、3D 轮播、各账户/消息/充值页面样式

移动端:
- 重构 MobileWalletView 钱包页 UI
- 修复 MarketSelectionsPanel 下注区黑色背景问题
- 新增 PageBackButton 与 useSmartBack 智能返回逻辑
- 优化公告/消息/个人中心等详情页导航

API:
- listUpcomingPublished 支持 includeMarkets,返回首页卡片所需核心玩法
This commit is contained in:
2026-06-30 16:11:27 +08:00
parent ef5b9416cc
commit 7f563326d8
73 changed files with 2866 additions and 1552 deletions

View File

@@ -1,4 +1,4 @@
<script setup lang="ts">
<script setup lang="ts">
import { ref, computed, onMounted, watch, nextTick } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import { useI18n } from 'vue-i18n';
@@ -456,7 +456,7 @@ function toggleSelection(sel: Selection, market: Market, event?: MouseEvent) {
padding: 10px 16px;
font-size: 12px;
color: var(--text-muted);
background: #0c0c0c;
background: var(--bg-card);
border-bottom: 1px solid var(--border);
flex-shrink: 0;
}
@@ -503,7 +503,7 @@ function toggleSelection(sel: Selection, market: Market, event?: MouseEvent) {
}
.match-score-band {
background: linear-gradient(180deg, #181818 0%, #111 100%);
background: linear-gradient(180deg, var(--bg-body) 0%, var(--bg-card) 100%);
border: 1px solid var(--border);
border-radius: 4px;
padding: 10px 16px;
@@ -527,7 +527,7 @@ function toggleSelection(sel: Selection, market: Market, event?: MouseEvent) {
.team-side .name {
font-size: 13px;
font-weight: 800;
color: #fff;
color: var(--text);
}
.score-arena {
@@ -568,7 +568,7 @@ function toggleSelection(sel: Selection, market: Market, event?: MouseEvent) {
}
.result-stats-card {
background: rgba(20, 20, 20, 0.8);
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: 6px;
padding: 16px;
@@ -589,7 +589,7 @@ function toggleSelection(sel: Selection, market: Market, event?: MouseEvent) {
}
.stat-pill {
background: #141414;
background: var(--bg-body);
border: 1px solid var(--border);
border-radius: 4px;
padding: 6px 12px;
@@ -599,7 +599,7 @@ function toggleSelection(sel: Selection, market: Market, event?: MouseEvent) {
}
.stat-pill .lbl { color: var(--text-muted); }
.stat-pill .val { color: #fff; font-weight: 700; }
.stat-pill .val { color: var(--text); font-weight: 700; }
.market-filter-bar {
display: flex;
@@ -608,7 +608,7 @@ function toggleSelection(sel: Selection, market: Market, event?: MouseEvent) {
padding: 6px 8px;
border: 1px solid var(--border);
border-radius: 6px;
background: rgba(18, 18, 18, 0.85);
background: var(--bg-card);
min-width: 0;
}
@@ -642,7 +642,7 @@ function toggleSelection(sel: Selection, market: Market, event?: MouseEvent) {
padding: 3px 7px;
border-radius: 4px;
border: 1px solid transparent;
background: rgba(255, 255, 255, 0.03);
background: rgba(0, 0, 0, 0.04);
color: var(--text-muted);
font-size: 10px;
font-weight: 700;
@@ -652,8 +652,8 @@ function toggleSelection(sel: Selection, market: Market, event?: MouseEvent) {
}
.market-filter-chip:hover {
color: #fff;
background: rgba(255, 255, 255, 0.06);
color: var(--primary);
background: var(--bg-hover);
}
.market-filter-chip.active {
@@ -700,7 +700,7 @@ function toggleSelection(sel: Selection, market: Market, event?: MouseEvent) {
border: 1px solid var(--border);
border-radius: 4px;
overflow: hidden;
background: rgba(18, 18, 18, 0.98);
background: var(--bg-card);
align-self: start;
}
@@ -714,14 +714,14 @@ function toggleSelection(sel: Selection, market: Market, event?: MouseEvent) {
justify-content: space-between;
gap: 8px;
padding: 6px 10px;
background: #141414;
background: var(--bg-body);
border-bottom: 1px solid var(--border);
}
.market-title {
font-size: 11px;
font-weight: 800;
color: #eee;
color: var(--text);
line-height: 1.25;
}
@@ -741,7 +741,7 @@ function toggleSelection(sel: Selection, market: Market, event?: MouseEvent) {
border: 1px solid var(--border);
border-radius: 4px;
overflow: hidden;
background: rgba(18, 18, 18, 0.98);
background: var(--bg-card);
align-self: start;
}
@@ -755,11 +755,11 @@ function toggleSelection(sel: Selection, market: Market, event?: MouseEvent) {
justify-content: space-between;
gap: 8px;
padding: 6px 10px;
background: #141414;
background: var(--bg-body);
border-bottom: 1px solid var(--border);
font-size: 11px;
font-weight: 800;
color: #eee;
color: var(--text);
}
.locked-lbl {