import React from 'react'; import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom'; import { ConfigProvider, Spin, App as AntdApp } from 'antd'; import zhCN from 'antd/locale/zh_CN'; import { AuthProvider, useAuth } from './hooks/useAuth'; import Layout from './components/Layout'; import Login from './pages/Login'; import Register from './pages/Register'; import Dashboard from './pages/Dashboard'; import Users from './pages/Users'; import Roles from './pages/Roles'; import Permissions from './pages/Permissions'; import Menus from './pages/Menus'; import './App.css'; // 全局message配置 import { message } from 'antd'; message.config({ top: 100, duration: 2, maxCount: 3, }); // 受保护的路由组件 const ProtectedRoute: React.FC<{ children: React.ReactNode }> = ({ children }) => { const { user, loading } = useAuth(); if (loading) { return (
); } if (!user) { return ; } return <>{children}; }; // 公共路由组件(已登录用户不能访问) const PublicRoute: React.FC<{ children: React.ReactNode }> = ({ children }) => { const { user, loading } = useAuth(); if (loading) { return (
); } if (user) { return ; } return <>{children}; }; function App() { return ( {/* 公共路由 */} } /> } /> {/* 受保护的路由 */} }> } /> } /> } /> } /> } /> } /> {/* 404 重定向 */} } /> ); } export default App;