feat: split admin dashboard, improve match ops, and player closed-match UX
Admin: add match/player overview sub-nav; refine settlement flow and league match management UI; improve action button enabled/disabled styles; enhance logo upload and outright odds sync. API: expose matchPhase/bettingOpen for closed matches; league publish guards; settlement preview with auto score save; outright team auto-sync. Player: watermark for closed/settled states; keep match and bet details visible; remove default login credentials. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -31,6 +31,8 @@ const zh: Record<string, string> = {
|
||||
'login.captcha_refresh': '点击刷新',
|
||||
|
||||
'nav.dashboard': '概览',
|
||||
'nav.dashboard.matches': '赛事概览',
|
||||
'nav.dashboard.players': '玩家概览',
|
||||
'nav.users': '玩家管理',
|
||||
'nav.agents': '代理管理',
|
||||
'nav.agents_players': '代理&玩家',
|
||||
@@ -126,6 +128,22 @@ const zh: Record<string, string> = {
|
||||
'dash.user_suspended': '停用',
|
||||
'dash.user_direct': '直属',
|
||||
'dash.user_agents': '代理',
|
||||
'dash.section_matches_hint': '投注经营与赛事状态分布',
|
||||
'dash.section_players_hint': '玩家、代理与资金概况',
|
||||
'dash.kpi_match_total': '赛事总数',
|
||||
'dash.kpi_match_total_sub': '草稿 {draft} · 已发布 {published}',
|
||||
'dash.kpi_match_closed': '已封盘',
|
||||
'dash.kpi_match_closed_sub': '已取消 {n} 场',
|
||||
'dash.kpi_match_settled': '已结算赛事',
|
||||
'dash.kpi_match_settled_sub': '已完成结算的场次',
|
||||
'dash.kpi_agents_active': '活跃代理',
|
||||
'dash.kpi_agents_active_sub': '停用玩家 {suspended} 人',
|
||||
'dash.recent_players': '最新注册玩家',
|
||||
'dash.recent_bets': '最新注单',
|
||||
'dash.col_parent': '上级',
|
||||
'dash.col_bet_no': '注单号',
|
||||
'dash.col_stake': '投注额',
|
||||
'dash.col_placed_at': '下注时间',
|
||||
|
||||
'page.users.title': '玩家管理',
|
||||
'page.users.desc': '创建玩家、查看余额与投注概况,支持上分与状态管理',
|
||||
@@ -213,6 +231,8 @@ const en: Record<string, string> = {
|
||||
'login.captcha_refresh': 'Click to refresh',
|
||||
|
||||
'nav.dashboard': 'Overview',
|
||||
'nav.dashboard.matches': 'Match overview',
|
||||
'nav.dashboard.players': 'Player overview',
|
||||
'nav.users': 'Players',
|
||||
'nav.agents': 'Agents',
|
||||
'nav.agents_players': 'Agents & Players',
|
||||
@@ -308,6 +328,22 @@ const en: Record<string, string> = {
|
||||
'dash.user_suspended': 'Suspended',
|
||||
'dash.user_direct': 'Direct',
|
||||
'dash.user_agents': 'Agents',
|
||||
'dash.section_matches_hint': 'Betting performance and match distribution',
|
||||
'dash.section_players_hint': 'Players, agents, and wallet summary',
|
||||
'dash.kpi_match_total': 'Total matches',
|
||||
'dash.kpi_match_total_sub': 'Draft {draft} · Published {published}',
|
||||
'dash.kpi_match_closed': 'Closed',
|
||||
'dash.kpi_match_closed_sub': '{n} cancelled',
|
||||
'dash.kpi_match_settled': 'Settled matches',
|
||||
'dash.kpi_match_settled_sub': 'Matches fully settled',
|
||||
'dash.kpi_agents_active': 'Active agents',
|
||||
'dash.kpi_agents_active_sub': '{suspended} suspended players',
|
||||
'dash.recent_players': 'Recent sign-ups',
|
||||
'dash.recent_bets': 'Recent bets',
|
||||
'dash.col_parent': 'Parent',
|
||||
'dash.col_bet_no': 'Bet No.',
|
||||
'dash.col_stake': 'Stake',
|
||||
'dash.col_placed_at': 'Placed at',
|
||||
|
||||
'page.users.title': 'Players',
|
||||
'page.users.desc': 'Create players, balances, stakes, top-ups, and status',
|
||||
@@ -395,6 +431,8 @@ const ms: Record<string, string> = {
|
||||
'login.captcha_refresh': 'Klik untuk muat semula',
|
||||
|
||||
'nav.dashboard': 'Gambaran',
|
||||
'nav.dashboard.matches': 'Gambaran perlawanan',
|
||||
'nav.dashboard.players': 'Gambaran pemain',
|
||||
'nav.users': 'Pemain',
|
||||
'nav.agents': 'Ejen',
|
||||
'nav.agents_players': 'Ejen & Pemain',
|
||||
@@ -490,6 +528,22 @@ const ms: Record<string, string> = {
|
||||
'dash.user_suspended': 'Digantung',
|
||||
'dash.user_direct': 'Terus',
|
||||
'dash.user_agents': 'Ejen',
|
||||
'dash.section_matches_hint': 'Prestasi pertaruhan dan taburan perlawanan',
|
||||
'dash.section_players_hint': 'Pemain, ejen, dan ringkasan dana',
|
||||
'dash.kpi_match_total': 'Jumlah perlawanan',
|
||||
'dash.kpi_match_total_sub': 'Draf {draft} · Diterbitkan {published}',
|
||||
'dash.kpi_match_closed': 'Ditutup',
|
||||
'dash.kpi_match_closed_sub': '{n} dibatalkan',
|
||||
'dash.kpi_match_settled': 'Perlawanan diselesaikan',
|
||||
'dash.kpi_match_settled_sub': 'Perlawanan yang telah diselesaikan',
|
||||
'dash.kpi_agents_active': 'Ejen aktif',
|
||||
'dash.kpi_agents_active_sub': '{suspended} pemain digantung',
|
||||
'dash.recent_players': 'Pendaftaran terkini',
|
||||
'dash.recent_bets': 'Pertaruhan terkini',
|
||||
'dash.col_parent': 'Induk',
|
||||
'dash.col_bet_no': 'No. pertaruhan',
|
||||
'dash.col_stake': 'Stake',
|
||||
'dash.col_placed_at': 'Masa pertaruhan',
|
||||
|
||||
'page.users.title': 'Pemain',
|
||||
'page.users.desc': 'Cipta pemain, baki, stake, tambah baki dan status',
|
||||
|
||||
Reference in New Issue
Block a user