From d3d2f9861c3d4bccfb9594b7efd76e62d3b44b65 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期三, 03 六月 2026 16:41:31 +0800
Subject: [PATCH] feat: 添加合格率计算及显示功能

---
 src/views/productionManagement/productionTraceability/index.vue |   28 +++++++++++++++++++++++++---
 1 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/src/views/productionManagement/productionTraceability/index.vue b/src/views/productionManagement/productionTraceability/index.vue
index d8b8f98..845c8d9 100644
--- a/src/views/productionManagement/productionTraceability/index.vue
+++ b/src/views/productionManagement/productionTraceability/index.vue
@@ -240,9 +240,9 @@
               <el-descriptions-item label="瑙勬牸鍨嬪彿">{{ record.model || '-' }}</el-descriptions-item>
               <el-descriptions-item label="鏁伴噺">{{ record.quantity || 0 }} {{ record.unit || '-' }}</el-descriptions-item>
               <el-descriptions-item label="妫�娴嬪崟浣�">{{ record.checkCompany || '-' }}</el-descriptions-item>
-              <el-descriptions-item label="妫�娴嬬粨鏋�">
-                <el-tag :type="record.checkResult === '鍚堟牸' ? 'success' : 'danger'">
-                  {{ record.checkResult || '寰呮娴�' }}
+              <el-descriptions-item label="鍚堟牸鐜�">
+                <el-tag :type="getPassRateTagType(record)">
+                  {{ getPassRateDisplay(record) }}
                 </el-tag>
               </el-descriptions-item>
             </el-descriptions>
@@ -360,6 +360,28 @@
     return "#67c23a";
   };
 
+  const getPassRate = (record) => {
+    const qualified = Number(record.qualifiedQuantity) || 0;
+    const unqualified = Number(record.unqualifiedQuantity) || 0;
+    const total = qualified + unqualified;
+    if (total === 0) return null;
+    return Number(((qualified / total) * 100).toFixed(2));
+  };
+
+  const getPassRateDisplay = (record) => {
+    const rate = getPassRate(record);
+    if (rate === null) return '鈥�';
+    return `${rate}%`;
+  };
+
+  const getPassRateTagType = (record) => {
+    const rate = getPassRate(record);
+    if (rate === null) return 'info';
+    if (rate >= 100) return 'success';
+    if (rate >= 75) return 'primary';
+    return 'danger';
+  };
+
   // 妯℃嫙鎼滅储鏂规硶
   const handleNpsNoSearch = async query => {
     npsNoLoading.value = true;

--
Gitblit v1.9.3