页面按钮权限

This commit is contained in:
huhao
2026-08-11 11:30:27 +08:00
parent d1d3636cf1
commit 94ec5e65ca
8 changed files with 148 additions and 59 deletions
+60 -27
View File
@@ -91,35 +91,68 @@ export const defaultApps = [{
}
]
// 扫码类功能 key:sampling 下料抽检 / makeRight 组对抽查 / antiRust 防腐处理 / dailyPaper 焊接日报 / dailyAudit 日报审核
const ALL_SCAN_FUNCS = ['sampling', 'makeRight', 'antiRust', 'dailyPaper']
// 管理/技术岗位在 4 个扫码功能之外,额外拥有日报审核
const MANAGE_SCAN_FUNCS = [...ALL_SCAN_FUNCS, 'dailyAudit']
// 数据权限:view 可查看 / edit 可编辑
const VIEW = 'view'
const EDIT = 'edit'
// 现场人员(UserType=3)岗位菜单权限,小程序端硬编码(来源:requests/权限.xlsx)
// 未列出的岗位默认无任何扫码类菜单权限;pipe 管理类应用(无 funcKey)对现场人员一律隐藏
// 扫码类功能:sampling 下料 / makeRight 组对 / antiRust 防腐 / dailyPaper 日报
// 扩展:dailyAudit 日报审核
const ALL_VIEW = {
sampling: VIEW,
makeRight: VIEW,
antiRust: VIEW,
dailyPaper: VIEW,
dailyAudit: VIEW,
}
const ALL_EDIT = {
sampling: EDIT,
makeRight: EDIT,
antiRust: EDIT,
dailyPaper: EDIT,
dailyAudit: EDIT,
}
// 岗位权限,仅按 WorkPostName 硬编码(来源:岗位权限表)
// value 为 { [funcKey]: 'view'|'edit' };未列出的岗位不限制扫码类功能
// pipe 管理类应用(无 funcKey)不按岗位拦截,由后端 menuId 控制
export const postMenuPermissions = {
'项目经理': MANAGE_SCAN_FUNCS,
'项目总工': MANAGE_SCAN_FUNCS,
'控制经理': MANAGE_SCAN_FUNCS,
'安环经理': MANAGE_SCAN_FUNCS,
'质量经理': MANAGE_SCAN_FUNCS,
'材料部长': MANAGE_SCAN_FUNCS,
'防腐工程师': MANAGE_SCAN_FUNCS,
'费控工程师': MANAGE_SCAN_FUNCS,
'物流工程师': MANAGE_SCAN_FUNCS,
'管道工程师': MANAGE_SCAN_FUNCS,
'包装工程师': MANAGE_SCAN_FUNCS,
'项目信息员': MANAGE_SCAN_FUNCS,
'材料员': MANAGE_SCAN_FUNCS,
'资料员': MANAGE_SCAN_FUNCS,
'技术员': MANAGE_SCAN_FUNCS,
'质量员': MANAGE_SCAN_FUNCS,
'施工员': MANAGE_SCAN_FUNCS,
'焊工': ['sampling', 'makeRight', 'dailyPaper'],
'管工': ALL_SCAN_FUNCS,
'防腐工': ['antiRust'],
'无损检测工': ['dailyPaper'],
// —— 全部菜单 · 可查看 ——
'项目经理': ALL_VIEW,
'项目总工': ALL_VIEW,
'控制经理': ALL_VIEW,
'安环经理': ALL_VIEW,
'材料部长': ALL_VIEW,
'防腐工程师': ALL_VIEW,
'费控工程师': ALL_VIEW,
'物流工程师': ALL_VIEW,
'包装工程师': ALL_VIEW,
'材料员': ALL_VIEW,
'资料员': ALL_VIEW,
// —— 全部菜单 · 可编辑 ——
'质量经理': ALL_EDIT,
'管道工程师': ALL_EDIT,
'项目信息员': ALL_EDIT,
'技术员': ALL_EDIT,
'质量员': ALL_EDIT,
'施工员': ALL_EDIT,
// —— 现场工种(细粒度)——
'焊工': {
sampling: VIEW,
makeRight: VIEW,
dailyPaper: EDIT,
},
'管工': {
sampling: EDIT,
makeRight: EDIT,
antiRust: VIEW,
dailyPaper: VIEW,
},
'防腐工': {
antiRust: EDIT,
},
'无损检测工': {
dailyPaper: VIEW,
},
}
// 扫码类页面路径 → 功能 key(用于扫码跳转前的岗位权限校验)