feat(admin,api,player): 代理层级管理、额度上下分与玩家钱包详情
新增代理管理器与二级代理体系,完善信用额度/上下分上下文与冻结策略;代理端玩家与子代理管理增强;玩家端新增钱包详情页与交易筛选优化。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -17,19 +17,17 @@ const isMobileNav = ref(false);
|
||||
const adminMenus = computed(() => [
|
||||
{ path: '/', label: t('nav.dashboard') },
|
||||
{ path: '/matches', label: t('nav.matches'), matchPrefix: true },
|
||||
{ path: '/bets', label: t('nav.bets') },
|
||||
{ path: '/users', label: t('nav.users') },
|
||||
{ path: '/agents', label: t('nav.agents') },
|
||||
{ path: '/users', label: t('nav.agents_players') },
|
||||
{ path: '/cashback', label: t('nav.cashback') },
|
||||
{ path: '/bets', label: t('nav.bets') },
|
||||
{ path: '/contents', label: t('nav.contents') },
|
||||
{ path: '/audit', label: t('nav.audit') },
|
||||
]);
|
||||
|
||||
const agentMenus = computed(() => [
|
||||
{ path: '/', label: t('nav.dashboard') },
|
||||
{ path: '/my-players', label: t('nav.players') },
|
||||
{ path: '/my-players', label: t('nav.agents_players') },
|
||||
{ path: '/my-bets', label: t('nav.myBets') },
|
||||
{ path: '/sub-agents', label: t('nav.subAgents') },
|
||||
]);
|
||||
|
||||
const menus = computed(() => (auth.isAdmin.value ? adminMenus.value : agentMenus.value));
|
||||
@@ -55,6 +53,13 @@ const currentLabel = computed(() => {
|
||||
|
||||
const topbarCrumbs = computed(() => resolveAdminBreadcrumb(route.path, t));
|
||||
|
||||
const roleLabel = computed(() => {
|
||||
if (auth.isAdmin.value) return t('role.admin');
|
||||
if (auth.isTier1Agent.value) return t('role.tier1_agent');
|
||||
if (auth.isTier2Agent.value) return t('role.tier2_agent');
|
||||
return t('role.agent');
|
||||
});
|
||||
|
||||
const userInitial = computed(() =>
|
||||
(auth.user?.username ?? '').charAt(0).toUpperCase()
|
||||
);
|
||||
@@ -171,7 +176,7 @@ watch(() => route.path, () => {
|
||||
<div class="avatar">{{ userInitial }}</div>
|
||||
<div class="user-info">
|
||||
<span class="user-name">{{ auth.user?.username }}</span>
|
||||
<span class="user-role">{{ auth.isAdmin ? t('role.admin') : t('role.agent') }}</span>
|
||||
<span class="user-role">{{ roleLabel }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<AdminLocaleSwitcher />
|
||||
|
||||
Reference in New Issue
Block a user