feat(admin, i18n): enhance admin dashboard and user management with new features and translations

Added the ability to filter admin dashboard data by site code and agent node ID, improving data retrieval capabilities. Introduced new functions for fetching dashboard data based on these parameters. Updated the admin users and roles management components to reflect these changes. Enhanced multi-language support by adding new translations for agent management and permission levels in English, Nepali, and Chinese, ensuring a consistent user experience across the admin interface.
This commit is contained in:
2026-06-03 10:07:51 +08:00
parent b15e377187
commit ce27a3ec8a
66 changed files with 1361 additions and 720 deletions

View File

@@ -8,12 +8,29 @@ import type {
} from "@/types/api/admin-dashboard-analytics";
const A = `/admin`;
const DASHBOARD_SCOPE_SITE_PARAM = "site_code";
const DASHBOARD_SCOPE_AGENT_PARAM = "agent_node_id";
/** 首页仪表盘聚合(大厅 + 当期财务/风控/异常转账等,按账号权限填充各块) */
export async function getAdminDashboard(): Promise<AdminDashboardData> {
return adminRequest.get<AdminDashboardData>(`${A}/dashboard`);
}
export async function getAdminDashboardByScope(scope: {
site_code?: string;
agent_node_id?: number;
}): Promise<AdminDashboardData> {
const params = new URLSearchParams();
if (scope.site_code && scope.site_code.trim() !== "") {
params.set(DASHBOARD_SCOPE_SITE_PARAM, scope.site_code.trim());
}
if (scope.agent_node_id && Number.isInteger(scope.agent_node_id) && scope.agent_node_id > 0) {
params.set(DASHBOARD_SCOPE_AGENT_PARAM, String(scope.agent_node_id));
}
const qs = params.toString();
return adminRequest.get<AdminDashboardData>(`${A}/dashboard${qs ? `?${qs}` : ""}`);
}
/** 仪表盘可筛选分析(区间汇总、日趋势、玩法拆解) */
export async function getAdminDashboardAnalytics(
query: AdminDashboardAnalyticsQuery = {},
@@ -34,6 +51,12 @@ export async function getAdminDashboardAnalytics(
if (query.play_code) {
params.set("play_code", query.play_code);
}
if (query.site_code && query.site_code.trim() !== "") {
params.set(DASHBOARD_SCOPE_SITE_PARAM, query.site_code.trim());
}
if (query.agent_node_id && Number.isInteger(query.agent_node_id) && query.agent_node_id > 0) {
params.set(DASHBOARD_SCOPE_AGENT_PARAM, String(query.agent_node_id));
}
const qs = params.toString();
return adminRequest.get<AdminDashboardAnalyticsData>(

View File

@@ -12,7 +12,6 @@ import type {
AdminUserDeleteResult,
AdminUserPermissionListData,
AdminUserPermissionRow,
AdminUserPermissionSyncData,
AdminUserRoleSyncData,
AdminUserUpdatePayload,
} from "@/types/api/admin-user";
@@ -80,16 +79,6 @@ export async function putAdminRolePermissions(
});
}
export async function putAdminUserPermissions(
adminUserId: number,
permissionSlugs: string[],
): Promise<AdminUserPermissionSyncData> {
return adminRequest.put<AdminUserPermissionSyncData>(
`${A}/admin-users/${adminUserId}/permissions`,
{ permission_slugs: permissionSlugs },
);
}
export async function putAdminUserRoles(
adminUserId: number,
roleSlugs: string[],