import { request } from '@eciol/request'; import { replaceVariables, resolveOptions } from '@eciol/shared'; import type { MenuService } from './typing'; enum Api { GetRoleOptions = '/api/System/role', GetMenuTreeOptions = '/api/System/role/{roleId}/menu', ConfigMenu = '/api/System/role/{roleId}/menu', } /** * 获取角色列表 */ async function getRoleOptions() { const roleOptions = await request.get({ url: Api.GetRoleOptions, }); return resolveOptions(roleOptions, { labelField: 'enumName', valueField: 'enumValue', }); } /** * 获取菜单树 */ function getMenuTreeOptions(data) { return request.get( { url: replaceVariables(Api.GetMenuTreeOptions, { roleId: data.roleId }), }, { showLoading: true, }, ); } /** * 配置菜单 */ function configMenu(data: MenuService.ConfigMenuParams) { return request.post( { url: replaceVariables(Api.ConfigMenu, { roleId: data.roleId }), data: data.menuIds, }, { showLoading: true, successMessageMode: 'message', operationType: 'OPERATION', }, ); } export { getRoleOptions, getMenuTreeOptions, configMenu }; export type { MenuService } from './typing';