better-staridc-MNBT
1/**
2 * 多级菜单组件
3 * [To SouthWan]
4 **/
5
6Vue.component('light-menus', {
7 props: {
8 primary: {
9 type: Number,
10 default: undefined
11 },
12 menus: {
13 type: Array,
14 required: true
15 },
16 child: {
17 type: Boolean,
18 default: true
19 }
20 },
21 data: function() {
22 return {}
23 },
24 template: `<ul :class="[child ? 'nav-drawer' : 'nav nav-subnav']">
25 <li
26 v-for="(item, index) in menus"
27 :class="
28 'nav-item ' +
29 (index === primary
30 ? 'active'
31 : item.children !== undefined && item.children.length > 0
32 ? 'nav-item nav-item-has-subnav'
33 : 'nav-item nav-item')
34 "
35 >
36 <a
37 :class="[item.target === undefined ? (item.children !== undefined && item.children.length > 0 ? '' : 'multitabs') : '']"
38 :href="item.href ?? 'javascript:void(0)'" :target="item.target ?? '_self'"
39 >
40 <i :class="'mdi ' + item.icon"></i>
41 <span>{{ item.title }}</span>
42 </a>
43 <slot name="menu" :children="item.children ?? []" v-if="item.children !== undefined"></slot>
44 </li>
45 </ul>`
46});