Browse Source

menu key对switch的子页面没有配置menu时取父菜单配置

menu key对switch的子页面没有配置menu时取父菜单配置
pull/2021/head
Amumu 8 years ago
committed by 偏右
parent
commit
212bc8893d
  1. 19
      src/common/router.js

19
src/common/router.js

@ -70,6 +70,22 @@ function getFlatMenuData(menus) {
return keys;
}
function findMenuKey(menuData, path) {
const menuKey = Object.keys(menuData).find(key => pathToRegexp(path).test(key));
if (menuKey == null) {
if (path === '/') {
return null;
}
const lastIdx = path.lastIndexOf('/');
if (lastIdx < 0) {
return null;
}
// 如果没有,使用上一层的配置
return findMenuKey(menuData, path.substr(0, lastIdx));
}
return menuKey;
}
export const getRouterData = app => {
const routerConfig = {
'/': {
@ -185,8 +201,7 @@ export const getRouterData = app => {
Object.keys(routerConfig).forEach(path => {
// Regular match item name
// eg. router /user/:id === /user/chen
const pathRegexp = pathToRegexp(path);
const menuKey = Object.keys(menuData).find(key => pathRegexp.test(`${key}`));
const menuKey = findMenuKey(menuData, path);
let menuItem = {};
// If menuKey is not empty
if (menuKey) {

Loading…
Cancel
Save