diff --git a/src/views/modules/ecss/codelnotifyConfirm.vue b/src/views/modules/ecss/codelnotifyConfirm.vue index 53aaac0..b81fed8 100644 --- a/src/views/modules/ecss/codelnotifyConfirm.vue +++ b/src/views/modules/ecss/codelnotifyConfirm.vue @@ -348,21 +348,26 @@ - + - + - + + + + + + @@ -391,7 +396,7 @@ @@ -720,6 +725,7 @@ grossWeight:'', netWeight:'', palletRemark:'', + rolls:'', }, boxModelFlag:false, @@ -2533,12 +2539,15 @@ }); }, /** - * 根据物料装箱数量自动计算总箱数、毛重和净重 + * 根据物料装箱数量自动计算总箱数、毛重、净重和总Rolls */ calculateTotalBoxQtyAndWeights() { // 获取有装箱数量的物料列表 const selectedRows = this.dataList8.filter(item => item.useQty && item.useQty > 0); + // 先计算总Rolls(不管是否有缓存属性,都可以汇总) + this.calculateTotalRolls(); + if (selectedRows.length === 0) { // 没有装箱数量时,清空 this.palletModelData.boxQty = null; @@ -2581,6 +2590,30 @@ this.palletModelData.grossWeight = parseFloat(totalGrossWeight.toFixed(2)); this.palletModelData.netWeight = parseFloat(totalNetWeight.toFixed(2)); }, + + /** + * 汇总明细的Rolls总和 + */ + calculateTotalRolls() { + let totalRolls = 0; + this.dataList8.forEach(row => { + const rollsValue = parseFloat(row.rolls); + if (!isNaN(rollsValue) && rollsValue > 0) { + totalRolls += rollsValue; + } + }); + // 自动填入总Rolls(取整) + this.$set(this.palletModelData, 'rolls', totalRolls > 0 ? Math.round(totalRolls) : null); + }, + + /** + * 延迟计算总Rolls(等待v-model更新完成) + */ + delayCalculateTotalRolls() { + this.$nextTick(() => { + this.calculateTotalRolls(); + }); + }, /** * 根据箱数自动计算毛重和净重 * 计算公式(来自后端代码2991-2992行): diff --git a/src/views/modules/ecss/components/PackingDetailTab.vue b/src/views/modules/ecss/components/PackingDetailTab.vue index b11d057..9787b35 100644 --- a/src/views/modules/ecss/components/PackingDetailTab.vue +++ b/src/views/modules/ecss/components/PackingDetailTab.vue @@ -117,21 +117,26 @@ :close-on-click-modal="false"> - + - + - + + + + + +