chore(api): 更新种子数据菜单结构

- 添加文件管理权限 (file:read, file:delete)
- 调整菜单层级:用户管理、文件管理等移至系统管理下
- 优化种子数据初始化逻辑

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
charilezhou
2026-01-19 13:48:50 +08:00
parent c5656813ae
commit c759b50efd

View File

@@ -25,6 +25,9 @@ const permissions = [
{ code: 'menu:read', name: '查看菜单', resource: 'menu', action: 'read' },
{ code: 'menu:update', name: '更新菜单', resource: 'menu', action: 'update' },
{ code: 'menu:delete', name: '删除菜单', resource: 'menu', action: 'delete' },
// 文件管理权限
{ code: 'file:read', name: '查看文件', resource: 'file', action: 'read' },
{ code: 'file:delete', name: '删除文件', resource: 'file', action: 'delete' },
];
// 初始角色数据
@@ -63,15 +66,6 @@ const menus = [
sort: 0,
isStatic: true,
},
{
code: 'user-management',
name: '用户管理',
type: 'menu',
path: '/users',
icon: 'Users',
sort: 1,
isStatic: true,
},
{
code: 'system',
name: '系统管理',
@@ -80,15 +74,35 @@ const menus = [
sort: 100,
isStatic: true,
},
{
code: 'user-management',
name: '用户管理',
type: 'menu',
path: '/users',
icon: 'Users',
sort: 0,
isStatic: true,
// parentCode: 'system',
},
{
code: 'file-management',
name: '文件管理',
type: 'menu',
path: '/files',
icon: 'FolderOpen',
sort: 1,
isStatic: true,
// parentCode: 'system',
},
{
code: 'role-management',
name: '角色管理',
type: 'menu',
path: '/roles',
icon: 'Shield',
sort: 0,
sort: 2,
isStatic: true,
// parentCode: 'system', // 稍后处理
// parentCode: 'system',
},
{
code: 'permission-management',
@@ -96,9 +110,9 @@ const menus = [
type: 'menu',
path: '/permissions',
icon: 'Key',
sort: 1,
sort: 3,
isStatic: true,
// parentCode: 'system', // 稍后处理
// parentCode: 'system',
},
{
code: 'menu-management',
@@ -106,9 +120,9 @@ const menus = [
type: 'menu',
path: '/menus',
icon: 'Menu',
sort: 2,
sort: 4,
isStatic: true,
// parentCode: 'system', // 稍后处理
// parentCode: 'system',
},
{
code: 'profile',
@@ -130,6 +144,15 @@ const menus = [
},
];
// 系统管理子菜单 codes
const systemSubMenuCodes = [
'user-management',
'file-management',
'role-management',
'permission-management',
'menu-management',
];
async function main() {
console.log('开始初始化种子数据...');
@@ -159,9 +182,7 @@ async function main() {
console.log('创建菜单...');
// 先创建顶级菜单
const topMenus = menus.filter(
(m) => !['role-management', 'permission-management', 'menu-management'].includes(m.code)
);
const topMenus = menus.filter((m) => !systemSubMenuCodes.includes(m.code));
for (const menu of topMenus) {
await prisma.menu.upsert({
where: { code: menu.code },
@@ -177,9 +198,7 @@ async function main() {
// 创建系统管理子菜单
if (systemMenu) {
const subMenus = menus.filter((m) =>
['role-management', 'permission-management', 'menu-management'].includes(m.code)
);
const subMenus = menus.filter((m) => systemSubMenuCodes.includes(m.code));
for (const menu of subMenus) {
await prisma.menu.upsert({
where: { code: menu.code },