首先最近项目需要把jeecg前端部分菜单栏改成顶部一级左边二三级菜单,由于jeecg或者antd pro vue开源版本菜单只有顶部或者侧边 两种模式,所以没办法只能再次基础上改成需要的模式。
最后做成效果图如下(并没有美化只是先实现了需求)
实现过程如下可参考:
1、首先我们在jeecg菜单模式为horizontal 的基础上更改
第一步:实现的是顶部菜单只有一级的情况下路由可以跳转;如有二三级菜单点击没有效果
①找到这个文件
109行左右改成 这样就完成了第一个需求 此时顶部菜单只有只用于一级菜单的情况下会跳转,有二三级的话点击后没有反应
// render
renderItem (menu) {
if (!menu.hidden) {
// 测试顶部导航hover 二三级菜单不显示【不生成】
return this.renderMenuItem(menu)
}
return null
},
在 renderMenuItem (menu)下加上
var tag = target && 'a' || 'router-link'
// 测试顶部item点击后不跳转
if (menu.hasOwnProperty('children')) {
tag ='a'
}
②第二步完成点击拥有二三级菜单的菜单项时左侧显示 ,点击只有一级的菜单时做小隐藏
先做显示:步骤第一步点击有二三级的菜单时子传父参数为当前点击menu对象传给
在renderMenuItem (menu)下添加代码
var on = {
click: () => {
this.$emit('iteminfo',menu)
},
}
var cc;
if (menu.hasOwnProperty('children')) {
cc =
<Item {...{ key: menu.path }}>
<tag {...{ on:on }}>