diff --git a/apps/player/src/components/BetSlipDrawer.vue b/apps/player/src/components/BetSlipDrawer.vue index 28c8326..1395a0e 100644 --- a/apps/player/src/components/BetSlipDrawer.vue +++ b/apps/player/src/components/BetSlipDrawer.vue @@ -29,7 +29,6 @@ async function placeBet() { success.value = ''; try { - const requestId = genId(); if (slip.mode === 'parlay' && slip.items.length >= 2) { if (slip.hasSameMatch) { error.value = t('bet.parlay_same_match'); @@ -41,7 +40,7 @@ async function placeBet() { oddsVersion: i.oddsVersion, })), stake: slip.stake, - requestId, + requestId: genId(), }); } else if (slip.items.length === 1) { const item = slip.items[0]; @@ -49,17 +48,21 @@ async function placeBet() { selectionId: item.selectionId, oddsVersion: item.oddsVersion, stake: slip.stake, - requestId, + requestId: genId(), }); } else { - error.value = t('bet.parlay_need_more'); return; } - success.value = '下注成功!'; + success.value = t('bet.place_success'); slip.clear(); - setTimeout(() => { show.value = false; success.value = ''; }, 1500); + setTimeout(() => { + show.value = false; + success.value = ''; + }, 1500); } catch (e: unknown) { - error.value = (e as { response?: { data?: { error?: string } } })?.response?.data?.error || '下注失败'; + error.value = + (e as { response?: { data?: { error?: string } } })?.response?.data?.error || + t('bet.place_failed'); } finally { loading.value = false; } @@ -71,31 +74,46 @@ async function placeBet() {

{{ t('bet.bet_slip') }} ({{ slip.count }})

- +
-
点击赔率添加投注
+
{{ t('bet.slip_empty_hint') }}
{{ item.matchName }}
-
{{ item.selectionName }} @ {{ item.odds }}
- +
+ {{ item.selectionName }} @ {{ item.odds }} +
+
-
同场比赛不能串关,可作为单关分别投注
+

+ {{ t('bet.parlay') }} · {{ t('bet.slip_parlay_odds', { odds: slip.totalOdds.toFixed(2) }) }} +

-
{{ t('bet.parlay') }} · 赔率 {{ slip.totalOdds.toFixed(2) }}
-
预计返还: {{ slip.potentialReturn.toFixed(2) }}
+
+ {{ t('bet.slip_est_return') }}: + {{ slip.potentialReturn.toFixed(2) }} +

{{ error }}

{{ success }}

-
@@ -103,48 +121,130 @@ async function placeBet() { diff --git a/apps/player/src/components/match-detail/CorrectScoreConfirmModal.vue b/apps/player/src/components/match-detail/CorrectScoreConfirmModal.vue new file mode 100644 index 0000000..acc4f5d --- /dev/null +++ b/apps/player/src/components/match-detail/CorrectScoreConfirmModal.vue @@ -0,0 +1,253 @@ + + + + + diff --git a/apps/player/src/components/match-detail/CorrectScorePanel.vue b/apps/player/src/components/match-detail/CorrectScorePanel.vue index 9b2cf62..d71b2c8 100644 --- a/apps/player/src/components/match-detail/CorrectScorePanel.vue +++ b/apps/player/src/components/match-detail/CorrectScorePanel.vue @@ -5,8 +5,6 @@ import { groupCorrectScoreSelections, type CsSelection } from '../../utils/corre const props = defineProps<{ marketType: string; - homeTeamName: string; - awayTeamName: string; selections: Array<{ id: string; selectionCode: string; @@ -38,11 +36,6 @@ function formatOdds(odds: string) {