diff --git a/src/components/LayoutWrapper.tsx b/src/components/LayoutWrapper.tsx index f11cd8a..bef7be4 100644 --- a/src/components/LayoutWrapper.tsx +++ b/src/components/LayoutWrapper.tsx @@ -52,8 +52,8 @@ const LayoutWrapper: React.FC = () => { {/* 顶部标题栏,位于左侧菜单栏之上 */} setMobileMenuOpen((v) => !v)} - onToggleInput={() => isHome && setInputOpen((v) => !v)} + onToggleMenu={() => {setInputOpen(false); setMobileMenuOpen((v) => !v);}} + onToggleInput={() => {if (isHome) {setMobileMenuOpen(false); setInputOpen((v) => !v);}}} isHome={isHome} /> {/* 下方为主布局:左侧菜单 + 右侧内容 */} diff --git a/src/components/SiderMenu.tsx b/src/components/SiderMenu.tsx index dfbb465..58717a0 100644 --- a/src/components/SiderMenu.tsx +++ b/src/components/SiderMenu.tsx @@ -19,6 +19,18 @@ const SiderMenu: React.FC = ({ onNavigate, selectedKey, mobileOpen, onMob const [collapsed, setCollapsed] = React.useState(false); const [selectedKeys, setSelectedKeys] = React.useState(['home']); const [internalMobileOpen, setInternalMobileOpen] = React.useState(false); + const [topbarHeight, setTopbarHeight] = React.useState(56); + + React.useEffect(() => { + const update = () => { + const el = document.querySelector('.topbar') as HTMLElement | null; + const h = el?.clientHeight || 56; + setTopbarHeight(h); + }; + update(); + window.addEventListener('resize', update); + return () => window.removeEventListener('resize', update); + }, []); React.useEffect(() => { setCollapsed(isMobile); @@ -57,7 +69,8 @@ const SiderMenu: React.FC = ({ onNavigate, selectedKey, mobileOpen, onMob width="100%" open={open} onClose={() => setOpen(false)} - styles={{ body: { padding: 0 } }} + rootStyle={{ top: topbarHeight, height: `calc(100% - ${topbarHeight}px)` }} + styles={{ body: { padding: 0 }, header: { display: 'none' } }} >