fix(frontend): 修复权限树加载与批量授权弹窗宽度

This commit is contained in:
Boen_Shi 2026-05-06 18:26:09 +08:00
parent 19ac981144
commit 4f774893fa
2 changed files with 30 additions and 6 deletions

View File

@ -103,8 +103,20 @@ function handleSizeChange(nextSize: number): void {
} }
async function fetchPermissions(): Promise<void> { async function fetchPermissions(): Promise<void> {
const response: any = await permissionsApi.list({ page: 1, per_page: 500 }) let nextPage = 1
permissionOptions.value = response.data.data || [] const all: any[] = []
while (true) {
const response: any = await permissionsApi.list({ page: nextPage, per_page: 100 })
const chunk = response.data.data || []
all.push(...chunk)
const currentPage = Number(response.data.current_page || nextPage)
const lastPage = Number(response.data.last_page || currentPage)
if (currentPage >= lastPage) {
break
}
nextPage += 1
}
permissionOptions.value = all
} }
function openCreate(): void { function openCreate(): void {

View File

@ -74,7 +74,7 @@
</template> </template>
</el-dialog> </el-dialog>
<el-dialog v-model='batchAssignDialogVisible' title='批量设置用户组和用户权限' width='760px'> <el-dialog v-model='batchAssignDialogVisible' title='批量设置用户组和用户权限' width='92vw' top='4vh'>
<el-alert type='info' :closable='false' show-icon> <el-alert type='info' :closable='false' show-icon>
<template #default>已选择 {{ selectedUserIds.length }} 个用户提交后将覆盖这些用户的角色与直授权限</template> <template #default>已选择 {{ selectedUserIds.length }} 个用户提交后将覆盖这些用户的角色与直授权限</template>
</el-alert> </el-alert>
@ -200,12 +200,24 @@ async function fetchList(): Promise<void> {
async function fetchOptions(): Promise<void> { async function fetchOptions(): Promise<void> {
try { try {
const [rolesResponse, permissionsResponse]: any = await Promise.all([ const [rolesResponse]: any = await Promise.all([
rolesApi.list({ page: 1, per_page: 100 }), rolesApi.list({ page: 1, per_page: 100 }),
permissionsApi.list({ page: 1, per_page: 200 }),
]) ])
roleOptions.value = rolesResponse.data.data || [] roleOptions.value = rolesResponse.data.data || []
permissionOptions.value = permissionsResponse.data.data || [] let nextPage = 1
const allPermissions: any[] = []
while (true) {
const response: any = await permissionsApi.list({ page: nextPage, per_page: 100 })
const chunk = response.data.data || []
allPermissions.push(...chunk)
const currentPage = Number(response.data.current_page || nextPage)
const lastPage = Number(response.data.last_page || currentPage)
if (currentPage >= lastPage) {
break
}
nextPage += 1
}
permissionOptions.value = allPermissions
} catch (error: any) { } catch (error: any) {
roleOptions.value = [] roleOptions.value = []
permissionOptions.value = [] permissionOptions.value = []