feat: add finance logs page, banner upload, and admin withdraw fix
## 财务流水 - 新增 FinanceLogs.vue(/finance-logs):额度流水 + 上下分流水双 Tab,支持时间/代理/玩家/操作人筛选与分页 - 管理员与代理共用页面,API 按角色自动切换(/admin/* 或 /agent/*) - 侧栏「财务流水」替代原「额度流水」;代理侧栏同步新增入口 - /agent-credit-transactions 重定向至 /finance-logs?tab=credit,旧链接仍可用 - 后端:新增 GET /admin/wallet/transfer-transactions;增强额度/上下分列表筛选 - 代理端:新增 GET /agent/credit-transactions;GET /agent/wallet-transactions 支持分页与筛选 - 修复:管理员下分改为 adminWithdrawFromPlayer(),下分后重算上级代理 usedCredit ## 内容管理 Banner - Contents.vue:各语言 Banner 支持本地上传、媒体库选择、手动填 URL(≤5MB) - vite 开发代理 /uploads;生产 nginx 反代 /uploads/ 至 API ## 玩家端 Banner - BannerCarousel:外链无协议时自动补 https:// - defaultBanner:API 加载中不闪默认图,仅空列表时展示默认 Banner ## 其他 - AgentManager:查看额度流水链接改为 /finance-logs - i18n:finance.*、nav.finance_logs、content.upload.*(中/英/马来) 未纳入本次提交:.pnpm-store/、release/ 部署包、uploads/banners/ 下测试上传图片 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -147,6 +147,21 @@ export const adminPagesMs: Record<string, string> = {
|
||||
'agent.credit_tx.filter_agent_id_ph': 'ID pengguna',
|
||||
'agent.credit_tx.col.operator': 'Operator',
|
||||
'agent.credit_tx.view_all': 'Lihat semua lejar kredit',
|
||||
'finance.tab.credit': 'Lejar kredit',
|
||||
'finance.tab.transfer': 'Lejar pemindahan',
|
||||
'finance.filter.date_range': 'Julat tarikh',
|
||||
'finance.filter.player_ph': 'Nama pengguna pemain',
|
||||
'finance.filter.parent_agent_ph': 'Nama/ID ejen induk',
|
||||
'finance.filter.operator_ph': 'Nama pengguna operator',
|
||||
'finance.col.player': 'Pemain',
|
||||
'finance.col.parent_agent': 'Ejen induk',
|
||||
'finance.col.tx_id': 'ID transaksi',
|
||||
'finance.col.balance_change': 'Perubahan baki',
|
||||
'finance.col.balance_before': 'Baki sebelum',
|
||||
'finance.col.balance_after': 'Baki selepas',
|
||||
'finance.tx.deposit': 'Deposit',
|
||||
'finance.tx.withdraw': 'Pengeluaran',
|
||||
'finance.tx.request_id': 'ID permintaan',
|
||||
'agent.col.no_records': 'Tiada rekod',
|
||||
'agent.btn.confirm_adjust': 'Sahkan',
|
||||
'agent.field.select_user': 'Pilih pengguna',
|
||||
@@ -535,6 +550,16 @@ export const adminPagesMs: Record<string, string> = {
|
||||
'content.field.body': 'Kandungan',
|
||||
'content.field.announce_text': 'Teks ticker',
|
||||
'content.field.image_url': 'URL imej',
|
||||
'content.upload.upload_btn': 'Muat naik imej',
|
||||
'content.upload.uploading': 'Memuat naik…',
|
||||
'content.upload.success': 'Imej berjaya dimuat naik',
|
||||
'content.upload.failed': 'Gagal memuat naik',
|
||||
'content.upload.size_error': 'Imej mestilah di bawah 5 MB',
|
||||
'content.upload.remove': 'Buang imej',
|
||||
'content.upload.pick_media': 'Pilih dari pustaka',
|
||||
'content.upload.pick_media_title': 'Pilih Imej Banner',
|
||||
'content.upload.no_media': 'Tiada imej banner dalam pustaka — muat naik dahulu',
|
||||
'content.upload.url_placeholder': 'Atau tampal URL imej',
|
||||
'content.link.none': 'Tiada pautan',
|
||||
'content.locale.zh-CN': 'Cina Ringkas',
|
||||
'content.locale.en-US': 'English',
|
||||
|
||||
Reference in New Issue
Block a user