From ac42eaba695bbef82cdfc4166c7fddf2b45f9b0e Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 20 七月 2026 14:28:00 +0800
Subject: [PATCH] Merge branch 'dev_pro_河南鹤壁' of http://114.132.189.42:9002/r/product-inventory-management into dev_pro_河南鹤壁

---
 src/views/qualityManagement/processInspection/components/formDia.vue |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 53 insertions(+), 7 deletions(-)

diff --git a/src/views/qualityManagement/processInspection/components/formDia.vue b/src/views/qualityManagement/processInspection/components/formDia.vue
index 770b601..a02976e 100644
--- a/src/views/qualityManagement/processInspection/components/formDia.vue
+++ b/src/views/qualityManagement/processInspection/components/formDia.vue
@@ -130,6 +130,34 @@
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
+            <el-form-item label="鏄惁鎶芥锛�"
+                          prop="isSampling">
+              <el-radio-group v-model="form.isSampling"
+                              class="sampling-radio-group"
+                              :disabled="isViewMode"
+                              @change="handleSamplingChange">
+                <el-radio-button :label="1">鏄�</el-radio-button>
+                <el-radio-button :label="0">鍚�</el-radio-button>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12"
+                  v-if="form.isSampling === 1">
+            <el-form-item label="鎶芥鏁伴噺锛�"
+                          prop="samplingQuantity">
+              <el-input-number :step="0.01"
+                               :min="0"
+                               style="width: 100%"
+                               v-model="form.samplingQuantity"
+                               placeholder="璇疯緭鍏�"
+                               clearable
+                               :precision="2"
+                               :disabled="isViewMode" />
+            </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"
@@ -242,6 +270,8 @@
       qualifiedQuantity: "",
       unqualifiedQuantity: "",
       checkCompany: "",
+      isSampling: 0,
+      samplingQuantity: "",
     },
     rules: {
       checkTime: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
@@ -255,6 +285,8 @@
       qualifiedQuantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
       unqualifiedQuantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
       checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+      isSampling: [{ required: true, message: "璇烽�夋嫨鏄惁鎶芥", trigger: "change" }],
+      samplingQuantity: [{ required: true, message: "璇疯緭鍏ユ娊妫�鏁伴噺", trigger: "blur" }],
     },
   });
   const userList = ref([]);
@@ -268,11 +300,11 @@
       const n = Number(fromApi);
       if (!Number.isNaN(n)) return n;
     }
-    const quantity = Number(form.value.quantity);
-    const qualified = Number(form.value.qualifiedQuantity);
-    if (!quantity || Number.isNaN(quantity)) return null;
-    const qualifiedNum = Number.isNaN(qualified) ? 0 : qualified;
-    return (qualifiedNum / quantity) * 100;
+    const qualified = Number(form.value.qualifiedQuantity) || 0;
+    const unqualified = Number(form.value.unqualifiedQuantity) || 0;
+    const total = qualified + unqualified;
+    if (!total || total === 0) return null;
+    return (qualified / total) * 100;
   });
 
   const passRateDisplayText = computed(() => {
@@ -359,6 +391,8 @@
       unit: "",
       quantity: "",
       checkCompany: "",
+      isSampling: 0,
+      samplingQuantity: "",
     };
     testStandardOptions.value = [];
     tableData.value = [];
@@ -367,8 +401,8 @@
     if (operationType.value === "edit" || operationType.value === "view") {
       // 鍏堜繚瀛� testStandardId锛岄伩鍏嶈娓呯┖
       const savedTestStandardId = row.testStandardId;
-      // 鍏堣缃〃鍗曟暟鎹紝浣嗘殏鏃舵竻绌� testStandardId锛岀瓑閫夐」鍔犺浇瀹屾垚鍚庡啀璁剧疆
-      form.value = { ...row, testStandardId: "" };
+      const { passRate, ...rowWithoutPassRate } = row;
+      form.value = { ...rowWithoutPassRate, testStandardId: "" };
       currentProductId.value = row.productId || 0;
       // 鍏抽敭锛氱紪杈戞椂鍔犺浇瑙勬牸鍨嬪彿涓嬫媺閫夐」锛屾墠鑳藉弽鏄� productModelId
       if (currentProductId.value) {
@@ -607,6 +641,15 @@
       tableData.value = res.data;
     });
   };
+  // 鏄惁鎶芥鍒囨崲
+  const handleSamplingChange = (value) => {
+    if (value !== 1) {
+      form.value.samplingQuantity = "";
+      nextTick(() => {
+        proxy.$refs?.formRef?.clearValidate?.("samplingQuantity");
+      });
+    }
+  };
   // 鍏抽棴寮规
   const closeDia = () => {
     proxy.resetForm("formRef");
@@ -622,4 +665,7 @@
 </script>
 
 <style scoped>
+.sampling-radio-group {
+  height: 32px;
+}
 </style>

--
Gitblit v1.9.3