import { createRouter, createWebHashHistory, type RouteRecordRaw } from 'vue-router' import { getToken, isAdminMode } from '@/api' // 导入页面组件 import Login from '@/views/Login.vue' import Dashboard from '@/views/Dashboard.vue' import TenantManagement from '@/views/TenantManagement.vue' import RoleManagement from '@/views/RoleManagement.vue' import UserManagement from '@/views/UserManagement.vue' import ProjectManagement from '@/views/ProjectManagement.vue' import AgentManagement from '@/views/AgentManagement.vue' import SkillManagement from '@/views/SkillManagement.vue' import ConfigManagement from '@/views/ConfigManagement.vue' // 路由配置 const routes: RouteRecordRaw[] = [ { path: '/', redirect: '/dashboard', meta: { requiresAuth: true } }, { path: '/login', name: 'Login', component: Login, meta: { title: '登录' } }, { path: '/dashboard', name: 'Dashboard', component: Dashboard, meta: { requiresAuth: true, title: '仪表盘' } }, // 租户管理相关路由 { path: '/tenant/list', name: 'TenantList', component: TenantManagement, meta: { requiresAuth: true, title: '租户管理' } }, { path: '/tenant/create', name: 'TenantCreate', component: TenantManagement, meta: { requiresAuth: true, title: '创建租户' } }, // 角色管理相关路由 { path: '/role/list', name: 'RoleList', component: RoleManagement, meta: { requiresAuth: true, title: '角色管理' } }, { path: '/role/create', name: 'RoleCreate', component: RoleManagement, meta: { requiresAuth: true, title: '创建角色' } }, // 用户管理相关路由 { path: '/user/list', name: 'UserList', component: UserManagement, meta: { requiresAuth: true, title: '用户管理' } }, { path: '/user/create', name: 'UserCreate', component: UserManagement, meta: { requiresAuth: true, title: '创建用户' } }, // 项目管理相关路由 { path: '/project/list', name: 'ProjectList', component: ProjectManagement, meta: { requiresAuth: true, title: '项目管理' } }, { path: '/project/create', name: 'ProjectCreate', component: ProjectManagement, meta: { requiresAuth: true, title: '创建项目' } }, // Agent管理相关路由 { path: '/agent/list', name: 'AgentList', component: AgentManagement, meta: { requiresAuth: true, title: 'Agent管理' } }, { path: '/agent/create', name: 'AgentCreate', component: AgentManagement, meta: { requiresAuth: true, title: '创建Agent' } }, // Skill管理相关路由 { path: '/skill/list', name: 'SkillList', component: SkillManagement, meta: { requiresAuth: true, title: 'Skill管理' } }, { path: '/skill/create', name: 'SkillCreate', component: SkillManagement, meta: { requiresAuth: true, title: '创建Skill' } }, // 配置管理相关路由 { path: '/config/startup', name: 'ConfigStartup', component: ConfigManagement, meta: { requiresAuth: true, title: '启动配置' } }, { path: '/config/meta', name: 'ConfigMeta', component: ConfigManagement, meta: { requiresAuth: true, title: '元数据初始化' } }, { path: '/config/token', name: 'ConfigToken', component: ConfigManagement, meta: { requiresAuth: true, title: 'Token管理' } }, // 404页面 { path: '/:pathMatch(.*)*', name: 'NotFound', component: { template: '
页面未找到
' }, meta: { title: '404' } } ] // 创建路由实例 const router = createRouter({ history: createWebHashHistory(), routes }) // 路由守卫:认证检查 router.beforeEach((to, from, next) => { // 设置页面标题 if (to.meta.title) { document.title = `${to.meta.title} - 配置服务管理` } // 检查是否需要认证 if (to.meta.requiresAuth) { const token = getToken() const adminMode = isAdminMode() if (!token && !adminMode) { // 未登录,重定向到登录页 next('/login') return } } // 如果已经登录,访问登录页则重定向到首页 if (to.path === '/login') { const token = getToken() if (token) { next('/dashboard') return } } next() }) export default router