Admin:统一主列表分页并右对齐 #64

Closed
opened 2026-08-09 21:38:14 +08:00 by ila · 3 comments
Owner

基本信息

  • 类型:需求
  • 父级大工单:#14
  • 所属 MVP / 版本:#15 Admin 四模块可用闭环
  • 阶段:Admin 六模块统一列表体验
  • 依赖:#43、#51、#54、#59
  • 状态:待验收

要解决什么

蝦皮数据、顺运宝数据和用户管理已经接入公共分页,但分页控件目前紧跟左侧状态文字,没有稳定靠在页面右下角。PDD 商品、采集采购和客户端列表仍一次查询并渲染全部符合条件的数据,数据增长后会增加数据库读取、Go 内存和 HTML 体积,也不符合 Admin UI 基线“六个模块统一每页 20 条”的要求。

做什么 / 不做什么

做

  • 公共底部状态条保持左侧统计、右侧分页;分页在 1366×768 下稳定靠右,窄窗口不遮挡状态文字或表格。
  • 六个主列表共用现有 footer 分页模板和 service.PaginationView。
  • PDD、采集采购、客户端实现 SQL COUNT(*) + LIMIT/OFFSET 真分页,每页固定 20 条。
  • 列表和总数查询共用同一筛选条件;翻页保留关键词、筛选条件和角色可见范围。
  • 页码非法按第 1 页处理,超出范围收敛到最后一页,空数据显示第 1/1 页。
  • 状态条统计使用当前定义范围的全量统计,不把本页条数误当总数;PDD 保留全库采集状态概览,客户端在线/离线统计覆盖当前账号可见的全部筛选结果。
  • 用户管理保留现有后端分页,并让新增、启停、重置密码后的跳转保留筛选和当前页。
  • PDD、任务、客户端写操作保留当前筛选和页码;删除末页最后一行后由服务端自动收敛。
  • 补充 Repository、Service、Handler、模板烟雾测试和 UI 基线。
  • 批量勾选仍只作用于当前页,翻页不保留勾选。

不做

  • 不增加页码数字列表、每页条数切换或 JavaScript 分页。
  • 不修改数据库结构、Client 四接口、任务业务状态或客户端归属规则。
  • 不改变顺运宝同步记录弹窗的独立局部分页。
  • 不实现跨页勾选或跨页批量操作。

怎么做

  1. 公共 CSS 让分页使用自动左外边距并禁止压缩;状态文字占剩余空间,窄窗口允许底栏合理换行。
  2. PDD Repository 抽取共享筛选条件,增加筛选总数查询及 LIMIT/OFFSET;Service 返回当前页、筛选总数、总页数和全局状态统计。
  3. 任务 Repository 在现有共享筛选条件上给列表增加 LIMIT/OFFSET;Service 用状态统计总和计算页数并处理越界。
  4. 客户端 Repository 抽取同时包含角色归属和搜索条件的共享 WHERE,增加分页列表及全量在线/离线统计;Service 不从本页行数推导全量统计。
  5. Handler 统一解析 page、构造保留筛选条件的 PaginationView,写操作重定向携带 page;模板表单增加必要隐藏字段。
  6. 用户管理沿用现有真分页,只补写操作后的查询状态保持。
  7. 更新 docs/admin/05-ui-specification.md。

预计修改:admin 的公共 CSS/分页模板,PDD、任务、客户端、用户的 Handler、Service、Repository、列表模板、对应测试和 UI 基线。

验收标准

  • 六个主列表使用同一个公共分页模板,分页位于固定底栏右侧,状态文字仍可读。
  • PDD、采集采购、客户端使用 SQL COUNT(*) + LIMIT/OFFSET,不读取全量后在 Go 中切片。
  • 所有主列表每页固定 20 条,非法、越界和空数据页码行为一致。
  • 翻页保留关键词、状态、类型及客户端角色可见范围。
  • 状态条总数和分类统计覆盖当前定义的全量范围,不误用本页行数。
  • 管理员和采购员的客户端可见范围保持不变,在线/离线统计不泄露不可见客户端。
  • 写操作后保留筛选和合理页码;删除导致越界时自动回到最后一个有效页。
  • 批量勾选明确只作用于当前页,翻页不保留勾选。
  • 顺运宝同步记录弹窗局部分页 unchanged.
  • 不修改数据库、Client 四接口和任务业务状态。
  • Go 1.23.0 的 build、test、vet 通过。

怎么验证

从 admin/ 执行 Go 1.23.0 的 go build ./...、go test ./... -count=1、go vet ./...,另外执行 git diff --check,并在 1366×768 浏览器检查布局和交互。

风险和回退

  • 客户端状态按当前时间计算,分页列表和在线统计必须使用同一时间基准。
  • PDD 全库状态概览与筛选总数语义不同,必须分别保留。
  • 写操作携带旧页码时可能因删除越界,统一依赖 Service 页码收敛。
  • 回退本任务恢复未分页列表和原分页位置,不涉及数据回退。
## 基本信息 - 类型:需求 - 父级大工单:#14 - 所属 MVP / 版本:#15 Admin 四模块可用闭环 - 阶段:Admin 六模块统一列表体验 - 依赖:#43、#51、#54、#59 - 状态:待验收 ## 要解决什么 蝦皮数据、顺运宝数据和用户管理已经接入公共分页,但分页控件目前紧跟左侧状态文字,没有稳定靠在页面右下角。PDD 商品、采集采购和客户端列表仍一次查询并渲染全部符合条件的数据,数据增长后会增加数据库读取、Go 内存和 HTML 体积,也不符合 Admin UI 基线“六个模块统一每页 20 条”的要求。 ## 做什么 / 不做什么 ### 做 - 公共底部状态条保持左侧统计、右侧分页;分页在 1366×768 下稳定靠右,窄窗口不遮挡状态文字或表格。 - 六个主列表共用现有 footer 分页模板和 service.PaginationView。 - PDD、采集采购、客户端实现 SQL COUNT(*) + LIMIT/OFFSET 真分页,每页固定 20 条。 - 列表和总数查询共用同一筛选条件;翻页保留关键词、筛选条件和角色可见范围。 - 页码非法按第 1 页处理,超出范围收敛到最后一页,空数据显示第 1/1 页。 - 状态条统计使用当前定义范围的全量统计,不把本页条数误当总数;PDD 保留全库采集状态概览,客户端在线/离线统计覆盖当前账号可见的全部筛选结果。 - 用户管理保留现有后端分页,并让新增、启停、重置密码后的跳转保留筛选和当前页。 - PDD、任务、客户端写操作保留当前筛选和页码;删除末页最后一行后由服务端自动收敛。 - 补充 Repository、Service、Handler、模板烟雾测试和 UI 基线。 - 批量勾选仍只作用于当前页,翻页不保留勾选。 ### 不做 - 不增加页码数字列表、每页条数切换或 JavaScript 分页。 - 不修改数据库结构、Client 四接口、任务业务状态或客户端归属规则。 - 不改变顺运宝同步记录弹窗的独立局部分页。 - 不实现跨页勾选或跨页批量操作。 ## 怎么做 1. 公共 CSS 让分页使用自动左外边距并禁止压缩;状态文字占剩余空间,窄窗口允许底栏合理换行。 2. PDD Repository 抽取共享筛选条件,增加筛选总数查询及 LIMIT/OFFSET;Service 返回当前页、筛选总数、总页数和全局状态统计。 3. 任务 Repository 在现有共享筛选条件上给列表增加 LIMIT/OFFSET;Service 用状态统计总和计算页数并处理越界。 4. 客户端 Repository 抽取同时包含角色归属和搜索条件的共享 WHERE,增加分页列表及全量在线/离线统计;Service 不从本页行数推导全量统计。 5. Handler 统一解析 page、构造保留筛选条件的 PaginationView,写操作重定向携带 page;模板表单增加必要隐藏字段。 6. 用户管理沿用现有真分页,只补写操作后的查询状态保持。 7. 更新 docs/admin/05-ui-specification.md。 预计修改:admin 的公共 CSS/分页模板,PDD、任务、客户端、用户的 Handler、Service、Repository、列表模板、对应测试和 UI 基线。 ## 验收标准 - [x] 六个主列表使用同一个公共分页模板,分页位于固定底栏右侧,状态文字仍可读。 - [x] PDD、采集采购、客户端使用 SQL COUNT(*) + LIMIT/OFFSET,不读取全量后在 Go 中切片。 - [x] 所有主列表每页固定 20 条,非法、越界和空数据页码行为一致。 - [x] 翻页保留关键词、状态、类型及客户端角色可见范围。 - [x] 状态条总数和分类统计覆盖当前定义的全量范围,不误用本页行数。 - [x] 管理员和采购员的客户端可见范围保持不变,在线/离线统计不泄露不可见客户端。 - [x] 写操作后保留筛选和合理页码;删除导致越界时自动回到最后一个有效页。 - [x] 批量勾选明确只作用于当前页,翻页不保留勾选。 - [x] 顺运宝同步记录弹窗局部分页 unchanged. - [x] 不修改数据库、Client 四接口和任务业务状态。 - [x] Go 1.23.0 的 build、test、vet 通过。 ## 怎么验证 从 admin/ 执行 Go 1.23.0 的 go build ./...、go test ./... -count=1、go vet ./...,另外执行 git diff --check,并在 1366×768 浏览器检查布局和交互。 ## 风险和回退 - 客户端状态按当前时间计算,分页列表和在线统计必须使用同一时间基准。 - PDD 全库状态概览与筛选总数语义不同,必须分别保留。 - 写操作携带旧页码时可能因删除越界,统一依赖 Service 页码收敛。 - 回退本任务恢复未分页列表和原分页位置,不涉及数据回退。
Author
Owner

已开始实施。工作区存在用户的 Client 侧和根目录未提交改动,本任务仅修改 Admin 与对应文档;采用公共分页模板、SQL COUNT + LIMIT/OFFSET 和服务端查询参数导航,不引入数据库迁移或前端框架。

已开始实施。工作区存在用户的 Client 侧和根目录未提交改动,本任务仅修改 Admin 与对应文档;采用公共分页模板、SQL COUNT + LIMIT/OFFSET 和服务端查询参数导航,不引入数据库迁移或前端框架。
Author
Owner

实施完成,等待验收

  • 实现提交:155dd3b(feat: 统一 Admin 主列表分页 (#64))
  • 归档提交:95df157(docs: 归档任务 #64)
  • 归档文档:docs/task/64-admin主列表统一分页.md

验证结果

从 admin/ 执行以下命令,全部通过:

  • GOTOOLCHAIN=go1.23.0 go build ./...
  • go test ./... -count=1
  • go vet ./...
  • node --check static/js/app.js
  • git diff --check -- admin docs/admin

已覆盖 PDD、采集采购、客户端的 SQL 真分页,用户管理及各写操作的筛选/页码保留,客户端角色可见范围与全量在线统计,以及六个页面共用分页模板的烟雾测试。

未验证:尚未在真实浏览器中人工检查 1366×768 和窄窗口视觉效果。工单保持打开、状态为待验收;父工单清单暂不勾选。

## 实施完成,等待验收 - 实现提交:`155dd3b`(`feat: 统一 Admin 主列表分页 (#64)`) - 归档提交:`95df157`(`docs: 归档任务 #64`) - 归档文档:`docs/task/64-admin主列表统一分页.md` ### 验证结果 从 `admin/` 执行以下命令,全部通过: - `GOTOOLCHAIN=go1.23.0 go build ./...` - `go test ./... -count=1` - `go vet ./...` - `node --check static/js/app.js` - `git diff --check -- admin docs/admin` 已覆盖 PDD、采集采购、客户端的 SQL 真分页,用户管理及各写操作的筛选/页码保留,客户端角色可见范围与全量在线统计,以及六个页面共用分页模板的烟雾测试。 未验证:尚未在真实浏览器中人工检查 1366×768 和窄窗口视觉效果。工单保持打开、状态为待验收;父工单清单暂不勾选。
Author
Owner

用户已明确验收通过。验收清单已回填,本工单关闭。

用户已明确验收通过。验收清单已回填,本工单关闭。
ila closed this issue 2026-08-10 23:22:25 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#64