56 lines
2.4 KiB
SQL
56 lines
2.4 KiB
SQL
-- ============================================================
|
|
-- 应用安装包资源库 - 后台菜单与权限初始化脚本(可选)
|
|
-- ------------------------------------------------------------
|
|
-- 说明:
|
|
-- 1. 前端路由已在 constantRoutes 中注册,应用列表页面可直接通过
|
|
-- /#/app/package 访问,无需执行本脚本也能使用上传/列表功能。
|
|
-- 2. 本脚本仅用于在【后台管理 -> 系统管理 -> 菜单管理】侧边栏中
|
|
-- 展示“应用列表”入口,并将权限授予所有角色。
|
|
-- 3. 请在执行前确认第 1 步查询出的父目录(通常为“设备”目录)的 ID,
|
|
-- 若父目录 route_path 不为 'devices',请修改下面的 @parent_id 取值条件。
|
|
-- 4. 本脚本仅 INSERT,可重复执行(已包含存在性判断)。
|
|
-- ============================================================
|
|
|
|
-- 0. 变量:自动定位“设备”目录作为父级(如实际父目录不同请修改条件)
|
|
SET @parent_id = (SELECT id FROM sys_menu WHERE type = 'C' AND route_path = 'devices' LIMIT 1);
|
|
-- 若未找到设备目录,则挂到根目录(id=0)
|
|
SET @parent_id = IFNULL(@parent_id, 0);
|
|
|
|
-- 1. 插入“应用列表”菜单(作为设备目录下的子菜单)
|
|
INSERT INTO sys_menu
|
|
(parent_id, name, type, route_name, route_path, component, perm, visible, sort, icon, redirect, tree_path, keep_alive, always_show, create_time, update_time)
|
|
SELECT
|
|
@parent_id,
|
|
'应用列表',
|
|
'M',
|
|
'AppPackage',
|
|
'app/package',
|
|
'app/package/index',
|
|
'app:package:list',
|
|
1,
|
|
100,
|
|
'box',
|
|
NULL,
|
|
CONCAT(IF(@parent_id = 0, '', CONCAT(@parent_id, ',')), 'APP_PACKAGE_PLACEHOLDER'),
|
|
1,
|
|
0,
|
|
NOW(),
|
|
NOW()
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM sys_menu WHERE route_name = 'AppPackage' AND route_path = 'app/package'
|
|
);
|
|
|
|
-- 更新 tree_path(去掉占位并写入真实自增 id)
|
|
SET @menu_id = (SELECT id FROM sys_menu WHERE route_name = 'AppPackage' AND route_path = 'app/package' LIMIT 1);
|
|
UPDATE sys_menu
|
|
SET tree_path = IF(@parent_id = 0, CONCAT(@menu_id, ','), CONCAT(@parent_id, ',', @menu_id, ','))
|
|
WHERE id = @menu_id;
|
|
|
|
-- 2. 将“应用列表”菜单权限授予所有角色
|
|
INSERT INTO sys_role_menu (role_id, menu_id)
|
|
SELECT r.id, @menu_id
|
|
FROM sys_role r
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = r.id AND rm.menu_id = @menu_id
|
|
);
|