|
|
|
@ -30,9 +30,6 @@ |
|
|
|
|
<script> |
|
|
|
|
import { constantRoutes } from "@/router"; |
|
|
|
|
|
|
|
|
|
// 不需要激活的路由 |
|
|
|
|
const noactiveList = ["/user/profile", "/dict/type", "/gen/edit", "/job/log"]; |
|
|
|
|
|
|
|
|
|
export default { |
|
|
|
|
data() { |
|
|
|
|
return { |
|
|
|
@ -40,6 +37,8 @@ export default { |
|
|
|
|
visibleNumber: 5, |
|
|
|
|
// 是否为首次加载 |
|
|
|
|
isFrist: false, |
|
|
|
|
// 当前激活菜单的 index |
|
|
|
|
currentIndex: undefined |
|
|
|
|
}; |
|
|
|
|
}, |
|
|
|
|
computed: { |
|
|
|
@ -48,7 +47,12 @@ export default { |
|
|
|
|
let topMenus = []; |
|
|
|
|
this.routers.map((menu) => { |
|
|
|
|
if (menu.hidden !== true) { |
|
|
|
|
topMenus.push(menu); |
|
|
|
|
// 兼容顶部栏一级菜单内部跳转 |
|
|
|
|
if (menu.path === "/") { |
|
|
|
|
topMenus.push(menu.children[0]); |
|
|
|
|
} else { |
|
|
|
|
topMenus.push(menu); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
return topMenus; |
|
|
|
@ -63,7 +67,11 @@ export default { |
|
|
|
|
this.routers.map((router) => { |
|
|
|
|
for (var item in router.children) { |
|
|
|
|
if (router.children[item].parentPath === undefined) { |
|
|
|
|
router.children[item].path = router.path + "/" + router.children[item].path; |
|
|
|
|
if(router.path === "/") { |
|
|
|
|
router.children[item].path = "/redirect/" + router.children[item].path; |
|
|
|
|
} else { |
|
|
|
|
router.children[item].path = router.path + "/" + router.children[item].path; |
|
|
|
|
} |
|
|
|
|
router.children[item].parentPath = router.path; |
|
|
|
|
} |
|
|
|
|
childrenMenus.push(router.children[item]); |
|
|
|
@ -75,12 +83,6 @@ export default { |
|
|
|
|
activeMenu() { |
|
|
|
|
const path = this.$route.path; |
|
|
|
|
let activePath = this.routers[0].path; |
|
|
|
|
var noactive = noactiveList.some(function (item) { |
|
|
|
|
return path.indexOf(item) !== -1; |
|
|
|
|
}); |
|
|
|
|
if (noactive) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
if (path.lastIndexOf("/") > 0) { |
|
|
|
|
const tmpPath = path.substring(1, path.length); |
|
|
|
|
activePath = "/" + tmpPath.substring(0, tmpPath.indexOf("/")); |
|
|
|
@ -91,7 +93,11 @@ export default { |
|
|
|
|
activePath = "index"; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
this.activeRoutes(activePath); |
|
|
|
|
var routes = this.activeRoutes(activePath); |
|
|
|
|
if (routes.length === 0) { |
|
|
|
|
activePath = this.currentIndex || this.routers[0].path |
|
|
|
|
this.activeRoutes(activePath); |
|
|
|
|
} |
|
|
|
|
return activePath; |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
@ -112,10 +118,15 @@ export default { |
|
|
|
|
}, |
|
|
|
|
// 菜单选择事件 |
|
|
|
|
handleSelect(key, keyPath) { |
|
|
|
|
this.currentIndex = key; |
|
|
|
|
if (key.indexOf("http://") !== -1 || key.indexOf("https://") !== -1) { |
|
|
|
|
// http(s):// 路径新窗口打开 |
|
|
|
|
window.open(key, "_blank"); |
|
|
|
|
} else if (key.indexOf("/redirect") !== -1) { |
|
|
|
|
// /redirect 路径内部打开 |
|
|
|
|
this.$router.push({ path: key.replace("/redirect", "") }); |
|
|
|
|
} else { |
|
|
|
|
// 显示左侧联动菜单 |
|
|
|
|
this.activeRoutes(key); |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
@ -129,7 +140,10 @@ export default { |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
this.$store.commit("SET_SIDEBAR_ROUTERS", routes); |
|
|
|
|
if(routes.length > 0) { |
|
|
|
|
this.$store.commit("SET_SIDEBAR_ROUTERS", routes); |
|
|
|
|
} |
|
|
|
|
return routes; |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
}; |
|
|
|
|