src/views/qualityManagement/finalInspection/components/formDia.vue
@@ -24,7 +24,9 @@
          </el-col>
          <el-col :span="12">
            <el-form-item label="规格型号:" prop="model">
              <el-input v-model="form.model" placeholder="请输入" clearable/>
                     <el-select v-model="form.modelId" placeholder="请选择" clearable @change="getProductModel">
                        <el-option v-for="item in modelOptions" :key="item.id" :label="item.model" :value="item.id" />
                     </el-select>
            </el-form-item>
          </el-col>
        </el-row>
@@ -42,11 +44,6 @@
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="检测单位:" prop="checkCompany">
              <el-input v-model="form.checkCompany" placeholder="请输入" clearable/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="检测结果:" prop="checkResult">
              <el-select v-model="form.checkResult">
                <el-option label="合格" value="合格" />
@@ -54,18 +51,18 @@
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="检验员:" prop="checkName">
               <el-col :span="12">
                  <el-form-item label="检验员:" prop="checkName">
                     <el-select v-model="form.checkName"               filterable
                         default-first-option
                         :reserve-keyword="false" placeholder="请选择" clearable>
                                     default-first-option
                                     :reserve-keyword="false" placeholder="请选择" clearable>
                        <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName"
                                        :value="item.nickName"/>
                     </el-select>
            </el-form-item>
          </el-col>
                  </el-form-item>
               </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="检测日期:" prop="checkTime">
              <el-date-picker
@@ -105,7 +102,7 @@
<script setup>
import {ref} from "vue";
import {getOptions} from "@/api/procurementManagement/procurementLedger.js";
import {productTreeList} from "@/api/basicData/product.js";
import {modelList, productTreeList} from "@/api/basicData/product.js";
import {qualityInspectAdd, qualityInspectUpdate} from "@/api/qualityManagement/rawMaterialInspection.js";
import {userListNoPage} from "@/api/system/user.js";
import {qualityInspectDetailByProductId} from "@/api/qualityManagement/metricMaintenance.js";
@@ -169,8 +166,14 @@
]);
const tableData = ref([]);
const tableLoading = ref(false);
const userList = ref([]);
const userList = ref([
   {nickName: '候盛杰'},
   {nickName: '焦辉'},
   {nickName: '张培'},
   {nickName: '冯灵之'},
]);
const currentProductId = ref(0);
const modelOptions = ref([]);
// 打开弹框
const openDialog = async (type, row) => {
@@ -180,27 +183,49 @@
    supplierList.value = res.data;
  });
   let userLists = await userListNoPage();
   userList.value = userLists.data;
   // userList.value = userLists.data;
   form.value = {}
  getProductOptions();
  if (operationType.value === 'edit') {
    form.value = {...row}
      currentProductId.value = row.productId || 0
      // 加载当前产品下的规格列表,并根据后端返回的 model 反查并设置 modelId,实现规格下拉框反显
      if (currentProductId.value) {
         modelList({ id: currentProductId.value }).then((res) => {
            modelOptions.value = res;
            const target = res.find((item) => item.model === row.model);
            if (target) {
               form.value.modelId = target.id;
            }
         });
      }
      getQualityInspectParamList(row.id)
  }
}
const getProductOptions = () => {
  productTreeList().then((res) => {
  productTreeList({productName: '质量'}).then((res) => {
    productOptions.value = convertIdToValue(res);
  });
};
const getModels = (value) => {
   currentProductId.value = value
  form.value.productName = findNodeById(productOptions.value, value);
   modelList({ id: value }).then((res) => {
      modelOptions.value = res;
   });
   if (currentProductId) {
      getList();
   }
};
const getProductModel = (value) => {
   const index = modelOptions.value.findIndex((item) => item.id === value);
   if (index !== -1) {
      form.value.unit = modelOptions.value[index].unit;
      form.value.model = modelOptions.value[index].model;
   } else {
      form.value.unit = null;
   }
};
const findNodeById = (nodes, productId) => {
  for (let i = 0; i < nodes.length; i++) {
    if (nodes[i].value === productId) {