陈帅 преди 8 години
родител
ревизия
5e02d635ef
променени са 3 файла, в които са добавени 46 реда и са изтрити 25 реда
  1. 12 13
      src/common/menu.js
  2. 33 10
      src/layouts/BasicLayout.js
  3. 1 2
      src/routes/List/List.js

+ 12 - 13
src/common/menu.js

@@ -32,28 +32,27 @@ const menuData = [{
   icon: 'table',
   path: 'list',
   children: [{
+    name: '查询表格',
+    path: 'table-list',
+  }, {
+    name: '标准列表',
+    path: 'basic-list',
+  }, {
+    name: '卡片列表',
+    path: 'card-list',
+  }, {
     name: '搜索列表',
-    icon: 'search',
     path: 'search',
     children: [{
+      name: '搜索列表(文章)',
+      path: 'articles',
+    }, {
       name: '搜索列表(项目)',
       path: 'projects',
     }, {
       name: '搜索列表(应用)',
       path: 'applications',
-    }, {
-      name: '搜索列表(文章)',
-      path: 'articles',
     }],
-  }, {
-    name: '查询表格',
-    path: 'table-list',
-  }, {
-    name: '标准列表',
-    path: 'basic-list',
-  }, {
-    name: '卡片列表',
-    path: 'card-list',
   }],
 }, {
   name: '详情页',

+ 33 - 10
src/layouts/BasicLayout.js

@@ -11,9 +11,29 @@ import GlobalFooter from '../components/GlobalFooter';
 import SiderMenu from '../components/SiderMenu';
 import NotFound from '../routes/Exception/404';
 import { getRoutes } from '../utils/utils';
+import { getMenuData } from '../common/menu';
 
-const { Content } = Layout;
 
+/**
+ * 根据菜单取得重定向地址.
+ */
+const redirectData = [];
+const getRedirect = (item) => {
+  if (item && item.children) {
+    if (item.children[0] && item.children[0].path) {
+      redirectData.push({
+        from: `/${item.path}`,
+        to: `/${item.children[0].path}`,
+      });
+      item.children.forEach((children) => {
+        getRedirect(children);
+      });
+    }
+  }
+};
+getMenuData().forEach(getRedirect);
+
+const { Content } = Layout;
 const query = {
   'screen-xs': {
     maxWidth: 575,
@@ -79,17 +99,20 @@ class BasicLayout extends React.PureComponent {
             <div style={{ minHeight: 'calc(100vh - 260px)' }}>
               <Switch>
                 {
-                  getRoutes(match.path, routerData).map(item =>
-                    (
-                      <Route
-                        key={item.key}
-                        path={item.path}
-                        component={item.component}
-                        exact={item.exact}
-                      />
-                    )
+                  redirectData.map(item =>
+                    <Redirect key={item.from} exact from={item.from} to={item.to} />
                   )
                 }
+                {
+                  getRoutes(match.path, routerData).map(item => (
+                    <Route
+                      key={item.key}
+                      path={item.path}
+                      component={item.component}
+                      exact={item.exact}
+                    />
+                  ))
+                }
                 <Redirect exact from="/" to="/dashboard/analysis" />
                 <Route render={NotFound} />
               </Switch>

+ 1 - 2
src/routes/List/List.js

@@ -1,5 +1,5 @@
 import React, { Component } from 'react';
-import { routerRedux, Route, Switch, Redirect } from 'dva/router';
+import { routerRedux, Route, Switch } from 'dva/router';
 import { connect } from 'dva';
 import { Input } from 'antd';
 import PageHeaderLayout from '../../layouts/PageHeaderLayout';
@@ -72,7 +72,6 @@ export default class SearchList extends Component {
               )
             )
           }
-          <Redirect exact from={`${match.path}`} to={`${match.path}${routes[0]}`} />
         </Switch>
       </PageHeaderLayout>
     );