From 39560bde79f76dea49106e7ecb46c27f8fd5209f Mon Sep 17 00:00:00 2001 From: weicw <594098497@qq.com> Date: Mon, 2 Nov 2026 15:22:42 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E8=BF=87=E7=A8=8B=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=96=B0=E5=A2=9E=E8=A3=85=E8=B4=A7=E7=AB=AF/?= =?UTF-8?q?=E5=8D=B8=E8=B4=A7=E7=AB=AF=E8=8A=82=E7=82=B9=E4=B8=8E=E8=B4=A7?= =?UTF-8?q?=E9=87=8F=E7=B1=BB=E5=9E=8B=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/business/process-config.vue | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/views/business/process-config.vue b/src/views/business/process-config.vue index 2be992d..4840e50 100644 --- a/src/views/business/process-config.vue +++ b/src/views/business/process-config.vue @@ -489,6 +489,12 @@ const NODE_TEMPLATES = [ }, ]; +// 过程配置必须覆盖装货端与卸货端各一个节点;货量下限只看装货端—— +// 到场没有货量开关,不能拿它顶替货量采集 +const PICKUP_NODE_KEYS = ['arrive_scene', 'load', 'dispatch']; +const DELIVERY_NODE_KEYS = ['unload', 'arrival', 'sign', 'return']; +const CARGO_NODE_KEYS = ['load', 'dispatch']; + export default { data() { return { @@ -916,8 +922,24 @@ export default { this.$message.warning('备注不能超过500个字符'); return false; } - if (!this.enabledNodes.length) { - this.$message.warning('请至少选择一个过程节点'); + const isEnabledNode = key => this.nodeRows.some(item => item.key === key && item.enabled); + if (!PICKUP_NODE_KEYS.some(isEnabledNode)) { + this.$message.warning('发货、装货、到场至少选择一个'); + return false; + } + if (!DELIVERY_NODE_KEYS.some(isEnabledNode)) { + this.$message.warning('卸货、到货、签收、回单至少选择一个'); + return false; + } + // 装货端没有节点采集货量时,整条配置在小程序侧等于不采集货量 + const collectsCargo = CARGO_NODE_KEYS.some(key => + this.nodeRows.some( + item => + item.key === key && item.enabled && item.uploadCargo && (item.cargoTypes || []).length + ) + ); + if (!collectsCargo) { + this.$message.warning('发货或装货至少勾选一个货量类型'); return false; } const transit = this.nodeRows.find(item => item.key === 'transit');