210 lines
4.9 KiB
PL/PgSQL
210 lines
4.9 KiB
PL/PgSQL
-- 全量业务菜单种子(与当前后端能力对齐:IAM 租户/部门/角色/用户/菜单 + System 参数)
|
||
-- 依赖:001_iam.sql;建议在 004_seed_platform_builtin.sql 之后执行(以便角色已存在时可挂接权限)
|
||
--
|
||
-- 约定:
|
||
-- menu_type: 1=目录 2=菜单 3=按钮(本脚本仅录入目录+菜单,便于侧栏 /nav)
|
||
-- 「概览」(/dashboard) 不入库:全员可进,由前端壳层固定展示,不参与 iam_menu 配置与角色授权
|
||
-- path 与 Next 管理端路由对齐(可按实际前端调整)
|
||
--
|
||
-- 固定菜单 id 前缀 31000000-0000-4000-8000-* 便于识别与文档引用
|
||
|
||
BEGIN;
|
||
|
||
INSERT INTO iam_menu (
|
||
id, parent_id, menu_name, menu_type, perms, path, component, icon, sort_order,
|
||
is_visible, is_builtin, status, created_at, updated_at
|
||
) VALUES
|
||
-- 工作台(目录)
|
||
(
|
||
'31000000-0000-4000-8000-000000000001',
|
||
'',
|
||
'工作台',
|
||
1,
|
||
'workspace:root',
|
||
'',
|
||
'',
|
||
'⌂',
|
||
10,
|
||
true,
|
||
true,
|
||
1,
|
||
now(),
|
||
now()
|
||
),
|
||
(
|
||
'31000000-0000-4000-8000-000000000003',
|
||
'31000000-0000-4000-8000-000000000001',
|
||
'个人中心',
|
||
2,
|
||
'account:profile',
|
||
'/dashboard/account',
|
||
'',
|
||
'👤',
|
||
20,
|
||
true,
|
||
true,
|
||
1,
|
||
now(),
|
||
now()
|
||
),
|
||
|
||
-- 系统:/api/v1/system/param/*
|
||
(
|
||
'31000000-0000-4000-8000-000000000010',
|
||
'',
|
||
'系统管理',
|
||
1,
|
||
'system:module',
|
||
'',
|
||
'',
|
||
'⚙',
|
||
40,
|
||
true,
|
||
true,
|
||
1,
|
||
now(),
|
||
now()
|
||
),
|
||
(
|
||
'31000000-0000-4000-8000-000000000011',
|
||
'31000000-0000-4000-8000-000000000010',
|
||
'参数配置',
|
||
2,
|
||
'system:param:list',
|
||
'/dashboard/system/param',
|
||
'',
|
||
'🔧',
|
||
10,
|
||
true,
|
||
true,
|
||
1,
|
||
now(),
|
||
now()
|
||
),
|
||
|
||
-- IAM:/api/v1/iam/*
|
||
(
|
||
'31000000-0000-4000-8000-000000000020',
|
||
'',
|
||
'权限管理',
|
||
1,
|
||
'iam:module',
|
||
'',
|
||
'',
|
||
'🛡',
|
||
50,
|
||
true,
|
||
true,
|
||
1,
|
||
now(),
|
||
now()
|
||
),
|
||
(
|
||
'31000000-0000-4000-8000-000000000021',
|
||
'31000000-0000-4000-8000-000000000020',
|
||
'租户管理',
|
||
2,
|
||
'iam:tenant:list',
|
||
'/dashboard/iam/tenant',
|
||
'',
|
||
'🏢',
|
||
10,
|
||
true,
|
||
true,
|
||
1,
|
||
now(),
|
||
now()
|
||
),
|
||
(
|
||
'31000000-0000-4000-8000-000000000022',
|
||
'31000000-0000-4000-8000-000000000020',
|
||
'部门管理',
|
||
2,
|
||
'iam:dept:tree',
|
||
'/dashboard/iam/dept',
|
||
'',
|
||
'🌳',
|
||
20,
|
||
true,
|
||
true,
|
||
1,
|
||
now(),
|
||
now()
|
||
),
|
||
(
|
||
'31000000-0000-4000-8000-000000000023',
|
||
'31000000-0000-4000-8000-000000000020',
|
||
'角色管理',
|
||
2,
|
||
'iam:role:list',
|
||
'/dashboard/iam/role',
|
||
'',
|
||
'👥',
|
||
30,
|
||
true,
|
||
true,
|
||
1,
|
||
now(),
|
||
now()
|
||
),
|
||
(
|
||
'31000000-0000-4000-8000-000000000024',
|
||
'31000000-0000-4000-8000-000000000020',
|
||
'用户管理',
|
||
2,
|
||
'iam:user:list',
|
||
'/dashboard/iam/user',
|
||
'',
|
||
'👤',
|
||
40,
|
||
true,
|
||
true,
|
||
1,
|
||
now(),
|
||
now()
|
||
),
|
||
(
|
||
'31000000-0000-4000-8000-000000000025',
|
||
'31000000-0000-4000-8000-000000000020',
|
||
'资源(菜单)',
|
||
2,
|
||
'iam:menu:tree',
|
||
'/dashboard/iam/resource',
|
||
'',
|
||
'📋',
|
||
50,
|
||
true,
|
||
true,
|
||
1,
|
||
now(),
|
||
now()
|
||
)
|
||
ON CONFLICT (id) DO NOTHING;
|
||
|
||
-- 将上述菜单授权给平台「超级管理员」角色(与 004 中 role id 一致)
|
||
INSERT INTO iam_role_menu (id, role_id, menu_id, created_at)
|
||
SELECT gen_random_uuid()::text,
|
||
'20000000-0000-4000-8000-000000000002',
|
||
m.id,
|
||
now()
|
||
FROM iam_menu m
|
||
WHERE m.id IN (
|
||
'31000000-0000-4000-8000-000000000001',
|
||
'31000000-0000-4000-8000-000000000003',
|
||
'31000000-0000-4000-8000-000000000010',
|
||
'31000000-0000-4000-8000-000000000011',
|
||
'31000000-0000-4000-8000-000000000020',
|
||
'31000000-0000-4000-8000-000000000021',
|
||
'31000000-0000-4000-8000-000000000022',
|
||
'31000000-0000-4000-8000-000000000023',
|
||
'31000000-0000-4000-8000-000000000024',
|
||
'31000000-0000-4000-8000-000000000025'
|
||
)
|
||
ON CONFLICT (role_id, menu_id) DO NOTHING;
|
||
|
||
-- 若曾执行过含「概览」菜单的旧版脚本,可手工清理(避免侧栏与前端固定入口重复):
|
||
-- DELETE FROM iam_role_menu WHERE menu_id = '31000000-0000-4000-8000-000000000002';
|
||
-- DELETE FROM iam_menu WHERE id = '31000000-0000-4000-8000-000000000002';
|
||
|
||
COMMIT;
|