文件
hl-api-changelog/changelogs-v2/2026-08/09_核单完成按钮校验逻辑简化-修改接口-管理后台.md
T
Mimingguang 87ed9d0a3f
changelog-filename-gate / validate (push) Failing after 2s
chore(changelog): 全量清理 implemented 存量——81 条复核翻 verified + 1 条改判 not_required + #5827 补登 frontend_ref
处置明细(mmg 2026-09-18):
- 68 条机械核验通过批量翻 verified:frontend_ref 均可达且为 v2.1 祖先、
  交付文件 HEAD 均在、关联 spec 批量 58 文件 891 例全绿。
- 11 条带演进史的例外逐条核后翻 verified:3 条交付自删文件(06_5610/
  07_5655/11_5810,删除即交付内容且终态保持);8 条被后续 changelog 预期
  演进(10_5784→#5810、07_5664/08_5592→#5827、07_5665→去槽位化 U1、
  01_5380/05_5356/06_5567/06_5581→settlement 族A扁平化与 mock 清理),
  status_note 均如实记录演进链。
- 05_5552 改判 not_required:frontend_ref 自述前端无需改动,grep 实证
  vehicleFeeAmount.js 直接读后端 calendarPrice/calendarPriceMissing。
- 11_5827 frontend_ref 原空,经核交付即 753503c8(向导 4 步改 3 步提交
  即派定),补登全哈希 753503c87cc635e5646b4368a8ed506746c79cf1。
另:保险域 2 条相邻条目(05_5530/06_5593)同标准复核翻 verified。
2026-07 历史月 45 条按规则不回扫,保持原状。
2026-09-18 15:56:52 +08:00

78 行
2.6 KiB
Markdown

---
schema: "hl-changelog/v2"
ticket: "N/A"
title: "核单「完成核单」按钮校验逻辑简化"
consumer: "admin"
change_type: "修改接口"
author: "yaosutu(GIT)"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "verified"
frontend_owner: "mmg"
frontend_ref: "ce4d98b3"
target_release: ""
verified_at: "2026-09-18"
status_note: "已实现。canComplete 由 5 条减为 3 条 UI 态防误触(hasLoadingStep/hasSavingStep/dirty),askComplete 同步删 vehicleSettlementBlocked 兜底拦截,并删除车辆分类顶部常驻提示条;LEGACY 金额未知空态的车辆编辑锁保留(防空草稿存成 0 元)。frontend_ref=ce4d98b3。[mmg 2026-09-18 批量复核翻 verified] ref ce4d98b3 可达且为 v2.1 祖先;交付文件 HEAD 均在;关联 spec 批量 891 例全绿。"
updated_at: "2026-09-18"
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(口头需求)