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 1/4] =?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'); From 4ed80268b477bcf76b60b3524b895fa3a3340ca8 Mon Sep 17 00:00:00 2001 From: weicw <594098497@qq.com> Date: Tue, 3 Nov 2026 19:37:23 +0800 Subject: [PATCH 2/4] =?UTF-8?q?:bug:=20=E8=BF=90=E5=8D=95=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E8=B4=A7=E7=89=A9=E4=BF=A1=E6=81=AF=E5=88=97=E4=BB=85?= =?UTF-8?q?=E4=B8=80=E7=A7=8D=E8=B4=A7=E7=89=A9=E6=97=B6=E4=B8=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E7=AD=89N=E7=A7=8D=E8=B4=A7=E7=89=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/business/components/waybill-manage-page.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/views/business/components/waybill-manage-page.vue b/src/views/business/components/waybill-manage-page.vue index 268d6cc..b54df0c 100644 --- a/src/views/business/components/waybill-manage-page.vue +++ b/src/views/business/components/waybill-manage-page.vue @@ -5013,9 +5013,9 @@ export default { return Object.values(groups) .map(group => { const quantity = this.formatQuantity(group.quantity); - return `${group.typeName}等${group.count}种货物 | ${quantity}${ - group.unit ? ` ${group.unit}` : '' - }`; + const typeName = + group.count > 1 ? `${group.typeName}等${group.count}种货物` : group.typeName; + return `${typeName} | ${quantity}${group.unit ? ` ${group.unit}` : ''}`; }) .join('; '); }, From 28baa69e8f330a71f36387c671031be616325ee9 Mon Sep 17 00:00:00 2001 From: weicw <594098497@qq.com> Date: Tue, 3 Nov 2026 19:41:25 +0800 Subject: [PATCH 3/4] =?UTF-8?q?:bug:=20=E8=A3=85=E8=B4=A7=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E4=B8=8E=E8=BF=90=E8=BE=93=E8=AE=A1=E5=88=92=E8=B4=A7?= =?UTF-8?q?=E7=89=A9=E4=BF=A1=E6=81=AF=E5=88=97=E7=BB=9F=E4=B8=80=E4=B8=BA?= =?UTF-8?q?=E4=BB=85=E4=B8=80=E7=A7=8D=E8=B4=A7=E7=89=A9=E6=97=B6=E4=B8=8D?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E7=AD=89N=E7=A7=8D=E8=B4=A7=E7=89=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/option/business/transport-plan.js | 3 ++- .../components/transport-plan-page.vue | 19 ++++++++++--------- src/views/business/loading-manage.vue | 6 +++--- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/option/business/transport-plan.js b/src/option/business/transport-plan.js index f395e93..b7d1200 100644 --- a/src/option/business/transport-plan.js +++ b/src/option/business/transport-plan.js @@ -124,7 +124,8 @@ const formatGoodsInfo = row => { const text = Object.entries(groups) .map(([unit, group]) => { const quantity = formatGoodsQuantity(group.quantity); - return `${group.typeName}等${group.count}种货物 | ${quantity}${unit ? ` ${unit}` : ''}`; + const typeName = group.count > 1 ? `${group.typeName}等${group.count}种货物` : group.typeName; + return `${typeName} | ${quantity}${unit ? ` ${unit}` : ''}`; }) .join('; '); diff --git a/src/views/business/components/transport-plan-page.vue b/src/views/business/components/transport-plan-page.vue index c3643eb..374c9e4 100644 --- a/src/views/business/components/transport-plan-page.vue +++ b/src/views/business/components/transport-plan-page.vue @@ -3949,9 +3949,9 @@ export default { return Object.values(groups) .map(group => { const quantity = this.formatDispatchQuantity(group.quantity); - return `${group.typeName}等${group.count}种货物 | ${quantity}${ - group.unit ? ` ${group.unit}` : '' - }`; + const typeName = + group.count > 1 ? `${group.typeName}等${group.count}种货物` : group.typeName; + return `${typeName} | ${quantity}${group.unit ? ` ${group.unit}` : ''}`; }) .join('; '); }, @@ -7549,12 +7549,13 @@ export default { }, {}); const cargoInfo = Object.values(groups) - .map( - group => - `${group.cargoType}等${group.count}种货物 | ${this.formatDispatchQuantity( - group.quantity - )}${group.unit ? ` ${group.unit}` : ''}` - ) + .map(group => { + const typeName = + group.count > 1 ? `${group.cargoType}等${group.count}种货物` : group.cargoType; + return `${typeName} | ${this.formatDispatchQuantity(group.quantity)}${ + group.unit ? ` ${group.unit}` : '' + }`; + }) .join('; '); return cargoInfo || plan.goodsInfo || ''; }, diff --git a/src/views/business/loading-manage.vue b/src/views/business/loading-manage.vue index 5be2599..8a90ed4 100644 --- a/src/views/business/loading-manage.vue +++ b/src/views/business/loading-manage.vue @@ -2524,9 +2524,9 @@ export default { Object.values(groups) .map(group => { const quantity = this.formatGoodsQuantity(group.quantity); - return `${group.typeName}等${group.count}种货物 | ${quantity}${ - group.unit ? ` ${group.unit}` : '' - }`; + const typeName = + group.count > 1 ? `${group.typeName}等${group.count}种货物` : group.typeName; + return `${typeName} | ${quantity}${group.unit ? ` ${group.unit}` : ''}`; }) .join('; ') || '-' ); From 799a87641e475e145d1953c27aef3f707d9f2c83 Mon Sep 17 00:00:00 2001 From: weicw <594098497@qq.com> Date: Tue, 3 Nov 2026 21:16:00 +0800 Subject: [PATCH 4/4] =?UTF-8?q?:sparkles:=20=E5=90=88=E5=90=8C=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=90=9C=E7=B4=A2=E8=A1=A8=E5=8D=95=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AE=A2=E5=95=86=E7=AD=9B=E9=80=89=EF=BC=8C=E5=90=88=E5=90=8C?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E7=A7=BB=E5=88=B0=E6=9C=80=E5=90=8E=EF=BC=8C?= =?UTF-8?q?=E7=94=9F=E6=95=88=E7=B1=BB=E5=9E=8B=E6=94=B9=E4=B8=BA=E5=90=88?= =?UTF-8?q?=E5=90=8C=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/option/business/contract-manage.js | 31 +++++++++++++++++--------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/src/option/business/contract-manage.js b/src/option/business/contract-manage.js index 04a1ab3..398391a 100644 --- a/src/option/business/contract-manage.js +++ b/src/option/business/contract-manage.js @@ -249,11 +249,22 @@ export const option = createCrudOption([ hide: true, labelWidth: 0, }, + { + label: '客商', + prop: 'partyName', + search: true, + searchOrder: 14, + searchPlaceholder: '请输入甲/乙方名称', + hide: true, + display: false, + addDisplay: false, + editDisplay: false, + }, { label: '合同编号', prop: 'contractNo', search: true, - searchOrder: 6, + searchOrder: 8, searchPlaceholder: '请输入', order: 185, maxlength: 100, @@ -266,7 +277,7 @@ export const option = createCrudOption([ align: 'left', headerAlign: 'left', search: true, - searchOrder: 7, + searchOrder: 1, searchPlaceholder: '请输入', order: 180, slot: true, @@ -278,7 +289,7 @@ export const option = createCrudOption([ label: '所属项目', prop: 'projectName', search: true, - searchOrder: 8, + searchOrder: 11, searchType: 'select', searchPlaceholder: '请选择', formslot: true, @@ -325,7 +336,7 @@ export const option = createCrudOption([ prop: 'contractCategory', type: 'select', search: true, - searchOrder: 9, + searchOrder: 12, searchPlaceholder: '请选择', order: 170, dicData: contractCategoryOptions, @@ -337,7 +348,7 @@ export const option = createCrudOption([ prop: 'signType', type: 'select', search: true, - searchOrder: 10, + searchOrder: 13, searchPlaceholder: '请选择', span: 8, order: 190, @@ -346,11 +357,11 @@ export const option = createCrudOption([ rules: selectRule('签约类型'), }, { - label: '生效类型', + label: '合同状态', prop: 'effectiveType', type: 'select', search: true, - searchOrder: 5, + searchOrder: 6, searchPlaceholder: '请选择', dicData: effectiveTypeOptions, hide: true, @@ -621,7 +632,7 @@ export const option = createCrudOption([ prop: 'hcsSyncStatus', type: 'select', search: true, - searchOrder: 6, + searchOrder: 7, searchPlaceholder: '请选择', slot: true, dicData: hcsSyncStatusOptions, @@ -642,7 +653,7 @@ export const option = createCrudOption([ type: 'select', search: true, searchPlaceholder: '请选择', - searchOrder: 7, + searchOrder: 9, dicData: yesNoOptions, hide: true, addDisplay: false, @@ -654,7 +665,7 @@ export const option = createCrudOption([ type: 'select', search: true, searchPlaceholder: '请选择', - searchOrder: 8, + searchOrder: 10, dicData: yesNoOptions, hide: true, addDisplay: false,