diff --git a/klp-ui/src/views/wms/coil/panels/stepSplit.vue b/klp-ui/src/views/wms/coil/panels/stepSplit.vue index da1ae858..ed5b5f01 100644 --- a/klp-ui/src/views/wms/coil/panels/stepSplit.vue +++ b/klp-ui/src/views/wms/coil/panels/stepSplit.vue @@ -202,6 +202,7 @@ + 复制源卷信息 提交分条 重置 @@ -813,6 +814,52 @@ export default { if (!dict) return code; const item = dict.find(item => item.value === code); return item ? item.label : code; + }, + + // 复制源卷信息到分条表单 + copyFromSourceCoil() { + // 复制除了指定字段之外的其他字段 + const excludeFields = ['enterCoilNo', 'currentCoilNo', 'coilId', 'createTime', 'createBy']; + + // 构建要复制的字段 + const copiedFields = { + supplierCoilNo: this.coilInfo.supplierCoilNo, + warehouseId: this.coilInfo.warehouseId, + actualWarehouseId: this.coilInfo.actualWarehouseId, + team: this.coilInfo.team, + materialType: this.coilInfo.materialType, + itemType: this.coilInfo.itemType, + itemId: this.coilInfo.itemId, + qualityStatus: this.coilInfo.qualityStatus, + trimmingRequirement: this.coilInfo.trimmingRequirement, + packingStatus: this.coilInfo.packingStatus, + packagingRequirement: this.coilInfo.packagingRequirement, + grossWeight: parseFloat(this.coilInfo.grossWeight) || null, + netWeight: parseFloat(this.coilInfo.netWeight) || null, + length: parseFloat(this.coilInfo.length) || null, + actualLength: parseFloat(this.coilInfo.actualLength) || null, + actualWidth: parseFloat(this.coilInfo.actualWidth) || null, + temperGrade: this.coilInfo.temperGrade, + coatingType: this.coilInfo.coatingType, + remark: this.coilInfo.remark, + productionStartTime: this.coilInfo.productionStartTime, + productionEndTime: this.coilInfo.productionEndTime, + productionDuration: this.coilInfo.productionDuration, + formattedDuration: this.coilInfo.productionDuration ? this.formatDuration(this.coilInfo.productionDuration * 60 * 1000) : '' + }; + + // 合并到分条表单 + this.splitForm = { + ...this.splitForm, + ...copiedFields + }; + + // 同步材料类型和长度显示状态 + if (this.splitForm.materialType) { + this.handleMaterialTypeChange(this.splitForm.materialType); + } + + this.$message.success('已复制源卷信息,请根据需要修改'); } }, } diff --git a/klp-ui/src/views/wms/coil/typing.vue b/klp-ui/src/views/wms/coil/typing.vue index 682583f8..73203fd5 100644 --- a/klp-ui/src/views/wms/coil/typing.vue +++ b/klp-ui/src/views/wms/coil/typing.vue @@ -85,9 +85,9 @@
{{ '更新信息' }} - + + 复制源卷信息 +
@@ -820,23 +820,43 @@ export default { // 复制当前信息到更新表单 copyFromCurrent() { - const itemType = this.currentInfo.materialType === '原料' ? 'raw_material' : 'product'; - this.updateForm = { - currentCoilNo: this.currentInfo.currentCoilNo, + // 复制除了指定字段之外的其他字段 + const excludeFields = ['enterCoilNo', 'currentCoilNo', 'coilId', 'createTime', 'createBy']; + + // 构建要复制的字段 + const copiedFields = { team: this.currentInfo.team, materialType: this.currentInfo.materialType, - // 不复制 itemType 和 itemId,让它们由 materialType 自动决定 - itemType, + itemType: this.currentInfo.itemType, itemId: this.currentInfo.itemId, grossWeight: parseFloat(this.currentInfo.grossWeight) || null, netWeight: parseFloat(this.currentInfo.netWeight) || null, warehouseId: this.currentInfo.warehouseId, + actualWarehouseId: this.currentInfo.actualWarehouseId, length: parseFloat(this.currentInfo.length) || null, - remark: this.currentInfo.remark + actualLength: parseFloat(this.currentInfo.actualLength) || null, + actualWidth: parseFloat(this.currentInfo.actualWidth) || null, + temperGrade: this.currentInfo.temperGrade, + coatingType: this.currentInfo.coatingType, + qualityStatus: this.currentInfo.qualityStatus, + packagingRequirement: this.currentInfo.packagingRequirement, + packingStatus: this.currentInfo.packingStatus, + trimmingRequirement: this.currentInfo.trimmingRequirement, + remark: this.currentInfo.remark, + productionStartTime: this.currentInfo.productionStartTime, + productionEndTime: this.currentInfo.productionEndTime, + productionDuration: this.currentInfo.productionDuration, + formattedDuration: this.currentInfo.productionDuration ? this.formatDuration(this.currentInfo.productionDuration * 60 * 1000) : '' + }; + + // 合并到更新表单 + this.updateForm = { + ...this.updateForm, + ...copiedFields }; // materialType 会触发 watch,自动设置 itemType 并加载物品列表 - this.$message.success('已复制当前信息,包含' + this.currentInfo.materialType + '类型的相关信息, 请根据需要修改'); + this.$message.success('已复制源卷信息,请根据需要修改'); }, // 保存更新