基本形式
一个完整的Menu由kl-menu
, kl-menu-sub
, kl-menu-item
组合构成; kl-menu
只支持两级菜单, kl-menu-sub
是菜单的第一级, 它可以通过kl-menu-item
实现对应的子菜单,也可以独立作为没有子菜单的一级菜单
KLMenuSub
: 可以根据url, iconClass, title, titleTemplate属性定制一级菜单的显示KLMenuItem
: 可以直接使用url属性, 替换自己实现的a链接标签
<kl-row>
<kl-col span=4>
<div style="width:180px;">
<kl-menu>
<kl-menu-sub titleTemplate="<a href='/'>首页</a>"></kl-menu-sub>
<kl-menu-sub title="库存管理">
<kl-menu-item title="商品实时数据"></kl-menu-item>
<kl-menu-item><a href="/">单据审核</a></kl-menu-item>
</kl-menu-sub>
<kl-menu-sub title="财务管理">
<kl-menu-item title="对账管理"></kl-menu-item>
<kl-menu-item url="/">请款管理</kl-menu-item>
</kl-menu-sub>
<kl-menu-sub titleTemplate="<a>统计数据</a>"></kl-menu-sub>
<kl-menu-sub titleTemplate="<a>订单管理</a>"></kl-menu-sub>
<kl-menu-sub titleTemplate="<a>消息管理</a>"></kl-menu-sub>
</kl-menu>
</div>
</kl-col>
<kl-col span=4>
<div style="width:180px;">
<kl-menu>
<kl-menu-sub title="首页" url="/" iconClass="icon icon-home"></kl-menu-sub>
<kl-menu-sub title="库存管理" iconClass="icon icon-inventory">
<kl-menu-item title="商品实时数据"></kl-menu-item>
<kl-menu-item><a href="/">单据审核</a></kl-menu-item>
</kl-menu-sub>
<kl-menu-sub title="财务管理" iconClass="icon icon-financial">
<kl-menu-item title="对账管理"></kl-menu-item>
<kl-menu-item url="/">请款管理</kl-menu-item>
</kl-menu-sub>
<kl-menu-sub iconClass="icon icon-statistics" titleTemplate="<a>统计数据</a>"></kl-menu-sub>
<kl-menu-sub iconClass="icon icon-order" titleTemplate="<a>订单管理</a>"></kl-menu-sub>
<kl-menu-sub iconClass="icon icon-message" titleTemplate="<a>消息管理</a>"></kl-menu-sub>
</kl-menu>
</div>
</kl-col>
</kl-row>
通过配置数据渲染菜单
一般情况下, 菜单都是根据后端配置的数据生成, 这种情况下, 可以加入一些简单的逻辑实现这种动态数据的菜单
<kl-row>
<kl-col span=4>
<div style="width:180px;">
<kl-menu uniqueOpened="{uniqueOpened}">
{#list menus as menu}
{#if menu.children && menu.children.length}
<kl-menu-sub title="{menu.title}" defaultOpen="{menu.open}">
{#list menu.children as page}
<kl-menu-item isCurrent="{page.open}" url="{page.url}">{page.title}</kl-menu-item>
{/list}
</kl-menu-sub>
{#else}
<kl-menu-sub titleTemplate="<a href='{menu.url}'>{menu.title}</a>"></kl-menu-sub>
{/if}
{/list}
</kl-menu>
</div>
</kl-col>
<kl-col span=4>
<div style="width:180px;">
<kl-menu uniqueOpened="{uniqueOpened}">
{#list menus as menu}
{#if menu.children && menu.children.length}
<kl-menu-sub title="{menu.title}" defaultOpen="{menu.open}" iconClass="icon {this.getIconClass(menu.key)}">
{#list menu.children as page}
<kl-menu-item isCurrent="{page.open}" url="{page.url}">{page.title}</kl-menu-item>
{/list}
</kl-menu-sub>
{#else}
<kl-menu-sub iconClass="icon {this.getIconClass(menu.key)}" titleTemplate="<a href='{menu.url}'>{menu.title}</a>"></kl-menu-sub>
{/if}
{/list}
</kl-menu>
</div>
</kl-col>
</kl-row>
var component = new NEKUI.Component({
template: template,
data: {
menus: [{
title: '首页',
key: 'home'
}, {
title: '库存管理',
open: true,
key: 'inventory',
children: [{
open: true,
title: '商品实时数据',
url: '/'
},{
title: '单据审核',
url: '/'
}]
}, {
title: '财务管理',
key: 'financial',
children: [{
title: '对账管理',
url: '/'
},{
title: '请款管理',
url: '/'
}]
}, {
title: '统计数据',
key: 'statistics'
}, {
title: '订单管理',
key: 'order'
}, {
title: '消息管理',
key: 'message'
}]
},
getIconClass: function(key) {
return 'icon-' + key;
}
});
API
Param | Type | Description |
---|
[options.data] | object | = 绑定属性 |
[options.data.class] | string | => 补充class |
[options.data.uniqueOpened] | boolean | => 是否只保持打开一个菜单 |
[options.data.router] | object | => 单页应用时, 请将regular-state的manager实例传入 |
Name | Type | Description |
---|
menuitem | object | 点击的menuItem实例 |
Param | Type | Default | Description |
---|
[options.data] | object | | = 绑定属性 |
[options.data.class] | string | | => 补充class |
[options.data.defaultOpen] | boolean | false | => 是否默认展开,如果需要默认展开,设置为true |
[options.data.url] | string | | => 如果一级菜单需要链接,可配置url属性 |
[options.data.route] | string | | => 单页spa应用时替代url属性 |
[options.data.iconClass] | string | | => 菜单文字前的icon |
[options.data.title] | string | | => 标题文案 |
[options.data.titleTemplate] | string | | => 标题文案模板 |
Param | Type | Description |
---|
[options.data] | object | = 绑定属性 |
[options.data.class] | string | => 补充class |
[options.data.title] | string | => 标题文案 |
[options.data.url] | string | => 跳转链接 |
[options.data.route] | string | => 单页spa应用时替代url属性 |
[options.data.isCurrent] | boolean | => 是否是当前页 |