feat: 手动充值、邀请码注册与后台管理增强
新增玩家手动充值全流程(收款方式配置、充值下单/审核、钱包上分), 支持邀请码注册、邀请历史与专属返水率;完善后台代理/玩家管理与响应式操作栏, 并补充前台注册、充值页及多语言错误码。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -33,6 +33,7 @@ const zh: Record<string, string> = {
|
||||
'nav.dashboard': '概览',
|
||||
'nav.dashboard.matches': '赛事概览',
|
||||
'nav.dashboard.players': '玩家概览',
|
||||
'nav.invites': '邀请管理',
|
||||
'nav.users': '玩家管理',
|
||||
'nav.agents': '代理管理',
|
||||
'nav.agents_players': '代理&玩家',
|
||||
@@ -46,7 +47,61 @@ const zh: Record<string, string> = {
|
||||
'nav.audit': '操作日志',
|
||||
'nav.smoke_tests': '自动化测试',
|
||||
'nav.media': '媒体库',
|
||||
'nav.payment_methods': '收款方式',
|
||||
'nav.deposit_orders': '充值审核',
|
||||
'nav.deposit_manage': '充值管理',
|
||||
'nav.players': '直属玩家',
|
||||
|
||||
'deposit.payment_methods_title': '收款方式管理',
|
||||
'deposit.deposit_orders_title': '充值审核',
|
||||
'deposit.all_status': '所有状态',
|
||||
'deposit.all_types': '所有类型',
|
||||
'deposit.status_pending': '待审核',
|
||||
'deposit.status_approved': '已通过',
|
||||
'deposit.status_rejected': '已拒绝',
|
||||
'deposit.search_player_ph': '搜索玩家...',
|
||||
'deposit.order_no': '订单号',
|
||||
'deposit.player': '玩家',
|
||||
'deposit.amount': '金额',
|
||||
'deposit.screenshot': '截图',
|
||||
'deposit.approved_amount': '批准金额',
|
||||
'deposit.reviewer': '审核人',
|
||||
'deposit.time': '时间',
|
||||
'deposit.approve': '批准',
|
||||
'deposit.reject': '拒绝',
|
||||
'deposit.approve_title': '批准充值',
|
||||
'deposit.reject_title': '拒绝充值',
|
||||
'deposit.submitted_amount': '申报金额',
|
||||
'deposit.approved_amount_label': '批准金额(可调整)',
|
||||
'deposit.remark_label': '备注(可选)',
|
||||
'deposit.confirm_approve': '确认批准',
|
||||
'deposit.confirm_reject': '确认拒绝',
|
||||
'deposit.reject_reason_label': '拒绝原因 *',
|
||||
'deposit.reject_reason_ph': '请输入拒绝原因...',
|
||||
'deposit.reason_required': '请输入拒绝原因',
|
||||
'deposit.prev': '上一页',
|
||||
'deposit.next': '下一页',
|
||||
'deposit.add_method': '+ 添加',
|
||||
'deposit.display_name': '展示名称',
|
||||
'deposit.details': '详情',
|
||||
'deposit.sort': '排序',
|
||||
'deposit.active': '启用',
|
||||
'deposit.show_player': '前台展示',
|
||||
'deposit.edit_method': '编辑收款方式',
|
||||
'deposit.create_method': '新建收款方式',
|
||||
'deposit.bank_name': '银行名称',
|
||||
'deposit.account_holder': '账户持有人',
|
||||
'deposit.account_number': '银行账号',
|
||||
'deposit.usdt_address': 'USDT 地址',
|
||||
'deposit.qr_code': '二维码',
|
||||
'deposit.sort_order': '排序序号',
|
||||
'deposit.show_on_player': '展示给玩家',
|
||||
'deposit.save': '保存',
|
||||
'deposit.confirm_deactivate': '确认停用此收款方式?',
|
||||
'deposit.lang_zh': '中文',
|
||||
'deposit.lang_en': 'English',
|
||||
'deposit.lang_ms': 'Bahasa',
|
||||
'deposit.multilingual_hint': '为不同语言设置显示名称,留空则使用默认值',
|
||||
'nav.subAgents': '二级代理',
|
||||
'nav.myBets': '注单查询',
|
||||
'nav.open_menu': '打开菜单',
|
||||
@@ -90,6 +145,10 @@ const zh: Record<string, string> = {
|
||||
'common.used': '已用',
|
||||
'common.platform_direct': '平台直属',
|
||||
'common.updated_at': '更新于',
|
||||
'common.enable': '启用',
|
||||
'common.disable': '停用',
|
||||
'common.show_player': '前台展示',
|
||||
'common.hide_player': '前台隐藏',
|
||||
|
||||
'dash.title': '概览',
|
||||
'dash.desc': '平台整体运行概况',
|
||||
@@ -233,6 +292,7 @@ const en: Record<string, string> = {
|
||||
'nav.dashboard': 'Overview',
|
||||
'nav.dashboard.matches': 'Match overview',
|
||||
'nav.dashboard.players': 'Player overview',
|
||||
'nav.invites': 'Invitations',
|
||||
'nav.users': 'Players',
|
||||
'nav.agents': 'Agents',
|
||||
'nav.agents_players': 'Agents & Players',
|
||||
@@ -246,9 +306,63 @@ const en: Record<string, string> = {
|
||||
'nav.audit': 'Audit Log',
|
||||
'nav.smoke_tests': 'Smoke tests',
|
||||
'nav.media': 'Media Library',
|
||||
'nav.payment_methods': 'Payment Methods',
|
||||
'nav.deposit_orders': 'Deposit Review',
|
||||
'nav.deposit_manage': 'Deposit Mgmt',
|
||||
'nav.players': 'My Players',
|
||||
'nav.subAgents': 'Tier-2 agents',
|
||||
'nav.myBets': 'Bet Search',
|
||||
|
||||
'deposit.payment_methods_title': 'Payment Methods',
|
||||
'deposit.deposit_orders_title': 'Deposit Review',
|
||||
'deposit.all_status': 'All Status',
|
||||
'deposit.all_types': 'All Types',
|
||||
'deposit.status_pending': 'Pending',
|
||||
'deposit.status_approved': 'Approved',
|
||||
'deposit.status_rejected': 'Rejected',
|
||||
'deposit.search_player_ph': 'Search player...',
|
||||
'deposit.order_no': 'Order No',
|
||||
'deposit.player': 'Player',
|
||||
'deposit.amount': 'Amount',
|
||||
'deposit.screenshot': 'Screenshot',
|
||||
'deposit.approved_amount': 'Approved Amt',
|
||||
'deposit.reviewer': 'Reviewer',
|
||||
'deposit.time': 'Time',
|
||||
'deposit.approve': 'Approve',
|
||||
'deposit.reject': 'Reject',
|
||||
'deposit.approve_title': 'Approve Deposit',
|
||||
'deposit.reject_title': 'Reject Deposit',
|
||||
'deposit.submitted_amount': 'Submitted Amount',
|
||||
'deposit.approved_amount_label': 'Approved Amount (adjust if needed)',
|
||||
'deposit.remark_label': 'Remark (optional)',
|
||||
'deposit.confirm_approve': 'Confirm Approve',
|
||||
'deposit.confirm_reject': 'Confirm Reject',
|
||||
'deposit.reject_reason_label': 'Reject Reason *',
|
||||
'deposit.reject_reason_ph': 'Enter the reason for rejection...',
|
||||
'deposit.reason_required': 'Please enter a reject reason',
|
||||
'deposit.prev': 'Prev',
|
||||
'deposit.next': 'Next',
|
||||
'deposit.add_method': '+ Add',
|
||||
'deposit.display_name': 'Display Name',
|
||||
'deposit.details': 'Details',
|
||||
'deposit.sort': 'Sort',
|
||||
'deposit.active': 'Active',
|
||||
'deposit.show_player': 'Show Player',
|
||||
'deposit.edit_method': 'Edit Payment Method',
|
||||
'deposit.create_method': 'Create Payment Method',
|
||||
'deposit.bank_name': 'Bank Name',
|
||||
'deposit.account_holder': 'Account Holder',
|
||||
'deposit.account_number': 'Account Number',
|
||||
'deposit.usdt_address': 'USDT Address',
|
||||
'deposit.qr_code': 'QR Code',
|
||||
'deposit.sort_order': 'Sort Order',
|
||||
'deposit.show_on_player': 'Show on Player',
|
||||
'deposit.save': 'Save',
|
||||
'deposit.confirm_deactivate': 'Confirm deactivate this payment method?',
|
||||
'deposit.lang_zh': 'Chinese',
|
||||
'deposit.lang_en': 'English',
|
||||
'deposit.lang_ms': 'Malay',
|
||||
'deposit.multilingual_hint': 'Set display names for each language. Leave blank to use default.',
|
||||
'nav.open_menu': 'Open menu',
|
||||
'nav.close_menu': 'Close menu',
|
||||
'breadcrumb.settlement': 'Settlement',
|
||||
@@ -290,6 +404,10 @@ const en: Record<string, string> = {
|
||||
'common.used': 'Used',
|
||||
'common.platform_direct': 'Platform direct',
|
||||
'common.updated_at': 'Updated',
|
||||
'common.enable': 'Enable',
|
||||
'common.disable': 'Disable',
|
||||
'common.show_player': 'Show player',
|
||||
'common.hide_player': 'Hide player',
|
||||
|
||||
'dash.title': 'Overview',
|
||||
'dash.desc': 'Platform overview',
|
||||
@@ -433,6 +551,7 @@ const ms: Record<string, string> = {
|
||||
'nav.dashboard': 'Gambaran',
|
||||
'nav.dashboard.matches': 'Gambaran perlawanan',
|
||||
'nav.dashboard.players': 'Gambaran pemain',
|
||||
'nav.invites': 'Jemputan',
|
||||
'nav.users': 'Pemain',
|
||||
'nav.agents': 'Ejen',
|
||||
'nav.agents_players': 'Ejen & Pemain',
|
||||
@@ -446,9 +565,63 @@ const ms: Record<string, string> = {
|
||||
'nav.audit': 'Log audit',
|
||||
'nav.smoke_tests': 'Ujian asap',
|
||||
'nav.media': 'Perpustakaan Media',
|
||||
'nav.payment_methods': 'Kaedah Pembayaran',
|
||||
'nav.deposit_orders': 'Semakan Deposit',
|
||||
'nav.deposit_manage': 'Urus Deposit',
|
||||
'nav.players': 'Pemain saya',
|
||||
'nav.subAgents': 'Ejen peringkat 2',
|
||||
'nav.myBets': 'Carian pertaruhan',
|
||||
|
||||
'deposit.payment_methods_title': 'Kaedah Pembayaran',
|
||||
'deposit.deposit_orders_title': 'Semakan Deposit',
|
||||
'deposit.all_status': 'Semua Status',
|
||||
'deposit.all_types': 'Semua Jenis',
|
||||
'deposit.status_pending': 'Menunggu',
|
||||
'deposit.status_approved': 'Diluluskan',
|
||||
'deposit.status_rejected': 'Ditolak',
|
||||
'deposit.search_player_ph': 'Cari pemain...',
|
||||
'deposit.order_no': 'No. Pesanan',
|
||||
'deposit.player': 'Pemain',
|
||||
'deposit.amount': 'Jumlah',
|
||||
'deposit.screenshot': 'Tangkapan skrin',
|
||||
'deposit.approved_amount': 'Jml Diluluskan',
|
||||
'deposit.reviewer': 'Pengulas',
|
||||
'deposit.time': 'Masa',
|
||||
'deposit.approve': 'Luluskan',
|
||||
'deposit.reject': 'Tolak',
|
||||
'deposit.approve_title': 'Luluskan Deposit',
|
||||
'deposit.reject_title': 'Tolak Deposit',
|
||||
'deposit.submitted_amount': 'Jumlah Dihantar',
|
||||
'deposit.approved_amount_label': 'Jumlah Diluluskan (laraskan jika perlu)',
|
||||
'deposit.remark_label': 'Catatan (pilihan)',
|
||||
'deposit.confirm_approve': 'Sahkan Luluskan',
|
||||
'deposit.confirm_reject': 'Sahkan Tolak',
|
||||
'deposit.reject_reason_label': 'Sebab Penolakan *',
|
||||
'deposit.reject_reason_ph': 'Masukkan sebab penolakan...',
|
||||
'deposit.reason_required': 'Sila masukkan sebab penolakan',
|
||||
'deposit.prev': 'Sebelum',
|
||||
'deposit.next': 'Seterus',
|
||||
'deposit.add_method': '+ Tambah',
|
||||
'deposit.display_name': 'Nama Paparan',
|
||||
'deposit.details': 'Butiran',
|
||||
'deposit.sort': 'Isih',
|
||||
'deposit.active': 'Aktif',
|
||||
'deposit.show_player': 'Papar Pemain',
|
||||
'deposit.edit_method': 'Edit Kaedah Pembayaran',
|
||||
'deposit.create_method': 'Cipta Kaedah Pembayaran',
|
||||
'deposit.bank_name': 'Nama Bank',
|
||||
'deposit.account_holder': 'Pemegang Akaun',
|
||||
'deposit.account_number': 'Nombor Akaun',
|
||||
'deposit.usdt_address': 'Alamat USDT',
|
||||
'deposit.qr_code': 'Kod QR',
|
||||
'deposit.sort_order': 'Susunan Isih',
|
||||
'deposit.show_on_player': 'Papar kepada Pemain',
|
||||
'deposit.save': 'Simpan',
|
||||
'deposit.confirm_deactivate': 'Sahkan nyahaktifkan kaedah pembayaran ini?',
|
||||
'deposit.lang_zh': 'Cina',
|
||||
'deposit.lang_en': 'Inggeris',
|
||||
'deposit.lang_ms': 'Melayu',
|
||||
'deposit.multilingual_hint': 'Tetapkan nama paparan untuk setiap bahasa. Kosongkan untuk guna nilai lalai.',
|
||||
'nav.open_menu': 'Buka menu',
|
||||
'nav.close_menu': 'Tutup menu',
|
||||
'breadcrumb.settlement': 'Penyelesaian',
|
||||
@@ -490,6 +663,10 @@ const ms: Record<string, string> = {
|
||||
'common.used': 'Digunakan',
|
||||
'common.platform_direct': 'Terus platform',
|
||||
'common.updated_at': 'Dikemas kini',
|
||||
'common.enable': 'Aktifkan',
|
||||
'common.disable': 'Nyahaktif',
|
||||
'common.show_player': 'Papar pemain',
|
||||
'common.hide_player': 'Sembunyikan pemain',
|
||||
|
||||
'dash.title': 'Gambaran',
|
||||
'dash.desc': 'Gambaran keseluruhan platform',
|
||||
|
||||
Reference in New Issue
Block a user