61 lines
2.8 KiB
SQL
61 lines
2.8 KiB
SQL
-- ==========================================
|
|
-- 报修管理按钮权限更新脚本
|
|
-- 功能:根据角色限制更新按钮权限配置
|
|
-- 时间: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; |