77 lines
3.7 KiB
Markdown
77 lines
3.7 KiB
Markdown
# 242 Admin:主列表支持每页 20、50、100 条
|
||
|
||
- 类型:需求
|
||
- 父级大工单:#14
|
||
- 所属 MVP / 版本:#15 Admin 四模块可用闭环
|
||
- 状态:已完成,待用户验收
|
||
- 日期:2026-08-15
|
||
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/242
|
||
|
||
## 背景与目标
|
||
|
||
Admin 主列表原来固定每页 20 条。数据增多后,采购员批量查看和勾选时需要频繁翻页。
|
||
本任务在保留默认 20 条的前提下,统一增加 50、100 条选项,并确保筛选、翻页、
|
||
写操作跳转和模块状态恢复不会丢失选择。
|
||
|
||
## 最终方案
|
||
|
||
- 公共分页使用 `page_size` 查询参数,后端只接受 20、50、100,非法值回退为 20。
|
||
- 公共底栏使用带可见标签的原生 GET 表单;提交时不携带 `page`,因此切换容量自动
|
||
回到第 1 页,同时保留当前有效筛选。
|
||
- 八个使用公共分页的列表都把归一化页容量传入 Service 和 Repository 的
|
||
`LIMIT/OFFSET`:蝦皮、PDD、顺运宝、采集采购、客户端、用户、商品目录导入记录、
|
||
档口入库码。
|
||
- 搜索表单、详情弹窗和写操作跳转携带 `page_size`;URL 可用于 F5、书签、浏览器
|
||
前进后退和既有模块状态恢复。
|
||
- 顺运宝同步记录弹窗继续固定每页 10 条;顺运宝上游接口抓取页容量不变。
|
||
- 档口入库码把本地删除和顺运宝远程操作上限从页面容量中拆开:本地删除最多 100 条,
|
||
远程匹配和回写仍单次最多 20 条。
|
||
- UI 评审后保留原生控件和可见标签,并让窄窗口分页组换行;现有蝦皮和顺运宝缩略图
|
||
已使用懒加载,无需增加额外前端框架或脚本。
|
||
|
||
## 改了哪些
|
||
|
||
- `admin/service/pagination.go`:增加页容量白名单、总页数计算和公共分页表单视图。
|
||
- `admin/service/{shopee_list,pdd,syb,task,service,user,catalog_history,inner_code_page}.go`:
|
||
各列表按选定容量执行服务端分页。
|
||
- `admin/handler/web/`:解析、归一化并在筛选、详情和写操作跳转中保留 `page_size`。
|
||
- `admin/templates/partials/footer.html`、八个列表及相关详情模板:增加公共选择器和状态字段。
|
||
- `admin/static/css/app.css`:增加紧凑分页表单和窄窗口换行样式。
|
||
- `admin/service/inner_code_apply.go`、`inner_code_delete.go`:使用独立批量安全上限。
|
||
- `admin/service/*test.go`、`admin/handler/web/*test.go` 及模板测试:补充分页容量、
|
||
URL 状态和远程上限回归。
|
||
- `docs/admin/05-ui-specification.md`:把固定 20 条规则更新为默认 20、可选 50/100。
|
||
|
||
## 验收结果
|
||
|
||
| 验收标准 | 结果 |
|
||
|---|---|
|
||
| 公共分页显示 20、50、100,默认及非法值使用 20 | 通过 |
|
||
| 50/100 条使用对应 `LIMIT/OFFSET`,总页数和越界正确 | 通过 |
|
||
| 切换容量回到第 1 页,翻页和筛选保留容量 | 通过 |
|
||
| URL、F5、前进后退、模块状态恢复及写操作跳转保留容量 | 通过(URL 与既有状态机制) |
|
||
| 同步记录仍为每页 10 条,上游抓取分页不变 | 通过 |
|
||
| 档口入库码远程匹配和回写仍最多 20 条 | 通过 |
|
||
| 窄窗口底栏可换行且不引入横向溢出 | 通过(模板与 CSS 检查) |
|
||
| 固定 Go 1.23.0 构建、测试、静态检查通过 | 通过 |
|
||
|
||
## 测试
|
||
|
||
- 执行的命令:
|
||
|
||
```powershell
|
||
$env:GOTOOLCHAIN="go1.23.0"
|
||
go test ./... -count=1
|
||
go build ./...
|
||
go vet ./...
|
||
Remove-Item Env:GOTOOLCHAIN
|
||
```
|
||
|
||
- 结果:全部通过;`git diff --check` 通过。
|
||
- **没验证到的部分**:未在登录后的真实浏览器中执行 1366×768 人工视觉验收;
|
||
未连接生产 MySQL 做页面查询,因为本任务没有数据库结构和生产数据变更。
|
||
|
||
## 相关提交
|
||
|
||
- `b455853` feat: 支持主列表选择每页条数 (#242)
|