From e906831103a9cbc4cbe2c22365a842f389bd173d Mon Sep 17 00:00:00 2001 From: Mars <3361409208a@gmail.com> Date: Tue, 30 Jun 2026 17:55:15 +0800 Subject: [PATCH] =?UTF-8?q?fix(player-desktop):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=A1=8C=E9=9D=A2=E7=AB=AF=E6=B3=A8=E5=8D=95=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5=E6=97=B6=E9=97=B4=20Invalid=20Date=20=E5=8F=8A?= =?UTF-8?q?=E6=8A=95=E6=B3=A8=E9=80=89=E9=A1=B9=E4=B8=8D=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=9A=84=20Schema=20=E7=BB=91=E5=AE=9A=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/desktop/DesktopShell.vue | 2 +- .../views/desktop/DesktopBetDetailView.vue | 58 ++++++++++++++----- 2 files changed, 43 insertions(+), 17 deletions(-) diff --git a/apps/player/src/components/desktop/DesktopShell.vue b/apps/player/src/components/desktop/DesktopShell.vue index 3e7d9e3..c805f3f 100644 --- a/apps/player/src/components/desktop/DesktopShell.vue +++ b/apps/player/src/components/desktop/DesktopShell.vue @@ -93,7 +93,7 @@ watch(
diff --git a/apps/player/src/views/desktop/DesktopBetDetailView.vue b/apps/player/src/views/desktop/DesktopBetDetailView.vue index b68236f..752348a 100644 --- a/apps/player/src/views/desktop/DesktopBetDetailView.vue +++ b/apps/player/src/views/desktop/DesktopBetDetailView.vue @@ -5,7 +5,7 @@ import { useRoute, useRouter, RouterLink } from 'vue-router'; import api from '../../api'; import GoldSpinner from '../../components/GoldSpinner.vue'; -const { t } = useI18n(); +const { t, locale } = useI18n(); const route = useRoute(); const router = useRouter(); @@ -20,17 +20,16 @@ function goBack() { type BetDetail = { betNo: string; stake: string; - potentialPayout?: string; + potentialReturn?: string; status: string; - createdAt: string; - selections: Array<{ - matchName?: string; + placedAt: string; + legs: Array<{ + matchTitle?: string; + marketLabel?: string; selectionName?: string; odds?: number; - market?: string; - homeScore?: number; - awayScore?: number; - matchStatus?: string; + resultStatus?: string; + score?: { ht: string | null; ft: string | null } | null; [key: string]: any; }>; [key: string]: any; @@ -71,6 +70,32 @@ function statusLabel(status: string) { }; return map[status?.toUpperCase()] ?? status; } + +const SEL_TRANS: Record> = { + '主胜': { 'en-US': 'Home Win', 'ms-MY': 'Rumah Menang' }, + '客胜': { 'en-US': 'Away Win', 'ms-MY': 'Tandang Menang' }, + '和局': { 'en-US': 'Draw', 'ms-MY': 'Seri' }, + '主': { 'en-US': 'Home', 'ms-MY': 'Rumah' }, + '客': { 'en-US': 'Away', 'ms-MY': 'Tandang' }, + '大': { 'en-US': 'Over', 'ms-MY': 'Atas' }, + '小': { 'en-US': 'Under', 'ms-MY': 'Bawah' }, + '单': { 'en-US': 'Odd', 'ms-MY': 'Ganjil' }, + '双': { 'en-US': 'Even', 'ms-MY': 'Genap' }, + '冠军': { 'en-US': 'Winner', 'ms-MY': 'Juara' }, +}; + +function translateSel(name: string): string { + if (locale.value === 'zh-CN') return name; + const exact = SEL_TRANS[name]; + if (exact) return exact[locale.value] ?? exact['en-US'] ?? name; + const sp = name.indexOf(' '); + if (sp > 0) { + const head = name.slice(0, sp); + const m = SEL_TRANS[head]; + if (m) return (m[locale.value] ?? m['en-US'] ?? head) + name.slice(sp); + } + return name; +}