feat(分条/更新): 添加复制源卷信息功能
在分条和更新页面添加复制源卷信息按钮,方便用户快速填充表单。复制时自动排除卷号等特定字段,并处理数值类型转换。同时优化了复制逻辑,确保相关字段的联动更新。
This commit is contained in:
@@ -202,6 +202,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
|
<el-button type="info" @click="copyFromSourceCoil" icon="el-icon-document-copy">复制源卷信息</el-button>
|
||||||
<el-button :loading="buttonLoading" type="primary" @click="addSplit">提交分条</el-button>
|
<el-button :loading="buttonLoading" type="primary" @click="addSplit">提交分条</el-button>
|
||||||
<el-button :loading="buttonLoading" @click="resetSplitForm">重置</el-button>
|
<el-button :loading="buttonLoading" @click="resetSplitForm">重置</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -813,6 +814,52 @@ export default {
|
|||||||
if (!dict) return code;
|
if (!dict) return code;
|
||||||
const item = dict.find(item => item.value === code);
|
const item = dict.find(item => item.value === code);
|
||||||
return item ? item.label : 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('已复制源卷信息,请根据需要修改');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,9 +85,9 @@
|
|||||||
<el-card class="form-card">
|
<el-card class="form-card">
|
||||||
<div slot="header" class="card-header">
|
<div slot="header" class="card-header">
|
||||||
<span><i class="el-icon-edit-outline"></i> {{ '更新信息' }}</span>
|
<span><i class="el-icon-edit-outline"></i> {{ '更新信息' }}</span>
|
||||||
<!-- <el-button type="text" size="mini" @click="copyFromCurrent" icon="el-icon-document-copy">
|
<el-button type="text" size="mini" @click="copyFromCurrent" icon="el-icon-document-copy">
|
||||||
复制当前信息
|
复制源卷信息
|
||||||
</el-button> -->
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-form ref="updateForm" :model="updateForm" :rules="rules" label-width="80px" size="small">
|
<el-form ref="updateForm" :model="updateForm" :rules="rules" label-width="80px" size="small">
|
||||||
@@ -820,23 +820,43 @@ export default {
|
|||||||
|
|
||||||
// 复制当前信息到更新表单
|
// 复制当前信息到更新表单
|
||||||
copyFromCurrent() {
|
copyFromCurrent() {
|
||||||
const itemType = this.currentInfo.materialType === '原料' ? 'raw_material' : 'product';
|
// 复制除了指定字段之外的其他字段
|
||||||
this.updateForm = {
|
const excludeFields = ['enterCoilNo', 'currentCoilNo', 'coilId', 'createTime', 'createBy'];
|
||||||
currentCoilNo: this.currentInfo.currentCoilNo,
|
|
||||||
|
// 构建要复制的字段
|
||||||
|
const copiedFields = {
|
||||||
team: this.currentInfo.team,
|
team: this.currentInfo.team,
|
||||||
materialType: this.currentInfo.materialType,
|
materialType: this.currentInfo.materialType,
|
||||||
// 不复制 itemType 和 itemId,让它们由 materialType 自动决定
|
itemType: this.currentInfo.itemType,
|
||||||
itemType,
|
|
||||||
itemId: this.currentInfo.itemId,
|
itemId: this.currentInfo.itemId,
|
||||||
grossWeight: parseFloat(this.currentInfo.grossWeight) || null,
|
grossWeight: parseFloat(this.currentInfo.grossWeight) || null,
|
||||||
netWeight: parseFloat(this.currentInfo.netWeight) || null,
|
netWeight: parseFloat(this.currentInfo.netWeight) || null,
|
||||||
warehouseId: this.currentInfo.warehouseId,
|
warehouseId: this.currentInfo.warehouseId,
|
||||||
|
actualWarehouseId: this.currentInfo.actualWarehouseId,
|
||||||
length: parseFloat(this.currentInfo.length) || null,
|
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 并加载物品列表
|
// materialType 会触发 watch,自动设置 itemType 并加载物品列表
|
||||||
this.$message.success('已复制当前信息,包含' + this.currentInfo.materialType + '类型的相关信息, 请根据需要修改');
|
this.$message.success('已复制源卷信息,请根据需要修改');
|
||||||
},
|
},
|
||||||
|
|
||||||
// 保存更新
|
// 保存更新
|
||||||
|
|||||||
Reference in New Issue
Block a user