feat: 手动充值、邀请码注册与后台管理增强

新增玩家手动充值全流程(收款方式配置、充值下单/审核、钱包上分),
支持邀请码注册、邀请历史与专属返水率;完善后台代理/玩家管理与响应式操作栏,
并补充前台注册、充值页及多语言错误码。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-11 12:20:11 +08:00
parent 618fb49511
commit 10485ecfaf
98 changed files with 7908 additions and 856 deletions

View File

@@ -70,16 +70,26 @@ const i18n = createI18n({
},
auth: {
login: '登录',
register: '注册账号',
logout: '退出登录',
username: '账号',
password: '密码',
invite_code: '邀请码',
optional: '选填',
captcha_placeholder: 'Captcha',
captcha_refresh: '点击换一张',
captcha_wrong: '验证码错误',
captcha_wrong: '请完成滑块验证',
slide_to_verify: '向右滑动完成验证',
click_to_verify: '点击验证',
verified: '验证成功',
login_required: '请先登录',
login_hint: '登录后可下注及访问更多功能',
go_login: '去登录',
continue_browsing: '暂不登录,继续浏览',
go_register: '没有账号?立即注册',
have_account: '已有账号?去登录',
register_btn: '注册',
register_failed: '注册失败,请重试',
continue_browsing: '暂不登录',
username_placeholder: '请输入账号',
password_placeholder: '请输入密码',
login_btn: '登录',
@@ -99,7 +109,7 @@ const i18n = createI18n({
unsettled: '未结算',
available: '可用',
no_records: '暂无账单记录',
tx_deposit: '人工存款',
tx_deposit: '充值',
tx_withdraw: '人工提款',
tx_adjust: '人工调整',
tx_bet_freeze: '投注冻结',
@@ -116,7 +126,7 @@ const i18n = createI18n({
stats_net: '净额',
stats_cashback: '反水',
filter_all: '全部',
filter_deposit: '存款',
filter_deposit: '充值',
filter_withdraw: '提款',
filter_bet: '投注',
filter_cashback: '反水',
@@ -135,7 +145,7 @@ const i18n = createI18n({
detail_tx_id: '流水号',
detail_not_found: '账单不存在',
ref_bet: '投注',
ref_deposit: '存款',
ref_deposit: '充值',
ref_withdraw: '提款',
view_cashbacks: '返水明细',
view_cashbacks_detail: '查看返水周期明细',
@@ -143,6 +153,42 @@ const i18n = createI18n({
detail_cashback_link: '查看返水明细',
ref_cashback: '返水批次',
},
recharge: {
title: '充值',
history: '记录',
history_title: '充值记录',
bank_transfer: '银行转账',
bank_name: '银行名称',
account_holder: '账户名',
account_number: '账号',
usdt_address: 'USDT 地址',
amount_label: '充值金额',
amount_placeholder: '请输入充值金额',
screenshot_label: '上传转账截图',
upload_hint: '点击上传截图(最大 5MB',
compressing: '压缩中',
submit: '提交充值',
submitting: '提交中',
submitted: '充值已提交',
pending_review: '管理员正在审核,请耐心等待',
new_recharge: '继续充值',
no_methods: '暂无可用充值方式',
select_method: '请选择充值方式',
enter_amount: '请输入充值金额',
upload_screenshot: '请上传转账截图',
submit_failed: '提交失败,请重试',
file_must_be_image: '请上传图片文件',
file_too_large: '文件不能超过 10MB',
status_pending: '审核中',
status_approved: '已通过',
status_rejected: '已拒绝',
no_orders: '暂无充值记录',
credited: '实际到账',
reject_reason: '拒绝原因',
apply_time: '申请时间',
review_time: '审核时间',
remark: '审核备注',
},
cashback: {
title: '返水明细',
list_title: '发放明细',
@@ -398,16 +444,26 @@ const i18n = createI18n({
},
auth:
{ login: 'Login',
register: 'Create Account',
logout: 'Log out',
username: 'Username',
password: 'Password',
invite_code: 'Invitation Code',
optional: 'Optional',
captcha_placeholder: 'Captcha',
captcha_refresh: 'Click to refresh',
captcha_wrong: 'Invalid captcha',
captcha_wrong: 'Please complete the slider verification',
slide_to_verify: 'Slide to verify',
click_to_verify: 'Click to verify',
verified: 'Verified',
login_required: 'Login Required',
login_hint: 'Log in to place bets and access more features',
go_login: 'Go to login',
continue_browsing: 'Continue browsing',
go_register: 'No account? Register now',
have_account: 'Already have an account? Log in',
register_btn: 'Register',
register_failed: 'Registration failed, please try again',
continue_browsing: 'Skip login',
username_placeholder: 'Enter username',
password_placeholder: 'Enter password',
login_btn: 'Log In',
@@ -471,6 +527,42 @@ const i18n = createI18n({
ref_cashback: 'Cashback batch',
detail_cashback_link: 'View cashback details',
},
recharge: {
title: 'Recharge',
history: 'History',
history_title: 'Recharge History',
bank_transfer: 'Bank Transfer',
bank_name: 'Bank Name',
account_holder: 'Account Holder',
account_number: 'Account Number',
usdt_address: 'USDT Address',
amount_label: 'Amount',
amount_placeholder: 'Enter recharge amount',
screenshot_label: 'Upload Screenshot',
upload_hint: 'Click to upload screenshot (max 5MB)',
compressing: 'Compressing',
submit: 'Submit',
submitting: 'Submitting',
submitted: 'Recharge Submitted',
pending_review: 'Admin is reviewing, please wait',
new_recharge: 'New Recharge',
no_methods: 'No payment methods available',
select_method: 'Please select a payment method',
enter_amount: 'Please enter the amount',
upload_screenshot: 'Please upload a screenshot',
submit_failed: 'Submit failed, please retry',
file_must_be_image: 'Please upload an image file',
file_too_large: 'File exceeds 10MB',
status_pending: 'Pending',
status_approved: 'Approved',
status_rejected: 'Rejected',
no_orders: 'No recharge records',
credited: 'Credited',
reject_reason: 'Rejection reason',
apply_time: 'Apply time',
review_time: 'Review time',
remark: 'Remark',
},
cashback: {
title: 'Cashback Details',
list_title: 'Payout details',
@@ -732,16 +824,26 @@ const i18n = createI18n({
},
auth: {
login: 'Log Masuk',
register: 'Daftar Akaun',
logout: 'Log Keluar',
username: 'Nama Pengguna',
password: 'Kata Laluan',
invite_code: 'Kod Jemputan',
optional: 'Pilihan',
captcha_placeholder: 'Captcha',
captcha_refresh: 'Klik untuk muat semula',
captcha_wrong: 'Kod pengesahan salah',
captcha_wrong: 'Sila lengkapkan pengesahan gelongsor',
slide_to_verify: 'Gelongsor untuk mengesahkan',
click_to_verify: 'Klik untuk mengesahkan',
verified: 'Disahkan',
login_required: 'Sila Log Masuk',
login_hint: 'Log masuk untuk bertaruh dan akses lebih banyak ciri',
go_login: 'Pergi log masuk',
continue_browsing: 'Teruskan melayari',
go_register: 'Tiada akaun? Daftar sekarang',
have_account: 'Sudah ada akaun? Log masuk',
register_btn: 'Daftar',
register_failed: 'Pendaftaran gagal, sila cuba lagi',
continue_browsing: 'Langkau log masuk',
username_placeholder: 'Masukkan nama pengguna',
password_placeholder: 'Masukkan kata laluan',
login_btn: 'Log Masuk',
@@ -805,6 +907,42 @@ const i18n = createI18n({
ref_cashback: 'Batch rebat',
detail_cashback_link: 'Lihat butiran rebat',
},
recharge: {
title: 'Topup',
history: 'Sejarah',
history_title: 'Sejarah Topup',
bank_transfer: 'Pindahan Bank',
bank_name: 'Nama Bank',
account_holder: 'Pemegang Akaun',
account_number: 'Nombor Akaun',
usdt_address: 'Alamat USDT',
amount_label: 'Jumlah',
amount_placeholder: 'Masukkan jumlah topup',
screenshot_label: 'Muat Naik Screenshot',
upload_hint: 'Klik untuk muat naik (maks 5MB)',
compressing: 'Memampat',
submit: 'Hantar',
submitting: 'Menghantar',
submitted: 'Topup Dihantar',
pending_review: 'Admin sedang menyemak, sila tunggu',
new_recharge: 'Topup Baru',
no_methods: 'Tiada kaedah pembayaran tersedia',
select_method: 'Sila pilih kaedah pembayaran',
enter_amount: 'Sila masukkan jumlah',
upload_screenshot: 'Sila muat naik screenshot',
submit_failed: 'Gagal, sila cuba lagi',
file_must_be_image: 'Sila muat naik fail imej',
file_too_large: 'Fail melebihi 10MB',
status_pending: 'Menunggu',
status_approved: 'Diluluskan',
status_rejected: 'Ditolak',
no_orders: 'Tiada rekod topup',
credited: 'Dikreditkan',
reject_reason: 'Sebab penolakan',
apply_time: 'Masa permohonan',
review_time: 'Masa semakan',
remark: 'Catatan',
},
cashback: {
title: 'Butiran Rebat',
list_title: 'Butiran pembayaran',