53 lines
1.5 KiB
JavaScript
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.role || 0
|
|
|
|
// 如果没有权限配置,默认显示
|
|
if (!value) {
|
|
return
|
|
}
|
|
|
|
// 检查权限
|
|
const hasAuth = authConfig[value]?.includes(userRole)
|
|
|
|
if (!hasAuth) {
|
|
// 移除元素
|
|
el.parentNode?.removeChild(el)
|
|
}
|
|
}
|
|
}
|