运输计划归档界面(/#/pl/archive-module/plan-archive)对计划 PO20261115092 再次归档时,提示:
/#/pl/archive-module/plan-archive
PO20261115092
运输量须大于0,请填写各送货段实际数量
装货/送货段归档表中的实际数量与单价已有值(上次因证书未齐未能归档成功后已保存),运费区「运输量」为空、运费金额为 0。
待确认:优先 Web 管理端归档弹窗及相关运费计算逻辑。
web-admin/src/components/business/pl-plan-archive-dialog/index.vue 确认归档时:
web-admin/src/components/business/pl-plan-archive-dialog/index.vue
hasFreight === 1
freightType === 'by_weight'
freightCalc.transportQty
reloadArchiveContent
outboundQty
usePlFreightCalc
transportQty
applyFreightPrefill
resetFreightCalc()
null
截图中运费区「运输量」为空、运费金额为 0,与上述一致。
在 usePlFreightCalc.resetFreightCalc(或 applyFreightPrefill 末尾)重置后立即按当前产品实际数量重算未手改的运输量。
usePlFreightCalc.resetFreightCalc
修改端待确认:推荐仅 Web 管理端。
修改端:仅 Web(用户确认选项 1)
根因:applyFreightPrefill 在送货段实际数量已回填后调用 resetFreightCalc(),将 transportQty 置空;产品未再变化导致 watch 不重跑。
修复:web-admin/src/composables/usePlFreightCalc.ts 的 resetFreightCalc 在清除手改标记后,立即按当前产品实际数量回填运输量。
web-admin/src/composables/usePlFreightCalc.ts
resetFreightCalc
回归:web-admin/scripts/pl-freight-calc-reset.test.ts 2 项通过(tsx --test)。
web-admin/scripts/pl-freight-calc-reset.test.ts
tsx --test
分支 / worktree:
codex/issue-34-archive-freight-qty-5b2d7b253964
.local/agent/worktrees/issue-34-archive-freight-qty-5b2d7b253964
待用户在本机归档页复验,或授权提交后再推送。
按用户要求已将修复本地合并到主目录 V3.0(Vite 正在该目录监听 localhost:3006),未推送远端 V3.0。
V3.0
localhost:3006
f41e47601
579285a7b
tsx --test scripts/pl-freight-calc-reset.test.ts
http://localhost:3006/#/pl/archive-module/plan-archive
No dependencies set.
The note is not visible to the blocked user.
现象
运输计划归档界面(
/#/pl/archive-module/plan-archive)对计划PO20261115092再次归档时,提示:装货/送货段归档表中的实际数量与单价已有值(上次因证书未齐未能归档成功后已保存),运费区「运输量」为空、运费金额为 0。
复现
验收
范围
待确认:优先 Web 管理端归档弹窗及相关运费计算逻辑。
排查结论(只读定位,尚未改代码)
报错来源
web-admin/src/components/business/pl-plan-archive-dialog/index.vue确认归档时:hasFreight === 1且freightType === 'by_weight'freightCalc.transportQty为空或 ≤0运输量须大于0,请填写各送货段实际数量根因假设(有代码时序证据)
reloadArchiveContent先加载各送货段outboundQty(界面可见的实际数量)usePlFreightCalc的 watch 会按产品实际数量汇总出transportQtyapplyFreightPrefill调用resetFreightCalc(),把transportQty清成null截图中运费区「运输量」为空、运费金额为 0,与上述一致。
拟修复方向(待确认修改端后实施)
在
usePlFreightCalc.resetFreightCalc(或applyFreightPrefill末尾)重置后立即按当前产品实际数量重算未手改的运输量。修改端待确认:推荐仅 Web 管理端。
实现进展(Web 管理端)
修改端:仅 Web(用户确认选项 1)
根因:
applyFreightPrefill在送货段实际数量已回填后调用resetFreightCalc(),将transportQty置空;产品未再变化导致 watch 不重跑。修复:
web-admin/src/composables/usePlFreightCalc.ts的resetFreightCalc在清除手改标记后,立即按当前产品实际数量回填运输量。回归:
web-admin/scripts/pl-freight-calc-reset.test.ts2 项通过(tsx --test)。分支 / worktree:
codex/issue-34-archive-freight-qty-5b2d7b253964.local/agent/worktrees/issue-34-archive-freight-qty-5b2d7b253964待用户在本机归档页复验,或授权提交后再推送。
待用户测试(已本地合入 V3.0)
按用户要求已将修复本地合并到主目录
V3.0(Vite 正在该目录监听localhost:3006),未推送远端V3.0。f41e47601579285a7bcodex/issue-34-archive-freight-qty-5b2d7b253964tsx --test scripts/pl-freight-calc-reset.test.ts2 pass(合并后主目录复跑)请测
http://localhost:3006/#/pl/archive-module/plan-archivePO20261115092归档