From 7726b6cdab80596d2e2f7dd3fe1ec3dfbdeee155 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期五, 12 六月 2026 09:42:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_pro_河南鹤壁' into dev_pro_河南鹤壁

---
 src/views/productionManagement/productionTraceability/index.vue |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 52 insertions(+), 5 deletions(-)

diff --git a/src/views/productionManagement/productionTraceability/index.vue b/src/views/productionManagement/productionTraceability/index.vue
index a850788..845c8d9 100644
--- a/src/views/productionManagement/productionTraceability/index.vue
+++ b/src/views/productionManagement/productionTraceability/index.vue
@@ -1,5 +1,7 @@
 <template>
   <div class="app-container">
+    <PageHeader v-if="showHeader"
+                content="鐢熶骇璁㈠崟" />
     <el-card style="height:82vh;overflow:auto;">
       <template #header>
         <div class="card-header">
@@ -78,11 +80,17 @@
                   {{ row.workOrder.model || '-' }}
                 </template>
               </el-table-column>
+              <el-table-column label="宸ュ簭"
+                               prop="workOrder.operationName"
+                               align="center" />
               <el-table-column prop="workOrder.planQuantity"
                                label="闇�姹傛暟閲�"
                                align="center" />
               <el-table-column prop="workOrder.completeQuantity"
                                label="瀹屾垚鏁伴噺"
+                               align="center" />
+              <el-table-column prop="workOrder.scrapQty"
+                               label="鎶ュ簾鏁伴噺"
                                align="center" />
               <el-table-column prop="workOrder.completionStatus"
                                label="瀹屾垚杩涘害"
@@ -152,13 +160,22 @@
                 {{ parseTime(row.createTime) }}
               </template>
             </el-table-column>
+            <el-table-column label="宸ユ椂锛坔锛�"
+                             prop="workHour"
+                             align="center" />
+            <el-table-column label="浜у嚭鏁伴噺"
+                             prop="quantity"
+                             align="center" />
+            <el-table-column label="鎶ュ簾鏁伴噺"
+                             prop="scrapQty"
+                             align="center" />
             <el-table-column label="鎿嶄綔"
                              align="center"
                              width="200">
               <template #default="{ row }">
                 <el-button type="primary"
                            link
-                           @click="showInput(row.id)">鏌ョ湅鎶曞叆</el-button>
+                           @click="showInput(row.productionProductMainId)">鏌ョ湅鎶曞叆</el-button>
                 <el-button type="primary"
                            link
                            @click="showParamDetail(row.productionOperationParamList)">鍙傛暟璇︽儏</el-button>
@@ -223,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>
@@ -267,7 +284,7 @@
 </template>
 
 <script setup>
-  import { ref, reactive, onMounted } from "vue";
+  import { ref, reactive, onMounted, computed } from "vue";
   import { useRoute, useRouter } from "vue-router";
   import { ElMessage } from "element-plus";
   import { parseTime } from "@/utils/ruoyi";
@@ -279,6 +296,13 @@
 
   const route = useRoute();
   const router = useRouter();
+
+  // 鍒ゆ柇鏄惁鏄剧ず椤靛ご
+  const showHeader = computed(() => {
+    return (
+      Object.keys(route.query).length > 0 || Object.keys(route.params).length > 0
+    );
+  });
 
   // 鎼滅储鐩稿叧
   const searchForm = reactive({
@@ -336,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;
@@ -385,6 +431,7 @@
       workOrder: row.workOrder || {},
       reports: (row.reportList || []).map(r => ({
         ...r.reportMain,
+        ...(r.reportOutputList[0] || {}),
         productionOperationParamList: r.reportParamList || [],
       })),
     };

--
Gitblit v1.9.3