feat(approval): 添加管理员权限以绕过审批人限制
- 在协同审批流程中添加管理员角色判断逻辑
- 管理员可不受当前审批人限制直接进行审批操作
- 优化工作订单界面的报工功能启用条件
- 安全生产业务审批中同步添加管理员权限支持
- 修正审批权限判断逻辑以支持多角色配置
| | |
| | | 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(); |
| | | |
| | | // 当前选中的标签页,默认为公出管理 |
| | |
| | | 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; |
| | | // 更新当前类型数量 |
| | |
| | | clickFun: row => { |
| | | showReportDialog(row); |
| | | }, |
| | | // 用户当前id在工单报工人或工序报工人中 |
| | | // 用户当前id在工单报工人或工序报工人中,且完成数量未达计划数量时可继续分批报工 |
| | | disabled: row => |
| | | row.completeQuantity >= row.planQuantity || |
| | | !canCurrentUserReport(row) || |
| | | row.hasUnreportedMachine, |
| | | !canCurrentUserReport(row), |
| | | }, |
| | | { |
| | | name: "生产排产", |
| | |
| | | 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(); |
| | | |
| | | // 当前审批类型,根据选中的标签页计算 |
| | |
| | | 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; |
| | | }) |