73 lines
2.3 KiB
TypeScript
73 lines
2.3 KiB
TypeScript
|
|
/**
|
||
|
|
* 角色管理 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 });
|
||
|
|
}
|