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/safeProduction/safeWorkApproval/index.vue |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/src/views/safeProduction/safeWorkApproval/index.vue b/src/views/safeProduction/safeWorkApproval/index.vue
index 2d8362e..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();
 
   // 褰撳墠瀹℃壒绫诲瀷锛屾牴鎹�変腑鐨勬爣绛鹃〉璁$畻
@@ -179,11 +183,11 @@
       }
     );
 
-    // 褰撳墠瀹℃壒浜哄垪
+    // 褰撳墠瀹℃壒浜哄垪锛堟敮鎸佸悓鑺傜偣澶氬鎵逛汉锛�
     baseColumns.push({
       label: "褰撳墠瀹℃壒浜�",
-      prop: "approveUserCurrentName",
-      width: 120,
+      prop: "currentApproverNames",
+      width: 180,
     });
 
     // 鎿嶄綔鍒�
@@ -212,11 +216,10 @@
             openApprovalDia("approval", row);
           },
           disabled: row =>
-            row.approveUserCurrentId == null ||
             row.approveStatus == 2 ||
             row.approveStatus == 3 ||
             row.approveStatus == 4 ||
-            row.approveUserCurrentId !== userStore.id,
+            !row._canApprove,
         },
         {
           name: "璇︽儏",
@@ -273,7 +276,12 @@
     })
       .then(res => {
         tableLoading.value = false;
-        tableData.value = res.data.records;
+        // 瀵屽寲琛屾暟鎹細褰撳墠瀹℃壒浜烘樉绀猴紙澶氬�煎厹搴曟棫鍗曞�硷級+ 褰撳墠鐢ㄦ埛鏄惁鍙鏍�
+        tableData.value = (res.data.records || []).map(r => ({
+          ...r,
+          currentApproverNames: r.approveUserCurrentNames || r.approveUserCurrentName || '-',
+          _canApprove: isAdminUser.value || String(r.approveUserCurrentIds ?? '').split(',').filter(Boolean).includes(String(userStore.id)) || r.approveUserCurrentId === userStore.id
+        }));
         page.total = res.data.total;
       })
       .catch(err => {

--
Gitblit v1.9.3