From a14c5ce07d20e9f28058f6942dbc00197fac47f1 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期四, 13 八月 2026 10:19:19 +0800
Subject: [PATCH] fix: 领料功能修改,移除订单领料,添加工序领料功能,支持按工序查询物料与已领料记录

---
 src/views/productionManagement/workOrderManagement/index.vue |   47 +++++++++++++++++++++++++++--------------------
 1 files changed, 27 insertions(+), 20 deletions(-)

diff --git a/src/views/productionManagement/workOrderManagement/index.vue b/src/views/productionManagement/workOrderManagement/index.vue
index b2ac432..16731c9 100644
--- a/src/views/productionManagement/workOrderManagement/index.vue
+++ b/src/views/productionManagement/workOrderManagement/index.vue
@@ -270,8 +270,8 @@
     productWorkOrderPage,
     addProductMain,
     downProductWorkOrder,
+    checkWorkOrderMaterialPicked,
   } from "@/api/productionManagement/workOrder.js";
-  import { listMaterialPickingDetail } from "@/api/productionManagement/productionOrder.js";
   import { findProcessParamListOrder } from "@/api/productionManagement/productProcessRoute.js";
   import { getUserProfile, userListNoPageByTenantId } from "@/api/system/user.js";
   import { getDicts } from "@/api/system/dict/data";
@@ -376,12 +376,13 @@
             openWorkOrderFiles(row);
           },
         },
-        // {
-        //   name: "鐗╂枡",
-        //   clickFun: row => {
-        //     openMaterialDialog(row);
-        //   },
-        // },
+        {
+          name: "棰嗘枡",
+          clickFun: row => {
+            openMaterialDialog(row);
+          },
+          showHide: row => !row.endOrder,
+        },
         {
           name: "鎶ュ伐",
           clickFun: row => {
@@ -643,20 +644,26 @@
     fileDialogVisible.value = true;
   };
 
-  const showReportDialog = async row => {
-    if (row.productionOrderId) {
-      try {
-        const res = await listMaterialPickingDetail(row.productionOrderId);
-        const records = Array.isArray(res.data)
-          ? res.data
-          : res.data?.records || [];
-        if (res.code === 200 && records.length === 0) {
-          proxy.$modal.msgError("鏈鏂欐棤娉曟姤宸�");
-          return;
-        }
-      } catch (error) {
-        console.error("鏌ヨ棰嗘枡璇︽儏澶辫触:", error);
+  // 浠呯敤浜庡嵆鏃舵彁绀猴細鎶ュ伐鏉冮檺鏈�缁堢敱鍚庣鍦ㄦ姤宸ヤ簨鍔″唴鏍¢獙褰撳墠宸ュ簭鏄惁宸查鏂�
+  const checkCurrentProcessPicked = async row => {
+    try {
+      const res = await checkWorkOrderMaterialPicked(row.id);
+      if (res.code === 200 && res.data !== true) {
+        proxy.$modal.msgError("褰撳墠宸ュ簭鏈鏂欙紝鏃犳硶鎶ュ伐");
+        return false;
       }
+      return true;
+    } catch (error) {
+      console.error("鏌ヨ褰撳墠宸ュ簭棰嗘枡澶辫触:", error);
+      proxy.$modal.msgError("鏌ヨ褰撳墠宸ュ簭棰嗘枡澶辫触");
+      return false;
+    }
+  };
+
+  const showReportDialog = async row => {
+    const picked = await checkCurrentProcessPicked(row);
+    if (!picked) {
+      return;
     }
     currentReportRowData.value = row;
     reportForm.planQuantity = subtractQuantity(

--
Gitblit v1.9.3