sync(theme-2): 同步 main Admin 菜单权限修复与 i18n

This commit is contained in:
2026-06-22 16:23:10 +08:00
parent 27dc9eb3b0
commit fa8d3fbf0c
8 changed files with 682 additions and 18 deletions

View File

@@ -388,6 +388,42 @@ const adminPages: Record<string, string> = {
'audit.action.CREATE_STAFF': 'Create staff account',
'audit.action.UPDATE_STAFF': 'Edit staff account',
'audit.action.DELETE_STAFF': 'Delete staff account',
'audit.action.DELETE_PLAYER': 'Delete player',
'audit.action.PURGE_UNUSED_FILES': 'Purge unused media',
'audit.action.FORGOT_PASSWORD_RESET': 'Player forgot-password reset',
'audit.action.CREATE_LEAGUE': 'Create league',
'audit.action.UPDATE_LEAGUE': 'Update league',
'audit.action.ARCHIVE_LEAGUE': 'Archive league',
'audit.action.CREATE_TEAM': 'Create team',
'audit.action.CREATE_MATCH': 'Create match',
'audit.action.UPDATE_MATCH': 'Update match',
'audit.action.DELETE_MATCH': 'Delete match',
'audit.action.ARCHIVE_MATCH': 'Archive match',
'audit.action.IMPORT_MATCHES': 'Import matches',
'audit.action.PUBLISH_MATCH': 'Publish match',
'audit.action.UNPUBLISH_MATCH': 'Unpublish match',
'audit.action.CLOSE_MATCH': 'Close match',
'audit.action.REOPEN_MATCH': 'Reopen match',
'audit.action.CANCEL_MATCH': 'Cancel match',
'audit.action.CREATE_MARKET_TEMPLATE': 'Create market template',
'audit.action.UPDATE_MARKET_TEMPLATE': 'Update market template',
'audit.action.DUPLICATE_MARKET_TEMPLATE': 'Duplicate market template',
'audit.action.SET_DEFAULT_MARKET_TEMPLATE': 'Set default market template',
'audit.action.GENERATE_MATCH_MARKETS': 'Generate match markets',
'audit.action.APPLY_MARKET_TEMPLATE': 'Apply market template',
'audit.action.BULK_SAVE_MATCH_MARKETS': 'Bulk save match markets',
'audit.action.UPDATE_MATCH_ODDS': 'Update match odds',
'audit.action.UPDATE_MARKET': 'Update market',
'audit.action.UPDATE_SELECTION': 'Update selection',
'audit.action.CREATE_OUTRIGHT': 'Create outright',
'audit.action.UPDATE_OUTRIGHT': 'Update outright',
'audit.action.UPDATE_OUTRIGHT_ODDS': 'Update outright odds',
'audit.action.ADD_OUTRIGHT_SELECTION': 'Add outright selection',
'audit.action.BATCH_ADD_OUTRIGHT_SELECTIONS': 'Batch add outright selections',
'audit.action.UPDATE_OUTRIGHT_SELECTION': 'Update outright selection',
'audit.action.REMOVE_OUTRIGHT_SELECTION': 'Remove outright selection',
'audit.action.IMPORT_WC2026_OUTRIGHT': 'Import WC2026 outright',
'audit.module.CATALOG': 'Match catalog',
'audit.module.USERS': 'Players',
'audit.module.AGENTS': 'Agents',
'audit.module.SYSTEM': 'System',
@@ -395,6 +431,8 @@ const adminPages: Record<string, string> = {
'audit.module.SETTLEMENT': 'Settlement',
'audit.module.CASHBACK': 'Cashback',
'audit.module.STAFF': 'Staff',
'audit.module.MEDIA': 'Media library',
'audit.module.identity': 'Identity',
'cashback.start_date': 'Start date',
'cashback.end_date': 'End date',

View File

@@ -389,6 +389,42 @@ const adminPages: Record<string, string> = {
'audit.action.CREATE_STAFF': '创建后台账号',
'audit.action.UPDATE_STAFF': '编辑后台账号',
'audit.action.DELETE_STAFF': '删除后台账号',
'audit.action.DELETE_PLAYER': '删除玩家',
'audit.action.PURGE_UNUSED_FILES': '清理未引用媒体',
'audit.action.FORGOT_PASSWORD_RESET': '玩家找回密码',
'audit.action.CREATE_LEAGUE': '新建联赛',
'audit.action.UPDATE_LEAGUE': '更新联赛',
'audit.action.ARCHIVE_LEAGUE': '归档联赛',
'audit.action.CREATE_TEAM': '新建球队',
'audit.action.CREATE_MATCH': '新建赛事',
'audit.action.UPDATE_MATCH': '更新赛事',
'audit.action.DELETE_MATCH': '删除赛事',
'audit.action.ARCHIVE_MATCH': '归档赛事',
'audit.action.IMPORT_MATCHES': '批量导入赛事',
'audit.action.PUBLISH_MATCH': '发布赛事',
'audit.action.UNPUBLISH_MATCH': '下架赛事',
'audit.action.CLOSE_MATCH': '封盘赛事',
'audit.action.REOPEN_MATCH': '重新开放赛事',
'audit.action.CANCEL_MATCH': '取消赛事',
'audit.action.CREATE_MARKET_TEMPLATE': '新建盘口模板',
'audit.action.UPDATE_MARKET_TEMPLATE': '更新盘口模板',
'audit.action.DUPLICATE_MARKET_TEMPLATE': '复制盘口模板',
'audit.action.SET_DEFAULT_MARKET_TEMPLATE': '设为默认盘口模板',
'audit.action.GENERATE_MATCH_MARKETS': '生成赛事盘口',
'audit.action.APPLY_MARKET_TEMPLATE': '应用盘口模板',
'audit.action.BULK_SAVE_MATCH_MARKETS': '批量保存赛事盘口',
'audit.action.UPDATE_MATCH_ODDS': '更新赛事赔率',
'audit.action.UPDATE_MARKET': '更新盘口',
'audit.action.UPDATE_SELECTION': '更新选项',
'audit.action.CREATE_OUTRIGHT': '新建冠军盘',
'audit.action.UPDATE_OUTRIGHT': '更新冠军盘',
'audit.action.UPDATE_OUTRIGHT_ODDS': '更新冠军盘赔率',
'audit.action.ADD_OUTRIGHT_SELECTION': '添加冠军盘选项',
'audit.action.BATCH_ADD_OUTRIGHT_SELECTIONS': '批量添加冠军盘选项',
'audit.action.UPDATE_OUTRIGHT_SELECTION': '更新冠军盘选项',
'audit.action.REMOVE_OUTRIGHT_SELECTION': '移除冠军盘选项',
'audit.action.IMPORT_WC2026_OUTRIGHT': '导入世界杯冠军盘',
'audit.module.CATALOG': '赛事管理',
'audit.module.USERS': '玩家',
'audit.module.AGENTS': '代理',
'audit.module.SYSTEM': '系统',
@@ -396,6 +432,8 @@ const adminPages: Record<string, string> = {
'audit.module.SETTLEMENT': '结算',
'audit.module.CASHBACK': '返水',
'audit.module.STAFF': '后台账号',
'audit.module.MEDIA': '媒体库',
'audit.module.identity': '身份认证',
'cashback.start_date': '开始日期',
'cashback.end_date': '结束日期',

View File

@@ -74,6 +74,7 @@ export async function hydrateStaffSession(): Promise<boolean> {
maxAgentLevel: typeof raw.maxAgentLevel === 'number' ? raw.maxAgentLevel : null,
canManageSubAgents: raw.canManageSubAgents === true,
inviteCode: raw.inviteCode ?? null,
visibleMenus: raw.visibleMenus ?? null,
});
lastHydrateAt = Date.now();
return true;

View File

@@ -25,9 +25,6 @@ export default {
banner_next: 'Next slide',
banner_slide: 'Slide {n}',
banner_fallback: 'Banner',
bento_desc: 'Explore hot events worldwide',
view_all_matches: 'View all matches',
view_bet_history: 'View bet history',
},
announcements: {
title: 'Announcements',
@@ -127,6 +124,9 @@ export default {
stats_stake: 'Total Stake',
stats_return: 'Total Return',
cashbacked: 'Cashbacked',
profit: 'Profit',
return_incl_stake: 'Return {amount} (incl. stake)',
stake_to_return: '{stake} × {odds} = {amount}',
},
auth:
{ login: 'Login',

View File

@@ -31,9 +31,6 @@ export default {
banner_next: 'Slaid seterusnya',
banner_slide: 'Slaid {n}',
banner_fallback: 'Banner',
bento_desc: 'Teroka acara sukan hangat',
view_all_matches: 'Lihat semua perlawanan',
view_bet_history: 'Lihat sejarah pertaruhan',
},
announcements: {
title: 'Pusat Pengumuman',
@@ -133,6 +130,9 @@ export default {
stats_stake: 'Jumlah Taruhan',
stats_return: 'Jumlah Pulangan',
cashbacked: 'Rebat dibayar',
profit: 'Keuntungan',
return_incl_stake: 'Pulangan {amount} (termasuk jumlah)',
stake_to_return: '{stake} × {odds} = {amount}',
},
auth: {
login: 'Log Masuk',

View File

@@ -25,9 +25,6 @@ export default {
banner_next: '下一张',
banner_slide: '第 {n} 张',
banner_fallback: 'Banner',
bento_desc: '探索全球热门体育赛事',
view_all_matches: '查看全部赛事',
view_bet_history: '查看历史投注',
},
announcements: {
title: '公告中心',
@@ -127,6 +124,9 @@ export default {
stats_stake: '总投注额',
stats_return: '总回报',
cashbacked: '已回水',
profit: '净赢',
return_incl_stake: '回报 {amount}(含本金)',
stake_to_return: '{stake} × {odds} = {amount}',
},
auth: {
login: '登录',