| | |
| | | </el-table-column> |
| | | <el-table-column align="center" label="体积" width="120"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.HVolume }}</span> |
| | | <el-input-number v-model="scope.row.HVolume" :min="0" style="width: 90px;" |
| | | controls-position="right" |
| | | @change="changeHVolume(scope.row)"></el-input-number> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="零单占用体积" width="120"> |
| | |
| | | this.ContractTransportShow = true |
| | | this.openData = true |
| | | } else if (num == 17) { |
| | | this.dialogTitle = '容器包装列表' |
| | | this.dialogTitle = '产品包装容器关联信息表' |
| | | this.gyMaterialPackingRelationShow = true |
| | | this.openData = true |
| | | } |
| | |
| | | this.zbIndex = row.index - 1 |
| | | |
| | | let HPackQty = 0; |
| | | if(this.editData[row.index - 1].HStandardQtyForMouldInPack > 0) |
| | | { |
| | | HPackQty = Math.ceil(row.HMouldQty / this.editData[row.index - 1].HStandardQtyForMouldInPack); |
| | | const standardQty = parseFloat(this.editData[row.index - 1].HStandardQtyForMouldInPack) || 0; |
| | | const mouldQty = parseFloat(row.HMouldQty) || 0; |
| | | |
| | | if (standardQty > 0 && mouldQty > 0) { |
| | | HPackQty = Math.ceil(mouldQty / standardQty); |
| | | } |
| | | |
| | | if (!HPackQty||HPackQty=='Infinity') { |
| | | this.editData[row.index - 1].HPackQTY = 0 |
| | | this.editData[row.index - 1].HPackQTY = 0; |
| | | } else { |
| | | this.editData[row.index - 1].HPackQTY = HPackQty |
| | | this.editData[row.index - 1].HPackQTY = HPackQty; |
| | | } |
| | | |
| | | this.changeHPackQty(row); |
| | |
| | | changeHPackQty(row) { |
| | | this.zbIndex = row.index - 1 |
| | | |
| | | // let Volume = ((this.editData[this.zbIndex].HMouldLength * this.editData[this.zbIndex].HMouldWidth * this.editData[this.zbIndex].HMouldHeight * this.editData[this.zbIndex].HMouldQty).toFixed(2)) - 0 |
| | | let Volume = ((this.editData[this.zbIndex].HPackQTY * this.editData[this.zbIndex].HPackV).toFixed(2)) - 0 |
| | | const packQty = parseFloat(this.editData[this.zbIndex].HPackQTY) || 0; |
| | | const packV = parseFloat(this.editData[this.zbIndex].HPackV) || 0; |
| | | let Volume = ((packQty * packV).toFixed(2)) - 0; |
| | | |
| | | if (!Volume) { |
| | | this.editData[this.zbIndex].HVolume = 0 |
| | | this.editData[this.zbIndex].HVolume = 0; |
| | | } else { |
| | | this.editData[this.zbIndex].HVolume = Volume |
| | | this.editData[this.zbIndex].HVolume = Volume; |
| | | } |
| | | this.form.HTotalVolume = 0 |
| | | |
| | | this.form.HTotalVolume = 0; |
| | | this.editData.map(item => { |
| | | this.form.HTotalVolume = Number(item.HVolume) + this.form.HTotalVolume |
| | | }) |
| | | this.form.HTotalVolume = Number(item.HVolume) + this.form.HTotalVolume; |
| | | }); |
| | | this.calculateLoadingRate(parseFloat(this.form.HTotalVolume || 0)); |
| | | }, |
| | | //#region 体积值变化处理 |
| | | changeHVolume(row) { |
| | | this.zbIndex = row.index - 1; |
| | | |
| | | // 确保体积值有效 |
| | | const volume = parseFloat(row.HVolume) || 0; |
| | | this.editData[this.zbIndex].HVolume = volume; |
| | | |
| | | // 更新表头总体积 |
| | | this.form.HTotalVolume = 0; |
| | | this.editData.map(item => { |
| | | this.form.HTotalVolume = Number(item.HVolume) + this.form.HTotalVolume; |
| | | }); |
| | | |
| | | // 更新装载率 |
| | | this.calculateLoadingRate(parseFloat(this.form.HTotalVolume || 0)); |
| | | }, |
| | | //#endregion |
| | |
| | | checkTotalQtyExceed(selRow) { |
| | | var tableData = this.editData |
| | | if (!tableData || tableData.length === 0) return; |
| | | |
| | | // 保存修改前的值 |
| | | var originalQty = selRow.HQty; |
| | | |
| | | var sourceQtyMap = {}; |
| | | var currentQtyMap = {}; |
| | | tableData.forEach(function (row) { |
| | |
| | | } |
| | | } |
| | | if (exceedSources.length > 0) { |
| | | let num = null |
| | | var message = '物料数量之和超过源单数量:'; |
| | | exceedSources.forEach(function (item, index) { |
| | | num = item.sourceQty |
| | | message += (index + 1) + '. 源单号:' + item.sourceBillNo + |
| | | ',源单数量:' + item.sourceQty + |
| | | ',当前数量:' + item.currentTotal; |
| | | |
| | | }); |
| | | this.$nextTick(() => { |
| | | this.editData[selRow.index - 1].HQty = num |
| | | this.changeHMouldQty(selRow) |
| | | }) |
| | | // 恢复到修改前的值 |
| | | this.editData[selRow.index - 1].HQty = originalQty; |
| | | this.changeHMouldQty(selRow); |
| | | }); |
| | | this.$modal.msgError(message); |
| | | return true; // 表示有超出 |
| | | } |
| | | let MouldQty = Math.ceil(selRow.HQty / this.editData[selRow.index - 1].HSNP) |
| | | let MouldQty = Math.ceil(selRow.HQty / this.editData[selRow.index - 1].HSNP); |
| | | if (!MouldQty||MouldQty=='Infinity') { |
| | | this.editData[selRow.index - 1].HMouldQty = 0 |
| | | this.editData[selRow.index - 1].HMouldQty = 0; |
| | | } else { |
| | | this.editData[selRow.index - 1].HMouldQty = MouldQty |
| | | this.editData[selRow.index - 1].HMouldQty = MouldQty; |
| | | } |
| | | |
| | | let HPackQty = 0; |
| | | if(this.editData[selRow.index - 1].HStandardQtyForMouldInPack > 0) |
| | | { |
| | | if (this.editData[selRow.index - 1].HStandardQtyForMouldInPack > 0) { |
| | | HPackQty = Math.ceil(MouldQty / this.editData[selRow.index - 1].HStandardQtyForMouldInPack); |
| | | } |
| | | if (!HPackQty||HPackQty=='Infinity') { |
| | | this.editData[selRow.index - 1].HPackQTY = 0 |
| | | this.editData[selRow.index - 1].HPackQTY = 0; |
| | | } else { |
| | | this.editData[selRow.index - 1].HPackQTY = HPackQty |
| | | this.editData[selRow.index - 1].HPackQTY = HPackQty; |
| | | } |
| | | this.changeHMouldQty(selRow) |
| | | this.changeHMouldQty(selRow); |
| | | return false; // 表示没有超出 |
| | | }, |
| | | //#region 附件上传相关方法 |