import { Layout, Badge, Avatar, Dropdown, Space } from 'antd' import { useNavigate } from 'react-router-dom' import { MenuFoldOutlined, MenuUnfoldOutlined, BellOutlined, QuestionCircleOutlined, FileTextOutlined, CustomerServiceOutlined, UserOutlined, } from '@ant-design/icons' import useUserStore from '@/stores/userStore' import Toast from '@/components/Toast/Toast' import headerMenuData from '../../data/headerMenuData.json' import './AppHeader.css' const { Header } = Layout // 图标映射 const iconMap = { QuestionCircleOutlined: , FileTextOutlined: , CustomerServiceOutlined: , } function AppHeader({ collapsed, onToggle }) { const navigate = useNavigate() const { user, logout } = useUserStore() // 用户下拉菜单 const userMenuItems = [ { key: 'profile', label: '个人中心', }, { key: 'settings', label: '账户设置', }, { type: 'divider', }, { key: 'logout', label: '退出登录', }, ] const handleUserMenuClick = ({ key }) => { if (key === 'logout') { logout() Toast.success('退出成功', '您已安全退出') navigate('/login') } else if (key === 'profile') { navigate('/profile') } else if (key === 'settings') { Toast.info('开发中', '账户设置功能正在开发中') } } const handleHeaderMenuClick = (key) => { console.log('Header menu clicked:', key) if (key === 'support') { Toast.info('开发中', '支持功能正在开发中') } } return (
{/* 左侧:Logo + 折叠按钮 */}
{/* Logo 区域 */}

NEX Docus

{/* 折叠按钮 */}
{collapsed ? : }
{/* 右侧:功能按钮 + 用户信息 */}
{/* 功能图标 */} {/* 动态渲染 header 菜单 */} {headerMenuData.map((item) => (
handleHeaderMenuClick(item.key)} > {iconMap[item.icon]} {item.label}
))} {/* 消息中心 */}
handleHeaderMenuClick('messages')} > 消息
{/* 用户下拉菜单 */}
} /> {user?.nickname || user?.username || 'User'}
) } export default AppHeader