feat(qms): 优化质检模板的物料选择功能

- 将物料名称输入框改为只读,并添加搜索图标
- 点击物料名称输入框时弹出物料选择对话框
- 在对话框中选择物料后,自动填充物料名称和编码
- 修改关联检测类型表的标签为关联类型
master
zch 3 weeks ago
parent a95decd1e5
commit b85c5b7c18

@ -58,7 +58,7 @@
<el-table-column label="模板名称" align="center" prop="templateName" v-if="columns[2].visible"/>
<el-table-column label="物料编码" align="center" prop="materialCode" v-if="columns[3].visible"/>
<el-table-column label="物料名称" align="center" prop="materialName" v-if="columns[4].visible"/>
<el-table-column label="关联检测类型" align="center" prop="typeName" v-if="columns[5].visible"/>
<el-table-column label="关联类型" align="center" prop="typeName" v-if="columns[5].visible"/>
<el-table-column label="工位编码" align="center" prop="stationCode" v-if="columns[6].visible"/>
<el-table-column label="工位名称" align="center" prop="stationName" v-if="columns[7].visible"/>
<el-table-column label="工序编码" align="center" prop="processCode" v-if="columns[8].visible"/>
@ -163,12 +163,16 @@
<el-input v-model="form.templateName" placeholder="请输入模板名称" />
</el-form-item>
<el-form-item label="物料名称" prop="materialName">
<el-select v-model="selectedMaterialId" placeholder="请选择物料" filterable clearable @change="handleMaterialChange" style="width: 100%;">
<el-option v-for="item in materialList" :key="item.materialId" :label="item.materialName" :value="item.materialId" />
</el-select>
<el-input v-model="form.materialName" placeholder="请点击检索物料" @click="handleMaterialAdd" readonly>
<template #append>
<el-icon class="el-input__icon">
<search />
</el-icon>
</template>
</el-input>
</el-form-item>
<el-form-item label="关联检测类型表" prop="typeId">
<el-select v-model="form.typeId" placeholder="请选择关联检测类型表">
<el-form-item label="关联检测类型" prop="typeId">
<el-select v-model="form.typeId" placeholder="请选择关联检测类型">
<el-option v-for="item in qcInspectionTypeList" :key="item.typeId" :label="item.typeName" :value="item.typeId" />
</el-select>
</el-form-item>
@ -359,6 +363,17 @@
</div>
</template>
</el-dialog>
<!-- 添加物料信息对话框 -->
<el-dialog title='选择物料信息' v-model='materialOpen' width='1200px' append-to-body>
<MaterialSelect @selection='handleSelection' ref='materialSelectRef' v-if='materialOpen'></MaterialSelect>
<div slot='footer' class='dialog-footer'>
<el-button type='primary' @click='submitMaterialForm'> </el-button>
<el-button @click='materialOpen = false'> </el-button>
</div>
</el-dialog>
<input ref="fileInput" type="file" accept=".xlsx, .xls" style="display: none" @change="onFileChange" />
</div>
</template>
@ -377,6 +392,9 @@ import { getProcessInfoList } from '@/api/qms/baseProcessInfo';
import { getBaseSupplierInfoList } from '@/api/qms/baseSupplierInfo';
import { getQcInspectionItemCategoryList } from '@/api/qms/qcInspectionItemCategory';
import MaterialSelect from "@/views/mes/baseMaterialInfo/addMaterialInQMS.vue";
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { detect_type, control_type } = toRefs<any>(proxy?.useDict('detect_type', 'control_type'));
@ -660,7 +678,7 @@ const handleRowClick = (row: QcInspectionTemplateVO) => {
/** 新增按钮操作 */
const handleAdd = () => {
reset();
getMaterialList();
// getMaterialList();
getBaseProcessList();
getBaseStationList();
getBaseSupplierList();
@ -671,7 +689,7 @@ const handleAdd = () => {
/** 修改按钮操作 */
const handleUpdate = async (row?: QcInspectionTemplateVO) => {
reset();
await getMaterialList();
// await getMaterialList();
await getBaseProcessList();
await getBaseStationList();
await getBaseSupplierList();
@ -945,6 +963,22 @@ const getBaseSupplierList = async () => {
baseSupplierInfoList.value = res.data;
}
/** 物料选择弹窗 */
const materialOpen = ref(false);
const materialSelectRef = ref();
const handleMaterialAdd = () => {
materialOpen.value = true;
};
const submitMaterialForm = () => {
const selected = materialSelectRef.value.tableRef.store.states.currentRow.value;
if (selected) {
selectedMaterialId.value = selected.materialId;
form.value.materialName = selected.materialName;
form.value.materialCode = selected.materialCode;
}
materialOpen.value = false;
};
onMounted(() => {
getList();

Loading…
Cancel
Save