From 6a234d4aeeb2f63bc7477b00de3c23896c9d001a Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 19 八月 2026 17:53:16 +0800
Subject: [PATCH] feat(approval): 添加管理员权限以绕过审批人限制

---
 src/views/productionManagement/workOrder/index.vue        |    5 ++---
 src/views/safeProduction/safeWorkApproval/index.vue       |    6 +++++-
 src/views/collaborativeApproval/approvalProcess/index.vue |    6 +++++-
 3 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/views/collaborativeApproval/approvalProcess/index.vue b/src/views/collaborativeApproval/approvalProcess/index.vue
index a15b121..c93166f 100644
--- a/src/views/collaborativeApproval/approvalProcess/index.vue
+++ b/src/views/collaborativeApproval/approvalProcess/index.vue
@@ -142,6 +142,10 @@
 import useUserStore from "@/store/modules/user";
 
 const userStore = useUserStore();
+// 褰撳墠鐢ㄦ埛鏄惁涓虹鐞嗗憳锛堣鑹� 鏅��2/admin/鏈�楂�1锛夛紝鍙笉鍙楀鎵逛汉闄愬埗瀹℃壒
+const isAdminUser = computed(() =>
+  ["admin", "鏅��2", "鏈�楂�1"].some(r => (userStore.roles || []).includes(r))
+);
 const route = useRoute();
 
 // 褰撳墠閫変腑鐨勬爣绛鹃〉锛岄粯璁や负鍏嚭绠$悊
@@ -390,7 +394,7 @@
     tableData.value = (res.data.records || []).map(r => ({
       ...r,
       currentApproverNames: r.approveUserCurrentNames || r.approveUserCurrentName || '-',
-      _canApprove: String(r.approveUserCurrentIds ?? '').split(',').filter(Boolean).includes(String(userStore.id)) || r.approveUserCurrentId === userStore.id
+      _canApprove: isAdminUser.value || String(r.approveUserCurrentIds ?? '').split(',').filter(Boolean).includes(String(userStore.id)) || r.approveUserCurrentId === userStore.id
     }));
     page.total = res.data.total;
     // 鏇存柊褰撳墠绫诲瀷鏁伴噺
diff --git a/src/views/productionManagement/workOrder/index.vue b/src/views/productionManagement/workOrder/index.vue
index 9c62a41..8349ec2 100644
--- a/src/views/productionManagement/workOrder/index.vue
+++ b/src/views/productionManagement/workOrder/index.vue
@@ -1136,11 +1136,10 @@
           clickFun: row => {
             showReportDialog(row);
           },
-          // 鐢ㄦ埛褰撳墠id鍦ㄥ伐鍗曟姤宸ヤ汉鎴栧伐搴忔姤宸ヤ汉涓�
+          // 鐢ㄦ埛褰撳墠id鍦ㄥ伐鍗曟姤宸ヤ汉鎴栧伐搴忔姤宸ヤ汉涓紝涓斿畬鎴愭暟閲忔湭杈捐鍒掓暟閲忔椂鍙户缁垎鎵规姤宸�
           disabled: row =>
             row.completeQuantity >= row.planQuantity ||
-            !canCurrentUserReport(row) ||
-            row.hasUnreportedMachine,
+            !canCurrentUserReport(row),
         },
         {
           name: "鐢熶骇鎺掍骇",
diff --git a/src/views/safeProduction/safeWorkApproval/index.vue b/src/views/safeProduction/safeWorkApproval/index.vue
index 1d40ab3..5cbdd24 100644
--- a/src/views/safeProduction/safeWorkApproval/index.vue
+++ b/src/views/safeProduction/safeWorkApproval/index.vue
@@ -83,6 +83,10 @@
   import useUserStore from "@/store/modules/user";
 
   const userStore = useUserStore();
+  // 褰撳墠鐢ㄦ埛鏄惁涓虹鐞嗗憳锛堣鑹� 鏅��2/admin/鏈�楂�1锛夛紝鍙笉鍙楀鎵逛汉闄愬埗瀹℃壒
+  const isAdminUser = computed(() =>
+    ["admin", "鏅��2", "鏈�楂�1"].some(r => (userStore.roles || []).includes(r))
+  );
   const route = useRoute();
 
   // 褰撳墠瀹℃壒绫诲瀷锛屾牴鎹�変腑鐨勬爣绛鹃〉璁$畻
@@ -276,7 +280,7 @@
         tableData.value = (res.data.records || []).map(r => ({
           ...r,
           currentApproverNames: r.approveUserCurrentNames || r.approveUserCurrentName || '-',
-          _canApprove: String(r.approveUserCurrentIds ?? '').split(',').filter(Boolean).includes(String(userStore.id)) || r.approveUserCurrentId === userStore.id
+          _canApprove: isAdminUser.value || String(r.approveUserCurrentIds ?? '').split(',').filter(Boolean).includes(String(userStore.id)) || r.approveUserCurrentId === userStore.id
         }));
         page.total = res.data.total;
       })

--
Gitblit v1.9.3