From a1569c557f684e2c77d6c0dabd396d44226ec1f7 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期二, 02 六月 2026 17:05:40 +0800
Subject: [PATCH] feat: 班组成员选择只能在排产人员以及工序人员组里面选择

---
 src/views/productionManagement/workOrder/index.vue |   34 ++++++++++++++++++++++++++++------
 1 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/src/views/productionManagement/workOrder/index.vue b/src/views/productionManagement/workOrder/index.vue
index 4ee6798..3c9f23f 100644
--- a/src/views/productionManagement/workOrder/index.vue
+++ b/src/views/productionManagement/workOrder/index.vue
@@ -543,6 +543,23 @@
   return ids.includes(uid);
 };
 
+// 鍒ゆ柇褰撳墠鐢ㄦ埛鏄惁鍦ㄥ伐搴忔姤宸ヤ汉涓�
+const isCurrentUserInProcessUserIds = (row) => {
+  const uid = String(currentUserId.value || "");
+  if (!uid) return false;
+
+  const ids = normalizeArray(row?.processUserIds)
+      .map(id => String(id))
+      .filter(Boolean);
+
+  return ids.includes(uid);
+};
+
+// 鍒ゆ柇褰撳墠鐢ㄦ埛鏄惁鍙互鎶ュ伐锛堝伐鍗曟姤宸ヤ汉 鎴� 宸ュ簭鎶ュ伐浜猴級
+const canCurrentUserReport = (row) => {
+  return isCurrentUserInUserIds(row) || isCurrentUserInProcessUserIds(row);
+};
+
 const canOperateByReportWorker = computed(() => {
   return (row) => isCurrentUserReportWorker(row);
 });
@@ -1071,9 +1088,9 @@
         clickFun: row => {
           showReportDialog(row);
         },
-        // // 鐢ㄦ埛褰撳墠id
+        // 鐢ㄦ埛褰撳墠id鍦ㄥ伐鍗曟姤宸ヤ汉鎴栧伐搴忔姤宸ヤ汉涓�
         disabled: row => row.completeQuantity >= row.planQuantity ||
-            !isCurrentUserInUserIds(row) || row.hasUnreportedMachine
+            !canCurrentUserReport(row) || row.hasUnreportedMachine
       },
       {
         name: "鐢熶骇鎺掍骇",
@@ -1471,13 +1488,18 @@
   reportForm.addQty = 0;
   reportForm.userIds = row.userIds || [];
 
-  const ids = (row.userIds || "")
-      .split(",")
-      .map(id => id.trim())
+  // 鍚堝苟宸ュ崟鎶ュ伐浜哄拰宸ュ簭鎶ュ伐浜猴紝鍘婚噸
+  const workOrderUserIds = normalizeArray(row.userIds)
+      .map(id => String(id).trim())
       .filter(Boolean);
+  const processUserIds = normalizeArray(row.processUserIds)
+      .map(id => String(id).trim())
+      .filter(Boolean);
+  const allowedUserIds = [...new Set([...workOrderUserIds, ...processUserIds])];
 
+  // 鍙厑璁搁�夋嫨宸ュ崟鎶ュ伐浜哄拰宸ュ簭鎶ュ伐浜�
   reportForm.userIdsList = userTeamOptions.value
-      // .filter(item => ids.includes(String(item.userId)))
+      .filter(item => allowedUserIds.includes(String(item.userId)))
       .map(item => ({
         userId: item.userId,
         nickName: item.nickName

--
Gitblit v1.9.3