159 lines
7.0 KiB
SQL
159 lines
7.0 KiB
SQL
-- ============================================
|
||
-- 改名方案模块权限配置
|
||
-- ============================================
|
||
-- 此脚本为改名方案模块创建菜单和权限配置
|
||
-- 执行前请确保 sys_menu 表存在
|
||
|
||
-- ============================================
|
||
-- 第一步:查找或创建易凡模块的父菜单
|
||
-- ============================================
|
||
|
||
-- 查找易凡模块的菜单ID(假设已存在)
|
||
SET @yifan_parent_id = (SELECT id FROM sys_menu WHERE name = '易凡模块' AND type = 1 LIMIT 1);
|
||
|
||
-- 如果不存在,创建易凡模块目录
|
||
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
|
||
SELECT '易凡模块', 1, '/module_yifan', 'Layout', 'el-icon-star-filled', 100, 0, 1, NULL, NULL, NOW(), NOW()
|
||
WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE name = '易凡模块' AND type = 1);
|
||
|
||
-- 重新获取父菜单ID
|
||
SET @yifan_parent_id = (SELECT id FROM sys_menu WHERE name = '易凡模块' AND type = 1 LIMIT 1);
|
||
|
||
-- ============================================
|
||
-- 第二步:创建改名方案菜单
|
||
-- ============================================
|
||
|
||
-- 删除旧的改名方案菜单(如果存在)
|
||
DELETE FROM sys_menu WHERE name = '改名方案' AND type = 2;
|
||
|
||
-- 创建改名方案菜单
|
||
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
|
||
VALUES ('改名方案', 2, '/module_yifan/yifan_naming_solutions', 'module_yifan/yifan_naming_solutions/index', 'el-icon-document', 3, 0, 1, @yifan_parent_id, 'module_yifan:yifan_naming_solutions:query', NOW(), NOW());
|
||
|
||
-- 获取改名方案菜单ID
|
||
SET @naming_solutions_menu_id = LAST_INSERT_ID();
|
||
|
||
-- ============================================
|
||
-- 第三步:创建改名方案的按钮权限
|
||
-- ============================================
|
||
|
||
-- 查询权限
|
||
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
|
||
VALUES ('查询', 3, NULL, NULL, NULL, 1, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:query', NOW(), NOW());
|
||
|
||
-- 详情权限
|
||
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
|
||
VALUES ('详情', 3, NULL, NULL, NULL, 2, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:detail', NOW(), NOW());
|
||
|
||
-- 新增权限
|
||
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
|
||
VALUES ('新增', 3, NULL, NULL, NULL, 3, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:create', NOW(), NOW());
|
||
|
||
-- 修改权限
|
||
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
|
||
VALUES ('修改', 3, NULL, NULL, NULL, 4, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:update', NOW(), NOW());
|
||
|
||
-- 删除权限
|
||
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
|
||
VALUES ('删除', 3, NULL, NULL, NULL, 5, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:delete', NOW(), NOW());
|
||
|
||
-- 批量操作权限
|
||
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
|
||
VALUES ('批量操作', 3, NULL, NULL, NULL, 6, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:batch', NOW(), NOW());
|
||
|
||
-- 修改状态权限
|
||
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
|
||
VALUES ('修改状态', 3, NULL, NULL, NULL, 7, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:patch', NOW(), NOW());
|
||
|
||
-- 导入权限
|
||
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
|
||
VALUES ('导入', 3, NULL, NULL, NULL, 8, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:import', NOW(), NOW());
|
||
|
||
-- 导出权限
|
||
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
|
||
VALUES ('导出', 3, NULL, NULL, NULL, 9, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:export', NOW(), NOW());
|
||
|
||
-- 下载模板权限
|
||
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
|
||
VALUES ('下载模板', 3, NULL, NULL, NULL, 10, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:download', NOW(), NOW());
|
||
|
||
-- ============================================
|
||
-- 第四步:为管理员角色分配权限
|
||
-- ============================================
|
||
|
||
-- 获取管理员角色ID(通常是1,也可能是其他值)
|
||
SET @admin_role_id = (SELECT id FROM sys_role WHERE role_code = 'admin' OR role_name = '管理员' OR id = 1 LIMIT 1);
|
||
|
||
-- 为管理员角色分配改名方案菜单权限
|
||
INSERT INTO sys_role_menus (role_id, menu_id, created_time, updated_time)
|
||
SELECT @admin_role_id, id, NOW(), NOW()
|
||
FROM sys_menu
|
||
WHERE (id = @naming_solutions_menu_id OR parent_id = @naming_solutions_menu_id)
|
||
AND NOT EXISTS (
|
||
SELECT 1 FROM sys_role_menus
|
||
WHERE role_id = @admin_role_id AND menu_id = sys_menu.id
|
||
);
|
||
|
||
-- ============================================
|
||
-- 验证结果
|
||
-- ============================================
|
||
|
||
-- 查看创建的菜单
|
||
SELECT
|
||
m.id,
|
||
m.name,
|
||
m.type,
|
||
CASE m.type
|
||
WHEN 1 THEN '目录'
|
||
WHEN 2 THEN '菜单'
|
||
WHEN 3 THEN '按钮'
|
||
WHEN 4 THEN '链接'
|
||
END as type_name,
|
||
m.path,
|
||
m.perms,
|
||
m.parent_id,
|
||
p.name as parent_name
|
||
FROM sys_menu m
|
||
LEFT JOIN sys_menu p ON m.parent_id = p.id
|
||
WHERE m.name IN ('易凡模块', '改名方案') OR m.parent_id = @naming_solutions_menu_id
|
||
ORDER BY m.parent_id, m.sort;
|
||
|
||
-- 查看管理员角色的权限分配
|
||
SELECT
|
||
r.id as role_id,
|
||
r.role_name,
|
||
m.id as menu_id,
|
||
m.name as menu_name,
|
||
m.perms
|
||
FROM sys_role r
|
||
JOIN sys_role_menus rm ON r.id = rm.role_id
|
||
JOIN sys_menu m ON rm.menu_id = m.id
|
||
WHERE r.id = @admin_role_id
|
||
AND (m.id = @naming_solutions_menu_id OR m.parent_id = @naming_solutions_menu_id)
|
||
ORDER BY m.sort;
|
||
|
||
-- 统计信息
|
||
SELECT
|
||
'改名方案菜单ID' as info_type,
|
||
@naming_solutions_menu_id as value
|
||
UNION ALL
|
||
SELECT
|
||
'管理员角色ID' as info_type,
|
||
@admin_role_id as value
|
||
UNION ALL
|
||
SELECT
|
||
'创建的权限数量' as info_type,
|
||
COUNT(*) as value
|
||
FROM sys_menu
|
||
WHERE parent_id = @naming_solutions_menu_id;
|
||
|
||
-- ============================================
|
||
-- 注意事项
|
||
-- ============================================
|
||
-- 1. status 字段:0=启用,1=停用
|
||
-- 2. visible 字段:0=显示,1=隐藏
|
||
-- 3. type 字段:1=目录,2=菜单,3=按钮/权限,4=链接
|
||
-- 4. 如果管理员角色ID不是1,需要手动调整 @admin_role_id
|
||
-- 5. 执行后需要重新登录才能看到新菜单
|
||
-- 6. 如果菜单路径或组件路径不对,需要根据实际情况调整
|