coder-common-thin-frontend/src/service/api/system/menu/index.ts
Leo a83a32b969 feat(api): 完善系统管理模块的API接口和类型定义
- 新增角色管理相关API接口和类型定义
- 新增菜单权限管理相关API接口
- 完善用户角色分配API接口
- 优化路由处理工具函数
- 统一API响应类型定义
- 为弹框组件集成提供完整的数据支持
2025-07-06 18:31:45 +08:00

48 lines
1.5 KiB
TypeScript

import { request } from '../../../http'
// 菜单信息类型
export interface MenuVo {
menuId: number
menuName: string
parentId: number
menuType: string
isSpread?: string
auth?: string // 权限标识
perms?: string // 权限标识的别名
permission?: string // 权限标识的另一个别名
}
// 菜单权限数据类型
export interface MenuPermissionData {
menuList: MenuVo[]
spreadList: number[]
}
// 菜单路由管理相关API
// 获取用户动态路由信息
export function getUserRoutes() {
return request.Get<Service.ResponseResult<AppRoute.RowRoute[]>>('/coder/sysMenu/listRouters')
}
// 查询所有正常的菜单和展开节点(角色分配菜单权限使用)
export function getMenuPermissionData() {
return request.Get<Service.ResponseResult<MenuPermissionData>>('/coder/sysMenu/listMenuNormal')
}
// 根据角色ID查询菜单权限ID列表
export function getMenuIdsByRoleId(roleId: number) {
return request.Get<Service.ResponseResult<number[]>>(`/coder/sysMenu/listMenuIdsByRoleId/${roleId}`)
}
// 保存角色和菜单权限之间的关系
export function saveRoleMenuPermission(roleId: number, menuIds: number[]) {
const menuIdsStr = menuIds.length > 0 ? menuIds.join(',') : '-1'
return request.Post<Service.ResponseResult<string>>(`/coder/sysMenu/saveRoleMenu/${roleId}/${menuIdsStr}`)
}
// 兼容性导出 - 保持原有函数名以确保向后兼容
export const fetchUserRoutes = getUserRoutes
export const fetchMenuPermissionData = getMenuPermissionData
export const fetchMenuIdsByRoleId = getMenuIdsByRoleId