Files
certificate-system/docs/操作日志分页需求.md
2026-06-06 19:32:24 +08:00

60 lines
1.6 KiB
Markdown

# 操作日志分页需求
## 背景
操作日志会持续增长,如果一次性展示全部日志,页面会变长,查找和点击都不方便。日志列表需要分页展示,并且页码数量较多时不能把所有页码全部铺开。
## 功能目标
1. 操作日志列表每页显示 20 条。
2. 日志列表上方和下方都显示分页控件。
3. 支持上一页、下一页和指定页码跳转。
4. 页码超过 10 页时,远离当前页的页码用省略号折叠。
5. 分页需要和现有筛选条件联动:
- 操作类型。
- 对象类型。
- 风险等级。
- 关键词。
6. 切换筛选条件后,从第 1 页重新查询。
7. 导出日志不受当前页限制,仍按当前筛选条件导出全部匹配日志。
## 页码展示规则
分页控件始终显示:
- 第 1 页。
- 最后一页。
- 当前页前后 2 页。
- 中间缺失页码用 `...` 表示。
示例:
- 当前第 1 页,共 3 页:`1 2 3`
- 当前第 6 页,共 20 页:`1 ... 4 5 6 7 8 ... 20`
- 当前第 19 页,共 20 页:`1 ... 17 18 19 20`
## 接口约定
日志列表接口支持:
- `page`:页码,从 1 开始,默认 1。
- `page_size`:每页数量,默认 20。
返回:
```json
{
"items": [],
"total": 0,
"page": 1,
"page_size": 20,
"total_pages": 1
}
```
## 自行决策记录
- 默认每页 20 条,兼顾浏览效率和页面密度。
- 页码折叠规则采用“首页 + 尾页 + 当前页前后 2 页”,避免页码过多时挤压布局。
- 上下各放一组分页控件,避免用户滚动到底部后还要回到顶部翻页。