src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
@@ -14,6 +14,7 @@
                  v-model="form.supplier"
                  placeholder="请选择"
                  clearable
                           filterable
              >
                <el-option
                    v-for="item in supplierList"
@@ -42,43 +43,50 @@
        <el-row :gutter="30">
          <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-col :span="12">
                  <el-form-item label="单位:" prop="unit">
                     <el-input v-model="form.unit" placeholder="请输入" clearable/>
                  </el-form-item>
               </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="单位:" prop="unit">
              <el-input v-model="form.unit" placeholder="请输入" clearable/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="数量:" prop="quantity">
              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="请输入"
                               clearable :precision="2"/>
            </el-form-item>
          </el-col>
        </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="合格"/>
                <el-option label="不合格" value="不合格"/>
              </el-select>
            </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="合格"/>
                        <el-option label="不合格" value="不合格"/>
                     </el-select>
                  </el-form-item>
               </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="检验员:" prop="checkName">
              <el-input v-model="form.checkName" placeholder="请输入" clearable/>
                     <el-select
                        v-model="form.checkName"
                        placeholder="选择人员"
                        style="width: 100%;"
                        filterable
                        clearable
                     >
                        <el-option
                           v-for="user in userList"
                           :key="user.nickName"
                           :label="user.nickName"
                           :value="user.nickName"
                        />
                     </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
@@ -96,9 +104,6 @@
          </el-col>
        </el-row>
      </el-form>
<!--      <div style="margin-bottom: 10px;text-align: right">-->
<!--        <el-button type="danger" plain @click="handleDelete">删除</el-button>-->
<!--      </div>-->
      <PIMTable
          rowKey="id"
          :column="tableColumn"
@@ -123,15 +128,21 @@
<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 {ElMessageBox} from "element-plus";
import {qualityInspectParamDel, qualityInspectParamInfo} from "@/api/qualityManagement/qualityInspectParam.js";
import {qualityInspectDetailByProductId} from "@/api/qualityManagement/metricMaintenance.js";
import {userListNoPageByTenantId} from "@/api/system/user.js";
const {proxy} = getCurrentInstance()
const emit = defineEmits(['close'])
const userList = ref([
   {nickName: '候盛杰'},
   {nickName: '焦辉'},
   {nickName: '张培'},
   {nickName: '冯灵之'},
])
const dialogFormVisible = ref(false);
const operationType = ref('')
const data = reactive({
@@ -142,6 +153,7 @@
    productName: "",
    productId: "",
    model: "",
      modelId: "",
    unit: "",
    quantity: "",
    checkCompany: "",
@@ -150,7 +162,7 @@
  rules: {
    checkTime: [{required: true, message: "请输入", trigger: "blur"},],
    supplier: [{required: true, message: "请输入", trigger: "blur"}],
    checkName: [{required: false, message: "请输入", trigger: "blur"}],
    checkName: [{required: true, message: "请输入", trigger: "blur"}],
    productId: [{required: true, message: "请输入", trigger: "blur"}],
    model: [{required: false, message: "请输入", trigger: "blur"}],
    unit: [{required: false, message: "请输入", trigger: "blur"}],
@@ -185,6 +197,7 @@
]);
const tableData = ref([]);
const tableLoading = ref(false);
const modelOptions = ref([]);
const {form, rules} = toRefs(data);
const supplierList = ref([]);
@@ -198,26 +211,51 @@
  getOptions().then((res) => {
    supplierList.value = res.data;
  });
   // userListNoPageByTenantId().then((res) => {
   //    userList.value = res.data;
   // });
   form.value = {}
  getProductOptions();
  if (operationType.value === 'edit') {
  if (operationType.value === 'edit' && row) {
    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) {