This commit is contained in:
2026-08-17 19:52:04 +08:00
parent d618683467
commit ee4cd35927
42 changed files with 702 additions and 226 deletions
+5 -14
View File
@@ -6,7 +6,6 @@ import {
changePlatformRoleStatus,
createPlatformRole,
deletePlatformRole,
listPlatformInternalUsers,
listPlatformPermissions,
listPlatformRoles,
replacePlatformRolePermissions,
@@ -81,7 +80,7 @@ const pagedRows = computed(() => filteredRows.value.slice((page.value - 1) * pag
const roleColumns: DataTableColumn[] = [
{ key: 'actions', label: '操作', width: 250, fixed: 'left', slotName: 'actions' },
{ key: 'role', label: '角色名称', minWidth: 180, slotName: 'role' },
{ key: 'roleCode', prop: 'code', label: '角色编码', minWidth: 180, showOverflowTooltip: true, defaultVisible: false },
{ key: 'roleCode', prop: 'code', label: '角色编码', minWidth: 180, showOverflowTooltip: true },
{ key: 'description', prop: 'description', label: '说明', minWidth: 240, showOverflowTooltip: true },
{ key: 'permissionSummary', label: '授权范围', minWidth: 170, slotName: 'permissionSummary' },
{ key: 'userCount', prop: 'userCount', label: '用户数', width: 86, align: 'right' },
@@ -97,13 +96,13 @@ function applyFilters() {
void loadRoles()
}
function mapPlatformRole(role: PlatformRoleResource, userCount = 0): Role {
function mapPlatformRole(role: PlatformRoleResource): Role {
return {
id: String(role.id),
name: role.roleName,
code: role.roleCode,
description: role.description ?? '暂无角色说明',
userCount,
userCount: role.memberCount,
dataScope: '全部数据',
status: role.status === 'ACTIVE' ? '启用' : '停用',
permissionIds: (role.permissionIds ?? []).map(String),
@@ -117,20 +116,12 @@ async function loadRoles() {
serverRoles.value = []
serverPermissions.value = []
try {
const [roleRecords, permissionRecords, memberRecords] = await Promise.all([
const [roleRecords, permissionRecords] = await Promise.all([
listPlatformRoles(),
listPlatformPermissions(),
listPlatformInternalUsers(),
])
const roleMemberCounts = new Map<string, number>()
for (const member of memberRecords) {
for (const roleId of member.roleIds) {
const key = String(roleId)
roleMemberCounts.set(key, (roleMemberCounts.get(key) ?? 0) + 1)
}
}
serverPermissions.value = permissionRecords.map(mapPlatformPermission)
serverRoles.value = roleRecords.map((role) => mapPlatformRole(role, roleMemberCounts.get(String(role.id)) ?? 0))
serverRoles.value = roleRecords.map(mapPlatformRole)
} catch (error) {
loadError.value = getApiErrorDetails(error, '平台角色列表加载失败,请稍后重试')
} finally {