-- ========================================== -- 报修管理按钮权限更新脚本 -- 功能:根据角色限制更新按钮权限配置 -- 时间:2025-06-30 17:35:00 -- 说明:实现基于角色的按钮权限控制 -- ========================================== -- 1. 新增按钮权限到sys_menu表 INSERT INTO sys_menu ( menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark ) VALUES -- 更新进度权限(仅维修人员) (2141, '更新进度', 2110, 12, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:updateProgress', '#', 1, now(), 1, now(), '更新维修进度权限'), -- 完成工单权限(仅维修人员) (2142, '完成工单', 2110, 13, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:complete', '#', 1, now(), 1, now(), '完成工单权限'), -- 服务评价权限(仅报修人) (2143, '服务评价', 2110, 14, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:evaluate', '#', 1, now(), 1, now(), '服务评价权限'), -- 查看进度权限(所有用户) (2144, '查看进度', 2110, 15, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:progress', '#', 1, now(), 1, now(), '查看工单进度权限') ON DUPLICATE KEY UPDATE menu_name = VALUES(menu_name), perms = VALUES(perms), remark = VALUES(remark), update_time = now(); -- 2. 为超级管理员分配所有权限 INSERT IGNORE INTO sys_role_menu (role_id, menu_id) SELECT 1, menu_id FROM sys_menu WHERE menu_id BETWEEN 2141 AND 2144; -- 3. 为物业维修管理员分配权限(除服务评价外) INSERT IGNORE INTO sys_role_menu (role_id, menu_id) SELECT 6, menu_id FROM sys_menu WHERE menu_id IN (2141, 2142, 2144); -- 4. 为维修人员分配权限(更新进度、完成工单、查看进度) INSERT IGNORE INTO sys_role_menu (role_id, menu_id) SELECT 5, menu_id FROM sys_menu WHERE menu_id IN (2141, 2142, 2144); -- 5. 为所有用户分配基础查看权限 -- 注意:服务评价权限(2143)不在这里分配,需要前端业务逻辑控制 -- 6. 验证权限配置 SELECT m.menu_id, m.menu_name, m.perms, GROUP_CONCAT(r.role_name ORDER BY r.role_id) as assigned_roles FROM sys_menu m LEFT JOIN sys_role_menu rm ON m.menu_id = rm.menu_id LEFT JOIN sys_role r ON rm.role_id = r.role_id WHERE m.menu_id BETWEEN 2141 AND 2144 GROUP BY m.menu_id, m.menu_name, m.perms ORDER BY m.menu_id; -- 输出配置完成信息 SELECT '按钮权限配置完成' as message, 'pm:repairOrder:updateProgress - 仅维修人员' as update_progress, 'pm:repairOrder:complete - 仅维修人员' as complete_order, 'pm:repairOrder:evaluate - 业务逻辑控制' as evaluate_service, 'pm:repairOrder:progress - 所有用户' as view_progress;