feat: 支持主列表选择每页条数 (#242)
This commit is contained in:
@@ -63,7 +63,8 @@
|
||||
见 §5.6。含糊其辞和吓唬人一样糟——两种都会让操作员不敢动手。
|
||||
- `[必须]` 删除、导入用 **POST**,不得用 GET。浏览器和插件会预取 GET 链接。
|
||||
- `[建议]` 默认按 `更新时间 DESC` 排序。
|
||||
- `[必须]` 每页 **20** 条,超过分页,见 §3.2。搜索走数据库,不要一次查出来在内存里过滤。
|
||||
- `[必须]` 默认每页 **20** 条,可选 50 或 100 条,超过分页,见 §3.2。
|
||||
搜索走数据库,不要一次查出来在内存里过滤。
|
||||
- `[必须]` 长文本(商品标题)截断显示,鼠标悬停给完整内容。
|
||||
- `[必须]` 空状态要分情况,文案不能都是"暂无数据":
|
||||
- 从没导入过 → "还没有数据,点左上角『导入』开始"
|
||||
@@ -93,10 +94,11 @@
|
||||
|
||||
### 3.2 分页
|
||||
|
||||
`[必须]` 六个主列表(蝦皮、PDD、顺运宝、采集采购、客户端、用户)
|
||||
**统一每页 20 条**(原来这里写的是"建议一页 50 条",
|
||||
已按工单 #43 改为 20 并升级为 `[必须]`)——20 行在 1366×768 上正好一屏,
|
||||
不用滚动就能看完;50 条要滚动,操作员容易漏看最下面几行。
|
||||
`[必须]` 使用公共分页的列表(蝦皮、PDD、顺运宝、采集采购、客户端、用户、
|
||||
商品目录导入记录、档口入库码)统一提供 **20 / 50 / 100 条**三档,默认 20。
|
||||
20 行在 1366×768 上通常不需要滚动;50 和 100 用于集中查看或批量勾选,最大值
|
||||
固定为 100,不提供“全部”或任意自定义数量。顺运宝同步记录是紧凑弹窗,继续固定
|
||||
每页 10 条;顺运宝上游接口的抓取页容量也不是这里的界面设置。
|
||||
|
||||
蝦皮数据页(§4)是全项目第一个做分页的页面,本节是它定下的通用规则,
|
||||
其余主列表复用公共实现,不要各写一套:
|
||||
@@ -108,6 +110,10 @@
|
||||
而且不会报错、不容易发现(#19 已经踩过一次)。
|
||||
- `[必须]` 页码参数是 `?page=N`,从 **1** 开始,不是 0——给操作员看的东西
|
||||
不要 0-based。
|
||||
- `[必须]` 每页条数参数是 `?page_size=N`,只接受 20、50、100;缺失、非数字或
|
||||
其他值都回退为 20,不能把用户输入直接交给 SQL `LIMIT`。
|
||||
- `[必须]` 修改每页条数时回到第 1 页;筛选、翻页、写操作跳转、F5、浏览器
|
||||
前进后退和模块状态恢复都保留归一化后的 `page_size`。
|
||||
- `[必须]` 越界要兜住:
|
||||
- `page` 非数字、`0`、负数 → 当作第 1 页;
|
||||
- `page` 超过总页数 → 显示**最后一页**(有数据的那页),不是空表格;
|
||||
@@ -126,13 +132,16 @@
|
||||
分页按钮或表格最后一行。
|
||||
- `[必须]` 表格勾选只代表当前页。翻页后不保留勾选,也不提供跨页批量操作,
|
||||
避免操作员看不到将被处理的记录。
|
||||
- `[必须]` 每页条数只控制读取和展示,不能充当外部写操作的安全上限。档口入库码
|
||||
匹配、回写等顺运宝远程操作继续使用独立的单次上限 20;修改页面容量不能自动
|
||||
放宽它。
|
||||
- `[建议]` 不做 `1 2 3 … N` 这种页码列表。页数一多列出来没有意义,
|
||||
操作员应该靠筛选定位,不是靠翻页数页码。
|
||||
|
||||
公共实现放在 `admin/service/pagination.go`(`PageSize` 常量、
|
||||
`ParsePage` / `ClampPage` / `TotalPages` / `NewPaginationView`)和
|
||||
公共实现放在 `admin/service/pagination.go`(默认值与白名单、
|
||||
`ParsePage` / `ParsePageSize` / `ClampPage` / `TotalPages` / `NewPaginationView`)和
|
||||
`admin/templates/partials/footer.html`(分页控件,`Pagination` 字段
|
||||
为空时不渲染)。六个主列表全部直接复用,不要各写一份。
|
||||
为空时不渲染)。所有列表直接复用,不要各写一份。
|
||||
|
||||
## 4. 蝦皮数据页
|
||||
|
||||
|
||||
Reference in New Issue
Block a user