From 53499f59c890387d8077ff3a9e81ee18e389e0e8 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 15 四月 2026 15:16:35 +0800
Subject: [PATCH] fix:生产-质量-库存(合格,不合格批号,供应商)

---
 src/views/qualityManagement/rawMaterialInspection/components/formDia.vue |  497 ++++++++++++++++++++++++++++++++----------------------
 1 files changed, 296 insertions(+), 201 deletions(-)

diff --git a/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue b/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
index 7ac310a..12f5d71 100644
--- a/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
+++ b/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
@@ -1,26 +1,32 @@
 <template>
   <div>
     <el-dialog
-        v-model="dialogFormVisible"
-        :title="operationType === 'add' ? '鏂板鍘熸潗鏂欐楠�' : '缂栬緫鍘熸潗鏂欐楠�'"
-        width="70%"
-        @close="closeDia"
+      v-model="dialogFormVisible"
+      :title="operationType === 'add' ? '鏂板鍘熸潗鏂欐楠�' : '缂栬緫鍘熸潗鏂欐楠�'"
+      width="70%"
+      @close="closeDia"
     >
-      <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
+      <el-form
+        :model="form"
+        label-width="140px"
+        label-position="top"
+        :rules="rules"
+        ref="formRef"
+      >
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="渚涘簲鍟嗭細" prop="supplier">
               <el-select
-                  v-model="form.supplier"
-                  placeholder="璇烽�夋嫨"
-                  clearable
-                  :disabled="supplierQuantityDisabled"
+                v-model="form.supplier"
+                placeholder="璇烽�夋嫨"
+                clearable
+                :disabled="supplierQuantityDisabled"
               >
                 <el-option
-                    v-for="item in supplierList"
-                    :key="item.id"
-                    :label="item.supplierName"
-                    :value="item.supplierName"
+                  v-for="item in supplierList"
+                  :key="item.id"
+                  :label="item.supplierName"
+                  :value="item.supplierName"
                 />
               </el-select>
             </el-form-item>
@@ -28,15 +34,15 @@
           <el-col :span="12">
             <el-form-item label="浜у搧鍚嶇О锛�" prop="productId">
               <el-tree-select
-                  v-model="form.productId"
-                  placeholder="璇烽�夋嫨"
-                  clearable
-                  check-strictly
-                  @change="getModels"
-                  :data="productOptions"
-                  :render-after-expand="false"
-                  :disabled="operationType === 'edit'"
-                  style="width: 100%"
+                v-model="form.productId"
+                placeholder="璇烽�夋嫨"
+                clearable
+                check-strictly
+                @change="getModels"
+                :data="productOptions"
+                :render-after-expand="false"
+                :disabled="operationType === 'edit'"
+                style="width: 100%"
               />
             </el-form-item>
           </el-col>
@@ -44,9 +50,21 @@
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="productModelId">
-              <el-select v-model="form.productModelId" placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'edit'"
-                         filterable readonly @change="handleChangeModel">
-                <el-option v-for="item in modelOptions" :key="item.id" :label="item.model" :value="item.id" />
+              <el-select
+                v-model="form.productModelId"
+                placeholder="璇烽�夋嫨"
+                clearable
+                :disabled="operationType === 'edit'"
+                filterable
+                readonly
+                @change="handleChangeModel"
+              >
+                <el-option
+                  v-for="item in modelOptions"
+                  :key="item.id"
+                  :label="item.model"
+                  :value="item.id"
+                />
               </el-select>
             </el-form-item>
           </el-col>
@@ -72,34 +90,49 @@
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="鍗曚綅锛�" prop="unit">
-              <el-input v-model="form.unit" disabled/>
+              <el-input v-model="form.unit" disabled />
             </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" :disabled="supplierQuantityDisabled"/>
+              <el-input-number
+                :step="0.01"
+                :min="0"
+                style="width: 100%"
+                v-model="form.quantity"
+                placeholder="璇疯緭鍏�"
+                clearable
+                :precision="2"
+                :disabled="supplierQuantityDisabled"
+              />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="妫�鍝佹暟閲忥細" prop="inspectedQuantity">
-              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.inspectedQuantity" placeholder="璇疯緭鍏ワ紝涓嶅ぇ浜庢�绘暟閲�"
-                               clearable :precision="2" :disabled="supplierQuantityDisabled"/>
+              <el-input-number
+                :step="0.01"
+                :min="0"
+                style="width: 100%"
+                v-model="form.inspectedQuantity"
+                placeholder="璇疯緭鍏ワ紝涓嶅ぇ浜庢�绘暟閲�"
+                clearable
+                :precision="2"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="鐢熶骇鏃ユ湡锛�" prop="productionDate">
               <el-date-picker
-                  v-model="form.productionDate"
-                  type="date"
-                  placeholder="璇烽�夋嫨鏃ユ湡"
-                  value-format="YYYY-MM-DD"
-                  format="YYYY-MM-DD"
-                  clearable
-                  style="width: 100%"
-                  @change="calculateValidityDate"
+                v-model="form.productionDate"
+                type="date"
+                placeholder="璇烽�夋嫨鏃ユ湡"
+                value-format="YYYY-MM-DD"
+                format="YYYY-MM-DD"
+                clearable
+                style="width: 100%"
+                @change="calculateValidityDate"
               />
             </el-form-item>
           </el-col>
@@ -118,7 +151,7 @@
           </el-col> -->
           <el-col :span="12">
             <el-form-item label="UID鐮侊細" prop="uidNo">
-              <el-input v-model="form.uidNo" disabled/>
+              <el-input v-model="form.uidNo" disabled />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -135,76 +168,93 @@
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="妫�娴嬪崟浣嶏細" prop="checkCompany">
-              <el-input v-model="form.checkCompany" placeholder="璇疯緭鍏�" clearable/>
+              <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-option label="鍚堟牸" value="鍚堟牸" />
+                <el-option label="涓嶅悎鏍�" value="涓嶅悎鏍�" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="妫�楠屽憳锛�" prop="checkName">
-              <el-select v-model="form.checkName" placeholder="璇烽�夋嫨" clearable style="width: 100%">
-                <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" :value="item.nickName"/>
+              <el-select
+                v-model="form.checkName"
+                placeholder="璇烽�夋嫨"
+                clearable
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="item in userList"
+                  :key="item.nickName"
+                  :label="item.nickName"
+                  :value="item.nickName"
+                />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="妫�娴嬫棩鏈燂細" prop="checkTime">
               <el-date-picker
-                  v-model="form.checkTime"
-                  type="date"
-                  placeholder="璇烽�夋嫨鏃ユ湡"
-                  value-format="YYYY-MM-DD"
-                  format="YYYY-MM-DD"
-                  clearable
-                  style="width: 100%"
+                v-model="form.checkTime"
+                type="date"
+                placeholder="璇烽�夋嫨鏃ユ湡"
+                value-format="YYYY-MM-DD"
+                format="YYYY-MM-DD"
+                clearable
+                style="width: 100%"
               />
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
-<!--      <div style="margin-bottom: 10px;text-align: right">-->
-<!--        <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>-->
-<!--      </div>-->
+      <!--      <div style="margin-bottom: 10px;text-align: right">-->
+      <!--        <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>-->
+      <!--      </div>-->
       <PIMTable
-          rowKey="id"
-          :column="tableColumn"
-          :tableData="tableData"
-          :tableLoading="tableLoading"
-          height="400"
+        rowKey="id"
+        :column="tableColumn"
+        :tableData="tableData"
+        :tableLoading="tableLoading"
+        height="400"
       >
         <template #instrument="{ row }">
           <el-select
-              v-model="row.instrument"
-              placeholder="璇烽�夋嫨鎴栬緭鍏�"
-              filterable
-              allow-create
-              default-first-option
-              clearable
-              style="width: 100%"
-              @change="handleInstrumentChange(row)"
+            v-model="row.instrument"
+            placeholder="璇烽�夋嫨鎴栬緭鍏�"
+            filterable
+            allow-create
+            default-first-option
+            clearable
+            style="width: 100%"
+            @change="handleInstrumentChange(row)"
           >
             <el-option label="鐩祴" value="鐩祴" />
             <el-option
-                v-for="item in deviceList"
-                :key="item.id"
-                :label="item.deviceName + (item.deviceModel ? ' / ' + item.deviceModel : '')"
-                :value="item.deviceName"
+              v-for="item in deviceList"
+              :key="item.id"
+              :label="
+                item.deviceName +
+                (item.deviceModel ? ' / ' + item.deviceModel : '')
+              "
+              :value="item.deviceName"
             />
           </el-select>
         </template>
         <template #deviceStatus="{ row }">
           <el-select
-              v-model="row.deviceStatus"
-              placeholder="璇烽�夋嫨"
-              default-first-option
-              clearable
-              style="width: 100%"
+            v-model="row.deviceStatus"
+            placeholder="璇烽�夋嫨"
+            default-first-option
+            clearable
+            style="width: 100%"
           >
             <el-option label="姝e父" value="姝e父" />
             <el-option label="鍋滄満" value="鍋滄満" />
@@ -217,7 +267,13 @@
           <el-input v-model="row.result" placeholder="璇疯緭鍏�" clearable />
         </template>
         <template #resultJudgment="{ row }">
-          <el-select v-model="row.resultJudgment" placeholder="璇烽�夋嫨" clearable style="width: 100%" @change="changeResult">
+          <el-select
+            v-model="row.resultJudgment"
+            placeholder="璇烽�夋嫨"
+            clearable
+            style="width: 100%"
+            @change="changeResult"
+          >
             <el-option label="鍚堟牸" value="鍚堟牸" />
             <el-option label="涓嶅悎鏍�" value="涓嶅悎鏍�" />
             <el-option label="/" value="/" />
@@ -235,24 +291,40 @@
 </template>
 
 <script setup>
-import {ref, reactive, toRefs, computed, getCurrentInstance, nextTick} from "vue";
-import {getOptions} from "@/api/procurementManagement/procurementLedger.js";
-import {modelList, productTreeList} from "@/api/basicData/product.js";
-import {qualityInspectAdd, qualityInspectUpdate} from "@/api/qualityManagement/rawMaterialInspection.js";
-import {qualityInspectParamDel, qualityInspectParamInfo} from "@/api/qualityManagement/qualityInspectParam.js";
-import {qualityInspectDetailByProductId, getQualityTestStandardParamByTestStandardId} from "@/api/qualityManagement/metricMaintenance.js";
-import {deviceList as qualityInspectParamDeviceList} from "@/api/energyManagement/index.js";
-import {userListNoPage} from "@/api/system/user.js";
+import {
+  ref,
+  reactive,
+  toRefs,
+  computed,
+  getCurrentInstance,
+  nextTick,
+} from "vue";
+import { getOptions } from "@/api/procurementManagement/procurementLedger.js";
+import { modelList, productTreeList } from "@/api/basicData/product.js";
+import {
+  qualityInspectAdd,
+  qualityInspectUpdate,
+} from "@/api/qualityManagement/rawMaterialInspection.js";
+import {
+  qualityInspectParamDel,
+  qualityInspectParamInfo,
+} from "@/api/qualityManagement/qualityInspectParam.js";
+import {
+  qualityInspectDetailByProductId,
+  getQualityTestStandardParamByTestStandardId,
+} from "@/api/qualityManagement/metricMaintenance.js";
+import { deviceList as qualityInspectParamDeviceList } from "@/api/energyManagement/index.js";
+import { userListNoPage } from "@/api/system/user.js";
 
-const {proxy} = getCurrentInstance()
-const emit = defineEmits(['close'])
+const { proxy } = getCurrentInstance();
+const emit = defineEmits(["close"]);
 
 const dialogFormVisible = ref(false);
-const operationType = ref('')
+const operationType = ref("");
 
 const validateBatchNo = (rule, value, callback) => {
-  if (value === undefined || value === null || String(value).trim() === '') {
-    callback(new Error('璇疯緭鍏ユ壒鍙�'));
+  if (value === undefined || value === null || String(value).trim() === "") {
+    callback(new Error("璇疯緭鍏ユ壒鍙�"));
     return;
   }
   callback();
@@ -280,19 +352,23 @@
     checkResult: "",
   },
   rules: {
-    checkTime: [{required: true, message: "璇疯緭鍏�", trigger: "blur"},],
-    supplier: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
-    checkName: [{required: false, message: "璇疯緭鍏�", trigger: "blur"}],
-    productId: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
-    productModelId: [{required: true, message: "璇烽�夋嫨浜у搧鍨嬪彿", trigger: "change"}],
-    testStandardId: [{required: false, message: "璇烽�夋嫨鎸囨爣", trigger: "change"}],
-    unit: [{required: false, message: "璇疯緭鍏�", trigger: "blur"}],
-    quantity: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
+    checkTime: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+    supplier: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+    checkName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+    productId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+    productModelId: [
+      { required: true, message: "璇烽�夋嫨浜у搧鍨嬪彿", trigger: "change" },
+    ],
+    testStandardId: [
+      { required: false, message: "璇烽�夋嫨鎸囨爣", trigger: "change" },
+    ],
+    unit: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+    quantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     inspectedQuantity: [
-      {required: true, message: "璇疯緭鍏ユ鍝佹暟閲�", trigger: "blur"},
+      { required: true, message: "璇疯緭鍏ユ鍝佹暟閲�", trigger: "blur" },
       {
         validator: (rule, value, callback) => {
-          if (value !== '' && value !== null && value !== undefined) {
+          if (value !== "" && value !== null && value !== undefined) {
             const qty = Number(form.value.quantity);
             const inspectedQty = Number(value);
             if (!isNaN(qty) && !isNaN(inspectedQty) && inspectedQty > qty) {
@@ -304,63 +380,65 @@
             callback();
           }
         },
-        trigger: "blur"
-      }
+        trigger: "blur",
+      },
     ],
-    checkCompany: [{required: false, message: "璇疯緭鍏�", trigger: "blur"}],
+    checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     batchNo: [{ required: true, validator: validateBatchNo, trigger: "blur" }],
-    checkResult: [{required: true, message: "璇烽�夋嫨妫�娴嬬粨鏋�", trigger: "change"}],
+    checkResult: [
+      { required: true, message: "璇烽�夋嫨妫�娴嬬粨鏋�", trigger: "change" },
+    ],
   },
 });
 const tableColumn = ref([
   {
     label: "妫�娴嬮」鐩�",
     prop: "parameterItem",
-    width: 150
+    width: 150,
   },
   {
     label: "鏍囧噯瑕佹眰",
     prop: "standardValue",
-    width: 180
+    width: 180,
   },
   {
     label: "鍗曚綅",
     prop: "unit",
-    width: 70
+    width: 70,
   },
   {
     label: "妫�娴嬪櫒鍏�",
     prop: "instrument",
-    dataType: 'slot',
-    slot: 'instrument',
-    width: 220
+    dataType: "slot",
+    slot: "instrument",
+    width: 220,
   },
   {
     label: "璁惧鐘舵��",
     prop: "deviceStatus",
-    dataType: 'slot',
-    slot: 'deviceStatus',
-    width: 120
+    dataType: "slot",
+    slot: "deviceStatus",
+    width: 120,
   },
   {
     label: "妫�娴嬬粨鏋�",
     prop: "result",
-    dataType: 'slot',
-    slot: 'result',
-    width: 150
+    dataType: "slot",
+    slot: "result",
+    width: 150,
   },
   {
     label: "缁撴灉鍒ゆ柇",
     prop: "resultJudgment",
-    dataType: 'slot',
-    slot: 'resultJudgment',
-    width: 120
+    dataType: "slot",
+    slot: "resultJudgment",
+    width: 120,
   },
 ]);
 const tableData = ref([]);
 const tableLoading = ref(false);
 
-const {form, rules} = toRefs(data);
+const { form, rules } = toRefs(data);
 const supplierList = ref([]);
 const productOptions = ref([]);
 const currentProductId = ref(0);
@@ -393,7 +471,7 @@
   // 鍔犺浇璁惧鍙拌处鍒楄〃
   loadDeviceList();
   // 鍏堥噸缃〃鍗曟暟鎹紙淇濇寔瀛楁瀹屾暣锛岄伩鍏嶅脊绐楅娆℃覆鏌撴椂瑙﹀彂蹇呭~绾㈡鈥滈棯涓�涓嬧�濓級
-	form.value = {
+  form.value = {
     checkTime: "",
     supplier: "",
     checkName: "",
@@ -412,16 +490,16 @@
     validityDate: "",
     checkCompany: "",
     checkResult: "",
-  }
+  };
   testStandardOptions.value = [];
   tableData.value = [];
   // 鍏堢‘淇濅骇鍝佹爲宸插姞杞斤紝鍚﹀垯缂栬緫鏃朵骇鍝�/瑙勬牸鍨嬪彿鏃犳硶鍙嶆樉
   await getProductOptions();
-  if (operationType.value === 'edit') {
+  if (operationType.value === "edit") {
     // 鍏堜繚瀛� testStandardId锛岄伩鍏嶈娓呯┖
     const savedTestStandardId = row.testStandardId;
-    form.value = {...row}
-    currentProductId.value = row.productId || 0
+    form.value = { ...row };
+    currentProductId.value = row.productId || 0;
     // 鍏抽敭锛氱紪杈戞椂鍔犺浇瑙勬牸鍨嬪彿涓嬫媺閫夐」锛屾墠鑳藉弽鏄� productModelId
     if (currentProductId.value) {
       try {
@@ -441,9 +519,9 @@
       // 鍏堝姞杞芥寚鏍囬�夐」
       let params = {
         productId: currentProductId.value,
-        inspectType: 0
-      }
-      qualityInspectDetailByProductId(params).then(res => {
+        inspectType: 0,
+      };
+      qualityInspectDetailByProductId(params).then((res) => {
         testStandardOptions.value = res.data || [];
         // 浣跨敤 nextTick 鍜� setTimeout 纭繚閫夐」宸茬粡娓叉煋鍒� DOM
         nextTick(() => {
@@ -451,8 +529,10 @@
             // 濡傛灉缂栬緫鏁版嵁涓湁 testStandardId锛屽垯璁剧疆骞跺姞杞藉搴旂殑鍙傛暟
             if (savedTestStandardId) {
               // 纭繚绫诲瀷鍖归厤锛坕tem.id 鍙兘鏄暟瀛楁垨瀛楃涓诧級
-              const matchedOption = testStandardOptions.value.find(item => 
-                item.id == savedTestStandardId || String(item.id) === String(savedTestStandardId)
+              const matchedOption = testStandardOptions.value.find(
+                (item) =>
+                  item.id == savedTestStandardId ||
+                  String(item.id) === String(savedTestStandardId)
               );
               if (matchedOption) {
                 // 纭繚浣跨敤鍖归厤椤圭殑 id锛堜繚鎸佺被鍨嬩竴鑷达級
@@ -461,7 +541,12 @@
                 getQualityInspectParamList(row.id);
               } else {
                 // 濡傛灉鎵句笉鍒板尮閰嶉」锛屽皾璇曠洿鎺ヤ娇鐢ㄥ師鍊�
-                console.warn('鏈壘鍒板尮閰嶇殑鎸囨爣閫夐」锛宼estStandardId:', savedTestStandardId, '鍙敤閫夐」:', testStandardOptions.value);
+                console.warn(
+                  "鏈壘鍒板尮閰嶇殑鎸囨爣閫夐」锛宼estStandardId:",
+                  savedTestStandardId,
+                  "鍙敤閫夐」:",
+                  testStandardOptions.value
+                );
                 form.value.testStandardId = savedTestStandardId;
                 getQualityInspectParamList(row.id);
               }
@@ -481,7 +566,7 @@
   nextTick(() => {
     proxy.$refs?.formRef?.clearValidate?.();
   });
-}
+};
 const getProductOptions = () => {
   return productTreeList().then((res) => {
     productOptions.value = convertIdToValue(res);
@@ -494,25 +579,28 @@
   form.value.uidNo = undefined;
   form.value.batchNo = "";
   modelOptions.value = [];
-  currentProductId.value = value
+  currentProductId.value = value;
   form.value.productName = findNodeById(productOptions.value, value);
   modelList({ id: value }).then((res) => {
     modelOptions.value = res;
-  })
+  });
   if (currentProductId.value) {
     getList();
   }
 };
 
 const handleChangeModel = (value) => {
-  form.value.model = modelOptions.value.find(item => item.id == value)?.model || '';
-  form.value.unit = modelOptions.value.find(item => item.id == value)?.unit || '';
-  form.value.uidNo = modelOptions.value.find(item => item.id == value)?.uidNo || '';
+  form.value.model =
+    modelOptions.value.find((item) => item.id == value)?.model || "";
+  form.value.unit =
+    modelOptions.value.find((item) => item.id == value)?.unit || "";
+  form.value.uidNo =
+    modelOptions.value.find((item) => item.id == value)?.uidNo || "";
   // 閫夋嫨瑙勬牸鍨嬪彿鍚庯紝濡傛灉宸叉湁鐢熶骇鏃ユ湡鍒欓噸鏂拌绠楁湁鏁堟湡
   if (form.value.productionDate) {
     calculateValidityDate();
   }
-}
+};
 
 const findNodeById = (nodes, productId) => {
   for (let i = 0; i < nodes.length; i++) {
@@ -531,7 +619,7 @@
 
 function convertIdToValue(data) {
   return data.map((item) => {
-    const {id, children, ...rest} = item;
+    const { id, children, ...rest } = item;
     const newItem = {
       ...rest,
       value: id, // 灏� id 鏀逛负 value
@@ -546,29 +634,29 @@
 
 // 鎻愪氦浜у搧琛ㄥ崟
 const submitForm = () => {
-  proxy.$refs.formRef.validate(valid => {
+  proxy.$refs.formRef.validate((valid) => {
     if (valid) {
-      form.value.inspectType = 0
-			if (operationType.value === "add") {
-				tableData.value.forEach((item) => {
-					delete item.id
-				})
-			}
-      const data = {...form.value, qualityInspectParams: tableData.value}
+      form.value.inspectType = 0;
       if (operationType.value === "add") {
-        qualityInspectAdd(data).then(res => {
+        tableData.value.forEach((item) => {
+          delete item.id;
+        });
+      }
+      const data = { ...form.value, qualityInspectParams: tableData.value };
+      if (operationType.value === "add") {
+        qualityInspectAdd(data).then((res) => {
           proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
           closeDia();
-        })
+        });
       } else {
-        qualityInspectUpdate(data).then(res => {
+        qualityInspectUpdate(data).then((res) => {
           proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
           closeDia();
-        })
+        });
       }
     }
-  })
-}
+  });
+};
 
 const getList = () => {
   if (!currentProductId.value) {
@@ -578,17 +666,17 @@
   }
   let params = {
     productId: currentProductId.value,
-    inspectType: 0
-  }
-  qualityInspectDetailByProductId(params).then(res => {
+    inspectType: 0,
+  };
+  qualityInspectDetailByProductId(params).then((res) => {
     // 淇濆瓨涓嬫媺妗嗛�夐」鏁版嵁
     testStandardOptions.value = res.data || [];
     // 娓呯┖琛ㄦ牸鏁版嵁锛岀瓑寰呯敤鎴烽�夋嫨鎸囨爣
     tableData.value = [];
     // 娓呯┖鎸囨爣閫夋嫨
-    form.value.testStandardId = '';
-  })
-}
+    form.value.testStandardId = "";
+  });
+};
 
 // 鎸囨爣閫夋嫨鍙樺寲澶勭悊
 const handleTestStandardChange = (testStandardId) => {
@@ -597,25 +685,28 @@
     return;
   }
   tableLoading.value = true;
-  getQualityTestStandardParamByTestStandardId(testStandardId).then(res => {
-    tableData.value = res.data || [];
-  }).catch(error => {
-    console.error('鑾峰彇鏍囧噯鍙傛暟澶辫触:', error);
-    tableData.value = [];
-  }).finally(() => {
-    tableLoading.value = false;
-  })
-}
+  getQualityTestStandardParamByTestStandardId(testStandardId)
+    .then((res) => {
+      tableData.value = res.data || [];
+    })
+    .catch((error) => {
+      console.error("鑾峰彇鏍囧噯鍙傛暟澶辫触:", error);
+      tableData.value = [];
+    })
+    .finally(() => {
+      tableLoading.value = false;
+    });
+};
 
 const getQualityInspectParamList = (id) => {
-  qualityInspectParamInfo(id).then(res => {
-    tableData.value = (res.data || []).map(item => ({...item}));
-  })
-}
+  qualityInspectParamInfo(id).then((res) => {
+    tableData.value = (res.data || []).map((item) => ({ ...item }));
+  });
+};
 
 // 鑾峰彇璁惧鍙拌处鍒楄〃
 const loadDeviceList = () => {
-  qualityInspectParamDeviceList().then(res => {
+  qualityInspectParamDeviceList().then((res) => {
     deviceList.value = res.data || [];
   });
 };
@@ -623,49 +714,55 @@
 // 璁惧鐘舵�侀鑹叉槧灏�
 const getDeviceStatusType = (status) => {
   const map = {
-    '姝e父': 'success',
-    '杩愯': 'primary',
-    '鍋滄満': 'warning',
-    '缁翠慨': 'danger'
+    姝e父: "success",
+    杩愯: "primary",
+    鍋滄満: "warning",
+    缁翠慨: "danger",
   };
-  return map[status] || 'info';
+  return map[status] || "info";
 };
 
 // 妫�娴嬪櫒鍏峰彉鍖栨椂锛岃嚜鍔ㄥ~鍏呰澶囩姸鎬�
 const handleInstrumentChange = (row) => {
-  if (row.instrument === '鐩祴') {
+  if (row.instrument === "鐩祴") {
     row.deviceId = null;
-    row.deviceName = '鐩祴';
-    row.deviceStatus = '';
+    row.deviceName = "鐩祴";
+    row.deviceStatus = "";
     return;
   }
-  const device = deviceList.value.find(d => d.deviceName === row.instrument);
+  const device = deviceList.value.find((d) => d.deviceName === row.instrument);
   if (device) {
     row.deviceId = device.id;
     row.deviceName = device.deviceName;
-    row.deviceStatus = device.status || '';
+    row.deviceStatus = device.status || "";
   } else {
     row.deviceId = null;
-    row.deviceName = row.instrument || '';
-    row.deviceStatus = '';
+    row.deviceName = row.instrument || "";
+    row.deviceStatus = "";
   }
 };
 
 // 璁$畻鏈夋晥鏈燂紙鐢熶骇鏃ユ湡 + 瑙勬牸鍨嬪彿涓殑鏈夋晥鏈燂級
 const calculateValidityDate = async () => {
   if (!form.value.productionDate) {
-    form.value.validityDate = '';
+    form.value.validityDate = "";
     return;
   }
   // 鑾峰彇瑙勬牸鍨嬪彿鐨勬湁鏁堟湡
-  const selectedModel = modelOptions.value.find(item => item.id == form.value.productModelId);
+  const selectedModel = modelOptions.value.find(
+    (item) => item.id == form.value.productModelId
+  );
   if (selectedModel && selectedModel.validityPeriod) {
     const productionDate = new Date(form.value.productionDate);
     const validityPeriod = parseFloat(selectedModel.validityPeriod);
     const validityDate = new Date(productionDate);
-    validityDate.setFullYear(validityDate.getFullYear() + Math.floor(validityPeriod));
-    validityDate.setMonth(validityDate.getMonth() + Math.round((validityPeriod % 1) * 12));
-    form.value.validityDate = validityDate.toISOString().split('T')[0];
+    validityDate.setFullYear(
+      validityDate.getFullYear() + Math.floor(validityPeriod)
+    );
+    validityDate.setMonth(
+      validityDate.getMonth() + Math.round((validityPeriod % 1) * 12)
+    );
+    form.value.validityDate = validityDate.toISOString().split("T")[0];
   }
 };
 
@@ -674,28 +771,26 @@
   proxy.resetForm("formRef");
   tableData.value = [];
   testStandardOptions.value = [];
-  form.value.testStandardId = '';
+  form.value.testStandardId = "";
   dialogFormVisible.value = false;
-  emit('close')
+  emit("close");
 };
 
 // 淇敼妫�娴嬬粨鏋�
 const changeResult = () => {
-  let result = '鍚堟牸'
-  tableData.value.forEach(item => {
-    if (item.resultJudgment !== '/') {
-      if (item.resultJudgment === '涓嶅悎鏍�') {
-        result = '涓嶅悎鏍�'
+  let result = "鍚堟牸";
+  tableData.value.forEach((item) => {
+    if (item.resultJudgment !== "/") {
+      if (item.resultJudgment === "涓嶅悎鏍�") {
+        result = "涓嶅悎鏍�";
       }
     }
   });
-  form.value.checkResult = result
+  form.value.checkResult = result;
 };
 defineExpose({
   openDialog,
 });
 </script>
 
-<style scoped>
-
-</style>
\ No newline at end of file
+<style scoped></style>

--
Gitblit v1.9.3