import { BrowserRouter, Routes, Route, Navigate, Outlet } from 'react-router-dom'; import { AuthProvider, useAuth } from '@/hooks/useAuth'; import { ThemeProvider } from '@/hooks/useTheme'; import Layout from '@/components/Layout'; import LoginPage from '@/pages/LoginPage'; import Dashboard from '@/pages/Dashboard'; import InstancePage from '@/pages/InstancePage'; import TicketsPage from '@/pages/TicketsPage'; import QueriesPage from '@/pages/QueriesPage'; import RolesPage from '@/pages/RolesPage'; import UsersPage from '@/pages/UsersPage'; import DataPermissionPage from '@/pages/DataPermissionPage'; import AuditRulesPage from '@/pages/AuditRulesPage'; import WorkflowPage from '@/pages/WorkflowPage'; import AutoTaskPage from '@/pages/AutoTaskPage'; import AnnouncementPage from '@/pages/AnnouncementPage'; import ConfigPlatformPage from '@/pages/ConfigPlatformPage'; import AuditLogsPage from '@/pages/AuditLogsPage'; // 路由守卫:未登录跳转登录页,无权限跳转仪表盘 function RouteGuard() { const { isLoggedIn, hasPermission } = useAuth(); const path = location.pathname.slice(1) || 'dashboard'; if (!isLoggedIn) { return ; } // 检查当前路径是否有权限访问 if (path !== 'dashboard' && !hasPermission(path)) { return ; } return ; } // 登录页守卫:已登录用户自动跳转到仪表盘 function LoginGuard() { const { isLoggedIn } = useAuth(); if (isLoggedIn) { return ; } return ; } function AppRoutes() { return ( } /> }> }> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> ); } function App() { return ( ); } export default App;