From 9d787c0f551bbf0dd096ebcbb79b8b69caaaddd7 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 16 一月 2026 11:44:29 +0800
Subject: [PATCH] 原材料,过程,出厂检验新增编辑规格改成下拉框,值根据产品获取

---
 src/views/qualityManagement/processInspection/components/formDia.vue     |   30 ++++++++++----
 src/views/qualityManagement/finalInspection/components/formDia.vue       |   37 ++++++++++++++----
 src/views/qualityManagement/rawMaterialInspection/components/formDia.vue |   29 ++++++++++----
 3 files changed, 70 insertions(+), 26 deletions(-)

diff --git a/src/views/qualityManagement/finalInspection/components/formDia.vue b/src/views/qualityManagement/finalInspection/components/formDia.vue
index 9e5c109..d1bd982 100644
--- a/src/views/qualityManagement/finalInspection/components/formDia.vue
+++ b/src/views/qualityManagement/finalInspection/components/formDia.vue
@@ -26,11 +26,18 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="瑙勬牸鍨嬪彿锛�"
-                          prop="model">
-              <el-input v-model="form.model"
-                        :disabled="operationType === 'edit'"
-                        placeholder="璇疯緭鍏�"
-                        clearable />
+                          prop="productModelId">
+              <el-select v-model="form.productModelId"
+                         placeholder="璇烽�夋嫨"
+                         clearable
+                         :disabled="operationType === 'edit'"
+                         filterable
+                         readonly>
+                <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>
@@ -134,6 +141,7 @@
       <template #footer>
         <div class="dialog-footer">
           <el-button type="primary"
+                     :disabled="isSubmitting"
                      @click="submitForm">纭</el-button>
           <el-button @click="closeDia">鍙栨秷</el-button>
         </div>
@@ -145,7 +153,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,
@@ -159,13 +167,14 @@
   const dialogFormVisible = ref(false);
   const operationType = ref("");
   const data = reactive({
+    isSubmitting: false,
     form: {
       checkTime: "",
       process: "",
       checkName: "",
       productName: "",
       productId: "",
-      model: "",
+      productModelId: undefined,
       unit: "",
       quantity: "",
       checkCompany: "",
@@ -177,16 +186,17 @@
       process: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
       checkName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
       productId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-      model: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+      productModelId: [{ required: false, message: "璇烽�夋嫨", trigger: "blur" }],
       unit: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
       quantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
       checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
       checkResult: [{ required: true, message: "璇疯緭鍏�", trigger: "change" }],
     },
   });
-  const { form, rules } = toRefs(data);
+  const { form, rules, isSubmitting } = toRefs(data);
   const supplierList = ref([]);
   const productOptions = ref([]);
+  const modelOptions = ref([]);
   const tableColumn = ref([
     {
       label: "鎸囨爣",
@@ -228,6 +238,7 @@
     form.value = {};
     getProductOptions();
     if (operationType.value === "edit") {
+      getModels(row.productId || 0);
       form.value = { ...row };
       currentProductId.value = row.productId || 0;
       getQualityInspectParamList(row.id);
@@ -240,7 +251,11 @@
   };
   const getModels = value => {
     currentProductId.value = value;
+    form.value.productModelId = undefined;
     form.value.productName = findNodeById(productOptions.value, value);
+    modelList({ id: value }).then((res) => {
+      modelOptions.value = res;
+    });
     if (currentProductId) {
       getList();
     }
@@ -275,6 +290,7 @@
   }
   // 鎻愪氦浜у搧琛ㄥ崟
   const submitForm = () => {
+    isSubmitting.value = true
     if (form.value.checkResult == "鍚堟牸") {
       form.value.defectivePhenomena = "";
     }
@@ -298,7 +314,10 @@
             closeDia();
           });
         }
+        isSubmitting.value = false
       }
+    }).finally(() => {
+      isSubmitting.value = false
     });
   };
   const getList = () => {
diff --git a/src/views/qualityManagement/processInspection/components/formDia.vue b/src/views/qualityManagement/processInspection/components/formDia.vue
index c5cd6ad..dcc863a 100644
--- a/src/views/qualityManagement/processInspection/components/formDia.vue
+++ b/src/views/qualityManagement/processInspection/components/formDia.vue
@@ -37,11 +37,18 @@
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="瑙勬牸鍨嬪彿锛�"
-                          prop="model">
-              <el-input v-model="form.model"
-                        placeholder="璇疯緭鍏�"
-                        :disabled="operationType === 'edit'"
-                        clearable />
+                          prop="productModelId">
+              <el-select v-model="form.productModelId"
+                         placeholder="璇烽�夋嫨"
+                         clearable
+                         :disabled="operationType === 'edit'"
+                         filterable
+                         readonly>
+                <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>
@@ -156,7 +163,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,
@@ -176,7 +183,7 @@
       checkName: "",
       productName: "",
       productId: "",
-      model: "",
+      productModelId: undefined,
       unit: "",
       quantity: "",
       checkCompany: "",
@@ -188,7 +195,7 @@
       process: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
       checkName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
       productId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-      model: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+      productModelId: [{ required: false, message: "璇烽�夋嫨", trigger: "blur" }],
       unit: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
       quantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
       checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
@@ -202,6 +209,7 @@
   const { form, rules } = toRefs(data);
   const supplierList = ref([]);
   const productOptions = ref([]);
+  const modelOptions = ref([]);
   const tableColumn = ref([
     {
       label: "鎸囨爣",
@@ -242,6 +250,7 @@
     form.value = {};
     getProductOptions();
     if (operationType.value === "edit") {
+      getModels(row.productId || 0);
       form.value = { ...row };
       currentProductId.value = row.productId || 0;
       getQualityInspectParamList(row.id);
@@ -254,8 +263,11 @@
   };
   const getModels = value => {
     currentProductId.value = value;
+    form.value.productModelId = undefined;
     form.value.productName = findNodeById(productOptions.value, value);
-
+    modelList({ id: value }).then((res) => {
+      modelOptions.value = res;
+    });
     if (currentProductId) {
       getList();
     }
diff --git a/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue b/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
index 66746d4..a20d642 100644
--- a/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
+++ b/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
@@ -45,11 +45,18 @@
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="瑙勬牸鍨嬪彿锛�"
-                          prop="model">
-              <el-input v-model="form.model"
-                        :disabled="operationType === 'edit'"
-                        placeholder="璇疯緭鍏�"
-                        clearable />
+                          prop="productModelId">
+              <el-select v-model="form.productModelId"
+                         placeholder="璇烽�夋嫨"
+                         clearable
+                         :disabled="operationType === 'edit'"
+                         filterable
+                         readonly>
+                <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>
@@ -159,7 +166,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,
@@ -183,7 +190,7 @@
       checkName: "",
       productName: "",
       productId: "",
-      model: "",
+      productModelId: undefined,
       unit: "",
       quantity: "",
       checkCompany: "",
@@ -195,7 +202,7 @@
       supplier: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
       checkName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
       productId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-      model: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+      productModelId: [{ required: false, message: "璇烽�夋嫨", trigger: "blur" }],
       unit: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
       quantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
       checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
@@ -234,6 +241,7 @@
   const { form, rules } = toRefs(data);
   const supplierList = ref([]);
   const productOptions = ref([]);
+  const modelOptions = ref([]);
   const currentProductId = ref(0);
 
   // 鎵撳紑寮规
@@ -246,6 +254,7 @@
     form.value = {};
     getProductOptions();
     if (operationType.value === "edit") {
+      getModels(row.productId || 0);
       form.value = { ...row };
       currentProductId.value = row.productId || 0;
       getQualityInspectParamList(row.id);
@@ -258,7 +267,11 @@
   };
   const getModels = value => {
     currentProductId.value = value;
+    form.value.productModelId = undefined;
     form.value.productName = findNodeById(productOptions.value, value);
+    modelList({ id: value }).then((res) => {
+      modelOptions.value = res;
+    });
     if (currentProductId) {
       getList();
     }

--
Gitblit v1.9.3