MaxKB/ui/src/router/modules/setting.ts
2024-07-19 10:15:24 +08:00

111 lines
3.0 KiB
TypeScript

import { hasPermission } from '@/utils/permission/index'
import Layout from '@/layout/layout-template/SystemLayout.vue'
import { Role, ComplexPermission } from '@/utils/permission/type'
const settingRouter = {
path: '/setting',
name: 'setting',
meta: { icon: 'Setting', title: '系统管理', permission: 'SETTING:READ' },
redirect: () => {
if (hasPermission(new Role('ADMIN'), 'AND')) {
return '/user'
}
return '/team'
},
component: Layout,
children: [
{
path: '/user',
name: 'user',
meta: {
icon: 'User',
iconActive: 'UserFilled',
title: '用户管理',
activeMenu: '/setting',
parentPath: '/setting',
parentName: 'setting',
permission: new Role('ADMIN')
},
component: () => import('@/views/user-manage/index.vue')
},
{
path: '/team',
name: 'team',
meta: {
icon: 'app-team',
iconActive: 'app-team-active',
title: '团队成员',
activeMenu: '/setting',
parentPath: '/setting',
parentName: 'setting'
},
component: () => import('@/views/team/index.vue')
},
{
path: '/template',
name: 'template',
meta: {
icon: 'app-template',
iconActive: 'app-template-active',
title: '模型设置',
activeMenu: '/setting',
parentPath: '/setting',
parentName: 'setting'
},
component: () => import('@/views/template/index.vue')
},
{
path: '/system',
name: 'system',
meta: {
icon: 'app-setting',
iconActive: 'app-setting-active',
title: '系统管理',
activeMenu: '/setting',
parentPath: '/setting',
parentName: 'setting',
permission: new Role('ADMIN')
},
children: [
{
path: '/system/theme',
name: 'theme',
meta: {
title: '外观设置',
activeMenu: '/setting',
parentPath: '/setting',
parentName: 'setting',
permission: new ComplexPermission(['ADMIN'], ['x-pack'], 'AND')
},
component: () => import('@/views/theme/index.vue')
},
{
path: '/system/authentication',
name: 'authentication',
meta: {
title: '登录认证',
activeMenu: '/setting',
parentPath: '/setting',
parentName: 'setting',
permission: new ComplexPermission(['ADMIN'], ['x-pack'], 'AND')
},
component: () => import('@/views/authentication/index.vue')
},
{
path: '/system/email',
name: 'email',
meta: {
title: '邮箱配置',
activeMenu: '/setting',
parentPath: '/setting',
parentName: 'setting',
permission: new Role('ADMIN')
},
component: () => import('@/views/email/index.vue')
}
]
}
]
}
export default settingRouter