feat(admin,api,player): 代理层级管理、额度上下分与玩家钱包详情

新增代理管理器与二级代理体系,完善信用额度/上下分上下文与冻结策略;代理端玩家与子代理管理增强;玩家端新增钱包详情页与交易筛选优化。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-08 15:34:12 +08:00
parent b2216abd0c
commit 414998ce36
54 changed files with 6641 additions and 481 deletions

View File

@@ -26,12 +26,14 @@ const zh: Record<string, string> = {
'login.quick_label': '快速登录(调试)',
'login.quick_admin': '管理员',
'login.quick_agent': '一级代理',
'login.quick_agent2': '二级代理',
'login.captcha_ph': '验证码',
'login.captcha_refresh': '点击刷新',
'nav.dashboard': '概览',
'nav.users': '玩家管理',
'nav.agents': '代理管理',
'nav.agents_players': '代理&玩家',
'nav.matches': '赛事管理',
'nav.outrights': '优胜冠军',
'nav.bets': '注单管理',
@@ -49,6 +51,8 @@ const zh: Record<string, string> = {
'breadcrumb.outright_edit': '编辑优胜冠军',
'role.admin': '系统管理员',
'role.agent': '代理账号',
'role.tier1_agent': '一级代理',
'role.tier2_agent': '二级代理',
'logout': '退出',
'lang': '语言',
'portal.admin': '平台后台',
@@ -135,11 +139,21 @@ const zh: Record<string, string> = {
'page.audit.desc': '记录所有管理员操作行为',
'page.settlement.title': '赛事结算',
'page.agent_dash.title': '代理概览',
'page.agent_dash.desc': '实时数据总览',
'page.agent_dash.desc': '下线经营概况与分布',
'agent_dash.load_error_hint': '无法加载概览数据,请检查网络或重新登录后再试。',
'agent_dash.board_hint': '一屏查看下线经营趋势与分布',
'agent_dash.kpi_players': '直属玩家 / 下级代理',
'agent_dash.kpi_pending_sub': '{bets} 单待结算',
'agent_dash.pie_credit': '授信占用',
'agent_dash.pie_players': '直属玩家',
'agent_dash.credit_available': '可用额度',
'agent_dash.credit_used': '已用额度',
'agent_dash.liability_direct': '玩家余额占用',
'agent_dash.liability_child': '下级代理占用',
'page.agent_players.title': '直属玩家',
'page.agent_players.desc': '管理你名下的直属玩家',
'page.agent_sub.title': '下级代理',
'page.agent_sub.desc': '仅一级代理可见',
'page.agent_sub.desc': '管理二级代理账号与授信分配',
'page.agent_bets.title': '注单查询',
'page.agent_bets.desc': '下级玩家的全部投注记录',
@@ -190,12 +204,14 @@ const en: Record<string, string> = {
'login.quick_label': 'Quick sign-in (debug)',
'login.quick_admin': 'Admin',
'login.quick_agent': 'Tier-1 agent',
'login.quick_agent2': 'Tier-2 agent',
'login.captcha_ph': 'Captcha',
'login.captcha_refresh': 'Click to refresh',
'nav.dashboard': 'Overview',
'nav.users': 'Players',
'nav.agents': 'Agents',
'nav.agents_players': 'Agents & Players',
'nav.matches': 'Matches',
'nav.outrights': 'Outrights',
'nav.bets': 'Bets',
@@ -213,6 +229,8 @@ const en: Record<string, string> = {
'breadcrumb.outright_edit': 'Edit outright',
'role.admin': 'Administrator',
'role.agent': 'Agent',
'role.tier1_agent': 'Tier-1 Agent',
'role.tier2_agent': 'Tier-2 Agent',
'logout': 'Logout',
'lang': 'Language',
'portal.admin': 'Platform Admin',
@@ -299,11 +317,21 @@ const en: Record<string, string> = {
'page.audit.desc': 'Administrator action history',
'page.settlement.title': 'Settlement',
'page.agent_dash.title': 'Agent overview',
'page.agent_dash.desc': 'Live summary',
'page.agent_dash.desc': 'Downline performance at a glance',
'agent_dash.load_error_hint': 'Could not load overview. Check your network or sign in again.',
'agent_dash.board_hint': 'Trends and distribution for your downline',
'agent_dash.kpi_players': 'Direct players / Sub-agents',
'agent_dash.kpi_pending_sub': '{bets} pending bets',
'agent_dash.pie_credit': 'Credit usage',
'agent_dash.pie_players': 'Direct players',
'agent_dash.credit_available': 'Available',
'agent_dash.credit_used': 'Used',
'agent_dash.liability_direct': 'Player balance',
'agent_dash.liability_child': 'Sub-agent exposure',
'page.agent_players.title': 'My players',
'page.agent_players.desc': 'Players under your account',
'page.agent_sub.title': 'Sub-agents',
'page.agent_sub.desc': 'Tier-1 agents only',
'page.agent_sub.desc': 'Manage tier-2 agents and credit allocation',
'page.agent_bets.title': 'Bet search',
'page.agent_bets.desc': 'All bets from downstream players',
@@ -354,12 +382,14 @@ const ms: Record<string, string> = {
'login.quick_label': 'Log masuk pantas (debug)',
'login.quick_admin': 'Admin',
'login.quick_agent': 'Ejen peringkat 1',
'login.quick_agent2': 'Ejen peringkat 2',
'login.captcha_ph': 'Captcha',
'login.captcha_refresh': 'Klik untuk muat semula',
'nav.dashboard': 'Gambaran',
'nav.users': 'Pemain',
'nav.agents': 'Ejen',
'nav.agents_players': 'Ejen & Pemain',
'nav.matches': 'Perlawanan',
'nav.outrights': 'Juara',
'nav.bets': 'Pertaruhan',
@@ -377,6 +407,8 @@ const ms: Record<string, string> = {
'breadcrumb.outright_edit': 'Edit juara',
'role.admin': 'Pentadbir',
'role.agent': 'Ejen',
'role.tier1_agent': 'Ejen Peringkat 1',
'role.tier2_agent': 'Ejen Peringkat 2',
'logout': 'Log keluar',
'lang': 'Bahasa',
'portal.admin': 'Admin Platform',
@@ -463,11 +495,21 @@ const ms: Record<string, string> = {
'page.audit.desc': 'Sejarah tindakan pentadbir',
'page.settlement.title': 'Penyelesaian',
'page.agent_dash.title': 'Gambaran ejen',
'page.agent_dash.desc': 'Ringkasan langsung',
'page.agent_dash.desc': 'Prestasi downline sepintas lalu',
'agent_dash.load_error_hint': 'Gagal memuatkan gambaran. Semak rangkaian atau log masuk semula.',
'agent_dash.board_hint': 'Trend dan taburan downline anda',
'agent_dash.kpi_players': 'Pemain terus / Ejen bawahan',
'agent_dash.kpi_pending_sub': '{bets} pertaruhan belum selesai',
'agent_dash.pie_credit': 'Penggunaan kredit',
'agent_dash.pie_players': 'Pemain terus',
'agent_dash.credit_available': 'Tersedia',
'agent_dash.credit_used': 'Digunakan',
'agent_dash.liability_direct': 'Baki pemain',
'agent_dash.liability_child': 'Pendedahan ejen bawahan',
'page.agent_players.title': 'Pemain saya',
'page.agent_players.desc': 'Pemain di bawah akaun anda',
'page.agent_sub.title': 'Sub-ejen',
'page.agent_sub.desc': 'Ejen peringkat 1 sahaja',
'page.agent_sub.desc': 'Urus ejen peringkat 2 dan peruntukan kredit',
'page.agent_bets.title': 'Carian pertaruhan',
'page.agent_bets.desc': 'Semua pertaruhan pemain hiliran',