fix(api): 修复菜单权限分配接口的雪花ID精度丢失问题

- 将菜单权限分配接口从URL参数改为请求体参数,避免URL过长
- 修改saveRoleMenuPermission函数,保持字符串格式避免精度丢失
- 更新RoleMenuPermissionBo类型定义,使用string类型处理大数字ID
- 解决雪花ID在前端Number转换时精度丢失的问题

影响文件:
- src/service/api/system/menu/index.ts
- src/service/api/system/menu/types.ts
This commit is contained in:
Leo 2025-07-09 16:44:56 +08:00
parent 0fa1451e27
commit f5b06cb9b9
2 changed files with 15 additions and 2 deletions

View File

@ -16,6 +16,7 @@ export type {
MenuQueryBo, MenuQueryBo,
MenuRouterBo, MenuRouterBo,
MenuVo, MenuVo,
RoleMenuPermissionBo,
} from './types' } from './types'
// 兼容性类型别名 // 兼容性类型别名
@ -120,8 +121,14 @@ export function getMenuIdsByRoleId(roleId: string) {
* *
*/ */
export function saveRoleMenuPermission(roleId: string, menuIds: string[]) { export function saveRoleMenuPermission(roleId: string, menuIds: string[]) {
const menuIdsStr = menuIds.length > 0 ? menuIds.join(',') : '-1' // 空数组时传递 ["-1"] 表示取消所有权限
return request.Post<Service.ResponseResult<string>>(`/coder/sysMenu/saveRoleMenu/${roleId}/${menuIdsStr}`) // 保持字符串格式避免精度丢失
const menuIdsStr = menuIds.length > 0 ? menuIds : ['-1']
return request.Post<Service.ResponseResult<string>>('/coder/sysMenu/saveRoleMenu', {
roleId,
menuIds: menuIdsStr,
})
} }
// 兼容性导出 - 保持原有函数名以确保向后兼容 // 兼容性导出 - 保持原有函数名以确保向后兼容

View File

@ -95,3 +95,9 @@ export interface MenuNormalResponse {
menuList: MenuVo[] menuList: MenuVo[]
spreadList: string[] // 改为字符串数组避免大整数精度丢失 spreadList: string[] // 改为字符串数组避免大整数精度丢失
} }
// 角色菜单权限分配请求参数
export interface RoleMenuPermissionBo {
roleId: string // 字符串格式避免精度丢失
menuIds: string[] // 字符串格式避免精度丢失
}