R94/R95 A1/A6/A7 记录视觉复测与部署收口

这个提交包含在:
2026-05-06 00:32:19 +08:00
父节点 8b7e043860
当前提交 6127a537d8
共修改 4 个文件,包含 762 行新增和 0 行删除
@@ -0,0 +1,8 @@
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
A1,R94/R95 执行合同冻结,"基于 2026-05-06 最新公网 360/390px 预检,把后续剩余问题收敛为三类移动端表格清零和合同台账权限一致性。","Issue CSV 字段完整并通过校验;本轮只处理 `/assets`、`/notifications`、`/purchase-requests`、`/contracts-registry`,不扩展新业务能力。","命令:`python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-06_00-09-33-r94-r95-mobile-permission-closeout.csv`。业务:确认最新公网预检 `artifacts/r94/preflight-mobile-audit-2026-05-06.json` 只剩目标页面仍有移动表格或 403。",manual,DONE,DONE,DONE,issues/2026-05-06_00-09-33-r94-r95-mobile-permission-closeout.csv,[],2026-05-06:CSV 已创建并通过校验;回滚路径:删除本 CSV;本轮不处理已在 R93 解决的票据/报销/移动上传。
A2,资产页移动端卡片化,"把资产页在 360/390px 下仍可见的资产表格改为移动卡片或移动列表,桌面表格保持原交互。","1) `/assets` mobile360/mobile390 主区域 `visibleTableCount=0`;2) 分类和资产列表核心字段可读,操作入口不出屏;3) 桌面资产表格仍可用;4) 小触控目标不增加。","命令:`cd client && npm run typecheck && npm run build`;Playwright 公网/本地视觉探针检查 `/assets` mobile360/mobile390,无可见 table、无 offscreen interactive。业务:员工手机查看资产信息不需要横向表格。",playwright|typescript,DONE,DONE,DONE,client/src/pages/AssetRegistryPage.tsx|client/src/router/lazy/AssetRegistryPage.ts,["A1"],2026-05-06:资产分类与资产列表已改为移动卡片;公网 post-fix 视觉复测 `/assets` mobile360/mobile390 visibleTableCount=0 且无出屏交互;回滚路径:恢复资产页组件改动。
A3,通知页移动端卡片化,"把通知页在 360/390px 下仍可见的通知表格改为移动消息卡片,桌面表格保持原交互。","1) `/notifications` mobile360/mobile390 主区域 `visibleTableCount=0`;2) 标题、类型、状态、时间和操作在卡片内可读可点;3) 未读/全部筛选不回归;4) 桌面表格仍可用。","命令:`cd client && npm run typecheck && npm run build`;Playwright 视觉探针检查 `/notifications` mobile360/mobile390,无可见 table、无 offscreen interactive。业务:员工手机查看通知不需要横向表格。",playwright|typescript,DONE,DONE,DONE,client/src/pages/NotificationsPage.tsx|client/src/router/lazy/NotificationsPage.ts,["A1"],2026-05-06:通知列表已改为移动消息卡片;公网 post-fix 视觉复测 `/notifications` mobile360/mobile390 visibleTableCount=0 且无出屏交互;回滚路径:恢复通知页组件改动。
A4,采购页移动端卡片化,"把采购申请页在 360/390px 下仍可见的采购表格改为移动单据卡片,桌面表格保持原交互。","1) `/purchase-requests` mobile360/mobile390 主区域 `visibleTableCount=0`;2) 采购标题、状态、金额、申请人和查看入口可读可点;3) 新建/导出等页头操作不出屏;4) 桌面表格仍可用。","命令:`cd client && npm run typecheck && npm run build`;Playwright 视觉探针检查 `/purchase-requests` mobile360/mobile390,无可见 table、无 offscreen interactive。业务:员工手机查看采购单不需要横向表格。",playwright|typescript,DONE,DONE,DONE,client/src/pages/PurchaseRequestsPage.tsx|client/src/router/lazy/PurchaseRequestsPage.ts,["A1"],2026-05-06:采购列表以及采购明细和附件已补移动卡片/分组表单;公网 post-fix 视觉复测 `/purchase-requests` mobile360/mobile390 visibleTableCount=0 且无出屏交互;回滚路径:恢复采购页组件改动。
A5,合同台账员工视角权限一致性,"修复 `/contracts-registry` 员工视角页面可进入但内部请求 `/api/employees` 返回 403 的噪声,统一页面数据依赖与权限。","1) 员工访问 `/contracts-registry` 不再触发 `/api/employees` 403;2) 若员工无人员目录权限,筛选/负责人选择降级为不可用或仅显示已有文本;3) 管理/有权限角色保留人员筛选能力;4) 页面不出现空白或错误风暴。","命令:`cd client && npm run typecheck && npm run build`;公网 Playwright 检查 `/contracts-registry` mobile360/mobile390/desktop1440,`httpErrors` 中无 403;必要时补前端权限判断测试。业务:员工进入合同台账时页面权限边界一致。",playwright|typescript,DONE,DONE,DONE,client/src/pages/ContractsRegistryPage.tsx|client/src/api/employees.ts|client/src/auth/permissions.ts,["A1"],2026-05-06:合同台账按 system.users/report.dashboard.view 跳过无权员工列表请求;无目录权限时责任人改为只读说明且保存不改责任人;公网 mobile360/mobile390/desktop1440 均无 403;回滚路径:恢复合同台账页权限判断。
A6,R94/R95 自动化视觉复测,"对本轮修改页面执行 360/390px 自动化视觉复测,并保留 JSON/截图证据。","1) `/assets`、`/notifications`、`/purchase-requests` mobile360/mobile390 `visibleTableCount=0`;2) `/contracts-registry` 无 API 403;3) 复测 JSON 写入 `artifacts/r94/`;4) 截图写入 ignored `output/playwright/`。","命令:Playwright 只读视觉脚本扫描 `/assets`、`/notifications`、`/purchase-requests`、`/contracts-registry` 的 mobile360/mobile390,并解析 JSON 断言。业务:手机端剩余主问题关闭且权限噪声消失。",playwright,DONE,DONE,DONE,artifacts/r94|output/playwright/r94-*,"[""A2"",""A3"",""A4"",""A5""]",2026-05-06:公网 post-fix 复测写入 artifacts/r94/post-fix-mobile-audit-2026-05-06.json 和 artifacts/r94/post-fix-contracts-desktop-permission-2026-05-06.json;截图在 ignored output/playwright/r94-post-fix;回滚路径:删除新增审计产物。
A7,R94/R95 构建部署与中文提交,"完成本地构建、远端部署、远端 smoke、公网视觉复测,并按中文分批提交。","1) `npm run typecheck` 与 `npm run build` 通过;2) 远端 `/ready`、external deps smoke、runtime smoke 通过;3) 公网 post-deploy 视觉复测通过;4) commit message 使用中文并引用 R94/R95;5) `git status --short` 干净。","命令:`cd client && npm run typecheck && npm run build`;远端 `docker-compose ... up -d --build server`、`init`、`smoke-external-deps.js`、`smoke-trialrun-runtime.js`;公网 Playwright 复测。业务:公网用户实际看到修复后的移动端与权限行为。",playwright|ssh|git,DONE,DONE,DONE,N/A,["A6"],2026-05-06:本地 typecheck/build 通过;deploy/trialrun/deploy.sh 完成;远端 /ready external deps smoke runtime smoke 补跑均通过;已按中文分批提交;回滚路径:revert commit 或重建上一版 Docker 镜像。
无法渲染此文件,因为它包含了意外字符,其位于第 3 行和第 725 列。