From 4f774893fa25b143a4b582710a7069ed1e74dbdb Mon Sep 17 00:00:00 2001 From: Boen_Shi Date: Wed, 6 May 2026 18:26:09 +0800 Subject: [PATCH] =?UTF-8?q?fix(frontend):=20=E4=BF=AE=E5=A4=8D=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=A0=91=E5=8A=A0=E8=BD=BD=E4=B8=8E=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E6=8E=88=E6=9D=83=E5=BC=B9=E7=AA=97=E5=AE=BD=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/RolesPage.vue | 16 ++++++++++++++-- src/pages/UsersPage.vue | 20 ++++++++++++++++---- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/pages/RolesPage.vue b/src/pages/RolesPage.vue index 08777ce..c5c38b1 100644 --- a/src/pages/RolesPage.vue +++ b/src/pages/RolesPage.vue @@ -103,8 +103,20 @@ function handleSizeChange(nextSize: number): void { } async function fetchPermissions(): Promise { - 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 { diff --git a/src/pages/UsersPage.vue b/src/pages/UsersPage.vue index cbbfae6..26a7057 100644 --- a/src/pages/UsersPage.vue +++ b/src/pages/UsersPage.vue @@ -74,7 +74,7 @@ - + @@ -200,12 +200,24 @@ async function fetchList(): Promise { async function fetchOptions(): Promise { 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 = []