feat(tools): 补充工具列表菜单 SQL 并修正 init.sql 过时数据
CI/CD Deploy (Admin) / 构建后端镜像并部署 (push) Successful in 1m19s
CI/CD Deploy (Admin) / 构建后端镜像并部署 (push) Successful in 1m19s
- 新增 sql/add_tools_text_diff.sql:工具列表 + 文本比对菜单初始化脚本(幂等)
- 修正 init.sql 中已过时的 component 取值
- 原值 sys/user/user-list 等与实际文件 sys/sys-user.vue 不符
- 按线上真实数据更正为 /sys/sys-user、/sys/sys-role 等,并补齐待办菜单
- component 字段必须带前导斜杠,前端会拼成 import('@/view' + component + '.vue')
This commit is contained in:
@@ -0,0 +1,49 @@
|
|||||||
|
-- ============================================================
|
||||||
|
-- 工具列表菜单 + 文本比对页面
|
||||||
|
--
|
||||||
|
-- 与「系统管理」同级的顶级菜单,下挂「文本比对」
|
||||||
|
-- 菜单由t_sys_permission 表驱动,前端 formatMenuList() 会把 component
|
||||||
|
-- 拼成 import('@/view' + component + '.vue'),因此 component 必须带前导斜杠,
|
||||||
|
-- 且要与 src/view/tools/text-diff.vue 对应
|
||||||
|
--
|
||||||
|
-- 幂等:可重复执行,已存在则跳过
|
||||||
|
-- 执行库:freedom_db
|
||||||
|
-- ============================================================
|
||||||
|
|
||||||
|
-- ---------- 1. 清理历史遗留(如果之前插过) ----------
|
||||||
|
DELETE FROM `t_sys_role_permission` WHERE `permission_id` IN (
|
||||||
|
SELECT `id` FROM `t_sys_permission` WHERE `permission_code` IN ('tools', 'tools:text-diff')
|
||||||
|
);
|
||||||
|
DELETE FROM `t_sys_permission` WHERE `permission_code` IN ('tools', 'tools:text-diff');
|
||||||
|
|
||||||
|
-- ---------- 2. 插入菜单 ----------
|
||||||
|
-- 顶级菜单「工具列表」:url 与 component 留空,前端会挂载 Main 布局作为容器
|
||||||
|
-- 文本比对:component = /tools/text-diff,对应 src/view/tools/text-diff.vue
|
||||||
|
INSERT INTO `t_sys_permission`
|
||||||
|
(`id`, `parent_id`, `permission_code`, `permission_name`, `permission_desc`, `level`,
|
||||||
|
`icon`, `url`, `component`, `sort`, `create_by`, `create_date`, `del_flag`)
|
||||||
|
VALUES
|
||||||
|
(1005, 0, 'tools', '工具列表', '与系统管理同级的工具集合',
|
||||||
|
1, 'ios-apps', '', '', 20, 'admin', NOW(), 0),
|
||||||
|
(1006, 1005, 'tools:text-diff', '文本比对', '左右文本并排比对,支持字符级高亮、忽略空白与结果导出',
|
||||||
|
2, 'md-git-compare', '/tools/text-diff', '/tools/text-diff', 1, 'admin', NOW(), 0);
|
||||||
|
|
||||||
|
-- ---------- 3. 授权给超级管理员 ----------
|
||||||
|
-- 当前系统仅有「超级管理员」一个角色;若后续新增角色,按需补充同样的关联
|
||||||
|
INSERT INTO `t_sys_role_permission` (`id`, `role_id`, `permission_id`, `create_by`, `create_date`)
|
||||||
|
VALUES
|
||||||
|
(1005, 1, 1005, 'admin', NOW()),
|
||||||
|
(1006, 1, 1006, 'admin', NOW());
|
||||||
|
|
||||||
|
-- ---------- 4. 校验 ----------
|
||||||
|
-- 预期返回 2 行:工具列表(id=1005, parent_id=0) 与 文本比对(id=1006, parent_id=1005)
|
||||||
|
SELECT `id`, `parent_id`, `permission_code`, `permission_name`, `level`, `icon`, `url`, `component`, `sort`
|
||||||
|
FROM `t_sys_permission`
|
||||||
|
WHERE `permission_code` IN ('tools', 'tools:text-diff')
|
||||||
|
ORDER BY `level`, `sort`;
|
||||||
|
|
||||||
|
-- 预期返回 2 行:role_id=1 分别关联 permission_id 1005 / 1006
|
||||||
|
SELECT `id`, `role_id`, `permission_id`
|
||||||
|
FROM `t_sys_role_permission`
|
||||||
|
WHERE `permission_id` IN (1005, 1006)
|
||||||
|
ORDER BY `permission_id`;
|
||||||
+15
-5
@@ -152,13 +152,19 @@ VALUES
|
|||||||
(1, '超级管理员', 'admin', '超级管理员,拥有所有权限', '1', 1, 1, 'admin', NOW(), 0);
|
(1, '超级管理员', 'admin', '超级管理员,拥有所有权限', '1', 1, 1, 'admin', NOW(), 0);
|
||||||
|
|
||||||
-- 权限菜单
|
-- 权限菜单
|
||||||
|
-- component 必须带前导斜杠且与 src/view 下的实际文件名一致:
|
||||||
|
-- 前端 formatMenuList() 会拼成 import('@/view' + component + '.vue')
|
||||||
INSERT INTO `t_sys_permission` (`id`, `parent_id`, `permission_code`, `permission_name`, `permission_desc`, `level`, `icon`, `url`, `component`, `sort`, `create_by`, `create_date`, `del_flag`)
|
INSERT INTO `t_sys_permission` (`id`, `parent_id`, `permission_code`, `permission_name`, `permission_desc`, `level`, `icon`, `url`, `component`, `sort`, `create_by`, `create_date`, `del_flag`)
|
||||||
VALUES
|
VALUES
|
||||||
(1, 0, 'system', '系统管理', '系统管理菜单', 1, 'ios-settings', '', '', 1, 'admin', NOW(), 0),
|
(1, 0, 'system', '系统管理', '系统管理菜单', 1, 'ios-settings', '', '', 1, 'admin', NOW(), 0),
|
||||||
(2, 1, 'sys:user', '用户管理', '用户管理', 2, 'ios-person', '/sys/user', 'sys/user/user-list', 1, 'admin', NOW(), 0),
|
(2, 1, 'sys:user', '用户管理', '用户管理', 2, 'ios-person', '/sys/user', '/sys/sys-user', 1, 'admin', NOW(), 0),
|
||||||
(3, 1, 'sys:role', '角色管理', '角色管理', 2, 'ios-people', '/sys/role', 'sys/role/role-list', 2, 'admin', NOW(), 0),
|
(3, 1, 'sys:role', '角色管理', '角色管理', 2, 'ios-people', '/sys/role', '/sys/sys-role', 2, 'admin', NOW(), 0),
|
||||||
(4, 1, 'sys:dept', '部门管理', '部门管理', 2, 'ios-home', '/sys/dept', 'sys/dept/dept-list', 3, 'admin', NOW(), 0),
|
(4, 1, 'sys:dept', '部门管理', '部门管理', 2, 'ios-home', '/sys/dept', '/sys/sys-dept', 3, 'admin', NOW(), 0),
|
||||||
(5, 1, 'sys:permission', '权限管理', '权限管理', 2, 'ios-key', '/sys/permission', 'sys/permission/permission-list', 4, 'admin', NOW(), 0);
|
(5, 1, 'sys:permission', '权限管理', '权限管理', 2, 'ios-key', '/sys/permission', '/sys/sys-permission', 4, 'admin', NOW(), 0),
|
||||||
|
(1003, 0, 'todo', '待办', '个人与公开待办', 1, 'md-checkmark-circle', '', '', 10, 'admin', NOW(), 0),
|
||||||
|
(1004, 1003, 'todo:list', '待办清单', '个人待办清单', 2, 'md-list-box', '/todo/list', '/todo/todo-list', 1, 'admin', NOW(), 0),
|
||||||
|
(1005, 0, 'tools', '工具列表', '与系统管理同级的工具集合', 1, 'ios-apps', '', '', 20, 'admin', NOW(), 0),
|
||||||
|
(1006, 1005, 'tools:text-diff', '文本比对', '左右文本并排比对,支持字符级高亮、忽略空白与结果导出', 2, 'md-git-compare', '/tools/text-diff', '/tools/text-diff', 1, 'admin', NOW(), 0);
|
||||||
|
|
||||||
-- 用户-角色关联:admin -> 超级管理员
|
-- 用户-角色关联:admin -> 超级管理员
|
||||||
INSERT INTO `t_sys_user_role` (`id`, `user_id`, `role_id`, `create_by`, `create_time`)
|
INSERT INTO `t_sys_user_role` (`id`, `user_id`, `role_id`, `create_by`, `create_time`)
|
||||||
@@ -171,4 +177,8 @@ VALUES
|
|||||||
(2, 1, 2, 'admin', NOW()),
|
(2, 1, 2, 'admin', NOW()),
|
||||||
(3, 1, 3, 'admin', NOW()),
|
(3, 1, 3, 'admin', NOW()),
|
||||||
(4, 1, 4, 'admin', NOW()),
|
(4, 1, 4, 'admin', NOW()),
|
||||||
(5, 1, 5, 'admin', NOW());
|
(5, 1, 5, 'admin', NOW()),
|
||||||
|
(1003, 1, 1003, 'admin', NOW()),
|
||||||
|
(1004, 1, 1004, 'admin', NOW()),
|
||||||
|
(1005, 1, 1005, 'admin', NOW()),
|
||||||
|
(1006, 1, 1006, 'admin', NOW());
|
||||||
|
|||||||
Reference in New Issue
Block a user