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> {
const response: any = await permissionsApi.list({ page: 1, per_page: 500 })
permissionOptions.value = response.data.data || []
let nextPage = 1
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 {

View File

@ -74,7 +74,7 @@
</template>
</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>
<template #default>已选择 {{ selectedUserIds.length }} 个用户提交后将覆盖这些用户的角色与直授权限</template>
</el-alert>
@ -200,12 +200,24 @@ async function fetchList(): Promise<void> {
async function fetchOptions(): Promise<void> {
try {
const [rolesResponse, permissionsResponse]: any = await Promise.all([
const [rolesResponse]: any = await Promise.all([
rolesApi.list({ page: 1, per_page: 100 }),
permissionsApi.list({ page: 1, per_page: 200 }),
])
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) {
roleOptions.value = []
permissionOptions.value = []