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

1.6 KiB

操作日志分页需求

背景

操作日志会持续增长,如果一次性展示全部日志,页面会变长,查找和点击都不方便。日志列表需要分页展示,并且页码数量较多时不能把所有页码全部铺开。

功能目标

  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。

返回:

{
  "items": [],
  "total": 0,
  "page": 1,
  "page_size": 20,
  "total_pages": 1
}

自行决策记录

  • 默认每页 20 条,兼顾浏览效率和页面密度。
  • 页码折叠规则采用“首页 + 尾页 + 当前页前后 2 页”,避免页码过多时挤压布局。
  • 上下各放一组分页控件,避免用户滚动到底部后还要回到顶部翻页。