chore(api): 更新种子数据菜单结构
- 添加文件管理权限 (file:read, file:delete) - 调整菜单层级:用户管理、文件管理等移至系统管理下 - 优化种子数据初始化逻辑 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -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 },
|
||||
|
||||
Reference in New Issue
Block a user