From c9b2b332fd4192339bbad5c1b7bf113931f302e3 Mon Sep 17 00:00:00 2001 From: chengkai3 Date: Sat, 20 Jun 2026 08:10:21 +0800 Subject: [PATCH] =?UTF-8?q?[fix]:[FL-152][=E5=AF=B9=E9=BD=90=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E7=AE=A1=E7=90=86=E5=BC=B9=E7=AA=97=E4=B8=8E=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E7=BB=86=E8=8A=82]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: multica-agent --- memory/2026-06-20.md | 18 ++++++++++++++++++ web/src/app/admin/roles/page.tsx | 5 ++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/memory/2026-06-20.md b/memory/2026-06-20.md index bdc8d51..232a87d 100644 --- a/memory/2026-06-20.md +++ b/memory/2026-06-20.md @@ -222,3 +222,21 @@ - `/api/v1/atp/assets` 新增可选 `limit/offset` 参数;未传参默认返回前 50 条,响应字段不变。 - ATP 资产创建/更新现在会按既有 schema 持久化 `arrester_config`,修复此前前端提交但服务层丢弃该字段的问题。 - 改动不改变 ATP 模型删除、版本、运行接口字段或权限语义。 + +## Follow-up - 角色管理页弹窗与分页细节对齐(FL-152) + +- 背景: + - 评审继续指出角色管理页 Modal 宽度、分页 total 处理方式仍与用户管理页存在可消除的实现差异。 + +- 本次处理: + - 移除角色管理页 Modal 的 `width={760}`,恢复 AntD 默认宽度,与用户管理页弹窗保持一致。 + - 角色表格分页 `total` 改为 `Math.max(rolesQuery.data?.roles_total ?? 0, 1)`,`showTotal` 改为读取查询 total,与用户管理页现有实现一致。 + - 复核角色卡片下拉菜单顺序,当前为“查看菜单 → 删除”,删除已在最后,无需额外调整。 + +- 验证: + - 修改后:`npm --workspace web exec eslint src/app/admin/roles/page.tsx --max-warnings=0` 通过。 + - 修改后:`npm --workspace web exec tsc --noEmit` 通过。 + - 修改后:`npm --workspace web exec eslint src/app/admin/users/page.tsx src/app/admin/roles/page.tsx` 通过,仍仅用户页 1 条既有 unused eslint-disable warning。 + +- 风险与关注点: + - 改动仅影响角色管理页前端弹窗尺寸和分页展示逻辑,不改变接口、schema、权限或 CRUD 语义。 diff --git a/web/src/app/admin/roles/page.tsx b/web/src/app/admin/roles/page.tsx index b80f30d..57bd303 100644 --- a/web/src/app/admin/roles/page.tsx +++ b/web/src/app/admin/roles/page.tsx @@ -826,10 +826,10 @@ export default function AdminRolesPage() { pagination={{ current: paginationCurrent, pageSize: paginationPageSize, - total: rolesQuery.data?.roles_total ?? 0, + total: Math.max(rolesQuery.data?.roles_total ?? 0, 1), showSizeChanger: true, pageSizeOptions: [10, 20, 50, 100], - showTotal: (total) => `共 ${total} 条`, + showTotal: () => `共 ${rolesQuery.data?.roles_total ?? 0} 条`, hideOnSinglePage: false, style: { marginBottom: 0 }, onChange: (page, pageSize) => { @@ -898,7 +898,6 @@ export default function AdminRolesPage() { confirmLoading={createRoleMutation.isPending || updateRoleMutation.isPending} onCancel={closeDialog} onOk={() => void submit()} - width={760} > form={form}