App.jsx 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import React from 'react';
  2. import { BrowserRouter as Router, Route, Routes, Link } from 'react-router-dom';
  3. import { Layout, Menu } from 'antd';
  4. import {
  5. HomeOutlined,
  6. TeamOutlined,
  7. UserAddOutlined,
  8. CalendarOutlined,
  9. } from '@ant-design/icons';
  10. import AttendanceSystem from './components/AttendanceSystem';
  11. import MemberList from './components/MemberList';
  12. import MemberForm from './components/MemberForm';
  13. import Home from './components/Home';
  14. const { Header, Content, Footer } = Layout;
  15. function App() {
  16. return (
  17. <Router>
  18. <Layout className="layout" style={{ minHeight: '100vh' }}>
  19. <Header>
  20. <div className="logo" />
  21. <Menu theme="dark" mode="horizontal" defaultSelectedKeys={['1']}>
  22. <Menu.Item key="1" icon={<HomeOutlined />}>
  23. <Link to="/">首页</Link>
  24. </Menu.Item>
  25. <Menu.Item key="2" icon={<TeamOutlined />}>
  26. <Link to="/members">会友列表</Link>
  27. </Menu.Item>
  28. <Menu.Item key="3" icon={<UserAddOutlined />}>
  29. <Link to="/add-member">添加会友</Link>
  30. </Menu.Item>
  31. <Menu.Item key="4" icon={<CalendarOutlined />}>
  32. <Link to="/attendance">考勤系统</Link>
  33. </Menu.Item>
  34. </Menu>
  35. </Header>
  36. <Content style={{ padding: '0 50px' }}>
  37. <div className="site-layout-content" style={{ padding: 24, minHeight: 280 }}>
  38. <Routes>
  39. <Route path="/" element={<Home />} />
  40. <Route path="/members" element={<MemberList />} />
  41. <Route path="/add-member" element={<MemberForm />} />
  42. <Route path="/attendance" element={<AttendanceSystem />} />
  43. </Routes>
  44. </div>
  45. </Content>
  46. <Footer style={{ textAlign: 'center' }}>会友信息管理系统 ©2024 Created by Your Company</Footer>
  47. </Layout>
  48. </Router>
  49. );
  50. }
  51. export default App;