feat(player): 新增桌面端 UI 与响应式双端路由架构
- 将原移动端页面重命名为 Mobile*,新增 22 个 Desktop* 视图与 DesktopShell 布局体系 - 路由入口改为 Wrapper 视图,通过 useViewport(≥1024px)自动切换移动/桌面端 - 新增投注单面板、盘口弹层、联赛侧栏、数据表格等桌面组件及独立样式令牌 - 扩展 betSlip store、串关筛选、冠军盘、Toast/悬浮信箱等交互与三语 i18n - 公告/消息 Hub 拆分移动与桌面实现;API 投注/钱包/充值记录支持 pageSize 分页
This commit is contained in:
@@ -10,8 +10,26 @@ export default {
|
||||
back_to_top: 'Back to top',
|
||||
cancel: 'Cancel',
|
||||
confirm: 'Confirm',
|
||||
clear: 'Clear',
|
||||
no_data: 'No data',
|
||||
back: 'Back',
|
||||
save: 'Save',
|
||||
expand: 'Expand',
|
||||
collapse: 'Collapse',
|
||||
not_found: 'Not found',
|
||||
load_more: 'Load more',
|
||||
approved: 'Approved',
|
||||
rejected: 'Rejected',
|
||||
pending: 'Pending',
|
||||
cancelled: 'Cancelled',
|
||||
error: 'Something went wrong',
|
||||
status: 'Status',
|
||||
},
|
||||
nav: { home: 'Home', bet: 'Bet', bet_history: 'History', wallet: 'Wallet', profile: 'Profile' },
|
||||
pagination: {
|
||||
total: '{total} total',
|
||||
per_page: '{size} / page',
|
||||
},
|
||||
nav: { home: 'Home', sports: 'Sports', football: 'Football', bet: 'Bet', bet_history: 'History', wallet: 'Transactions', account_hub: 'Bets & Wallet', profile: 'Profile', search: 'Search teams, leagues…', announcements: 'Announcements', sports_more_soon: 'More sports coming soon' },
|
||||
home: {
|
||||
hot_matches: 'Hot matches',
|
||||
hot_tab: 'Hot',
|
||||
@@ -32,6 +50,7 @@ export default {
|
||||
empty: 'No announcements yet',
|
||||
not_found: 'This announcement is unavailable',
|
||||
view_all: 'View all announcements',
|
||||
select_hint: 'Select an announcement to read',
|
||||
type_notice: 'Notice',
|
||||
type_ticker: 'Ticker',
|
||||
type_banner: 'Banner',
|
||||
@@ -39,6 +58,9 @@ export default {
|
||||
go_link: 'Go to page',
|
||||
open_link: 'Open link',
|
||||
back: 'Back',
|
||||
center_desc: 'Platform notices, promotions, and maintenance updates',
|
||||
total_count: '{count} total',
|
||||
read_more: 'Read more',
|
||||
},
|
||||
search: {
|
||||
placeholder: 'Search teams or leagues',
|
||||
@@ -60,6 +82,7 @@ export default {
|
||||
not_found: 'Message not found',
|
||||
view_all: 'Back to inbox',
|
||||
back: 'Back',
|
||||
select_hint: 'Select a message to read',
|
||||
mark_all_read: 'Mark all read',
|
||||
load_more: 'Load more',
|
||||
delete: 'Delete',
|
||||
@@ -79,6 +102,8 @@ export default {
|
||||
view_recharge_history: 'View recharge history',
|
||||
unread_badge: '{count} unread',
|
||||
open_inbox: 'Open inbox',
|
||||
tab_inbox: 'Inbox',
|
||||
tab_support: 'Support',
|
||||
},
|
||||
inbox_hub: {
|
||||
title: 'Messages & Support',
|
||||
@@ -116,6 +141,9 @@ export default {
|
||||
filter_lost: 'Lost',
|
||||
filter_pending: 'Pending',
|
||||
filter_push: 'Push',
|
||||
filter_status_group: 'Settlement',
|
||||
filter_push_group: 'Special',
|
||||
filter_push_hint: 'Push: stake refunded on a draw line',
|
||||
stats_total: 'Total',
|
||||
stats_won: 'Won',
|
||||
stats_lost: 'Lost',
|
||||
@@ -256,6 +284,20 @@ export default {
|
||||
cashback_filter_hint: 'This list shows wallet credits; see cashback details for period and rate.',
|
||||
ref_cashback: 'Cashback batch',
|
||||
detail_cashback_link: 'View cashback details',
|
||||
frozen: 'Frozen',
|
||||
cashback_total: 'Total cashback',
|
||||
type: 'Type',
|
||||
note: 'Note',
|
||||
amount: 'Amount',
|
||||
time: 'Time',
|
||||
transaction_detail: 'Transaction details',
|
||||
balance_before: 'Balance before',
|
||||
balance_after: 'Balance after',
|
||||
transaction_id: 'Transaction ID',
|
||||
detail_title: 'Wallet details',
|
||||
recharge_btn: 'Deposit',
|
||||
recharge_history: 'Deposit history',
|
||||
cashbacks_tab: 'Cashback',
|
||||
},
|
||||
recharge: {
|
||||
title: 'Recharge',
|
||||
@@ -312,6 +354,15 @@ export default {
|
||||
reapply: 'Re-apply',
|
||||
reapply_hint: 'You are resubmitting this order. Transfer again and upload a new screenshot.',
|
||||
back_to_history: 'Back to history',
|
||||
order_no: 'Order no.',
|
||||
method: 'Method',
|
||||
amount: 'Amount',
|
||||
screenshot: 'Upload proof',
|
||||
click_to_upload: 'Click to upload',
|
||||
choose_method: 'Choose payment account',
|
||||
success_title: 'Submitted',
|
||||
success_hint: 'Please wait for review. You will be notified once credited.',
|
||||
no_history: 'No deposit records',
|
||||
},
|
||||
cashback: {
|
||||
title: 'Cashback Details',
|
||||
@@ -324,6 +375,10 @@ export default {
|
||||
empty: 'No cashback records yet',
|
||||
empty_hint: 'Cashback is issued by the platform after each settlement period.',
|
||||
ledger_hint: 'Matches wallet entries under the Cashback filter; amounts are the same.',
|
||||
match: 'Match',
|
||||
amount: 'Cashback amount',
|
||||
rate: 'Cashback rate',
|
||||
batch_no: 'Batch no.',
|
||||
},
|
||||
bet: {
|
||||
bet_slip: 'Bet Slip',
|
||||
@@ -333,8 +388,30 @@ export default {
|
||||
parlay: 'Parlay',
|
||||
tab_matches: 'Matches',
|
||||
tab_outright: 'Outright',
|
||||
sport_football: 'Football',
|
||||
sport_basketball: 'Basketball',
|
||||
sport_tennis: 'Tennis',
|
||||
sport_coming_soon: 'Coming soon',
|
||||
tab_today: 'Today',
|
||||
tab_early: 'Early',
|
||||
filter_time: 'Time',
|
||||
filter_league: 'Leagues',
|
||||
filter_market: 'Markets',
|
||||
time_all: 'All',
|
||||
time_today: 'Today',
|
||||
time_early: 'Early',
|
||||
market_all: 'All markets',
|
||||
market_handicap_ou: 'Handicap / O-U',
|
||||
correct_score: 'Correct score',
|
||||
no_markets: 'No markets available',
|
||||
no_markets_filtered: 'No markets match the current filter',
|
||||
popover_title: 'Confirm bet',
|
||||
place_now: 'Bet now',
|
||||
add_to_single: 'Add to singles',
|
||||
add_to_parlay: 'Add to parlay',
|
||||
slip_parlay_added_short: 'In parlay · View',
|
||||
add_to_single_list: 'Add to singles',
|
||||
add_to_parlay_list: 'Add to parlay',
|
||||
filter_status_all: 'All',
|
||||
filter_status_open: 'Open',
|
||||
filter_status_settled: 'Settled',
|
||||
@@ -446,24 +523,37 @@ export default {
|
||||
slip_pick_hint: 'Tap to add/remove from slip; gold border = selected',
|
||||
picked_tag: 'Selected',
|
||||
pick_added: 'Added to bet slip',
|
||||
added_to_single: 'Added to singles list',
|
||||
added_to_parlay: 'Added to parlay list',
|
||||
pick_removed: 'Removed from bet slip',
|
||||
slip_bar_ready: '1 selection',
|
||||
slip_bar_go: 'Bet slip',
|
||||
cs_top_hint: '① Enter stake ② Tap Confirm bet above',
|
||||
slip_empty_hint: 'Tap odds to open the bet drawer',
|
||||
slip_clear: 'Clear all',
|
||||
slip_remove: 'Remove',
|
||||
slip_locate: 'Locate odds',
|
||||
slip_locate_aria: 'Scroll to this selection in the odds list',
|
||||
slip_est_return: 'Est. max payout',
|
||||
slip_parlay_odds: 'Combined odds {odds}',
|
||||
slip_review_title: 'Review selection',
|
||||
slip_balance: 'Account balance',
|
||||
slip_tab_single: 'Single',
|
||||
slip_tab_parlay: 'Parlay',
|
||||
slip_tab_history: 'History',
|
||||
slip_history_all: 'All',
|
||||
slip_history_match: 'This match',
|
||||
slip_history_view_all: 'View all',
|
||||
slip_history_load_more: 'Load more',
|
||||
slip_parlay_empty_hint: 'Pick a selection, then tap Add to parlay',
|
||||
slip_add_parlay: 'Add to parlay',
|
||||
slip_parlay_only_hint: 'This market is parlay-only. Tap Add to parlay to bet.',
|
||||
slip_parlay_same_match: 'Parlay selections cannot be from the same match. Remove the same-match leg first.',
|
||||
slip_parlay_count: '{n} parlay leg(s)',
|
||||
slip_total_stake: 'Total stake',
|
||||
slip_place_single: 'Single bet',
|
||||
slip_place_all: 'Bet all',
|
||||
slip_parlay_added_btn: 'Added',
|
||||
slip_currency: 'Amount',
|
||||
slip_min: 'Min',
|
||||
slip_min_error: 'Minimum stake is {amount}',
|
||||
@@ -472,11 +562,34 @@ export default {
|
||||
accept_changes_place: 'Accept changes & place bet',
|
||||
odds_was: 'Was',
|
||||
odds_now: 'Now',
|
||||
place_confirm_title: 'Confirm bet',
|
||||
place_confirm_single:
|
||||
"Selection: {pick} ({'@'}{odds})\nStake: {stake}\nEst. return: {return}\n\nPlace this bet?",
|
||||
place_confirm_singles:
|
||||
'{count} single bet(s)\nTotal stake: {stake}\nEst. return: {return}\n\nPlace all?',
|
||||
place_confirm_parlay:
|
||||
'Parlay ({count} legs), total odds {odds}\nStake: {stake}\nEst. return: {return}\n\nPlace parlay?',
|
||||
place_success: 'Bet placed',
|
||||
place_failed: 'Bet failed',
|
||||
bet_no: 'Bet no.',
|
||||
match: 'Match',
|
||||
selection: 'Selection',
|
||||
odds: 'Odds',
|
||||
potential_payout: 'Potential payout',
|
||||
placed_at: 'Placed at',
|
||||
detail_title: 'Bet details',
|
||||
selections: 'Selections',
|
||||
},
|
||||
profile: {
|
||||
edit: 'Edit Profile',
|
||||
edit_title: 'Edit profile',
|
||||
save_success: 'Saved successfully',
|
||||
basic_info: 'Basic info',
|
||||
change_avatar: 'Change avatar',
|
||||
username: 'Username',
|
||||
username_locked: 'Username cannot be changed',
|
||||
account: 'Account',
|
||||
quick_nav: 'Quick links',
|
||||
language: 'Language',
|
||||
avatar: 'Avatar',
|
||||
avatar_change: 'Change avatar',
|
||||
|
||||
Reference in New Issue
Block a user