diff --git a/docs/sql/complete_menu_setup.sql b/docs/sql/complete_menu_setup.sql new file mode 100644 index 0000000..1d08d3f --- /dev/null +++ b/docs/sql/complete_menu_setup.sql @@ -0,0 +1,86 @@ +-- 完整菜单初始化SQL +-- 创建时间: 2025-11-17 +-- 说明: 包含所有新增的菜单项和权限分配 + +-- ======================================== +-- 1. 工作台菜单 +-- ======================================== +INSERT INTO menu (id, name, menu_type, icon, path, 'order', parent_id, is_hidden, component, keepalive, redirect, created_at, updated_at) +VALUES + (22, '工作台', 'menu', 'carbon:dashboard', '/workbench', 1, 0, 0, '/workbench', 1, NULL, datetime('now'), datetime('now')); + +-- ======================================== +-- 2. 交易管理菜单 +-- ======================================== +-- 插入一级目录:交易管理 +INSERT INTO menu (id, name, menu_type, icon, path, 'order', parent_id, is_hidden, component, keepalive, redirect, created_at, updated_at) +VALUES + (16, '交易管理', 'catalog', 'carbon:receipt', '/transaction', 3, 0, 0, 'Layout', 0, '/transaction/invoice', datetime('now'), datetime('now')); + +-- 插入二级菜单:开票记录 +INSERT INTO menu (id, name, menu_type, icon, path, 'order', parent_id, is_hidden, component, keepalive, redirect, created_at, updated_at) +VALUES + (17, '开票记录', 'menu', 'carbon:document', 'invoice', 1, 16, 0, '/transaction/invoice', 0, NULL, datetime('now'), datetime('now')); + +-- ======================================== +-- 3. 估值管理菜单 +-- ======================================== +-- 插入一级目录:估值管理 +INSERT INTO menu (id, name, menu_type, icon, path, 'order', parent_id, is_hidden, component, keepalive, redirect, created_at, updated_at) +VALUES + (18, '估值管理', 'catalog', 'carbon:calculator', '/valuation', 4, 0, 0, 'Layout', 0, '/valuation/audit', datetime('now'), datetime('now')); + +-- 插入二级菜单:审核列表 +INSERT INTO menu (id, name, menu_type, icon, path, 'order', parent_id, is_hidden, component, keepalive, redirect, created_at, updated_at) +VALUES + (19, '审核列表', 'menu', 'carbon:task-approved', 'audit', 1, 18, 0, '/valuation/audit', 0, NULL, datetime('now'), datetime('now')); + +-- ======================================== +-- 4. 用户管理菜单 +-- ======================================== +-- 插入一级目录:用户管理 +INSERT INTO menu (id, name, menu_type, icon, path, 'order', parent_id, is_hidden, component, keepalive, redirect, created_at, updated_at) +VALUES + (20, '用户管理', 'catalog', 'carbon:user-multiple', '/user-management', 5, 0, 0, 'Layout', 0, '/user-management/user-list', datetime('now'), datetime('now')); + +-- 插入二级菜单:用户列表 +INSERT INTO menu (id, name, menu_type, icon, path, 'order', parent_id, is_hidden, component, keepalive, redirect, created_at, updated_at) +VALUES + (21, '用户列表', 'menu', 'carbon:user', 'user-list', 1, 20, 0, '/user-management/user-list', 0, NULL, datetime('now'), datetime('now')); + +-- ======================================== +-- 角色权限分配 +-- ======================================== + +-- 为管理员角色(role_id=1)分配所有菜单权限 +INSERT INTO role_menu (role_id, menu_id) +VALUES + (1, 22), -- 工作台 + (1, 16), -- 交易管理 + (1, 17), -- 开票记录 + (1, 18), -- 估值管理 + (1, 19), -- 审核列表 + (1, 20), -- 用户管理 + (1, 21); -- 用户列表 + +-- 为普通用户角色(role_id=2)分配基础菜单权限 +INSERT INTO role_menu (role_id, menu_id) +VALUES + (2, 22), -- 工作台 + (2, 16), -- 交易管理 + (2, 17), -- 开票记录 + (2, 18), -- 估值管理 + (2, 19); -- 审核列表 + -- 注意:普通用户不分配用户管理权限 + +-- ======================================== +-- 验证SQL +-- ======================================== +-- 查询所有新增的菜单 +-- SELECT * FROM menu WHERE id >= 16 ORDER BY parent_id, 'order'; + +-- 查询管理员角色的菜单权限 +-- SELECT m.name, m.path, m.menu_type FROM menu m +-- JOIN role_menu rm ON m.id = rm.menu_id +-- WHERE rm.role_id = 1 AND m.id >= 16 +-- ORDER BY m.parent_id, m.'order';