blob: f9af360d08b80aea3eecc16801eee5a81597712a [file] [log] [blame]
import React, { useState } from 'react';
import { Layout, Menu, Button } from 'antd';
import {
FileTextOutlined,
FlagOutlined,
TagsOutlined,
DeploymentUnitOutlined,
HomeOutlined,
FileSearchOutlined
} from '@ant-design/icons';
import { useNavigate } from 'react-router-dom';
import PostAdminPanel from '../components/PostAdminPanel';
import AdminActivityManager from '../components/AdminActivityManager';
import ActivityAdminPanel from '../components/ActivityAdminPanel';
import RequestAdminPanel from '../components/RequestAdminPanel';
import ComplainAdminPanel from '../components/ComplainAdminPanel';
import TorrentManagement from '../components/torrentmanage';
import UserManagement from '../components/UserManagement';
const { Header, Sider, Content, Footer } = Layout;
const AdminPage = () => {
const navigate = useNavigate();
const [selectedKey, setSelectedKey] = useState('posts');
const renderContent = () => {
switch (selectedKey) {
case 'posts':
return <PostAdminPanel />;
case 'activities':
return <ActivityAdminPanel />;
case 'requests':
return <RequestAdminPanel />;
case 'complain':
return <ComplainAdminPanel />;
case 'torrent':
return <TorrentManagement/>;
case 'user':
                return <UserManagement/>;
default:
return null;
}
};
return (
<Layout style={{ minHeight: '100vh' }}>
{/* 侧边栏 */}
<Sider breakpoint="lg" collapsedWidth="0" theme="dark">
<div className="logo" style={{
height: 64,
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
fontSize: 22,
color: 'white',
fontWeight: 'bold',
}}>
后台管理
</div>
<Menu
theme="dark"
mode="inline"
selectedKeys={[selectedKey]}
onClick={({ key }) => setSelectedKey(key)}
items={[
{
key: 'posts',
icon: <FileTextOutlined />,
label: '帖子管理',
},
{
key: 'activities',
icon: <DeploymentUnitOutlined />,
label: '公告管理',
},
{
key: 'requests',
icon: <FileSearchOutlined />,
label: '求助帖管理',
},
{
key: 'complain',
icon: <FlagOutlined />,
label: '举报管理',
},
{
key: 'torrent',
icon: <TagsOutlined />,
label: '种子管理',
},
                        {
                            key: 'user',
                            icon: <TagsOutlined />,
                            label: '用户管理',
                        },
]}
/>
<div style={{ padding: 16 }}>
<Button
type="primary"
block
icon={<HomeOutlined />}
onClick={() => navigate('/')}
>
返回首页
</Button>
</div>
</Sider>
{/* 内容区 */}
<Layout>
<Header style={{ background: '#fff', padding: '0 24px', fontSize: 20 }}>
{(() => {
switch (selectedKey) {
case 'posts': return '📄 帖子管理';
case 'activities': return '🎯 公告管理';
case 'requests': return '🆘 求助帖管理';
case 'complain': return '🚨 举报管理';
case 'torrent': return '🧲 种子管理';
default: return '';
}
})()}
</Header>
<Content style={{ margin: '24px 16px 0', padding: 24, background: '#fff', minHeight: '85vh' }}>
{renderContent()}
</Content>
<Footer style={{ textAlign: 'center' }}>
PT管理系统 ©{new Date().getFullYear()} Created by Jiaxin Liu, Man Yang, Shuo Wang
</Footer>
</Layout>
</Layout>
);
};
export default AdminPage;