From 737e3fcb4ca75c116a762b5d48b51a4f49426cbe Mon Sep 17 00:00:00 2001 From: yaosutu <770858045@qq.com> Date: Sun, 9 Aug 2026 16:27:10 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=A0=B8=E5=8D=95=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E6=A0=A1=E9=AA=8C=E9=80=BB=E8=BE=91=E7=AE=80?= =?UTF-8?q?=E5=8C=96=20changelog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...单完成按钮校验逻辑简化-修改接口-管理后台.md | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 changelogs-v2/2026-08/09_核单完成按钮校验逻辑简化-修改接口-管理后台.md diff --git a/changelogs-v2/2026-08/09_核单完成按钮校验逻辑简化-修改接口-管理后台.md b/changelogs-v2/2026-08/09_核单完成按钮校验逻辑简化-修改接口-管理后台.md new file mode 100644 index 0000000..ab46a6b --- /dev/null +++ b/changelogs-v2/2026-08/09_核单完成按钮校验逻辑简化-修改接口-管理后台.md @@ -0,0 +1,77 @@ +--- +schema: "hl-changelog/v2" +ticket: "N/A" +title: "核单「完成核单」按钮校验逻辑简化" +consumer: "admin" +change_type: "修改接口" +author: "yaosutu(GIT)" +backend_status: "deployed" +gateway_status: "verified" +frontend_status: "pending" +frontend_owner: "" +frontend_ref: "" +target_release: "" +verified_at: "" +status_note: "前端校验简化:删除 vehicleSettlementBlocked 和 reportsReady 两条业务约束校验,只保留 UI 态防误触校验(hasLoadingStep/hasSavingStep/dirty)。后端 finalize 已有统一硬校验,校验失败返回错误码+提示信息,前端展示即可。后端零改动。" +updated_at: "2026-08-09" +base: "dev-v3" +--- + +# 核单「完成核单」按钮校验逻辑简化 + +## 变更类型 +修改接口(前端逻辑调整,后端零改动) + +## 端类型 +管理后台 + +## 变更说明 + +「完成核单」按钮的前端校验逻辑简化,去掉业务约束类校验,只保留 UI 态防误触校验。 + +### 改动前(5 条校验) + +```javascript +const canSubmit = computed(() => + !hasLoadingStep && // 1. 没有任何分类在加载中 + !hasSavingStep && // 2. 没有任何分类在保存中 + !dirty && // 3. 没有任何未保存的修改 + !vehicleSettlementBlocked && // 4. 车辆核单状态不被拦(删) + reportsReady // 5. 司机报账表 + 单团核算表都已生成(删) +) +``` + +### 改动后(3 条校验) + +```javascript +const canSubmit = computed(() => + !hasLoadingStep && // 1. 没有任何分类在加载中 + !hasSavingStep && // 2. 没有任何分类在保存中 + !dirty // 3. 没有任何未保存的修改 +) +``` + +### 删除的 2 条校验及原因 + +| 删除项 | 原因 | +|---|---| +| `vehicleSettlementBlocked` | 后端 `finalize` 已有统一硬校验(`performSubmitBlockingChecks`),前端无需重复拦截 | +| `reportsReady` | 报表是 finalize 的**产出**而非**前置条件**,逻辑反了,直接删除 | + +### 后端统一拦截行为 + +用户点击「完成核单」后,后端 `finalize` 接口统一校验: +- 对账一致性(支付流水 = 手工收款) +- 车辆费用 freeze 校验 +- 导游/摄影费用确认状态 +- 司机结算完成 + 转账凭证 +- 其他收入确认状态 + +校验失败返回对应错误码 + 提示信息,前端直接展示即可。 + +## 影响范围 +- 管理后台核单页面「完成核单」按钮 +- 后端零改动 + +## 关联 +- 无 Issue(口头需求)