import * as React from 'react'; import { Modal, Button, Tooltip } from 'antd'; import { useNavigate } from 'react-router-dom'; import { MenuFoldOutlined, MenuUnfoldOutlined, MessageOutlined } from '@ant-design/icons'; import LocalStorage from '@/LocalStorage'; import { useLayoutStore } from '../store'; import './header.scss'; import jkLogo from '@/assets/public/jkLogo.svg'; // 桌面端 Logo(长方形) import jkLogoSm from '@/assets/public/jkLogo-sm.svg'; // H5/Pad 端 Logo(方形) interface Props { userName: string; onClickLogout: (navigate: any) => Promise; } const Header: React.FC = (props) => { const navigate = useNavigate(); const { userName, onClickLogout } = props; const { collapsed, onClickCollapsed } = useLayoutStore(); const [dropdownVisible, setDropdownVisible] = React.useState(false); const dropdownRef = React.useRef(null); const [isMobile, setIsMobile] = React.useState(false); // 响应式检测 React.useEffect(() => { const checkMobile = () => { setIsMobile(window.innerWidth <= 1024); }; checkMobile(); window.addEventListener('resize', checkMobile); return () => window.removeEventListener('resize', checkMobile); }, []); // Header 滚动效果 React.useEffect(() => { const header = document.querySelector('.header'); const handleScroll = () => { if (window.scrollY > 10) { header?.classList.add('scrolled'); } else { header?.classList.remove('scrolled'); } }; window.addEventListener('scroll', handleScroll); return () => window.removeEventListener('scroll', handleScroll); }, []); // 点击外部关闭下拉菜单 React.useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) { setDropdownVisible(false); } }; document.addEventListener('mousedown', handleClickOutside); return () => document.removeEventListener('mousedown', handleClickOutside); }, []); // 处理退出登录 const handleLogout = () => { setDropdownVisible(false); Modal.confirm({ title: '提示', content: '确定退出平台吗?', async onOk() { await onClickLogout(navigate); } }); }; return (
{/* 汉堡菜单按钮(移动端显示) */} )}
{/* 右侧功能区 */}
{/* 搜索框 - 已注释 */} {/*
*/} {/* 安全状态指示器 */}
内网安全连接
{/* 通知按钮 */} {/* 用户区域 */}
{/* 下拉菜单 */} {dropdownVisible && (

{userName}

部门信息

)}
); }; export default Header;