Files
salaryAccountingBackend/src/directives/auth.js
T

53 lines
1.5 KiB
JavaScript

import { ElMessage } from 'element-plus'
// 角色权限映射
const roleMap = {
0: '普通员工',
1: '部门主管',
2: '综合部',
3: '财务部'
}
// 权限配置
const authConfig = {
// 工资条管理
'payroll:view': [0, 1, 2, 3], // 查看工资条
'payroll:edit': [1, 2, 3], // 编辑工资条
'payroll:delete': [2, 3], // 删除工资条
'payroll:show': [1, 2, 3], // 展示给员工
// 组别管理
'group:view': [0, 1, 2, 3], // 查看组别
'group:add': [2], // 添加组别
'group:edit': [2], // 编辑组别
'group:delete': [2], // 删除组别
// 成员管理
'member:view': [0, 1, 2, 3], // 查看成员
'member:add': [2], // 添加成员
'member:edit': [2], // 编辑成员
'member:delete': [2], // 删除成员
'member:role': [2], // 修改成员角色
'member:salary': [3], // 修改成员工资
}
export default {
mounted(el, binding) {
const { value } = binding
const userInfo = JSON.parse(sessionStorage.getItem('userInfo') || '{}')
const userRole = userInfo.roles || 0
// 如果没有权限配置,默认显示
if (!value) {
return
}
// 检查权限
const hasAuth = authConfig[value]?.includes(userRole)
if (!hasAuth) {
// 移除元素
el.parentNode?.removeChild(el)
}
}
}