布局配置

布局配置 LayoutConfig 涵盖布局组件 <AntdLayout /> 几乎所有初始化和动态参数,这些配置基本上都可以再进行动态修改,但有些参数特殊场景被刻意阻断,配置信息可根据路由存储在本地浏览器 (localStorage) 环境中。需要通过指定的方法(setLayoutConfig)进行修改。 同时可以通过 setLayoutConfig 方法,动态修改相关参数信息,通过 layoutConfig 可实时获取相关参数改动,这两个方法需要分别通过写入(setLayoutConfig)和 只读(useConfigState)钩子获取。

初始化布局配置

首次加载进布局组件的配置参数

src/layouts/index.tsx
import { AntdLayout } from "@adminui-dev/antd-layout"
import type { LayoutConfig } from "@adminui-dev/antd-layout"

const layoutConfig:LayoutConfig = {
    layoutType:"leftMenu",  
    asideMenuInline:true,
    hideAsideMenuDataEmpty:true,
    skinName:"parkWavesLight",
    collapsedPosition:"center",
    menuIconSize:16,
    disabledLocale:false,
    menuItemSelectColor:"default",
    largeBrand:true,
}
export default function(){    
    return(
        <AntdLayout layoutConfig={layoutConfig} menuData={...}>        
    )
}
复制成功

动态修改布局配置

这里分两种情况:

  1. 在组件外部用状态机(不推荐)
src/layouts/index.tsx
export default function(){    
    const [config,setConfig] = useState<LayoutConfig>({...})
    return(
        <AntdLayout layoutConfig={config} menuData={...}>        
    )
}
复制成功

基本可行,但完全不推荐,因为配置参数根据场景需要阻断

  1. 组件内部用钩子修改布局参数(推荐)
src/layouts/index.tsx
export default function(){    
    const config:LayoutConfig = {
        layoutType:"leftMenu",  
        asideMenuInline:true,
        ...
    }
    return(
        <AntdLayout layoutConfig={config} menuData={...}>        
    )
}
复制成功

在页面中使用钩子 useConfigAction 和专用的方法 setLayoutConfig

src/pages/transaction/order.tsx
const { layoutConfig } = useConfigState()
const { setLayoutConfig } = useConfigAction()
...
setLayoutConfig( {...layoutConfig, layoutType:'headMenu' })
...
复制成功

配置阻断

有些项目业务只需要初始布局配置就够了,但有些需要动态修改指定参数,有些还要在此基础上保存参数,刷新或下次打开继续上次的效果等等,为此就在业务功能上就需要产生阻断。例如:

布局组件关闭 disabledStorageConfig = true 浏览器存储后,刷新将失去修改配置信息。

属性与类型

LayoutConfig

参数名类型默认值说明
layoutTypeLayoutTypeleftMenu布局版式类型
primaryColorstringrgb(65, 127, 251)全局主题色
themeThemesystem明亮主题模式
localestringen-US国际化语言
skinNamestring-当前皮肤名称
headerHeightnumber56布局头部高度
asideWidthnumber260滑动侧栏最大宽度
colorLinkstringrgb(65, 127, 251)链接颜色
menuIconSizenumber16菜单图标大小
menuFontSizenumber14菜单字体大小
containerMarginnumber0容器外边距
containerMarginnumber0容器外边距
compactboolfalse紧凑布局
splitMenuboolfalse上下分隔菜单
flatedboolfalse扁平模式
noneHeaderboolfalse去掉布局头部
largeBrandboolfalse品牌Logo放大
asideMenuInlineboolfalse滑动菜单内联
asideMenuGroupboolfalse滑动菜单分组
disabledLocaleboolfalse禁用国际化
hideBorderboolfalse隐藏线条
hideTitleboolfalse隐藏标题
hideFooterboolfalse隐藏页脚
hideBreadcrumbboolfalse隐藏面条屑
asideTransparentboolfalse滑动菜单透明
headerTransparentboolfalse顶部菜单透明
containerTransparentboolfalse容器透明
asideBlurboolfalse顶部背景模糊
headerBlurboolfalse滑动背景模糊
containerBlurboolfalse容器背景模糊
hideAsideMenuDataEmptyboolfalse滑动菜单为空时隐藏
menuItemSelectColorMenuItemSelectColordefault菜单选中项效果
collapsedPositionPositioncenter折叠按钮位置
avatarPositionAvatarPositionrightTop用户形象位置
visibleBreadcrumbIconBreadcrumbIconVisiblenone面包屑菜单图标显示效果
userInfoUserInfo-用户信息
brandInfoBrandInfo-品牌形信

LayoutType

Theme

Position

AvatarPosition

UserInfo

BrandInfo