5 天以前 6a234d4aeeb2f63bc7477b00de3c23896c9d001a
feat(approval): 添加管理员权限以绕过审批人限制

- 在协同审批流程中添加管理员角色判断逻辑
- 管理员可不受当前审批人限制直接进行审批操作
- 优化工作订单界面的报工功能启用条件
- 安全生产业务审批中同步添加管理员权限支持
- 修正审批权限判断逻辑以支持多角色配置
已修改3个文件
17 ■■■■ 文件已修改
src/views/collaborativeApproval/approvalProcess/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/workOrder/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/safeProduction/safeWorkApproval/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    // 更新当前类型数量
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: "生产排产",
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;
      })