4.5 KiB
4.5 KiB
64 Admin:统一主列表分页并右对齐
- 类型:需求
- 父级大工单:#14
- 所属 MVP / 版本:#15 Admin 四模块可用闭环
- 状态:已完成
- 日期:2026-08-09
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/64
背景与目标
Admin 各主列表的分页能力和底部位置不统一:蝦皮、顺运宝和用户管理已经有分页,PDD 商品、采集采购、客户端仍会一次读取全部结果,公共分页控件也没有稳定靠在底栏右侧。本任务统一六个主列表的分页交互,并让新增分页模块在数据库层只读取当前页数据。
最终方案
- 六个主列表继续共用
partials/footer.html和service.PaginationView,每页固定 20 条。 - 公共底栏采用左侧状态、右侧分页布局;窄窗口时允许换行并回到普通文档流,避免遮挡表格和状态文字。
- PDD、采集采购、客户端使用共享筛选条件执行
COUNT(*)与LIMIT/OFFSET,Service 统一处理非法页、越界页和空数据页。 - 翻页及新增、编辑、删除、启停、重置密码等写操作保留当前筛选条件和页码;删除末页最后一条数据后由 Service 收敛到最后一个有效页。
- 客户端列表的在线、离线统计覆盖当前账号可见且符合搜索条件的全部客户端,并与分页查询使用同一时间基准和角色范围。
- PDD 保留全库采集状态概览,同时单独返回筛选结果总数,避免把当前页数量当作总数。
- 批量勾选仍仅作用于当前页;顺运宝同步记录弹窗的独立局部分页没有改动。
- UI 方案参考项目的 UI/UX 规范检查结果,重点落实了右对齐、窄窗口回流、查询状态保留和当前页勾选边界。
实际实现与建单方案一致,没有数据库迁移,也没有改动 Client 四接口、任务业务状态或客户端归属规则。
改了哪些
admin/static/css/app.css、admin/templates/partials/footer.html:统一底栏和分页位置,增加窄窗口适配。admin/repository/pdd.go、admin/service/pdd.go、admin/handler/web/pdd.go:实现 PDD 商品真分页、页码收敛和筛选状态保留。admin/repository/task.go、admin/service/task.go、admin/handler/web/others.go:实现采集采购任务真分页及写操作后的页面状态保留。admin/repository/client.go、admin/service/service.go、admin/handler/web/others.go:实现客户端真分页和按角色范围计算的全量在线统计。admin/handler/web/user.go:补齐用户管理写操作后的筛选和页码保留。admin/templates/pdd/、admin/templates/task/list.html、admin/templates/client/list.html、admin/templates/user/list.html、admin/static/js/app.js:传递列表查询状态,并明确当前页操作范围。admin/handler/web/pagination_test.go、各层测试及admin/main_test.go:覆盖分页、越界、角色范围、重定向状态和公共模板。docs/admin/05-ui-specification.md:更新六个主列表的统一分页基线。
验收结果
| 验收标准 | 结果 |
|---|---|
| 六个主列表共用公共分页模板,底栏状态在左、分页在右 | 通过(模板与自动化测试) |
PDD、采集采购、客户端使用 SQL COUNT(*) + LIMIT/OFFSET |
通过 |
| 每页固定 20 条,非法、越界和空数据页码行为一致 | 通过 |
| 翻页保留关键词、状态、类型及客户端角色可见范围 | 通过 |
| 状态条统计不使用当前页行数冒充全量统计 | 通过 |
| 客户端角色可见范围不变,统计不包含不可见客户端 | 通过 |
| 写操作后保留筛选和合理页码,越界页自动收敛 | 通过 |
| 批量勾选只作用于当前页 | 通过 |
| 顺运宝同步记录弹窗局部分页保持不变 | 通过 |
| 不修改数据库、Client 四接口和任务业务状态 | 通过 |
| Go 1.23.0 build、test、vet 通过 | 通过 |
测试
- 执行的命令(从
admin/目录):$env:GOTOOLCHAIN='go1.23.0'; go build ./...$env:GOTOOLCHAIN='go1.23.0'; go test ./... -count=1$env:GOTOOLCHAIN='go1.23.0'; go vet ./...node --check static/js/app.js
- 执行的命令(从仓库根目录):
git diff --check -- admin docs/admin - 结果:全部通过。
- 没验证到的部分:未在真实浏览器中人工检查 1366×768 和窄窗口的最终视觉效果;未连接外部顺运宝等真实系统,本任务不需要外部系统数据。
相关提交
155dd3b统一 Admin 主列表分页