import { rpcOrNull, rpcOrValue, rpcOrEmptyArray } from '@/services/analytics/rpc.uts' /** * 管理员模型 */ export type AdminUser = { id: string username: string real_name: string | null role: string is_active: boolean last_login_at: string | null last_login_ip: string | null roles: string[] | null } /** * 角色模型 */ export type AdminRole = { id: string name: string code: string description: string | null is_active: boolean created_at: string updated_at: string } /** * 权限/菜单模型 */ export type AdminPermission = { id: string parent_id: string | null name: string code: string type: string path: string | null icon: string | null sort_order: number is_visible: boolean created_at: string updated_at: string } /** * 获取管理员列表 */ export async function fetchAdminPage( page: number, pageSize: number, search: string | null = null, status: number | null = null ): Promise<{ total: number, items: Array }> { const res = await rpcOrNull('rpc_admin_get_admin_list', { p_page: page, p_page_size: pageSize, p_search: search, p_status: status } as UTSJSONObject) if (res == null) return { total: 0, items: [] as Array } return { total: (res as any).total as number, items: (res as any).items as Array } } /** * 获取角色列表 */ export async function fetchRolePage( page: number, pageSize: number, search: string | null = null ): Promise<{ total: number, items: Array }> { const res = await rpcOrNull('rpc_admin_get_role_list', { p_page: page, p_page_size: pageSize, p_search: search } as UTSJSONObject) if (res == null) return { total: 0, items: [] as Array } return { total: (res as any).total as number, items: (res as any).items as Array } } /** * 保存角色 */ export async function saveRole(role: any): Promise { const res = await rpcOrValue('rpc_admin_save_role', { p_id: role.id, p_name: role.name, p_code: role.code, p_description: role.description, p_is_active: role.is_active } as any) return res != null ? String(res) : null } /** * 删除角色 */ export async function deleteRole(id: string): Promise { const ok = await rpcOrValue('rpc_admin_delete_role', { p_id: id } as any) return ok === true } /** * 获取权限菜单树列表 */ export async function fetchPermissionList(): Promise> { return await rpcOrEmptyArray('rpc_admin_get_permission_list', {} as any) as Array } /** * 保存权限菜单 */ export async function savePermission(permission: any): Promise { const res = await rpcOrValue('rpc_admin_save_permission', { p_id: permission.id, p_parent_id: permission.parent_id, p_name: permission.name, p_code: permission.code, p_type: permission.type, p_path: permission.path, p_icon: permission.icon, p_sort_order: permission.sort_order, p_is_visible: permission.is_visible } as any) return res != null ? String(res) : null } /** * 删除权限菜单 */ export async function deletePermission(id: string): Promise { const ok = await rpcOrValue('rpc_admin_delete_permission', { p_id: id } as any) return ok === true }