From 7ea7deeb525160c59723648d11006e9b60040e54 Mon Sep 17 00:00:00 2001 From: mars <3361409208@qq.com> Date: Fri, 10 Jul 2026 15:01:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(player):=20PC=E7=AB=AF=E6=8A=95=E6=B3=A8/?= =?UTF-8?q?=E8=B5=84=E9=87=91=E8=AF=A6=E6=83=85=E5=BC=B9=E7=AA=97=E5=8C=96?= =?UTF-8?q?=20+=20=E8=AF=A6=E6=83=85=E9=A1=B5=E5=B8=83=E5=B1=80=E4=BC=98?= =?UTF-8?q?=E5=8C=96=20-=20=E6=96=B0=E5=A2=9E=20DesktopBetDetailModal=20/?= =?UTF-8?q?=20DesktopTxDetailModal=20=E5=BC=B9=E7=AA=97=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=EF=BC=8C=E5=88=97=E8=A1=A8=E7=82=B9=E5=87=BB=E5=BC=B9=E7=AA=97?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E8=AF=A6=E6=83=85=20-=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=20PC=20=E7=AB=AF=E6=B3=A8=E5=8D=95=E8=AF=A6=E6=83=85=E3=80=81?= =?UTF-8?q?=E9=92=B1=E5=8C=85=E4=BA=A4=E6=98=93=E8=AF=A6=E6=83=85=E3=80=81?= =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E8=B5=84=E6=96=99=E9=A1=B5=E7=9A=84=E5=B8=83?= =?UTF-8?q?=E5=B1=80=EF=BC=88=E5=8F=8C=E5=88=97=E7=BD=91=E6=A0=BC=E3=80=81?= =?UTF-8?q?=E5=8A=A0=E5=AE=BD=20max-width=EF=BC=89=20-=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=9B=B8=E5=85=B3=20i18n=20=E4=B8=89=E8=AF=AD?= =?UTF-8?q?=E7=BF=BB=E8=AF=91=20key=20-=20DesktopMyBetsView=20/=20DesktopW?= =?UTF-8?q?alletView=20=E5=88=97=E8=A1=A8=E9=A1=B9=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E6=89=93=E5=BC=80=E5=BC=B9=E7=AA=97=E8=80=8C?= =?UTF-8?q?=E9=9D=9E=E8=B7=B3=E8=BD=AC=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desktop/DesktopBetDetailModal.vue | 390 ++++++++++++ .../src/components/desktop/DesktopShell.vue | 2 +- .../desktop/DesktopTxDetailModal.vue | 289 +++++++++ apps/player/src/i18n/en-US.ts | 16 + apps/player/src/i18n/ms-MY.ts | 16 + apps/player/src/i18n/zh-CN.ts | 16 + apps/player/src/styles/desktop/layout.css | 7 + .../views/desktop/DesktopBetDetailView.vue | 213 +++++-- .../src/views/desktop/DesktopMyBetsView.vue | 15 +- .../views/desktop/DesktopProfileEditView.vue | 348 +++++++---- .../src/views/desktop/DesktopProfileView.vue | 590 ++++++++++++------ .../DesktopWalletTransactionDetailView.vue | 111 ++-- .../src/views/desktop/DesktopWalletView.vue | 16 +- 13 files changed, 1621 insertions(+), 408 deletions(-) create mode 100644 apps/player/src/components/desktop/DesktopBetDetailModal.vue create mode 100644 apps/player/src/components/desktop/DesktopTxDetailModal.vue diff --git a/apps/player/src/components/desktop/DesktopBetDetailModal.vue b/apps/player/src/components/desktop/DesktopBetDetailModal.vue new file mode 100644 index 0000000..5bbd46f --- /dev/null +++ b/apps/player/src/components/desktop/DesktopBetDetailModal.vue @@ -0,0 +1,390 @@ + + + + + diff --git a/apps/player/src/components/desktop/DesktopShell.vue b/apps/player/src/components/desktop/DesktopShell.vue index d9c592f..c142700 100644 --- a/apps/player/src/components/desktop/DesktopShell.vue +++ b/apps/player/src/components/desktop/DesktopShell.vue @@ -39,7 +39,7 @@ const layoutMode = computed<'betting' | 'account' | 'hub' | 'marketing'>(() => { p === '/bets' || p.startsWith('/bets/') || p.startsWith('/wallet') || - p === '/profile/cashbacks' + p.startsWith('/profile') ) { return 'account'; } diff --git a/apps/player/src/components/desktop/DesktopTxDetailModal.vue b/apps/player/src/components/desktop/DesktopTxDetailModal.vue new file mode 100644 index 0000000..c0c4914 --- /dev/null +++ b/apps/player/src/components/desktop/DesktopTxDetailModal.vue @@ -0,0 +1,289 @@ + + + + + diff --git a/apps/player/src/i18n/en-US.ts b/apps/player/src/i18n/en-US.ts index 24868d0..450ec70 100644 --- a/apps/player/src/i18n/en-US.ts +++ b/apps/player/src/i18n/en-US.ts @@ -313,6 +313,9 @@ export default { recharge_btn: 'Deposit', recharge_history: 'Deposit history', cashbacks_tab: 'Cashback', + detail_info: 'Details', + frozen_before: 'Frozen before', + frozen_after: 'Frozen after', }, recharge: { title: 'Recharge', @@ -601,6 +604,9 @@ export default { placed_at: 'Placed at', detail_title: 'Bet details', selections: 'Selections', + summary: 'Bet summary', + legs_count: 'Legs', + back_to_list: 'Back to bet list', }, profile: { edit: 'Edit Profile', @@ -656,5 +662,15 @@ export default { rules_p3: 'Results use admin-entered half-time and full-time scores; payouts apply after settlement preview is confirmed.', rules_p4: 'If this text conflicts with site notices, the latest notice and market rules prevail.', rules_p5: 'How to bet: open any match, tap the ? icon on the top right.', + qnav_bets_desc: 'View bet history', + qnav_wallet_desc: 'Wallet transactions', + qnav_cashback_desc: 'Cashback records', + qnav_recharge_desc: 'Deposit funds', + qnav_announcements_desc: 'View announcements', + qnav_edit_desc: 'Edit your profile', + security_tips: 'Security tips', + tip_1: 'Change your password regularly to keep your account secure', + tip_2: 'Never share your password with anyone', + tip_3: 'Contact customer service if you need help', }, } as const; diff --git a/apps/player/src/i18n/ms-MY.ts b/apps/player/src/i18n/ms-MY.ts index cfe8a6d..1322d8c 100644 --- a/apps/player/src/i18n/ms-MY.ts +++ b/apps/player/src/i18n/ms-MY.ts @@ -325,6 +325,9 @@ export default { recharge_btn: 'Topup', recharge_history: 'Sejarah topup', cashbacks_tab: 'Rebat', + detail_info: 'Butiran', + frozen_before: 'Beku sebelum', + frozen_after: 'Beku selepas', }, recharge: { title: 'Topup', @@ -613,6 +616,9 @@ export default { placed_at: 'Masa pertaruhan', detail_title: 'Butiran pertaruhan', selections: 'Pilihan', + summary: 'Ringkasan pertaruhan', + legs_count: 'Bilangan pilihan', + back_to_list: 'Kembali ke senarai pertaruhan', }, profile: { edit: 'Edit Profil', @@ -668,5 +674,15 @@ export default { rules_p3: 'Keputusan berdasarkan skor separuh masa/penuh yang dimasukkan admin; bayaran selepas pratonton disahkan.', rules_p4: 'Jika bercanggah dengan notis laman, ikut notis terkini dan peraturan pasaran.', rules_p5: 'Langkah operasi: buka butiran perlawanan, ketik ikon ? di atas kanan.', + qnav_bets_desc: 'Lihat sejarah pertaruhan', + qnav_wallet_desc: 'Transaksi dompet', + qnav_cashback_desc: 'Rekod rebat', + qnav_recharge_desc: 'Tambah dana', + qnav_announcements_desc: 'Lihat pengumuman', + qnav_edit_desc: 'Edit profil anda', + security_tips: 'Tip keselamatan', + tip_1: 'Tukar kata laluan secara berkala untuk keselamatan akaun', + tip_2: 'Jangan berkongsi kata laluan dengan sesiapa', + tip_3: 'Hubungi perkhidmatan pelanggan jika memerlukan bantuan', }, } as const; diff --git a/apps/player/src/i18n/zh-CN.ts b/apps/player/src/i18n/zh-CN.ts index a387452..b5c8503 100644 --- a/apps/player/src/i18n/zh-CN.ts +++ b/apps/player/src/i18n/zh-CN.ts @@ -313,6 +313,9 @@ export default { recharge_btn: '充值', recharge_history: '充值记录', cashbacks_tab: '返水明细', + detail_info: '详细信息', + frozen_before: '冻结前', + frozen_after: '冻结后', }, recharge: { title: '充值', @@ -601,6 +604,9 @@ export default { placed_at: '下注时间', detail_title: '注单详情', selections: '投注选项', + summary: '注单概要', + legs_count: '过关场数', + back_to_list: '返回注单列表', }, profile: { edit: '修改资料', @@ -656,5 +662,15 @@ export default { rules_p3: '赛果由平台根据官方录入的半场/全场比分结算,结算预览经确认后入账。', rules_p4: '若本说明与后台公告冲突,以最新公告及实际盘口规则为准。', rules_p5: '操作步骤:进入任意赛事详情,点右上角「?」查看玩法说明。', + qnav_bets_desc: '查看历史投注记录', + qnav_wallet_desc: '资金流水明细', + qnav_cashback_desc: '返水记录详情', + qnav_recharge_desc: '账户充值', + qnav_announcements_desc: '查看站内公告', + qnav_edit_desc: '修改个人资料', + security_tips: '安全提示', + tip_1: '定期更换密码以保护账户安全', + tip_2: '不要将密码透露给他人', + tip_3: '如需帮助请联系在线客服', }, } as const; diff --git a/apps/player/src/styles/desktop/layout.css b/apps/player/src/styles/desktop/layout.css index 98fb4e5..6229031 100644 --- a/apps/player/src/styles/desktop/layout.css +++ b/apps/player/src/styles/desktop/layout.css @@ -120,6 +120,13 @@ min-height: 0; } +.desktop-account-center > .desktop-records-page.profile-page, +.desktop-account-center > .desktop-records-page.edit-page { + overflow-y: auto; + height: auto; + max-height: 100%; +} + .desktop-account-center > .desktop-account-page { flex: 1; min-height: 0; diff --git a/apps/player/src/views/desktop/DesktopBetDetailView.vue b/apps/player/src/views/desktop/DesktopBetDetailView.vue index 752348a..4edd000 100644 --- a/apps/player/src/views/desktop/DesktopBetDetailView.vue +++ b/apps/player/src/views/desktop/DesktopBetDetailView.vue @@ -96,6 +96,24 @@ function translateSel(name: string): string { } return name; } + +function legResultIcon(status?: string) { + switch (status?.toUpperCase()) { + case 'WON': return '✓'; + case 'LOST': return '✗'; + case 'PUSH': return '='; + default: return ''; + } +} + +function legResultClass(status?: string) { + switch (status?.toUpperCase()) { + case 'WON': return 'leg-won'; + case 'LOST': return 'leg-lost'; + case 'PUSH': return 'leg-push'; + default: return 'leg-pending'; + } +}