fix: 统一报销付款详情布局与票据展示(09-04-reimbursement-state-gap-finance-view)
这个提交包含在:
@@ -1,5 +1,11 @@
|
||||
# 报销状态空隙与财务处理视角:设计
|
||||
|
||||
## 2026-09-11 等宽侧栏与票据表格
|
||||
|
||||
动作卡通过可选inlineActions布局主动作和更多,默认合同不变。两页更多复用现有Radix DropdownMenu,Portal渲染后测试按page.getByRole("menuitem")定位,而不是动作卡内找按钮。业务回调和确认对话框不变;报销调用方仅在有撤回或动作错误时传ReimbursementActions,避免React组件返回null但外层误判为有内容而生成空分隔线。
|
||||
|
||||
根因:共享detail-workspace-grid使用比例列,而报销壳另有max-w-7xl,付款壳无同一上限。新增局部共享detail-workspace-grid--payment类供两处使用,lg起固定320px侧栏,主列minmax(0,1fr),保持各自正文宽度和手机规则。frontend-design不可用,仅复用现有表格、边框和按钮样式,不创建新视觉体系。已关联票据采用响应式表格,窄屏按行紧凑排列;未关联票据保留原纠错控件与唯一锚点。姓名和号码允许换行,预览、移除及OCR告警按原capabilities保留。
|
||||
|
||||
## 2026-09-11 下一步与侧栏一致性方案(已批准本地实施)
|
||||
|
||||
本轮只读核对已发布候选,未查询生产。ReimbursementDetailPage 的 approved 分支无条件显示“等待财务组建付款批次”,其主动作只再检查 payment.batch.manage;同一页面 ProcessingProgress 已消费服务端按真实批次状态构造的阶段。修复必须连接这两处投影,不能只把错误文字换成另一句固定文案。
|
||||
|
||||
@@ -1,5 +1,29 @@
|
||||
# 报销状态空隙与财务处理视角:实施计划
|
||||
|
||||
## 本轮复核输入与提交准备(未提交)
|
||||
|
||||
用户批准整理两笔独立改动的复核/提交方案。基线均为5d8cdf12;01为制单备注5文件,02为UI布局11文件,路径无重叠。仅生成补丁、摘要清单并用临时索引验证顺序合并,不改变实际HEAD/index,不创建commit,不推送或部署。复核入口位于layout副本的artifacts/qa-layout/review-preparation/README.md;临时合并树不是发布候选commit。既有验证按输入不变复用,本轮不新增测试通过计数;UI补跑外层143、网银导入未验证、未独立复核等边界保留。提交前须核对冻结摘要,发布前还需验证合并后的实际候选,不能把单包测试冒充集成验收。
|
||||
|
||||
## 2026-09-11 侧栏与票据展示增量
|
||||
|
||||
独立layout副本基于5d8cdf12,官方current核对本task;不混制单备注及其他未提交工作。本轮已授权本地实施,未授权提交/推送/部署。
|
||||
|
||||
- [x] 统一两处侧栏,复用表格展示已关联发票,保留异常/手机/附件能力;同轮更多下拉同行、账号旁查看图标已实施。
|
||||
- [x] 添加同屏宽度和票据展示回归,运行typecheck/build与相关浏览器测试。
|
||||
- [x] 主会话复核、更新规约和验证记录,明确未发布边界。
|
||||
|
||||
本轮本地实施已完成:图标仅替换展示,原employee.bank.read/finance角色、reviewed/failed及paymentAccount条件未改,点击仍需填写原因后才能请求完整账号。布局/菜单不改API、权限规则和状态机;主会话核源码及合成截图,不冒充独立复核或生产验收。
|
||||
|
||||
验证回执:
|
||||
- client下npm run build(含typecheck)重跑退出0,Vite/PWA完成,116项预缓存;最终源文件再次npm run typecheck退出0。首轮build外层143保留,不计为通过。
|
||||
- E2E_BASE_URL指向本地4317,npx playwright test tests/e2e/system-action-confirmation.spec.ts tests/e2e/reimbursement-content-consistency.spec.ts --workers=1 --reporter=list:50项中47通过、3失败。手机失败是boundingBox将44px回传为43.99993896484375;改为百分之一像素精度判断,仍要求44px。另两项为未指定BIFF8运行环境,生成器不可用,不是制单内容失败。
|
||||
- 使用既有BIFF8虚拟环境的PAYMENT_ORDER_PYTHON_BIN,仅重跑手机交接和双端制单3项,Playwright报告3 passed。外层会话返回143,不能把整条补跑命令称为退出0;进程检查已无该补跑进程。保留日志和结果,不为刷绿再次重复已通过输入。50项用例已有通过结果,但不是一次50/50退出0的运行。
|
||||
- 首轮侧栏4项中3通过,同排几何测量出现8px差值,失败截图未见持续错排;等待字体并按中心线比较后,1280/1440均通过且两页侧栏都实测320px。不将字体竞态猜测冒充已独立证明的原因。
|
||||
- 图标键盘打开/取消零完整账号请求;5张长名称/长编号在390/1280/1440均完整且不造成页面横向溢出,预览请求命中正确票据;桌面更多、删除/撤回/打印、手机底栏、上传回单、双端真实BIFF8下载与重复下载边界均有回归通过结果。
|
||||
- Trellis治理、process-contract baseline、git diff --check通过。本地证据存artifacts/qa-layout(ignored),含首次失败和补跑记录;不提交合成截图或原始运行输出到业务文档。
|
||||
|
||||
未提交、未推送、未部署、未做生产写入;制单备注仍在另一独立副本。本轮不归档整个task。下一步按路径汇总本UI增量与独立备注增量的候选复核输入,经明确授权后再分别提交/推送及准备发布,不覆盖原integration任务历史。
|
||||
|
||||
## 2026-09-11 迟到 401 复核接续(最新,门户取消修正本地通过)
|
||||
|
||||
主会话只读核对 dcde0d44 的 33 源文件、3 补丁重放及历史证据后,双端合成浏览器补查甲→乙→甲:甲旧请求迟到 401 后按乙会话重试,结果进入甲缓存,甲再次登录等待新响应时显示乙待办。该包 NO_GO;独立复核仍 PENDING_INLINE,原 6/62/真实隔离通过记录不改写。回执在 postpush-identity/readonly-review.md。
|
||||
|
||||
@@ -2,6 +2,14 @@
|
||||
|
||||
## Goal
|
||||
|
||||
### 2026-09-11 追加:侧栏等宽与票据紧凑展示(已批准)
|
||||
|
||||
用户同轮要求“查看完整账号”改为账号旁Eye图标,保留44px触控、title/aria-label及键盘入口;账号仍默认脱敏,权限/角色/状态条件和填写原因、审计流程不变,不改为悬浮或点击即解密。
|
||||
|
||||
用户同轮追加“更多”紧随主按钮:报销和付款桌面动作行左对齐,主按钮按内容宽度,更多为相同下拉菜单;不足则换行,不改变手机付款底栏。保留菜单内删除/打印/下载/上传/取消的资格、禁用与确认语义。去掉空动作组件导致的重复分隔线,不隐藏实际撤回或错误信息。
|
||||
|
||||
报销详情/审批共用壳与付款详情桌面侧栏统一320px,lg以下仍单列,操作在上、进度在下;不改其他业务布局。发票桌面按号码、开票方、日期、金额、操作展示,号码沿用预览入口,金额右对齐;窄屏紧凑列表。补充附件保留独立文件列表及已有类型/大小、预览和有权删除入口,空态一行。不新增关联步骤,不隐藏未关联/OCR失败等异常处理。使用合成数据验收等宽、多票据、长名称、预览、附件删除及390px无页面溢出。无权限/API/生产变更,不混入制单备注补丁。
|
||||
|
||||
### 2026-09-11 追加需求:付款下一步与详情侧栏一致性(已批准本地实施)
|
||||
|
||||
用户反馈财务在报销详情同时看到“去组建付款批次”和已创建、已复核的付款进度。只记录脱敏状态矛盾,不复制真实截图、票据或金额。已发布 fe025e65 源码中右侧下一步及主动作只按报销 status=approved 判断,忽略已由服务端提供的付款阶段;报销进度插在主列材料之后,付款详情则在右栏操作下方。报销审批通过并不等于尚未组批,也不等于银行已经付款。
|
||||
|
||||
在新工单中引用
屏蔽一个用户