LayoutMenus
满足公司内部,菜单使用 ng 9.0+;demo地址
1、开始使用
2、使用方式
为满足系统上下
布局和左右
布局,支持LOGO部分存在c-layout-header
及c-layout-side
组件内
cMenuList
的Menu
结构
菜单数据结构 name | description | type | required |
---|---|---|---|
id |
ID;组件内部无使用 | number \| string |
false |
attributes |
菜单属性集合,可以拥有自定义的属性 | Attributes |
true |
children |
子级 | Array<Menu> |
false |
show |
是否展开 | boolean |
false |
自定义数据[Attributes]
name | description | type | required |
---|---|---|---|
title |
标题 | stirng |
true |
router |
路由地址 | null \| string |
true |
iconImage |
路由图标 | string |
- |
notLink |
是否不允许跳转 | boolean |
false |
outSideRouter |
是否第三方菜单 | boolean |
false |
target |
当outSideRouter 为true 是,可以设置打开方式 |
_blank _parent _self _top |
_blank |
头部导航
c-layout-header
整个顶部导航使用
左侧导航
c-layout-side
整体左侧组件使用c-layout-slider
整体左侧菜单【基于anted】,使用方式同c-layout-side
整体布局
在使用组件之前先布局结构(可以按自己的结构布局)
安装
npm i layout-menus --save
使用
LayoutMenusModule
项目引入LayoutMenusModule
应用在SharedModule
中, 具体使用方式如下。因使用到Ant Design
需要引入HttpClientModule
BrowserAnimationsModule
;
app.module.ts
;;;; ;; ;; @
shared.module.ts
;;;; ;; @
头部导航
参数
Name | Description | type | required | default |
---|---|---|---|---|
[cCollapsed] |
左侧菜单是否展开 | boolean |
false |
false |
[cIsLogo] |
是否在头部展示logo 部分 |
boolean |
false |
false |
[cMenuList] |
菜单列表,当为true 是,[cLogoRender] 和[cLogoConfig] 生效 |
Array |
true |
- |
[cLogoRender] |
自定义logo 区域的内容, |
TemplateRef<void> |
false |
- |
[cLogoConfig] |
logo 不使用自定义的结构。可使用参数传值 |
json |
||
[cWidth] |
logo 区域的宽度 |
number |
false |
180 |
[cCollapsedWidth] |
logo 区域收起时的宽度 |
number |
false |
50 |
[cMenuLeft] |
左侧菜单,可以进行自定义 | template: TemplateRef<{ $implicit: menu}> |
false |
- |
[cMenuLeftBefore] |
左侧菜单之前 | template: TemplateRef<void> |
false |
- |
[cMenuRight] |
右侧菜单 | template: TemplateRef<void> |
false |
- |
[isOutSideMenuOpen] |
logo 区域外部菜单是否展开 |
boolean |
false |
false |
(outsideMouseover) |
logo 区域外部菜单mouseover 事件 |
EventEmitter<$event> |
false |
- |
(outsideMouseleave) |
logo 区域外部菜单mouseleave 事件 |
EventEmitter<$event> |
false |
- |
(clickMenu) |
点击菜单事件 | EventEmitter<Menu> |
false |
- |
(changeMenu) |
菜单更改的回调 | EventEmitter<Menu> |
false |
- |
精简头部菜单模式
;
显示右侧菜单。
由于右侧菜单可能拥有不同的事件
或者样式
,所以没有设置默认模板。但是拥有一套统一
的样式,书写时带有正确的class
即可;
;
logo
显示左侧;
左侧导航
参数
Name | Description | type | required | default |
---|---|---|---|---|
[cMenuList] |
菜单列表 | Array |
true |
- |
[cPaddingLeft] |
菜单左缩进16 + menu._depth * cPaddingLeft |
Array |
true |
14 |
[cShowTrigger] |
是否显示trigger |
boolean |
false |
true |
[cLogoConfig] |
logo 不使用自定义的结构。可使用参数传值 |
json |
false |
- |
[cMenuTop] |
在菜单列表区域添加自定义的顶部内容 |
TemplateRef<void> |
false |
- |
[cMenuBottom] |
在菜单区域添加底部自定义的内容 |
TemplateRef<void> |
false |
- |
[cLogoRender] |
自定义logo 区域的内容, |
TemplateRef<void> |
false |
- |
[cMenuItemRouter] |
自定义路由列表 | templateRef<void> |
false |
- |
[cCollapsed] |
当前收起状态 | boolean |
false |
false |
(cCollapsedChange) |
展开-收起时的回调函数 | EventEmitter<boolean> |
false |
- |
[isOutSideMenuOpen] |
logo 区域外部菜单是否展开 |
boolean |
false |
false |
(outsideMouseover) |
logo 区域外部菜单mouseover 事件 |
EventEmitter<$event> |
false |
- |
(outsideMouseleave) |
logo 区域外部菜单mouseleave 事件 |
EventEmitter<$event> |
false |
- |
(clickMenu) |
点击左侧导航事件 | EventEmitter<menu> |
false |
- |
简单使用
简单使用,只留有菜单部分;
;
带有logo模式
;
自定义LOGO区域
;
item
自定义菜单列表;
菜单列表增加自定义头部和底部
;
整体结构
logo在左侧布局
;
LOGO在顶部布局
样式效果,同LOGO
在左侧布局效果一样;
;