From 8dfd0949932015627838054c708c2d053117b705 Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期一, 12 一月 2026 17:58:14 +0800
Subject: [PATCH] 1.12bug修改

---
 src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue |  403 +++++++++++++++++++++++++++++++--------------------------
 1 files changed, 220 insertions(+), 183 deletions(-)

diff --git a/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue b/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue
index 308d960..d6e7937 100644
--- a/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue
+++ b/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue
@@ -1,122 +1,155 @@
 <template>
   <div>
-    <el-dialog
-        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-dialog 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-row :gutter="30">
           <el-col :span="12">
-            <el-form-item label="鐘舵�侊細" prop="inspectState">
+            <el-form-item label="鐘舵�侊細"
+                          prop="inspectState">
               <el-select v-model="form.inspectState">
-                <el-option label="寰呭鐞�" :value="0" />
-                <el-option label="宸插鐞�" :value="1" />
+                <el-option label="寰呭鐞�"
+                           :value="0" />
+                <el-option label="宸插鐞�"
+                           :value="1" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="绫诲埆锛�" prop="inspectType">
-              <el-select v-model="form.inspectType" disabled>
-                <el-option label="鍘熸潗鏂欐楠�" :value="0" />
-                <el-option label="杩囩▼妫�楠�" :value="1" />
-                <el-option label="鍑哄巶妫�楠�" :value="2" />
+            <el-form-item label="绫诲埆锛�"
+                          prop="inspectType">
+              <el-select v-model="form.inspectType"
+                         disabled>
+                <el-option label="鍘熸潗鏂欐楠�"
+                           :value="0" />
+                <el-option label="杩囩▼妫�楠�"
+                           :value="1" />
+                <el-option label="鍑哄巶妫�楠�"
+                           :value="2" />
               </el-select>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
-            <el-form-item label="浜у搧鍚嶇О锛�" prop="productId">
-              <el-tree-select
-                  v-model="form.productId"
-                  placeholder="璇烽�夋嫨"
-                  clearable
-                  disabled
-                  check-strictly
-                  @change="getModels"
-                  :data="productOptions"
-                  :render-after-expand="false"
-                  style="width: 100%"
-              />
+            <el-form-item label="浜у搧鍚嶇О锛�"
+                          prop="productId">
+              <el-tree-select v-model="form.productId"
+                              placeholder="璇烽�夋嫨"
+                              clearable
+                              disabled
+                              check-strictly
+                              @change="getModels"
+                              :data="productOptions"
+                              :render-after-expand="false"
+                              style="width: 100%" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="model">
-              <el-input v-model="form.model" placeholder="璇疯緭鍏�" clearable disabled/>
+            <el-form-item label="瑙勬牸鍨嬪彿锛�"
+                          prop="model">
+              <el-input v-model="form.model"
+                        placeholder="璇疯緭鍏�"
+                        clearable
+                        disabled />
             </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 disabled/>
+            <el-form-item label="鍗曚綅锛�"
+                          prop="unit">
+              <el-input v-model="form.unit"
+                        placeholder="璇疯緭鍏�"
+                        clearable
+                        disabled />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="鏁伴噺锛�" prop="quantity">
-              <el-input v-model="form.quantity" placeholder="璇疯緭鍏�" clearable disabled/>
+            <el-form-item label="鏁伴噺锛�"
+                          prop="quantity">
+              <el-input v-model="form.quantity"
+                        placeholder="璇疯緭鍏�"
+                        clearable
+                        disabled />
             </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 disabled/>
+            <el-form-item label="妫�楠屽憳锛�"
+                          prop="checkName">
+              <el-input v-model="form.checkName"
+                        placeholder="璇疯緭鍏�"
+                        clearable
+                        disabled />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="妫�娴嬫棩鏈燂細" prop="checkTime">
-              <el-date-picker
-                  v-model="form.checkTime"
-                  type="date"
-                  disabled
-                  placeholder="璇烽�夋嫨鏃ユ湡"
-                  value-format="YYYY-MM-DD"
-                  format="YYYY-MM-DD"
-                  clearable
-                  style="width: 100%"
-              />
+            <el-form-item label="妫�娴嬫棩鏈燂細"
+                          prop="checkTime">
+              <el-date-picker v-model="form.checkTime"
+                              type="date"
+                              disabled
+                              placeholder="璇烽�夋嫨鏃ユ湡"
+                              value-format="YYYY-MM-DD"
+                              format="YYYY-MM-DD"
+                              clearable
+                              style="width: 100%" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
-            <el-form-item label="涓嶅悎鏍肩幇璞★細" prop="defectivePhenomena">
-              <el-input v-model="form.defectivePhenomena" placeholder="璇疯緭鍏�" clearable/>
+            <el-form-item label="涓嶅悎鏍肩幇璞★細"
+                          prop="defectivePhenomena">
+              <el-input v-model="form.defectivePhenomena"
+                        placeholder="璇疯緭鍏�"
+                        clearable />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="澶勭悊缁撴灉锛�" prop="dealResult">
-              <el-input v-model="form.dealResult" placeholder="璇疯緭鍏�" clearable/>
+            <el-form-item label="澶勭悊缁撴灉锛�"
+                          prop="dealResult">
+              <el-input v-model="form.dealResult"
+                        placeholder="璇疯緭鍏�"
+                        clearable />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
-            <el-form-item label="澶勭悊浜猴細" prop="dealName">
-              <el-input v-model="form.dealName" placeholder="璇疯緭鍏�" clearable/>
+            <el-form-item label="澶勭悊浜猴細"
+                          prop="dealName">
+              <el-input v-model="form.dealName"
+                        placeholder="璇疯緭鍏�"
+                        clearable />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="澶勭悊鏃ユ湡锛�" prop="dealTime">
-              <el-date-picker
-                  v-model="form.dealTime"
-                  type="date"
-                  placeholder="璇烽�夋嫨鏃ユ湡"
-                  value-format="YYYY-MM-DD"
-                  format="YYYY-MM-DD"
-                  clearable
-                  style="width: 100%"
-              />
+            <el-form-item label="澶勭悊鏃ユ湡锛�"
+                          prop="dealTime">
+              <el-date-picker v-model="form.dealTime"
+                              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>
       <template #footer>
         <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭</el-button>
+          <el-button type="primary"
+                     @click="submitForm">纭</el-button>
           <el-button @click="closeDia">鍙栨秷</el-button>
         </div>
       </template>
@@ -125,133 +158,137 @@
 </template>
 
 <script setup>
-import {ref} from "vue";
-import {productTreeList} from "@/api/basicData/product.js";
-import {
-  getQualityUnqualifiedInfo,
-  qualityUnqualifiedAdd,
-  qualityUnqualifiedUpdate
-} from "@/api/qualityManagement/nonconformingManagement.js";
-const { proxy } = getCurrentInstance()
-const emit = defineEmits(['close'])
+  import { ref } from "vue";
+  import { productTreeList } from "@/api/basicData/product.js";
+  import {
+    getQualityUnqualifiedInfo,
+    qualityUnqualifiedAdd,
+    qualityUnqualifiedUpdate,
+  } from "@/api/qualityManagement/nonconformingManagement.js";
+  const { proxy } = getCurrentInstance();
+  const emit = defineEmits(["close"]);
 
-const dialogFormVisible = ref(false);
-const operationType = ref('')
-const data = reactive({
-  form: {
-    checkTime: "",
-    process: "",
-    checkName: "",
-    productName: "",
-    productId: "",
-    model: "",
-    unit: "",
-    quantity: "",
-    checkCompany: "",
-    checkResult: "",
-    inspectState: '',
-    inspectType: '',
-    defectivePhenomena: '',
-    dealResult: '',
-    dealName: '',
-    dealTime: '',
-  },
-  rules: {
-    checkTime: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" },],
-    process: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    productId: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    model: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    unit: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    quantity: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkResult: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    defectivePhenomena: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    dealResult: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    dealName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    dealTime: [{ required: true, message: "璇疯緭鍏�", trigger: "change" }],
-  },
-});
-const { form, rules } = toRefs(data);
-const productOptions = ref([]);
-
-// 鎵撳紑寮规
-const openDialog = (type, row) => {
-  operationType.value = type;
-  dialogFormVisible.value = true;
-  form.value = {}
-  getProductOptions();
-  if (operationType.value === 'edit') {
-    getQualityUnqualifiedInfo(row.id).then(res => {
-      form.value = {...res.data}
-    })
-  }
-}
-const getProductOptions = () => {
-  productTreeList().then((res) => {
-    productOptions.value = convertIdToValue(res);
+  const dialogFormVisible = ref(false);
+  const operationType = ref("");
+  const data = reactive({
+    form: {
+      checkTime: "",
+      process: "",
+      checkName: "",
+      productName: "",
+      productId: "",
+      model: "",
+      unit: "",
+      quantity: "",
+      checkCompany: "",
+      checkResult: "",
+      inspectState: "",
+      inspectType: "",
+      defectivePhenomena: "",
+      dealResult: "",
+      dealName: "",
+      dealTime: "",
+    },
+    rules: {
+      checkTime: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+      process: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+      checkName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+      productId: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+      model: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+      unit: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+      quantity: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+      checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+      checkResult: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+      defectivePhenomena: [
+        { required: true, message: "璇疯緭鍏�", trigger: "blur" },
+      ],
+      dealResult: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+      dealName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+      dealTime: [{ required: true, message: "璇疯緭鍏�", trigger: "change" }],
+      defectivePhenomena: [
+        { required: true, message: "璇疯緭鍏�", trigger: "blur" },
+      ],
+    },
   });
-};
-const getModels = (value) => {
-  form.value.productName = findNodeById(productOptions.value, value);
-};
-const findNodeById = (nodes, productId) => {
-  for (let i = 0; i < nodes.length; i++) {
-    if (nodes[i].value === productId) {
-      return nodes[i].label; // 鎵惧埌鑺傜偣锛岃繑鍥炶鑺傜偣
+  const { form, rules } = toRefs(data);
+  const productOptions = ref([]);
+
+  // 鎵撳紑寮规
+  const openDialog = (type, row) => {
+    operationType.value = type;
+    dialogFormVisible.value = true;
+    form.value = {};
+    getProductOptions();
+    if (operationType.value === "edit") {
+      getQualityUnqualifiedInfo(row.id).then(res => {
+        form.value = { ...res.data };
+      });
     }
-    if (nodes[i].children && nodes[i].children.length > 0) {
-      const foundNode = findNodeById(nodes[i].children, productId);
-      if (foundNode) {
-        return foundNode; // 鍦ㄥ瓙鑺傜偣涓壘鍒帮紝杩斿洖璇ヨ妭鐐�
+  };
+  const getProductOptions = () => {
+    productTreeList().then(res => {
+      productOptions.value = convertIdToValue(res);
+    });
+  };
+  const getModels = value => {
+    form.value.productName = findNodeById(productOptions.value, value);
+  };
+  const findNodeById = (nodes, productId) => {
+    for (let i = 0; i < nodes.length; i++) {
+      if (nodes[i].value === productId) {
+        return nodes[i].label; // 鎵惧埌鑺傜偣锛岃繑鍥炶鑺傜偣
+      }
+      if (nodes[i].children && nodes[i].children.length > 0) {
+        const foundNode = findNodeById(nodes[i].children, productId);
+        if (foundNode) {
+          return foundNode; // 鍦ㄥ瓙鑺傜偣涓壘鍒帮紝杩斿洖璇ヨ妭鐐�
+        }
       }
     }
-  }
-  return null; // 娌℃湁鎵惧埌鑺傜偣锛岃繑鍥瀗ull
-};
-function convertIdToValue(data) {
-  return data.map((item) => {
-    const { id, children, ...rest } = item;
-    const newItem = {
-      ...rest,
-      value: id, // 灏� id 鏀逛负 value
-    };
-    if (children && children.length > 0) {
-      newItem.children = convertIdToValue(children);
-    }
-    
-    return newItem;
-  });
-}
-// 鎻愪氦浜у搧琛ㄥ崟
-const submitForm = () => {
-  proxy.$refs.formRef.validate(valid => {
-    if (valid) {
-      if (operationType.value === "add") {
-        qualityUnqualifiedAdd(form.value).then(res => {
-          proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-          closeDia();
-        })
-      } else {
-        qualityUnqualifiedUpdate(form.value).then(res => {
-          proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-          closeDia();
-        })
+    return null; // 娌℃湁鎵惧埌鑺傜偣锛岃繑鍥瀗ull
+  };
+  function convertIdToValue(data) {
+    return data.map(item => {
+      const { id, children, ...rest } = item;
+      const newItem = {
+        ...rest,
+        value: id, // 灏� id 鏀逛负 value
+      };
+      if (children && children.length > 0) {
+        newItem.children = convertIdToValue(children);
       }
-    }
-  })
-}
-// 鍏抽棴寮规
-const closeDia = () => {
-  proxy.resetForm("formRef");
-  dialogFormVisible.value = false;
-  emit('close')
-};
-defineExpose({
-  openDialog,
-});
+
+      return newItem;
+    });
+  }
+  // 鎻愪氦浜у搧琛ㄥ崟
+  const submitForm = () => {
+    proxy.$refs.formRef.validate(valid => {
+      if (valid) {
+        if (operationType.value === "add") {
+          qualityUnqualifiedAdd(form.value).then(res => {
+            proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
+            closeDia();
+          });
+        } else {
+          qualityUnqualifiedUpdate(form.value).then(res => {
+            proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
+            closeDia();
+          });
+        }
+      }
+    });
+  };
+  // 鍏抽棴寮规
+  const closeDia = () => {
+    proxy.resetForm("formRef");
+    dialogFormVisible.value = false;
+    emit("close");
+  };
+  defineExpose({
+    openDialog,
+  });
 </script>
 
 <style scoped>
-
 </style>
\ No newline at end of file

--
Gitblit v1.9.3