feat(admin,api,player): 优胜赛配置、赛事管理重构与玩家端投注体验优化
管理端拆分赛事/优胜赛 Tab,新增联赛优胜赔率面板(批量、排序、外侧删除);统一 list-chrome 工具栏对齐与列表页布局;Dashboard 失败重试、Users 操作下拉、小屏侧栏等体验修复。 API 扩展优胜赛与赛事目录接口,完善投注与钱包查询;玩家端重构赛事卡片、串关面板、注单/钱包页,新增注单详情、下注成功动画与下拉刷新。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -29,7 +29,7 @@ const zh: Record<string, string> = {
|
||||
'login.captcha_ph': '验证码',
|
||||
'login.captcha_refresh': '点击刷新',
|
||||
|
||||
'nav.dashboard': '控制台',
|
||||
'nav.dashboard': '概览',
|
||||
'nav.users': '玩家管理',
|
||||
'nav.agents': '代理管理',
|
||||
'nav.matches': '赛事管理',
|
||||
@@ -41,6 +41,12 @@ const zh: Record<string, string> = {
|
||||
'nav.players': '直属玩家',
|
||||
'nav.subAgents': '下级代理',
|
||||
'nav.myBets': '注单查询',
|
||||
'nav.open_menu': '打开菜单',
|
||||
'nav.close_menu': '关闭菜单',
|
||||
'breadcrumb.settlement': '赛事结算',
|
||||
'breadcrumb.match_edit': '编辑赛事',
|
||||
'breadcrumb.match_markets': '盘口管理',
|
||||
'breadcrumb.outright_edit': '编辑优胜冠军',
|
||||
'role.admin': '系统管理员',
|
||||
'role.agent': '代理账号',
|
||||
'logout': '退出',
|
||||
@@ -57,10 +63,12 @@ const zh: Record<string, string> = {
|
||||
'common.delete': '删除',
|
||||
'common.cancel': '取消',
|
||||
'common.confirm': '确定',
|
||||
'common.retry': '重试',
|
||||
'common.status': '状态',
|
||||
'common.type': '类型',
|
||||
'common.keyword': '关键词',
|
||||
'common.actions': '操作',
|
||||
'common.more': '更多',
|
||||
'common.loading': '加载中…',
|
||||
'common.no_data': '暂无数据',
|
||||
'common.yesterday': '昨日',
|
||||
@@ -73,7 +81,7 @@ const zh: Record<string, string> = {
|
||||
'common.platform_direct': '平台直属',
|
||||
'common.updated_at': '更新于',
|
||||
|
||||
'dash.title': '控制台',
|
||||
'dash.title': '概览',
|
||||
'dash.desc': '平台整体运行概况',
|
||||
'dash.board_title': '整体概览',
|
||||
'dash.board_hint': '一屏查看经营趋势与平台分布',
|
||||
@@ -85,6 +93,7 @@ const zh: Record<string, string> = {
|
||||
'dash.kpi_new_players': '今日新增 {n} 人',
|
||||
'dash.kpi_pending': '待结算',
|
||||
'dash.kpi_pending_sub': '{bets} 单 · {matches} 场赛事',
|
||||
'dash.load_error_hint': '无法加载概览数据,请检查网络或稍后重试。',
|
||||
'dash.kpi_wallet': '玩家余额',
|
||||
'dash.kpi_credit': '代理授信',
|
||||
'dash.trend_caption': '近 7 日经营趋势(金额折线 + 注单柱)',
|
||||
@@ -114,6 +123,8 @@ const zh: Record<string, string> = {
|
||||
'page.users.desc': '创建玩家、查看余额与投注概况,支持上分与状态管理',
|
||||
'page.agents.title': '代理管理',
|
||||
'page.agents.desc': '创建一级代理、调整授信额度、查看直属玩家与额度占用',
|
||||
'nav.matches.fixtures': '赛事配置',
|
||||
'nav.matches.outrights': '优胜赛配置(盘口)',
|
||||
'page.matches.title': '赛事管理',
|
||||
'page.matches.desc': '草稿可编辑、删除;已发布可改开赛时间与热门',
|
||||
'page.bets.title': '注单管理',
|
||||
@@ -182,7 +193,7 @@ const en: Record<string, string> = {
|
||||
'login.captcha_ph': 'Captcha',
|
||||
'login.captcha_refresh': 'Click to refresh',
|
||||
|
||||
'nav.dashboard': 'Dashboard',
|
||||
'nav.dashboard': 'Overview',
|
||||
'nav.users': 'Players',
|
||||
'nav.agents': 'Agents',
|
||||
'nav.matches': 'Matches',
|
||||
@@ -194,6 +205,12 @@ const en: Record<string, string> = {
|
||||
'nav.players': 'My Players',
|
||||
'nav.subAgents': 'Sub-Agents',
|
||||
'nav.myBets': 'Bet Search',
|
||||
'nav.open_menu': 'Open menu',
|
||||
'nav.close_menu': 'Close menu',
|
||||
'breadcrumb.settlement': 'Settlement',
|
||||
'breadcrumb.match_edit': 'Edit match',
|
||||
'breadcrumb.match_markets': 'Markets',
|
||||
'breadcrumb.outright_edit': 'Edit outright',
|
||||
'role.admin': 'Administrator',
|
||||
'role.agent': 'Agent',
|
||||
'logout': 'Logout',
|
||||
@@ -210,10 +227,12 @@ const en: Record<string, string> = {
|
||||
'common.delete': 'Delete',
|
||||
'common.cancel': 'Cancel',
|
||||
'common.confirm': 'OK',
|
||||
'common.retry': 'Retry',
|
||||
'common.status': 'Status',
|
||||
'common.type': 'Type',
|
||||
'common.keyword': 'Keyword',
|
||||
'common.actions': 'Actions',
|
||||
'common.more': 'More',
|
||||
'common.loading': 'Loading…',
|
||||
'common.no_data': 'No data',
|
||||
'common.yesterday': 'Yesterday',
|
||||
@@ -226,7 +245,7 @@ const en: Record<string, string> = {
|
||||
'common.platform_direct': 'Platform direct',
|
||||
'common.updated_at': 'Updated',
|
||||
|
||||
'dash.title': 'Dashboard',
|
||||
'dash.title': 'Overview',
|
||||
'dash.desc': 'Platform overview',
|
||||
'dash.board_title': 'Overview',
|
||||
'dash.board_hint': 'Trends and distribution at a glance',
|
||||
@@ -238,6 +257,7 @@ const en: Record<string, string> = {
|
||||
'dash.kpi_new_players': '{n} new today',
|
||||
'dash.kpi_pending': 'Pending settlement',
|
||||
'dash.kpi_pending_sub': '{bets} bets · {matches} matches',
|
||||
'dash.load_error_hint': 'Could not load overview data. Check your connection and try again.',
|
||||
'dash.kpi_wallet': 'Player balance',
|
||||
'dash.kpi_credit': 'Agent credit',
|
||||
'dash.trend_caption': 'Last 7 days (amount lines + bet bars)',
|
||||
@@ -267,6 +287,8 @@ const en: Record<string, string> = {
|
||||
'page.users.desc': 'Create players, balances, stakes, top-ups, and status',
|
||||
'page.agents.title': 'Agents',
|
||||
'page.agents.desc': 'Tier-1 agents, credit limits, players, and usage',
|
||||
'nav.matches.fixtures': 'Fixtures',
|
||||
'nav.matches.outrights': 'Outright odds',
|
||||
'page.matches.title': 'Matches',
|
||||
'page.matches.desc': 'Edit/delete drafts; adjust kickoff and featured when published',
|
||||
'page.bets.title': 'Bets',
|
||||
@@ -335,7 +357,7 @@ const ms: Record<string, string> = {
|
||||
'login.captcha_ph': 'Captcha',
|
||||
'login.captcha_refresh': 'Klik untuk muat semula',
|
||||
|
||||
'nav.dashboard': 'Papan pemuka',
|
||||
'nav.dashboard': 'Gambaran',
|
||||
'nav.users': 'Pemain',
|
||||
'nav.agents': 'Ejen',
|
||||
'nav.matches': 'Perlawanan',
|
||||
@@ -347,6 +369,12 @@ const ms: Record<string, string> = {
|
||||
'nav.players': 'Pemain saya',
|
||||
'nav.subAgents': 'Sub-ejen',
|
||||
'nav.myBets': 'Carian pertaruhan',
|
||||
'nav.open_menu': 'Buka menu',
|
||||
'nav.close_menu': 'Tutup menu',
|
||||
'breadcrumb.settlement': 'Penyelesaian',
|
||||
'breadcrumb.match_edit': 'Edit perlawanan',
|
||||
'breadcrumb.match_markets': 'Pasaran',
|
||||
'breadcrumb.outright_edit': 'Edit juara',
|
||||
'role.admin': 'Pentadbir',
|
||||
'role.agent': 'Ejen',
|
||||
'logout': 'Log keluar',
|
||||
@@ -363,10 +391,12 @@ const ms: Record<string, string> = {
|
||||
'common.delete': 'Padam',
|
||||
'common.cancel': 'Batal',
|
||||
'common.confirm': 'OK',
|
||||
'common.retry': 'Cuba lagi',
|
||||
'common.status': 'Status',
|
||||
'common.type': 'Jenis',
|
||||
'common.keyword': 'Kata kunci',
|
||||
'common.actions': 'Tindakan',
|
||||
'common.more': 'Lagi',
|
||||
'common.loading': 'Memuatkan…',
|
||||
'common.no_data': 'Tiada data',
|
||||
'common.yesterday': 'Semalam',
|
||||
@@ -379,7 +409,7 @@ const ms: Record<string, string> = {
|
||||
'common.platform_direct': 'Terus platform',
|
||||
'common.updated_at': 'Dikemas kini',
|
||||
|
||||
'dash.title': 'Papan pemuka',
|
||||
'dash.title': 'Gambaran',
|
||||
'dash.desc': 'Gambaran keseluruhan platform',
|
||||
'dash.board_title': 'Gambaran',
|
||||
'dash.board_hint': 'Trend dan taburan sepintas lalu',
|
||||
@@ -391,6 +421,7 @@ const ms: Record<string, string> = {
|
||||
'dash.kpi_new_players': '{n} baharu hari ini',
|
||||
'dash.kpi_pending': 'Menunggu penyelesaian',
|
||||
'dash.kpi_pending_sub': '{bets} pertaruhan · {matches} perlawanan',
|
||||
'dash.load_error_hint': 'Tidak dapat memuatkan data gambaran. Semak sambungan dan cuba lagi.',
|
||||
'dash.kpi_wallet': 'Baki pemain',
|
||||
'dash.kpi_credit': 'Kredit ejen',
|
||||
'dash.trend_caption': '7 hari lepas (garis jumlah + palang pertaruhan)',
|
||||
@@ -420,6 +451,8 @@ const ms: Record<string, string> = {
|
||||
'page.users.desc': 'Cipta pemain, baki, stake, tambah baki dan status',
|
||||
'page.agents.title': 'Ejen',
|
||||
'page.agents.desc': 'Ejen peringkat 1, had kredit, pemain dan penggunaan',
|
||||
'nav.matches.fixtures': 'Konfigurasi perlawanan',
|
||||
'nav.matches.outrights': 'Odds juara',
|
||||
'page.matches.title': 'Perlawanan',
|
||||
'page.matches.desc': 'Edit/padam draf; laraskan masa mula dan pilihan utama bila diterbitkan',
|
||||
'page.bets.title': 'Pertaruhan',
|
||||
|
||||
Reference in New Issue
Block a user