Commit 5e02d635 authored by 陈帅's avatar 陈帅 Committed by 偏右

fix list redirect bug (#507)

parent 74b4f30f
...@@ -32,28 +32,27 @@ const menuData = [{ ...@@ -32,28 +32,27 @@ const menuData = [{
icon: 'table', icon: 'table',
path: 'list', path: 'list',
children: [{ children: [{
name: '查询表格',
path: 'table-list',
}, {
name: '标准列表',
path: 'basic-list',
}, {
name: '卡片列表',
path: 'card-list',
}, {
name: '搜索列表', name: '搜索列表',
icon: 'search',
path: 'search', path: 'search',
children: [{ children: [{
name: '搜索列表(文章)',
path: 'articles',
}, {
name: '搜索列表(项目)', name: '搜索列表(项目)',
path: 'projects', path: 'projects',
}, { }, {
name: '搜索列表(应用)', name: '搜索列表(应用)',
path: 'applications', path: 'applications',
}, {
name: '搜索列表(文章)',
path: 'articles',
}], }],
}, {
name: '查询表格',
path: 'table-list',
}, {
name: '标准列表',
path: 'basic-list',
}, {
name: '卡片列表',
path: 'card-list',
}], }],
}, { }, {
name: '详情页', name: '详情页',
......
...@@ -11,9 +11,29 @@ import GlobalFooter from '../components/GlobalFooter'; ...@@ -11,9 +11,29 @@ import GlobalFooter from '../components/GlobalFooter';
import SiderMenu from '../components/SiderMenu'; import SiderMenu from '../components/SiderMenu';
import NotFound from '../routes/Exception/404'; import NotFound from '../routes/Exception/404';
import { getRoutes } from '../utils/utils'; 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 = { const query = {
'screen-xs': { 'screen-xs': {
maxWidth: 575, maxWidth: 575,
...@@ -79,17 +99,20 @@ class BasicLayout extends React.PureComponent { ...@@ -79,17 +99,20 @@ class BasicLayout extends React.PureComponent {
<div style={{ minHeight: 'calc(100vh - 260px)' }}> <div style={{ minHeight: 'calc(100vh - 260px)' }}>
<Switch> <Switch>
{ {
getRoutes(match.path, routerData).map(item => redirectData.map(item =>
( <Redirect key={item.from} exact from={item.from} to={item.to} />
<Route
key={item.key}
path={item.path}
component={item.component}
exact={item.exact}
/>
)
) )
} }
{
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" /> <Redirect exact from="/" to="/dashboard/analysis" />
<Route render={NotFound} /> <Route render={NotFound} />
</Switch> </Switch>
......
import React, { Component } from 'react'; 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 { connect } from 'dva';
import { Input } from 'antd'; import { Input } from 'antd';
import PageHeaderLayout from '../../layouts/PageHeaderLayout'; import PageHeaderLayout from '../../layouts/PageHeaderLayout';
...@@ -72,7 +72,6 @@ export default class SearchList extends Component { ...@@ -72,7 +72,6 @@ export default class SearchList extends Component {
) )
) )
} }
<Redirect exact from={`${match.path}`} to={`${match.path}${routes[0]}`} />
</Switch> </Switch>
</PageHeaderLayout> </PageHeaderLayout>
); );
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment