feat(web): 档口入库码默认每页 200 条,仅作用于本页 #363

Open
opened 2026-10-07 10:33:06 +08:00 by ila · 3 comments
Owner

This was generated by AI during triage.

原始需求与状态

  • 来源:用户于 2026-10-07 反馈线上「档口入库码」默认每页 100 条,询问改成 200 条是否影响其他页面;在确认只修改本页独立默认值的最小方案后要求「建工单」。
  • 目标:减少档口入库码列表翻页次数,默认每页显示最多 200 条业务记录,其他页面不变。
  • 类型:enhancement;状态:已合并 main 并部署线上 122.228.200.167,待用户验收(2026-10-07)。用户已授权「合并main,部署线上」;本单为纯 Web 更新,无迁移;使用免重启的原子发布,未中断执行中的采购任务。
  • 关联背景:#117、#350、#351;不修改这些工单的既有匹配、回写与选择规则。

已核验事实与基线

核验日期:2026-10-07;代码基线 main 49de6f80454d324cbcfc59297238a37ab1db5cf8。本次核验是代码只读检查,不代表已登录线上验证部署版本或性能。

  • Web 档口入库码页面独立初始化 query.pageSize = 100,分页选项已经包含 [20, 50, 100, 200]。
  • 列表请求显式传递本页查询参数;后端已经允许 pageSize 为 20、50、100、200。
  • 后端未传 pageSize 的默认行为仍为 100,本单不修改它。
  • 证据定位:web/src/views/goauto/syb-inner-codes/index.vue 的分页绑定、查询初始化和 load;server/app/goauto/sybinnercode/handler.go 的默认参数与 service.go 的允许值校验。

最小方案、边界与影响

  1. 仅将档口入库码页面首次进入时的独立 pageSize 默认值从 100 改为 200,初始页码仍为 1。
  2. 保留原有 20/50/100/200 条选项、分页组件位置、查询筛选和日期默认值;用户手动切换条数后仍沿用当前页面既有行为,不增加跨会话记忆功能。
  3. 不修改公共分页组件、全局默认值、其他页面、服务端接口默认值或容量限制。
  4. 不修改表头全选、分页选择、匹配、删除、回写预览或执行逻辑;默认页变大意味着当前页可勾选记录数增加,不意味着自动选择或自动执行。
  5. 交付单元:Web 页面及直接相关测试;Server、Android、数据库、权限、任务状态机均无变更,不需要迁移。

设计证据

复用上述基线的现有档口入库码页面与分页交互,不新增组件、不改布局。分页展示从默认「100 条/页」变为「200 条/页」,仍使用原分页位置和选项。

范围确认:用户于 2026-10-07 在最小方案说明后授权建单;这里只记录复用现有设计及需求范围,不冒充已完成原型或用户验收。无新页面或独立交互,不要求新建完整 QuantUX 原型。

前置依赖与并行

  • 无新增实现依赖;实施前复核最新 main,确认已有 200 条后端支持和分页选项未变化。
  • 可与不涉及此页面的工单并行;涉及同一列表初始化、分页或批量选择逻辑的变更须协调,避免覆盖。
  • 生产发布、重启及任何真实批量写操作不包含在建单授权中,须另获用户授权。

验收标准

  • 首次进入或刷新档口入库码页面,请求 page=1、pageSize=200,分页器显示 200 条/页。
  • 数据不少于 200 条时第一页返回最多 200 条业务记录;总数不足 200、空数据和末页均正常。
  • 手动切换到 20/50/100/200 后,请求参数、页码、分页器和实际列表条数一致,沿用原有翻页行为。
  • 搜索、日期筛选及清空筛选不额外恢复为 100,不改变当前选定条数和原有日期语义。
  • 当前页全选范围仍是当前页;匹配、删除、回写的资格、预览范围、确认及限制不因本单修改而改变,不自动触发任何批量写操作。
  • 其他页面的默认条数和分页行为不变;公共分页组件与后端接口没有修改。
  • 验证 200 条加载与渲染无明显卡顿、请求超时或分页错位;记录实测结果,不以代码支持 200 推断线上性能已通过。

验证计划、风险与回退

  • 增补页面默认条数的最小回归测试,执行相关测试和 Web 构建。
  • 本地验证首次加载、刷新、手动改条数、查询和翻页;抽查一个其他列表页,确认默认分页未变。
  • 批量操作只检查勾选和预览范围,不执行真实删除或 SYB 回写。
  • 风险:单次返回量和渲染行数增加,包含明细的响应也可能增加;出现性能问题先记录,不顺带重构接口或全局调整超时。
  • 回退:恢复本页默认 100,数据与接口无迁移,不影响已保存业务数据。

文档影响与交付要求

实施后在 Wiki Business-Rules-and-Glossary 的档口入库码部分补充「仅此页默认 200,保留 20/50/100/200 选项」的长期页面规则;按项目要求线上回读 revision,再完成一轮镜像同步和一致性检查。API 默认值不变,无 API 契约修改。

实现、测试、提交及未验证项集中回写本工单,保持待验收,未经用户验收不关闭。不要创建任务快照或额外流程文档。

工具与流转说明

建单时 Gitea MCP 的 list_labels 返回 All connection attempts failed,按项目规则回退 Gitea REST API,凭据来自本机私有项目配置,未写入正文。仓库本次标签查询为空,类别和待实施状态记录在正文,不新增标签体系。SynapBus MCP 本会话无可调用工具;本次不发送 Agent 消息。

> *This was generated by AI during triage.* ## 原始需求与状态 - 来源:用户于 2026-10-07 反馈线上「档口入库码」默认每页 100 条,询问改成 200 条是否影响其他页面;在确认只修改本页独立默认值的最小方案后要求「建工单」。 - 目标:减少档口入库码列表翻页次数,默认每页显示最多 200 条业务记录,其他页面不变。 - 类型:enhancement;状态:已合并 main 并部署线上 122.228.200.167,待用户验收(2026-10-07)。用户已授权「合并main,部署线上」;本单为纯 Web 更新,无迁移;使用免重启的原子发布,未中断执行中的采购任务。 - 关联背景:#117、#350、#351;不修改这些工单的既有匹配、回写与选择规则。 ## 已核验事实与基线 核验日期:2026-10-07;代码基线 main `49de6f80454d324cbcfc59297238a37ab1db5cf8`。本次核验是代码只读检查,不代表已登录线上验证部署版本或性能。 - Web 档口入库码页面独立初始化 `query.pageSize = 100`,分页选项已经包含 `[20, 50, 100, 200]`。 - 列表请求显式传递本页查询参数;后端已经允许 pageSize 为 20、50、100、200。 - 后端未传 pageSize 的默认行为仍为 100,本单不修改它。 - 证据定位:`web/src/views/goauto/syb-inner-codes/index.vue` 的分页绑定、查询初始化和 load;`server/app/goauto/sybinnercode/handler.go` 的默认参数与 `service.go` 的允许值校验。 ## 最小方案、边界与影响 1. 仅将档口入库码页面首次进入时的独立 pageSize 默认值从 100 改为 200,初始页码仍为 1。 2. 保留原有 20/50/100/200 条选项、分页组件位置、查询筛选和日期默认值;用户手动切换条数后仍沿用当前页面既有行为,不增加跨会话记忆功能。 3. 不修改公共分页组件、全局默认值、其他页面、服务端接口默认值或容量限制。 4. 不修改表头全选、分页选择、匹配、删除、回写预览或执行逻辑;默认页变大意味着当前页可勾选记录数增加,不意味着自动选择或自动执行。 5. 交付单元:Web 页面及直接相关测试;Server、Android、数据库、权限、任务状态机均无变更,不需要迁移。 ## 设计证据 复用上述基线的现有档口入库码页面与分页交互,不新增组件、不改布局。分页展示从默认「100 条/页」变为「200 条/页」,仍使用原分页位置和选项。 范围确认:用户于 2026-10-07 在最小方案说明后授权建单;这里只记录复用现有设计及需求范围,不冒充已完成原型或用户验收。无新页面或独立交互,不要求新建完整 QuantUX 原型。 ## 前置依赖与并行 - 无新增实现依赖;实施前复核最新 main,确认已有 200 条后端支持和分页选项未变化。 - 可与不涉及此页面的工单并行;涉及同一列表初始化、分页或批量选择逻辑的变更须协调,避免覆盖。 - 生产发布、重启及任何真实批量写操作不包含在建单授权中,须另获用户授权。 ## 验收标准 - [ ] 首次进入或刷新档口入库码页面,请求 page=1、pageSize=200,分页器显示 200 条/页。 - [ ] 数据不少于 200 条时第一页返回最多 200 条业务记录;总数不足 200、空数据和末页均正常。 - [ ] 手动切换到 20/50/100/200 后,请求参数、页码、分页器和实际列表条数一致,沿用原有翻页行为。 - [ ] 搜索、日期筛选及清空筛选不额外恢复为 100,不改变当前选定条数和原有日期语义。 - [ ] 当前页全选范围仍是当前页;匹配、删除、回写的资格、预览范围、确认及限制不因本单修改而改变,不自动触发任何批量写操作。 - [ ] 其他页面的默认条数和分页行为不变;公共分页组件与后端接口没有修改。 - [ ] 验证 200 条加载与渲染无明显卡顿、请求超时或分页错位;记录实测结果,不以代码支持 200 推断线上性能已通过。 ## 验证计划、风险与回退 - 增补页面默认条数的最小回归测试,执行相关测试和 Web 构建。 - 本地验证首次加载、刷新、手动改条数、查询和翻页;抽查一个其他列表页,确认默认分页未变。 - 批量操作只检查勾选和预览范围,不执行真实删除或 SYB 回写。 - 风险:单次返回量和渲染行数增加,包含明细的响应也可能增加;出现性能问题先记录,不顺带重构接口或全局调整超时。 - 回退:恢复本页默认 100,数据与接口无迁移,不影响已保存业务数据。 ## 文档影响与交付要求 实施后在 Wiki `Business-Rules-and-Glossary` 的档口入库码部分补充「仅此页默认 200,保留 20/50/100/200 选项」的长期页面规则;按项目要求线上回读 revision,再完成一轮镜像同步和一致性检查。API 默认值不变,无 API 契约修改。 实现、测试、提交及未验证项集中回写本工单,保持待验收,未经用户验收不关闭。不要创建任务快照或额外流程文档。 ## 工具与流转说明 建单时 Gitea MCP 的 list_labels 返回 `All connection attempts failed`,按项目规则回退 Gitea REST API,凭据来自本机私有项目配置,未写入正文。仓库本次标签查询为空,类别和待实施状态记录在正文,不新增标签体系。SynapBus MCP 本会话无可调用工具;本次不发送 Agent 消息。
Author
Owner

2026-10-07 开始实施:用户已授权做 #363,复用现有分页布局。基线 main 49de6f8,独立 worktree issue-363 / feat/363-inner-code-page-size。范围仅本页默认 200 与直接回归测试,不改公共组件、后端、权限及批量写操作。按测试先行、Web 构建与本地分页验证执行;无合并 main 或部署授权。SynapBus 身份已核验 goauto_codex,#69 审核线程暂无回复。Gitea MCP get_issue 当前连接失败,读取与回写按规则回退项目私有配置的 REST API。

2026-10-07 开始实施:用户已授权做 #363,复用现有分页布局。基线 main 49de6f8,独立 worktree issue-363 / feat/363-inner-code-page-size。范围仅本页默认 200 与直接回归测试,不改公共组件、后端、权限及批量写操作。按测试先行、Web 构建与本地分页验证执行;无合并 main 或部署授权。SynapBus 身份已核验 goauto_codex,#69 审核线程暂无回复。Gitea MCP get_issue 当前连接失败,读取与回写按规则回退项目私有配置的 REST API。
Author
Owner

实施完成,待验收(2026-10-07)

实现与范围

  • 分支 feat/363-inner-code-page-size,基线 49de6f80454d324cbcfc59297238a37ab1db5cf8。
  • 955869b:仅 Web 档口入库码页独立初始化 query.pageSize: 100 → 200,补充页面单元回归。
  • 845853c:浏览器分页回归与 Wiki 镜像。以上提交均已推送,未合并 main。
  • 保留 20/50/100/200、初始 page=1 和当天日期、手选条数后的搜索/清除行为。共享 Pagination、Server、Android、权限和数据库均未修改;匹配/删除/回写资格与动作规则不变,无迁移。

验证证据

  • TDD:新默认断言在原值 100 时失败(100 !== 200),改为 200 后通过。
  • node --test tests/unit/syb-inner-code-page-size.test.cjs tests/unit/syb-inner-code-match.test.cjs tests/unit/syb-inner-code-apply-selection.test.cjs:12/12 通过(主 Agent 独立重跑)。
  • Playwright:syb-inner-code-page-size.spec.ts、syb-inner-code-match.spec.ts、syb-inner-code-apply-selection.spec.ts,9/9 通过,59.0s。真实 Chrome + 本地 Web,全部业务 API 为模拟数据,未连接业务库,未执行真实匹配、删除或 SYB 回写。
  • 覆盖首次/刷新默认 200、四档切换、查询/清除保留条数、当天默认、200 条首页与 5 条尾页、小数据列表、空态、当前页全选 200 条预览、取消后无提交、翻页清空选择;抽查店铺管理仍默认 20。原有混合资格、预览失败、状态变化及提交失败回归均通过。
  • 200 条模拟数据首次导航与渲染实测 2640ms(包含导航与前端加载),测试中无超时/分页条数错位;这不是线上接口耗时或真实生产负载性能结论。
  • 页面 ESLint、git diff --check 通过;pnpm build:prod 成功,21.65s。构建仍有现有 CSS 伪类及大 chunk 告警,本单不扩展处理。
  • 规格符合性审核、代码质量审核均通过,无必须修复项。

文档与交付状态

  • 在线更新并回读 Business-Rules-and-Glossary 的档口入库码段,revision 0c38e2fe68546acb2d780c94b73879107c60b9f0;明确规则绑定实现提交且尚未发布。
  • 按要求只执行一轮 python dev_scripts/harness.py sync 与一轮 sync --check,均成功,只有对应业务规则镜像发生变化。
  • Gitea MCP 仍返回 All connection attempts failed,工单/Wiki 使用项目私有凭据经 REST API 回退;Git 初次推送因缓存认证失败,改用同一私有配置的进程级认证后成功,未修改持久认证配置。
  • 未合并 main、未更新本地运行目录、未重启任何业务服务、未部署线上、未做生产性能验证。临时测试 Web 已停止。
  • 工单保持打开等待用户验收;验收清单不冒充用户验收。worktree D:/OPC/goauto-worktrees/issue-363 保留,待获准合并/发布后按规则清理。
## 实施完成,待验收(2026-10-07) ### 实现与范围 - 分支 `feat/363-inner-code-page-size`,基线 `49de6f80454d324cbcfc59297238a37ab1db5cf8`。 - `955869b`:仅 Web 档口入库码页独立初始化 `query.pageSize: 100 → 200`,补充页面单元回归。 - `845853c`:浏览器分页回归与 Wiki 镜像。以上提交均已推送,未合并 main。 - 保留 20/50/100/200、初始 page=1 和当天日期、手选条数后的搜索/清除行为。共享 Pagination、Server、Android、权限和数据库均未修改;匹配/删除/回写资格与动作规则不变,无迁移。 ### 验证证据 - TDD:新默认断言在原值 100 时失败(100 !== 200),改为 200 后通过。 - `node --test tests/unit/syb-inner-code-page-size.test.cjs tests/unit/syb-inner-code-match.test.cjs tests/unit/syb-inner-code-apply-selection.test.cjs`:12/12 通过(主 Agent 独立重跑)。 - Playwright:`syb-inner-code-page-size.spec.ts`、`syb-inner-code-match.spec.ts`、`syb-inner-code-apply-selection.spec.ts`,9/9 通过,59.0s。真实 Chrome + 本地 Web,全部业务 API 为模拟数据,未连接业务库,未执行真实匹配、删除或 SYB 回写。 - 覆盖首次/刷新默认 200、四档切换、查询/清除保留条数、当天默认、200 条首页与 5 条尾页、小数据列表、空态、当前页全选 200 条预览、取消后无提交、翻页清空选择;抽查店铺管理仍默认 20。原有混合资格、预览失败、状态变化及提交失败回归均通过。 - 200 条模拟数据首次导航与渲染实测 2640ms(包含导航与前端加载),测试中无超时/分页条数错位;这不是线上接口耗时或真实生产负载性能结论。 - 页面 ESLint、`git diff --check` 通过;`pnpm build:prod` 成功,21.65s。构建仍有现有 CSS 伪类及大 chunk 告警,本单不扩展处理。 - 规格符合性审核、代码质量审核均通过,无必须修复项。 ### 文档与交付状态 - 在线更新并回读 `Business-Rules-and-Glossary` 的档口入库码段,revision `0c38e2fe68546acb2d780c94b73879107c60b9f0`;明确规则绑定实现提交且尚未发布。 - 按要求只执行一轮 `python dev_scripts/harness.py sync` 与一轮 `sync --check`,均成功,只有对应业务规则镜像发生变化。 - Gitea MCP 仍返回 `All connection attempts failed`,工单/Wiki 使用项目私有凭据经 REST API 回退;Git 初次推送因缓存认证失败,改用同一私有配置的进程级认证后成功,未修改持久认证配置。 - 未合并 main、未更新本地运行目录、未重启任何业务服务、未部署线上、未做生产性能验证。临时测试 Web 已停止。 - 工单保持打开等待用户验收;验收清单不冒充用户验收。worktree `D:/OPC/goauto-worktrees/issue-363` 保留,待获准合并/发布后按规则清理。
Author
Owner

已授权合并及线上发布完成(2026-10-07)

  • 用户本轮明确授权「合并main,部署线上」。合并提交 eb7cb6b5eb9a57041429c3dfb1d88dc8236d32f3;发布记录提交 6781b309d4cd0de226c038b9fd509cb68e021b51,main 与工单分支均已推送。
  • 合并后12项相关单测通过;发布工作区原 node_modules 存在无效依赖链接,未改生产代码绕过,改由已验证依赖的工单工作区快进到同一合并提交后重新构建,pnpm build:prod 成功(27.98s)。此前9项浏览器回归结果仍适用于相同代码树。
  • 线上旧版本 /home/goauto/releases/20261006-e76de6f-358;新版本 /home/goauto/releases/20261007-eb7cb6b-363。Server源码对比无差异,二进制与config逐字节相同;沿用原持久资源目录。上传 Web包 SHA256 a6b4429280fae37e46e81bd21a594941cfee3b5e8c48c105a09254314af32311 远端一致。
  • 检查发现1个采购任务执行中,其余所查采集、同步、AI、匹配批次及回填无运行任务,未停止/取消/重置采购。根据运行环境及服务代码证据,Nginx和GoAuto均从绝对路径 /home/goauto/current/dist 按请求读取前端文件;因此采用纯Web原子切换 current,不重启任何服务。前后PID 43738、active不变。没有数据库迁移、权限写入或定时任务变更。
  • 保留旧发布及旧哈希 JS/CSS,新旧前端资源不因原子切换丢失;回滚可原子切回旧current。本次免重启结论只适用于后端与配置完全不变的纯Web更新,不适用于后续后端变更。

发布后验证

  • 公网 /、/index.html、/login、/syb-inner-codes/index 与新 index.html 字节一致,均为SPA、非go-admin欢迎页。
  • 10项入口JS/CSS与健康接口HTTP200;近10分钟服务日志关键词检查无 panic/fatal/1146/1054。
  • 使用现有认证的真实 Chrome 只读检查(拦截所有非GET/HEAD/OPTIONS接口):首次请求 page=1/pageSize=200,分页器200条/页;当天空态正常。清除日期后实际展示200行,查询至渲染约987ms。独立只读API也返回200条,未执行匹配、删除、回写或采购。
  • 没有保存生产原始数据/页面截图,没有修改本地Supervisor运行目录,也没有发布或安装Android。

文档和清理

  • Business-Rules-and-Glossary revision d9b2a343e790c7d90354d47e1a977f134a72a760;Deployment-and-Operations revision 21e8ed0578212b84a77af537e13be6d10c8b5463。本发布阶段各执行一轮sync与sync --check通过,镜像已随6781b30提交推送。
  • Gitea MCP get_issue仍连接失败,本轮沿用已记录的私有凭据REST回退。
  • 清理前确认工单HEAD是origin/main祖先、工作区干净、无外部指向依赖链接(检查3750项本树链接均在本树内)、无Supervisor/运行程序引用。10份合成测试产物已转存发布工作区 D:/OPC/goauto-worktrees/release-316/verification-363;线上发布包及旧发布保留可回滚。
  • 按规则调用 git worktree remove,Windows返回 Directory not empty;未使用force或递归强删。D:/OPC/goauto-worktrees/issue-363 仍残留依赖目录及wiki-docs.json,待后续释放文件占用再清理;分支和提交历史未删除。
  • 工单保持打开待用户验收,不将发布成功视作人工验收通过。
## 已授权合并及线上发布完成(2026-10-07) - 用户本轮明确授权「合并main,部署线上」。合并提交 `eb7cb6b5eb9a57041429c3dfb1d88dc8236d32f3`;发布记录提交 `6781b309d4cd0de226c038b9fd509cb68e021b51`,main 与工单分支均已推送。 - 合并后12项相关单测通过;发布工作区原 node_modules 存在无效依赖链接,未改生产代码绕过,改由已验证依赖的工单工作区快进到同一合并提交后重新构建,`pnpm build:prod` 成功(27.98s)。此前9项浏览器回归结果仍适用于相同代码树。 - 线上旧版本 `/home/goauto/releases/20261006-e76de6f-358`;新版本 `/home/goauto/releases/20261007-eb7cb6b-363`。Server源码对比无差异,二进制与config逐字节相同;沿用原持久资源目录。上传 Web包 SHA256 `a6b4429280fae37e46e81bd21a594941cfee3b5e8c48c105a09254314af32311` 远端一致。 - 检查发现1个采购任务执行中,其余所查采集、同步、AI、匹配批次及回填无运行任务,未停止/取消/重置采购。根据运行环境及服务代码证据,Nginx和GoAuto均从绝对路径 `/home/goauto/current/dist` 按请求读取前端文件;因此采用纯Web原子切换 current,不重启任何服务。前后PID 43738、active不变。没有数据库迁移、权限写入或定时任务变更。 - 保留旧发布及旧哈希 JS/CSS,新旧前端资源不因原子切换丢失;回滚可原子切回旧current。本次免重启结论只适用于后端与配置完全不变的纯Web更新,不适用于后续后端变更。 ### 发布后验证 - 公网 `/`、`/index.html`、`/login`、`/syb-inner-codes/index` 与新 index.html 字节一致,均为SPA、非go-admin欢迎页。 - 10项入口JS/CSS与健康接口HTTP200;近10分钟服务日志关键词检查无 panic/fatal/1146/1054。 - 使用现有认证的真实 Chrome 只读检查(拦截所有非GET/HEAD/OPTIONS接口):首次请求 page=1/pageSize=200,分页器200条/页;当天空态正常。清除日期后实际展示200行,查询至渲染约987ms。独立只读API也返回200条,未执行匹配、删除、回写或采购。 - 没有保存生产原始数据/页面截图,没有修改本地Supervisor运行目录,也没有发布或安装Android。 ### 文档和清理 - Business-Rules-and-Glossary revision `d9b2a343e790c7d90354d47e1a977f134a72a760`;Deployment-and-Operations revision `21e8ed0578212b84a77af537e13be6d10c8b5463`。本发布阶段各执行一轮sync与sync --check通过,镜像已随6781b30提交推送。 - Gitea MCP get_issue仍连接失败,本轮沿用已记录的私有凭据REST回退。 - 清理前确认工单HEAD是origin/main祖先、工作区干净、无外部指向依赖链接(检查3750项本树链接均在本树内)、无Supervisor/运行程序引用。10份合成测试产物已转存发布工作区 `D:/OPC/goauto-worktrees/release-316/verification-363`;线上发布包及旧发布保留可回滚。 - 按规则调用 `git worktree remove`,Windows返回 Directory not empty;未使用force或递归强删。`D:/OPC/goauto-worktrees/issue-363` 仍残留依赖目录及wiki-docs.json,待后续释放文件占用再清理;分支和提交历史未删除。 - 工单保持打开待用户验收,不将发布成功视作人工验收通过。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#363