From d380b19833e2b7ffaf8d68addf9be22760601389 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期三, 25 三月 2026 13:08:07 +0800
Subject: [PATCH] 生产报工中的生产记录必填校验未起作用

---
 src/views/productionManagement/productionReporting/index.vue |   37 +++++++++++++++++++++++++++++++++++--
 1 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/src/views/productionManagement/productionReporting/index.vue b/src/views/productionManagement/productionReporting/index.vue
index e802f24..5c019b8 100644
--- a/src/views/productionManagement/productionReporting/index.vue
+++ b/src/views/productionManagement/productionReporting/index.vue
@@ -43,6 +43,7 @@
                 @selection-change="handleSelectionChange"
                 :tableLoading="tableLoading"
                 @pagination="pagination"
+                :rowClassName="rowClassName"
                 :total="page.total">
         <template #productNoSlot="{ row }">
           <el-button
@@ -148,6 +149,12 @@
         :isEdit="false"
         :row="currentReportRowData"
         @refreshData="getList"/>
+    <GranulationForm
+        v-if="granulationFormVisible"
+        v-model:isShow="granulationFormVisible"
+        :isEdit="false"
+        :row="currentReportRowData"
+        @refreshData="getList"/>
     <Detail
         v-if="showDetail"
         v-model:isShow="showDetail"
@@ -167,9 +174,10 @@
 import {productionProductMainListPage} from "@/api/productionManagement/productionProductMain.js";
 import {userListNoPageByTenantId} from "@/api/system/user.js";
 import InputModal from "@/views/productionManagement/productionReporting/Input.vue";
-import VoltageSortingForm from "@/views/productionManagement/workOrder/components/VoltageSortingForm.vue";
 
+const VoltageSortingForm = defineAsyncComponent(() => import("@/views/productionManagement/workOrder/components/VoltageSortingForm.vue"));
 const CopperPrintingForm = defineAsyncComponent(() => import("@/views/productionManagement/workOrder/components/CopperPrintingForm.vue"));
+const GranulationForm = defineAsyncComponent(() => import("@/views/productionManagement/workOrder/components/GranulationForm.vue"));
 const Detail = defineAsyncComponent(() => import("@/views/productionManagement/productionReporting/components/Detail.vue"));
 
 
@@ -230,6 +238,16 @@
   {
     label: "鎶ュ簾鏁伴噺",
     prop: "scrapQty",
+    width: 120,
+  },
+  {
+    label: "鍚堟牸鐜�",
+    prop: "actualQualifiedRate",
+    width: 120,
+  },
+  {
+    label: "鏍囧噯鍚堟牸鐜�",
+    prop: "processQualifiedRate",
     width: 120,
   },
   {
@@ -295,6 +313,14 @@
   }
   handleQuery();
 };
+
+const rowClassName = ({row}) => {
+  if (Number(row.actualQualifiedRate) < Number(row.processQualifiedRate)) {
+    return 'danger-row';
+  }
+  return '';
+};
+
 const deleteReport = row => {
   ElMessageBox.confirm("纭畾鍒犻櫎璇ユ姤宸ュ悧锛�", "鎻愮ず", {
     confirmButtonText: "纭畾",
@@ -430,6 +456,7 @@
 const isShowInput = ref(false);
 const copperPrintingFormVisible = ref(false);
 const voltageSortingFormVisible = ref(false);
+const granulationFormVisible = ref(false);
 const showDetail = ref(false);
 const isShowingId = ref(0);
 const showInput = row => {
@@ -457,6 +484,8 @@
     copperPrintingFormVisible.value = true;
   } else if (row.process === '鐢靛帇鍒嗛��') {
     voltageSortingFormVisible.value = true;
+  } else if (row.process === '閫犵矑') {
+    granulationFormVisible.value = true;
   } else {
     showDetail.value = true;
   }
@@ -466,4 +495,8 @@
 });
 </script>
 
-<style scoped></style>
+<style scoped>
+:deep(.danger-row td) {
+  color: #e95a66 !important;
+}
+</style>

--
Gitblit v1.9.3