This commit is contained in:
2026-07-30 21:23:39 +08:00
parent c1f6423c20
commit 0b0f86218a
12 changed files with 87 additions and 47 deletions
+36
View File
@@ -0,0 +1,36 @@
import { describe, expect, it } from 'vitest'
import { mapPlatformPermission } from '@/utils/platformPermission'
describe('mapPlatformPermission', () => {
it('treats the string root parent as a root node and preserves long ids', () => {
expect(mapPlatformPermission({
id: '2082813911786024961',
tenantId: '0',
appCode: 'PLATFORM',
permissionType: 'MENU',
parentId: '0',
permissionCode: 'platform:audit',
permissionName: '审计管理',
routePath: '/audit',
httpMethod: null,
sortNo: 50,
status: 'ACTIVE',
})).toMatchObject({ id: '2082813911786024961', parentId: null, code: 'platform:audit' })
})
it('preserves a long string parent id for child resources', () => {
expect(mapPlatformPermission({
id: '2082813911786024962',
tenantId: '0',
appCode: 'PLATFORM',
permissionType: 'BUTTON',
parentId: '2082813911786024961',
permissionCode: 'platform:audit:list',
permissionName: '操作日志',
routePath: null,
httpMethod: null,
sortNo: 10,
status: 'ACTIVE',
})).toMatchObject({ id: '2082813911786024962', parentId: '2082813911786024961', type: '按钮' })
})
})
+17
View File
@@ -0,0 +1,17 @@
import type { PlatformPermissionResource } from '@/api/platformIam'
import type { Permission } from '@/types/admin'
export function mapPlatformPermission(item: PlatformPermissionResource): Permission {
const parentId = String(item.parentId)
return {
id: String(item.id),
parentId: parentId === '0' ? null : parentId,
name: item.permissionName,
code: item.permissionCode,
type: item.permissionType === 'BUTTON' ? '按钮' : '菜单',
path: item.routePath ?? '',
method: item.httpMethod ?? '-',
status: item.status === 'ACTIVE' ? '启用' : '停用',
sort: item.sortNo,
}
}