Bläddra i källkod

Improve the display of bread crumbs (#1053)

* Improve the display of bread crumbs

* unuse template literals
Reed Sun 7 år sedan
förälder
incheckning
9a34d47c66
1 ändrade filer med 20 tillägg och 1 borttagningar
  1. 20 1
      src/layouts/BasicLayout.js

+ 20 - 1
src/layouts/BasicLayout.js

@@ -38,6 +38,25 @@ const getRedirect = (item) => {
 };
 getMenuData().forEach(getRedirect);
 
+/**
+ * 获取面包屑映射
+ * @param {Object} menuData 菜单配置
+ * @param {Object} routerData 路由配置
+ */
+const getBreadcrumbNameMap = (menuData, routerData) => {
+  const result = {};
+  const childResult = {};
+  for (const i of menuData) {
+    if (!routerData[i.path]) {
+      result[i.path] = i;
+    }
+    if (i.children) {
+      Object.assign(childResult, getBreadcrumbNameMap(i.children, routerData));
+    }
+  }
+  return Object.assign({}, routerData, result, childResult);
+};
+
 const query = {
   'screen-xs': {
     maxWidth: 575,
@@ -76,7 +95,7 @@ class BasicLayout extends React.PureComponent {
     const { location, routerData } = this.props;
     return {
       location,
-      breadcrumbNameMap: routerData,
+      breadcrumbNameMap: getBreadcrumbNameMap(getMenuData(), routerData),
     };
   }
   componentDidMount() {