feat(tools): 补充工具列表菜单 SQL 并修正 init.sql 过时数据
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:
zhangjiaxun
2026-10-20 22:28:14 +08:00
parent 634ce4b2e4
commit 4aba70b047
2 changed files with 65 additions and 6 deletions
+49
View File
@@ -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
View File
@@ -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());