Vue iview-admin框架二级菜单改为三级菜单的方法
最近在用 iview-admin的Vue后台模板,从git上下载后发现左侧导航栏最多支持到二级菜单,也发现很多童鞋在问如何实现三级菜单。在实际的应用场景中还是会出现三级菜单的需求的,木有其他好办法,只能自己手动改代码了。 1. 第一步:首先改写VUE中的模板,修改sidebarMenu.vue文件,文件具体目录建下图: 将Menu导航菜单组件的的二级嵌套结构改为三级嵌套,无非就是判断二级路由页面下是否有children属性及是否含有子元素,有的话直接v-for循环生成子元素标签,新结构如下: 组件中methods下添加一个方法isThirdLeveMenu,判断是否含有children属性: 0)return true;
else return false;
}
else {
return false;
}
}
},
第二步:修改创建当前path路径的逻辑方法:setCurrentPath,在libs文件夹下util.js文件中: {
if (item.children.length === 1) {
if (item.children[0].name === name) {
title = util.handleTitle(vm,item);
if (item.name === 'otherRouter') {
isOtherRouter = true;
}
}
} else {
item.children.forEach(child => {
if (child.name === name) {
title = util.handleTitle(vm,child);
if (item.name === 'otherRouter') {
isOtherRouter = true;
}
}
});
}
});
let currentPathArr = [];
//去首页
if (name === 'home_index') {
currentPathArr = [
{
title: util.handleTitle(vm,util.getRouterObjByName(vm.$store.state.app.routers,'home_index')),path: '',name: 'home_index'
}
];
}
//去导航菜单一级页面或者OtherRouter路由中的页面
else if ((name.indexOf('_index') >= 0 || isOtherRouter) && name !== 'home_index') {
currentPathArr = [
{
title: util.handleTitle(vm,path: '/home',name: 'home_index'
},{
title: title,name: name
}
];
}
//去导航菜单二级页面或三级页面
else {
let currentPathObj = vm.$store.state.app.routers.filter(item => {
var hasMenu; if (currentPathObj.children.length <= 1 && currentPathObj.name === 'home') { // let thirdLevelObj =
} } vm.$store.commit('setCurrentPath',currentPathArr); 第三步:建立三级页面test-child.vue,testcaca.vue和三级路由的容器组件artical-publish-center.vue
artical-publish-center.vue结构如下图: 要有 其他两个三级页面vue随便写了: 第四步:到这里,容器可以实现期待已久三级菜单了,^_^. 在router里添加三级页面路由,router文件夹下router.js中: 加到appRouter中吧,可以放到title: '组件'的children数组中: import('@/views/test/artical-publish-center.vue'),//引用三级页面的中间容器层
children:[
{
path: 'testcaca',icon: 'ios-pause',name: 'testcaca',title: 'test4',component: () => import('@/views/test/testcaca.vue')
},{
path: 'test-child',name: 'test-child',title: 'test-child',component: () => import('@/views/test/test-child.vue')
}
]
}
最后保存,运行你的项目,看下三级菜单出来了吧:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |