2.5 KiB
2.5 KiB
schema, ticket, title, consumer, change_type, author, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base
| schema | ticket | title | consumer | change_type | author | backend_status | gateway_status | frontend_status | frontend_owner | frontend_ref | target_release | verified_at | status_note | updated_at | base |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| hl-changelog/v2 | N/A | 核单「完成核单」按钮校验逻辑简化 | admin | 修改接口 | yaosutu(GIT) | deployed | verified | implemented | mmg | ce4d98b3 | 已实现。canComplete 由 5 条减为 3 条 UI 态防误触(hasLoadingStep/hasSavingStep/dirty),askComplete 同步删 vehicleSettlementBlocked 兜底拦截,并删除车辆分类顶部常驻提示条;LEGACY 金额未知空态的车辆编辑锁保留(防空草稿存成 0 元)。frontend_ref=ce4d98b3。 | 2026-08-09 | dev-v3 |
核单「完成核单」按钮校验逻辑简化
变更类型
修改接口(前端逻辑调整,后端零改动)
端类型
管理后台
变更说明
「完成核单」按钮的前端校验逻辑简化,去掉业务约束类校验,只保留 UI 态防误触校验。
改动前(5 条校验)
const canSubmit = computed(() =>
!hasLoadingStep && // 1. 没有任何分类在加载中
!hasSavingStep && // 2. 没有任何分类在保存中
!dirty && // 3. 没有任何未保存的修改
!vehicleSettlementBlocked && // 4. 车辆核单状态不被拦(删)
reportsReady // 5. 司机报账表 + 单团核算表都已生成(删)
)
改动后(3 条校验)
const canSubmit = computed(() =>
!hasLoadingStep && // 1. 没有任何分类在加载中
!hasSavingStep && // 2. 没有任何分类在保存中
!dirty // 3. 没有任何未保存的修改
)
删除的 2 条校验及原因
| 删除项 | 原因 |
|---|---|
vehicleSettlementBlocked |
后端 finalize 已有统一硬校验(performSubmitBlockingChecks),前端无需重复拦截 |
reportsReady |
报表是 finalize 的产出而非前置条件,逻辑反了,直接删除 |
后端统一拦截行为
用户点击「完成核单」后,后端 finalize 接口统一校验:
- 对账一致性(支付流水 = 手工收款)
- 车辆费用 freeze 校验
- 导游/摄影费用确认状态
- 司机结算完成 + 转账凭证
- 其他收入确认状态
校验失败返回对应错误码 + 提示信息,前端直接展示即可。
影响范围
- 管理后台核单页面「完成核单」按钮
- 后端零改动
关联
- 无 Issue(口头需求)