Skip to content

FxTopMenu 水平菜单

@fx/layouts header 内的水平一级菜单,规格:一级项 40px 高 / radius 6 / 14px 字。有子级的项 hover 下拉级联子菜单(二级在下方弹出、三级及更深层在右侧逐级弹出,经典菜单栏形态)——级联面板由 FxCascadeMenu 组件驱动(与 FxMenu 折叠弹层同款规格:38px 项 / 14px 字 / 180px 等宽,侧栏折叠弹层已同步紧凑化);无子级项点击 emit select容器宽度不足时,超出的一级项自动收进「⋯ 更多」按钮(hover 展开同款级联)。

基础用法

vue
<!-- horizontal 模式:完整树,叶子点击直接导航 -->
<FxTopMenu
  :items="menus"
  :active-id="findTopMenuContaining(menus, route.path)?.path ?? null"
  :active-path="route.path"
  @select="(menu) => menu.path && router.push(menu.path)"
/>

<!-- mixed 系模式:一级(去 children),点击切侧栏子树 -->
<FxTopMenu
  :items="mixed.headerMenus.value"
  :active-id="mixed.rootMenuPath.value"
  :active-path="route.path"
  @select="mixed.handleMenuSelect"
/>

Attributes

参数说明类型默认值
items菜单项(完整树或一级)LayoutMenuNode[]—(必填)
active-id激活一级 path(一级项高亮)string | null
active-path当前路由 path(级联深层项按子树包含高亮)string | nullnull

Events

事件名说明回调参数
select点击菜单项(叶子或无子级目录)(menu: LayoutMenuNode)