feat: 对接角色权限与操作日志相关接口字段

This commit is contained in:
ZhuRui
2026-07-30 16:57:22 +08:00
parent 7276425abf
commit 1638643811
16 changed files with 930 additions and 533 deletions
+72
View File
@@ -0,0 +1,72 @@
/**
* 角色管理 API
*/
import { get, post } from '@/utils/request';
import { USE_MOCK, MOCK_DELAY } from '@/config/mock';
import { buildMockRoleListPage } from '@/config/mock/roleList';
import { buildMockRoleUsageUserPage } from '@/config/mock/roleUsageUser';
import { buildMockPermissionTree } from '@/config/mock/permissionTree';
import type {
RoleListQueryParams,
RoleUsageUserQueryParams,
TournamentAdminRolePageVO,
RoleUsageUserVO,
PermissionTreeNode,
PageData,
ApiResult,
} from './types';
export type {
TournamentAdminRolePageVO,
RoleUsageUserVO,
RoleListQueryParams,
RoleUsageUserQueryParams,
PermissionTreeNode,
PageData,
ApiResult,
} from './types';
const delay = (ms: number) => new Promise<void>((r) => setTimeout(r, ms));
/** GET /sys/role/page — 角色列表分页 */
export async function getRoleList(
params: RoleListQueryParams,
): Promise<ApiResult<PageData<TournamentAdminRolePageVO>>> {
if (USE_MOCK) {
await delay(MOCK_DELAY);
const page = Number(params.page) || 1;
const limit = Number(params.limit) || 10;
return { code: 200, msg: 'success', data: buildMockRoleListPage(page, limit) };
}
return get('/sys/role/page', params as Record<string, any>);
}
/** GET /sys/role/usageUserPage — 角色下用户列表分页 */
export async function getRoleUsageUserList(
params: RoleUsageUserQueryParams,
): Promise<ApiResult<PageData<RoleUsageUserVO>>> {
if (USE_MOCK) {
await delay(MOCK_DELAY);
const page = Number(params.page) || 1;
const limit = Number(params.limit) || 10;
return { code: 200, msg: 'success', data: buildMockRoleUsageUserPage(page, limit) };
}
return get('/sys/role/usageUserPage', params as Record<string, any>);
}
/** GET /admin/sys/role/permissionList?roleId=xxx — 角色权限树 */
export async function getPermissionTree(
roleId: number | string,
): Promise<ApiResult<PermissionTreeNode[]>> {
if (USE_MOCK) {
await delay(MOCK_DELAY);
const id = Number(roleId) || 0;
return { code: 200, msg: 'success', data: buildMockPermissionTree(id) };
}
return get('/admin/sys/role/permissionList', { roleId: String(roleId) });
}
/** POST /admin/sys/role/del — 删除角色 */
export async function deleteRole(id: number): Promise<ApiResult<null>> {
return post('/admin/sys/role/del', { id });
}
+66
View File
@@ -0,0 +1,66 @@
/**
* 角色管理 — 类型定义
* 对应 OpenAPI: /admin/sys/role/*
*/
/** 角色列表项 */
export interface TournamentAdminRolePageVO {
/** 角色ID */
roleId: number;
/** 角色名称 */
roleName: string;
/** 角色用户数量 */
userCount: number;
/** 角色创建时间 */
createTime: string;
}
/** 角色列表查询参数 */
export interface RoleListQueryParams {
page?: string;
limit?: string;
/** 角色名称(模糊搜索) */
name?: string;
}
/** 角色下用户列表项 */
export interface RoleUsageUserVO {
realName: string;
phone: string;
createTime: string;
/** 状态: 0=停用、1=正常 */
status: number;
}
/** 角色下用户列表查询参数 */
export interface RoleUsageUserQueryParams {
page?: string;
limit?: string;
/** 用户姓名或手机号 */
text?: string;
roleId?: string;
}
export interface PageData<T> {
total: number;
list: T[];
}
export interface ApiResult<T> {
code: number;
msg: string;
data: T;
}
/** 权限树节点(后端 /admin/sys/role/permissionList 返回) */
export interface PermissionTreeNode {
/** 主键 */
id: number;
/** 上级ID */
pid: number;
/** 标题 */
name: string;
/** 是否选中:true=是,false=否,null=空(仅叶节点有意义,父节点遵循级联逻辑) */
selected: boolean | null;
/** 子节点 */
children?: PermissionTreeNode[];
}