feat(钢卷管理): 在多个页面添加业务目的选择功能
为钢卷管理中的校正、拆分、合并、录入等操作添加业务目的选择功能,使用字典类型coil_business_purpose提供选项
This commit is contained in:
@@ -347,6 +347,12 @@
|
||||
<el-input-number :controls="false" v-model="form.actualThickness" placeholder="请输入实测厚度" type="number"
|
||||
:step="0.01" />
|
||||
</el-form-item>
|
||||
<el-form-item label="业务目的" prop="businessPurpose">
|
||||
<el-select v-model="form.businessPurpose" placeholder="请选择业务目的" style="width: 100%">
|
||||
<el-option v-for="item in dict.type.coil_business_purpose" :key="item.value" :value="item.value"
|
||||
:label="item.label" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="调制度" prop="temperGrade">
|
||||
<el-input v-model="form.temperGrade" placeholder="请输入调制度" />
|
||||
</el-form-item>
|
||||
@@ -422,6 +428,7 @@ export default {
|
||||
RawMaterialSelect,
|
||||
CoilTraceResult,
|
||||
},
|
||||
dicts: ['coil_business_purpose'],
|
||||
data() {
|
||||
return {
|
||||
traceOpen: false,
|
||||
|
||||
@@ -421,6 +421,12 @@
|
||||
<el-input-number :controls="false" v-model="form.actualThickness" placeholder="请输入实测厚度" type="number"
|
||||
:step="0.01" />
|
||||
</el-form-item>
|
||||
<el-form-item label="业务目的" prop="businessPurpose">
|
||||
<el-select v-model="form.businessPurpose" placeholder="业务目的" filterable>
|
||||
<el-option v-for="item in dict.type.coil_business_purpose" :key="item.value" :value="item.value"
|
||||
:label="item.label" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="调制度" prop="temperGrade">
|
||||
<el-input v-model="form.temperGrade" placeholder="请输入调制度" />
|
||||
</el-form-item>
|
||||
@@ -474,7 +480,7 @@ import { getCoilTagPrintType } from '@/views/wms/coil/js/coilPrint'
|
||||
|
||||
export default {
|
||||
name: 'CorrentAllPage',
|
||||
dicts: ['action_type', 'coil_quality_status'],
|
||||
dicts: ['action_type', 'coil_quality_status', 'coil_business_purpose'],
|
||||
components: {
|
||||
LabelRender,
|
||||
WarehouseSelect,
|
||||
|
||||
@@ -222,6 +222,14 @@
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<el-form-item label="业务目的" prop="businessPurpose" class="form-item-half">
|
||||
<el-select v-model="targetCoil.businessPurpose" placeholder="请选择业务目的" style="width: 100%"
|
||||
:disabled="readonly">
|
||||
<el-option v-for="item in dict.type.coil_business_purpose" :key="item.value" :value="item.value"
|
||||
:label="item.label" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="钢卷表面处理" prop="coilSurfaceTreatment" class="form-item-half">
|
||||
<MemoInput storageKey="surfaceTreatmentDesc" v-model="targetCoil.coilSurfaceTreatment"
|
||||
placeholder="请输入钢卷表面处理" />
|
||||
@@ -305,7 +313,7 @@ export default {
|
||||
TimeInput,
|
||||
AbnormalForm
|
||||
},
|
||||
dicts: ['coil_quality_status', 'coil_abnormal_position', 'coil_abnormal_code', 'coil_abnormal_degree'],
|
||||
dicts: ['coil_quality_status', 'coil_abnormal_position', 'coil_abnormal_code', 'coil_abnormal_degree', 'coil_business_purpose'],
|
||||
data() {
|
||||
const currentCoilNoPrefix = generateCoilNoPrefix()
|
||||
return {
|
||||
|
||||
@@ -396,6 +396,12 @@
|
||||
<el-input-number :controls="false" v-model="form.actualWidth" placeholder="请输入实测宽度" type="number"
|
||||
:step="0.01" />
|
||||
</el-form-item>
|
||||
<el-form-item label="业务目的" prop="businessPurpose">
|
||||
<el-select v-model="form.businessPurpose" placeholder="业务目的" filterable>
|
||||
<el-option v-for="item in dict.type.coil_business_purpose" :key="item.value" :value="item.value"
|
||||
:label="item.label" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="调制度" prop="temperGrade">
|
||||
<el-input v-model="form.temperGrade" placeholder="请输入调制度" />
|
||||
</el-form-item>
|
||||
@@ -1110,7 +1116,7 @@ export default {
|
||||
handlePreviewLabel(row) {
|
||||
this.labelRender.visible = true;
|
||||
const itemName = row.itemName || '';
|
||||
|
||||
|
||||
this.labelRender.type = row.itemType === 'product' ? '3' : '2';
|
||||
this.labelRender.data = {
|
||||
...row,
|
||||
|
||||
@@ -173,6 +173,12 @@
|
||||
<el-input-number :controls="false" v-model="splitForm.actualWidth" placeholder="请输入实测宽度" type="number"
|
||||
:step="0.01" />
|
||||
</el-form-item>
|
||||
<el-form-item label="业务目的" prop="businessPurpose">
|
||||
<el-select v-model="splitForm.businessPurpose" placeholder="业务目的" filterable>
|
||||
<el-option v-for="item in dict.type.coil_business_purpose" :key="item.value" :value="item.value"
|
||||
:label="item.label" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="调制度" prop="temperGrade">
|
||||
<el-input v-model="splitForm.temperGrade" placeholder="请输入调制度" />
|
||||
</el-form-item>
|
||||
@@ -340,7 +346,7 @@ export default {
|
||||
ProductInfo,
|
||||
RawMaterialInfo,
|
||||
},
|
||||
dicts: ['coil_quality_status', 'coil_abnormal_position', 'coil_abnormal_code', 'coil_abnormal_degree'],
|
||||
dicts: ['coil_quality_status', 'coil_abnormal_position', 'coil_abnormal_code', 'coil_abnormal_degree', 'coil_business_purpose'],
|
||||
data() {
|
||||
const currentCoilNoPrefix = generateCoilNoPrefix()
|
||||
return {
|
||||
|
||||
@@ -215,6 +215,12 @@
|
||||
<template slot="append">米</template>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="业务目的" prop="businessPurpose">
|
||||
<el-select v-model="item.businessPurpose" placeholder="请选择业务目的" style="width: 100%">
|
||||
<el-option v-for="item in dict.type.coil_business_purpose" :key="item.value" :value="item.value"
|
||||
:label="item.label" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="调制度" prop="temperGrade">
|
||||
<el-input v-model="item.temperGrade" placeholder="请输入调制度" />
|
||||
</el-form-item>
|
||||
@@ -321,7 +327,7 @@ export default {
|
||||
TimeInput,
|
||||
AbnormalForm
|
||||
},
|
||||
dicts: ['coil_quality_status', 'coil_abnormal_position', 'coil_abnormal_code', 'coil_abnormal_degree'],
|
||||
dicts: ['coil_quality_status', 'coil_abnormal_position', 'coil_abnormal_code', 'coil_abnormal_degree', 'coil_business_purpose'],
|
||||
data() {
|
||||
const currentCoilNoPrefix = generateCoilNoPrefix()
|
||||
return {
|
||||
|
||||
@@ -207,6 +207,13 @@
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="业务目的" prop="businessPurpose">
|
||||
<el-select v-model="updateForm.businessPurpose" placeholder="请选择业务目的" style="width: 100%">
|
||||
<el-option v-for="item in dict.type.coil_business_purpose" :key="item.value" :value="item.value"
|
||||
:label="item.label" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="调制度" prop="temperGrade">
|
||||
<el-input v-model="updateForm.temperGrade" placeholder="请输入调制度" />
|
||||
</el-form-item>
|
||||
@@ -341,7 +348,7 @@ export default {
|
||||
TimeInput,
|
||||
AbnormalForm
|
||||
},
|
||||
dicts: ['coil_quality_status', 'coil_abnormal_position', 'coil_abnormal_code', 'coil_abnormal_degree'],
|
||||
dicts: ['coil_quality_status', 'coil_abnormal_position', 'coil_abnormal_code', 'coil_abnormal_degree', 'coil_business_purpose'],
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
@@ -685,11 +692,6 @@ export default {
|
||||
this.updateForm.productionDuration = data.productionDuration;
|
||||
this.updateForm.formattedDuration = this.formatDuration(data.productionDuration);
|
||||
}
|
||||
|
||||
// 不再预加载物品列表,改为实时搜索
|
||||
|
||||
// 加载变更历史
|
||||
// this.loadHistory();
|
||||
}
|
||||
} catch (error) {
|
||||
this.$message.error('加载钢卷信息失败');
|
||||
@@ -767,67 +769,6 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
// 已移除 loadAllItems,改为实时搜索
|
||||
|
||||
// 已移除 loadItemList,改为实时搜索
|
||||
|
||||
// 实时搜索物品(后端搜索)
|
||||
async searchItems(query) {
|
||||
if (!this.updateForm.itemType) {
|
||||
this.$message.warning('请先选择材料类型');
|
||||
return;
|
||||
}
|
||||
|
||||
// 如果没有输入,清空列表
|
||||
if (!query || query.trim() === '') {
|
||||
if (this.updateForm.itemType === 'raw_material') {
|
||||
this.rawMaterialList = [];
|
||||
} else if (this.updateForm.itemType === 'product') {
|
||||
this.productList = [];
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
this.itemSearchLoading = true;
|
||||
const searchQuery = query.trim();
|
||||
|
||||
if (this.updateForm.itemType === 'raw_material') {
|
||||
// 后端搜索原材料(支持名称或规格模糊搜索)
|
||||
const response = await listRawMaterialWithBom({
|
||||
pageNum: 1,
|
||||
pageSize: 20,
|
||||
rawMaterialName: searchQuery,
|
||||
specification: searchQuery // 同时传入,后端会使用 OR 条件
|
||||
});
|
||||
if (response.code === 200) {
|
||||
this.rawMaterialList = response.rows || [];
|
||||
}
|
||||
} else if (this.updateForm.itemType === 'product') {
|
||||
// 后端搜索产品(支持名称或规格模糊搜索)
|
||||
const response = await listProductWithBom({
|
||||
pageNum: 1,
|
||||
pageSize: 20,
|
||||
productName: searchQuery,
|
||||
specification: searchQuery // 同时传入,后端会使用 OR 条件
|
||||
});
|
||||
if (response.code === 200) {
|
||||
this.productList = response.rows || [];
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('搜索物品失败', error);
|
||||
this.$message.error('搜索失败,请重试');
|
||||
} finally {
|
||||
this.itemSearchLoading = false;
|
||||
}
|
||||
},
|
||||
|
||||
// 物品选择变化
|
||||
handleItemChange(itemId) {
|
||||
// 物品选择变化处理
|
||||
},
|
||||
|
||||
// 加载变更历史
|
||||
async loadHistory() {
|
||||
if (!this.currentInfo.enterCoilNo) {
|
||||
|
||||
Reference in New Issue
Block a user