OAFRONT5 隐藏付款批次复核人内部ID

这个提交包含在:
2026-05-25 09:41:20 +08:00
父节点 8d08441f1e
当前提交 ef24010d4a
共修改 2 个文件,包含 10 行新增和 3 行删除
+8 -2
查看文件
@@ -34,6 +34,7 @@ import { formatDisplayDate, formatDisplayDateTime } from "../lib/displayFormat";
import { toast } from "sonner";
const PAYMENT_CHANNEL_OPTIONS: PaymentChannel[] = ["bank", "alipay", "wechat", "cash", "other"];
const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
function batchStatusLabel(value: string) {
if (value === "draft") return "草稿";
@@ -75,6 +76,11 @@ function reviewNextStepLabel(value: PaymentBatch["reviewRequirement"]["nextStep"
return "可执行付款标记";
}
function reviewerDisplayName(value: string | null | undefined) {
if (!value) return "";
return UUID_PATTERN.test(value) ? "已记录" : value;
}
function formatFileSize(value: number) {
if (!Number.isFinite(value) || value <= 0) return "-";
if (value < 1024) return `${value} B`;
@@ -504,8 +510,8 @@ export function PaymentBatchesPage() {
<div className="rounded-lg border border-zinc-200 bg-zinc-50 px-3 py-3 text-sm text-zinc-600">
当前要求:{selectedBatch.reviewRequirement.requiredReviewCount === 2 ? `批次金额达到 ${selectedBatch.reviewRequirement.thresholdAmount},需两轮复核` : "单轮复核后可执行"}。
下一步:{reviewNextStepLabel(selectedBatch.reviewRequirement.nextStep)}。
{selectedBatch.reviewedBy ? ` 首轮复核人:${selectedBatch.reviewedBy}` : ""}
{selectedBatch.secondaryReviewedBy ? ` 二次复核人:${selectedBatch.secondaryReviewedBy}` : ""}
{selectedBatch.reviewedBy ? ` 首轮复核人:${reviewerDisplayName(selectedBatch.reviewedBy)}` : ""}
{selectedBatch.secondaryReviewedBy ? ` 二次复核人:${reviewerDisplayName(selectedBatch.secondaryReviewedBy)}` : ""}
</div>
</div>
@@ -7,4 +7,5 @@
"OAFRONT5-5","HR/考勤/后台配置日期控件后置清单","把 EmployeeProfile、People、Attendance、TeamPresence、Leave、Performance、Budgets、Travel 等页面残留 type=date 分类为 HR/配置/冻结域后置,不在 launch 前大面积改。","后置清单清楚说明哪些页面属于 C 类后台或冻结域;除非真实使用出现 blocker,否则不抢 OALAUNCH1 主线。","受影响流程:HR/管理员维护员工资料、团队状态、考勤镜像和预算/差旅冻结页;验证步骤:rg -n 'type=""date""' client/src/pages client/src/components;人工按 A/B/C 页面分层确认。","rg|manual","TODO","TODO","TODO","client/src/pages/EmployeeProfilePage.tsx;client/src/pages/PeoplePage.tsx;client/src/pages/AttendancePage.tsx;client/src/pages/TeamPresencePage.tsx;client/src/pages/LeaveRequestPage.tsx;client/src/pages/BudgetsPage.tsx;client/src/pages/TravelRequestsPage.tsx","[""OAFRONT5-2""]","企微 HR/考勤仍由企微主办;OA 页面多为镜像、后台或应急边界,不应在启用前扩大为 HR 主办 UI 改造。"
"OAFRONT5-6","Portal 首屏工作台化继续观察","OAFRONT4 已完成 Portal 命名本地化;首屏 hero 是否继续收敛,等部署后截图和真实 7 天反馈,不凭主观审美立即重排。","如果真实用户反馈首屏找不到待办/常用/财务入口,再做小步重排;否则保留现布局,只记录 P2 视觉优化建议。","受影响流程:PC 登录 -> 工作台 -> 找待办/草稿/财务/合同/资产入口;验证步骤:部署后 PC 截图;7 天真实反馈;不得复制竞品文案或做营销式 hero。","playwright|manual","TODO","TODO","TODO","client/src/pages/PortalHomePage.tsx;docs/trialrun/人工试运行报告.md","[""OAFRONT5-1""]","优先级 P2;不作为部署 blocker。回滚路径:如后续采纳并修改 Portal 后反馈变差,回滚对应前端提交;本观察项本身只记录证据,无需清理公网数据。"
"OAFRONT5-7","OALAUNCH1 启用门禁对齐","把部署后 UI 回归结果接入 OALAUNCH1:前端可用性只是启动条件之一,最终启用仍取决于真实业务闭环、权限矩阵、备份恢复、7 天稳定化和 Go/No-Go。","OALAUNCH1 汇总能引用最新 OAFRONT4/OAFRONT5 视觉回归结论;不因 UI 自动通过而跳过真实报销、采购、合同、资产、备份和人工 Go/No-Go。","受影响流程:前端回归 -> OALAUNCH1 汇总 -> Day 7 决策;验证步骤:LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-oa-real-use-daily.sh;OALAUNCH_STABILIZATION_START_DATE=<date> bash scripts/qa/run-oa-final-launch-readiness.sh。","bash|manual","TODO","TODO","TODO","issues/2026-05-23_16-49-39-oa-final-launch-readiness-v1.csv;scripts/qa/run-oa-final-launch-readiness.sh","[""OAFRONT5-2""]","仍需人工/运维:真实业务样本、备份恢复演练、Day 7 Go/No-Go;自动化只能证明入口和只读巡检。回滚/清理:若 OALAUNCH1 引用错误,仅回滚 Issue CSV/报告引用;不修改公网业务数据。"
"OAFRONT5-8","用户采纳门禁","用户审查 OAFRONT5 后决定是否先部署 OAFRONT4,是否采纳 AP/报销日期收口,是否继续后置 HR/Portal。","用户至少给出 A/B/C:A=先部署并复跑矩阵;B=不部署,先继续本地修 AP/报销;C=暂停前端,回到 OALAUNCH1 人工业务闭环。未采纳前不得执行部署或新增代码修复。","受影响流程:OAFRONT5 合同 -> 用户决策 -> 部署/修复/暂停;验证步骤:人工回填选择并 validate CSV。","manual|python3","TODO","TODO","TODO","issues/2026-05-25_09-17-51-oa-pc-post-deploy-ui-hardening-v1.csv","[""OAFRONT5-0""]","默认推荐 A:先部署并复跑只读矩阵;只有新矩阵仍有 P1,再进入 OAFRONT5-3/4。"
"OAFRONT5-8","用户采纳门禁","用户审查 OAFRONT5 后决定是否先部署 OAFRONT4,是否采纳 AP/报销日期收口,是否继续后置 HR/Portal。","用户至少给出 A/B/C:A=先部署并复跑矩阵;B=不部署,先继续本地修 AP/报销;C=暂停前端,回到 OALAUNCH1 人工业务闭环。未采纳前不得执行部署或新增代码修复。","受影响流程:OAFRONT5 合同 -> 用户决策 -> 部署/修复/暂停;验证步骤:人工回填选择并 validate CSV。","manual|python3","DONE","DONE","DONE","issues/2026-05-25_09-17-51-oa-pc-post-deploy-ui-hardening-v1.csv","[""OAFRONT5-0""]","用户已批准按推荐继续部署和修复;2026-05-25 已执行首次部署和只读矩阵,发现付款批次复核人 UUID P1 后转入 OAFRONT5-9。"
"OAFRONT5-9","付款批次复核人内部 ID 展示修复","部署后 PC 视觉矩阵发现付款批次详情的复核人字段仍展示内部 UUID,导致 finance/finance_mgr 页面各 1 个 P1 finding;修复展示层,不改付款流程。","首轮复核人、二次复核人等复核字段不再向用户展示 UUID;若后端只返回内部 ID,前端显示“已记录”;付款批次状态、复核、执行、取消和回单逻辑不变。","受影响流程:财务登录 -> 付款批次 -> 查看详情 -> 复核要求;验证步骤:client typecheck/build;check-ui-design-rules;部署后复跑 PC 只读视觉矩阵,finance/finance_mgr /payment-batches UUID P1 清零。","typescript|playwright|node","DONE","DONE","TODO","client/src/pages/PaymentBatchesPage.tsx;issues/2026-05-25_09-17-51-oa-pc-post-deploy-ui-hardening-v1.csv","[""OAFRONT5-2""]","本地证据:client typecheck/build 通过且无 Circular chunk warning;check-ui-design-rules findings=0;check-process-contract baseline/general 通过;audit-docs errors=0;quick_validate 通过;git diff --check 通过;bash scripts/check-minimal.sh 通过。公网回归待部署后复跑 PC 只读视觉矩阵。回滚路径:还原前端展示 helper;不触碰后端付款状态、审批/复核数据或真实付款记录。"
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
7 OAFRONT5-5 HR/考勤/后台配置日期控件后置清单 把 EmployeeProfile、People、Attendance、TeamPresence、Leave、Performance、Budgets、Travel 等页面残留 type=date 分类为 HR/配置/冻结域后置,不在 launch 前大面积改。 后置清单清楚说明哪些页面属于 C 类后台或冻结域;除非真实使用出现 blocker,否则不抢 OALAUNCH1 主线。 受影响流程:HR/管理员维护员工资料、团队状态、考勤镜像和预算/差旅冻结页;验证步骤:rg -n 'type="date"' client/src/pages client/src/components;人工按 A/B/C 页面分层确认。 rg|manual TODO TODO TODO client/src/pages/EmployeeProfilePage.tsx;client/src/pages/PeoplePage.tsx;client/src/pages/AttendancePage.tsx;client/src/pages/TeamPresencePage.tsx;client/src/pages/LeaveRequestPage.tsx;client/src/pages/BudgetsPage.tsx;client/src/pages/TravelRequestsPage.tsx ["OAFRONT5-2"] 企微 HR/考勤仍由企微主办;OA 页面多为镜像、后台或应急边界,不应在启用前扩大为 HR 主办 UI 改造。
8 OAFRONT5-6 Portal 首屏工作台化继续观察 OAFRONT4 已完成 Portal 命名本地化;首屏 hero 是否继续收敛,等部署后截图和真实 7 天反馈,不凭主观审美立即重排。 如果真实用户反馈首屏找不到待办/常用/财务入口,再做小步重排;否则保留现布局,只记录 P2 视觉优化建议。 受影响流程:PC 登录 -> 工作台 -> 找待办/草稿/财务/合同/资产入口;验证步骤:部署后 PC 截图;7 天真实反馈;不得复制竞品文案或做营销式 hero。 playwright|manual TODO TODO TODO client/src/pages/PortalHomePage.tsx;docs/trialrun/人工试运行报告.md ["OAFRONT5-1"] 优先级 P2;不作为部署 blocker。回滚路径:如后续采纳并修改 Portal 后反馈变差,回滚对应前端提交;本观察项本身只记录证据,无需清理公网数据。
9 OAFRONT5-7 OALAUNCH1 启用门禁对齐 把部署后 UI 回归结果接入 OALAUNCH1:前端可用性只是启动条件之一,最终启用仍取决于真实业务闭环、权限矩阵、备份恢复、7 天稳定化和 Go/No-Go。 OALAUNCH1 汇总能引用最新 OAFRONT4/OAFRONT5 视觉回归结论;不因 UI 自动通过而跳过真实报销、采购、合同、资产、备份和人工 Go/No-Go。 受影响流程:前端回归 -> OALAUNCH1 汇总 -> Day 7 决策;验证步骤:LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-oa-real-use-daily.sh;OALAUNCH_STABILIZATION_START_DATE=<date> bash scripts/qa/run-oa-final-launch-readiness.sh。 bash|manual TODO TODO TODO issues/2026-05-23_16-49-39-oa-final-launch-readiness-v1.csv;scripts/qa/run-oa-final-launch-readiness.sh ["OAFRONT5-2"] 仍需人工/运维:真实业务样本、备份恢复演练、Day 7 Go/No-Go;自动化只能证明入口和只读巡检。回滚/清理:若 OALAUNCH1 引用错误,仅回滚 Issue CSV/报告引用;不修改公网业务数据。
10 OAFRONT5-8 用户采纳门禁 用户审查 OAFRONT5 后决定是否先部署 OAFRONT4,是否采纳 AP/报销日期收口,是否继续后置 HR/Portal。 用户至少给出 A/B/C:A=先部署并复跑矩阵;B=不部署,先继续本地修 AP/报销;C=暂停前端,回到 OALAUNCH1 人工业务闭环。未采纳前不得执行部署或新增代码修复。 受影响流程:OAFRONT5 合同 -> 用户决策 -> 部署/修复/暂停;验证步骤:人工回填选择并 validate CSV。 manual|python3 TODO DONE TODO DONE TODO DONE issues/2026-05-25_09-17-51-oa-pc-post-deploy-ui-hardening-v1.csv ["OAFRONT5-0"] 默认推荐 A:先部署并复跑只读矩阵;只有新矩阵仍有 P1,再进入 OAFRONT5-3/4。 用户已批准按推荐继续部署和修复;2026-05-25 已执行首次部署和只读矩阵,发现付款批次复核人 UUID P1 后转入 OAFRONT5-9。
11 OAFRONT5-9 付款批次复核人内部 ID 展示修复 部署后 PC 视觉矩阵发现付款批次详情的复核人字段仍展示内部 UUID,导致 finance/finance_mgr 页面各 1 个 P1 finding;修复展示层,不改付款流程。 首轮复核人、二次复核人等复核字段不再向用户展示 UUID;若后端只返回内部 ID,前端显示“已记录”;付款批次状态、复核、执行、取消和回单逻辑不变。 受影响流程:财务登录 -> 付款批次 -> 查看详情 -> 复核要求;验证步骤:client typecheck/build;check-ui-design-rules;部署后复跑 PC 只读视觉矩阵,finance/finance_mgr /payment-batches UUID P1 清零。 typescript|playwright|node DONE DONE TODO client/src/pages/PaymentBatchesPage.tsx;issues/2026-05-25_09-17-51-oa-pc-post-deploy-ui-hardening-v1.csv ["OAFRONT5-2"] 本地证据:client typecheck/build 通过且无 Circular chunk warning;check-ui-design-rules findings=0;check-process-contract baseline/general 通过;audit-docs errors=0;quick_validate 通过;git diff --check 通过;bash scripts/check-minimal.sh 通过。公网回归待部署后复跑 PC 只读视觉矩阵。回滚路径:还原前端展示 helper;不触碰后端付款状态、审批/复核数据或真实付款记录。