feat: 赛事管理操作日志与审计页体验优化

- API 为赛事/联赛/盘口/赔率/冠军盘写操作写入 CATALOG 审计日志,并新增 catalog-audit-logs 接口

- 管理端将赛事日志独立至赛事管理子页,通用操作日志排除 CATALOG 模块

- 统一赛事子页 list-chrome 布局与面包屑;修复操作日志页表格滚动与分页不可见问题

- 补充中英文/马来语文案及 UAT 验收项 SEC013/SEC014

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-16 10:00:24 +08:00
parent 567ec9ec8a
commit 2a8b8415e7
17 changed files with 850 additions and 216 deletions

View File

@@ -332,7 +332,7 @@ export const adminPagesMs: Record<string, string> = {
'bet.col.line': 'Garisan',
'bet.col.result': 'Keputusan',
'audit.module_ph': 'cth. USERS, AGENTS',
'audit.module_ph': 'cth. USERS, SETTLEMENT',
'audit.col.time': 'Masa',
'audit.col.operator': 'Pengendali',
'audit.col.action': 'Tindakan',
@@ -360,6 +360,39 @@ export const adminPagesMs: Record<string, string> = {
'audit.action.UPDATE_STAFF': 'Kemas kini kakitangan',
'audit.action.PURGE_UNUSED_FILES': 'Padam media tidak digunakan',
'audit.action.FORGOT_PASSWORD_RESET': 'Pemain set semula kata laluan',
'audit.action.CREATE_LEAGUE': 'Cipta liga',
'audit.action.UPDATE_LEAGUE': 'Kemas kini liga',
'audit.action.ARCHIVE_LEAGUE': 'Arkib liga',
'audit.action.CREATE_TEAM': 'Cipta pasukan',
'audit.action.CREATE_MATCH': 'Cipta perlawanan',
'audit.action.UPDATE_MATCH': 'Kemas kini perlawanan',
'audit.action.DELETE_MATCH': 'Padam perlawanan',
'audit.action.ARCHIVE_MATCH': 'Arkib perlawanan',
'audit.action.IMPORT_MATCHES': 'Import perlawanan',
'audit.action.PUBLISH_MATCH': 'Terbit perlawanan',
'audit.action.UNPUBLISH_MATCH': 'Nyahterbit perlawanan',
'audit.action.CLOSE_MATCH': 'Tutup perlawanan',
'audit.action.REOPEN_MATCH': 'Buka semula perlawanan',
'audit.action.CANCEL_MATCH': 'Batalkan perlawanan',
'audit.action.CREATE_MARKET_TEMPLATE': 'Cipta templat pasaran',
'audit.action.UPDATE_MARKET_TEMPLATE': 'Kemas kini templat pasaran',
'audit.action.DUPLICATE_MARKET_TEMPLATE': 'Salin templat pasaran',
'audit.action.SET_DEFAULT_MARKET_TEMPLATE': 'Tetapkan templat lalai',
'audit.action.GENERATE_MATCH_MARKETS': 'Jana pasaran perlawanan',
'audit.action.APPLY_MARKET_TEMPLATE': 'Guna templat pasaran',
'audit.action.BULK_SAVE_MATCH_MARKETS': 'Simpan pasaran pukal',
'audit.action.UPDATE_MATCH_ODDS': 'Kemas kini odds perlawanan',
'audit.action.UPDATE_MARKET': 'Kemas kini pasaran',
'audit.action.UPDATE_SELECTION': 'Kemas kini pilihan',
'audit.action.CREATE_OUTRIGHT': 'Cipta outright',
'audit.action.UPDATE_OUTRIGHT': 'Kemas kini outright',
'audit.action.UPDATE_OUTRIGHT_ODDS': 'Kemas kini odds outright',
'audit.action.ADD_OUTRIGHT_SELECTION': 'Tambah pilihan outright',
'audit.action.BATCH_ADD_OUTRIGHT_SELECTIONS': 'Tambah pilihan outright pukal',
'audit.action.UPDATE_OUTRIGHT_SELECTION': 'Kemas kini pilihan outright',
'audit.action.REMOVE_OUTRIGHT_SELECTION': 'Buang pilihan outright',
'audit.action.IMPORT_WC2026_OUTRIGHT': 'Import outright WC2026',
'audit.module.CATALOG': 'Pengurusan perlawanan',
'audit.module.USERS': 'Pemain',
'audit.module.AGENTS': 'Ejen',
'audit.module.SYSTEM': 'Sistem',