import useGlobalStore from "@/stores/global"; import {Layout} from "antd"; import HeaderRender from "@/layout/HeaderRender"; import FooterRender from "@/layout/FooterRender"; import MenuRender from "@/layout/MenuRender"; import MobileDrawerMenu from "@/layout/MobileDrawerMenu"; import SettingDrawer from "@/layout/SettingDrawer"; import PageTitle from "@/components/PageTitle"; import {LayoutProvider, useLayoutContext} from "@/layout/LayoutContext"; import {Outlet} from "react-router"; import useMobile from "@/hooks/useMobile.ts"; import ColumnsMenu from "@/layout/ColumnsMenu.tsx"; import React, {useEffect, useState} from "react"; const {Content, Sider} = Layout; const LayoutContent: React.FC = () => { const isMobile = useMobile(); const themeConfig = useGlobalStore(state => state.themeConfig); const layout = useGlobalStore(state => state.layout); const [siderWidth, setSiderWidth] = useState(226); const {menus, collapsed, parentKey} = useLayoutContext(); useEffect(() => { const menuWidth = themeConfig.siderWeight ? themeConfig.siderWeight : 226; const columnWidth = layout === 'columns' ? 79 : 0; const rule = menus.find(item => item.key === parentKey); if(['mix', 'columns'].includes(layout)) { if(rule?.children && rule?.children.length) { setSiderWidth(columnWidth + menuWidth) } else { setSiderWidth(columnWidth); } } else { setSiderWidth(menuWidth); } }, [themeConfig, layout, menus, parentKey]); return ( {/* 页面标题 */} {/* 主题设置抽屉 */} {/* 顶栏 */} {/* 移动端抽屉菜单 */} { isMobile && } {/* 内容区域 */} { layout !== "top" && !isMobile && ( { layout === "columns" ? : } )} ); }; const LayoutRender = () => ( ); export default LayoutRender;