|
|
|
@ -1,7 +1,9 @@ |
|
|
|
import React, { PureComponent } from 'react'; |
|
|
|
import React, { Component } from 'react'; |
|
|
|
import { connect } from 'dva'; |
|
|
|
import { Route, routerRedux, Switch, Redirect } from 'dva/router'; |
|
|
|
import { Menu } from 'antd'; |
|
|
|
import Debounce from 'lodash-decorators/debounce'; |
|
|
|
import Bind from 'lodash-decorators/bind'; |
|
|
|
import styles from './Info.less'; |
|
|
|
import { getRoutes } from '../../utils/utils'; |
|
|
|
|
|
|
|
@ -17,7 +19,7 @@ const menuMap = { |
|
|
|
@connect(({ user }) => ({ |
|
|
|
currentUser: user.currentUser, |
|
|
|
})) |
|
|
|
export default class Info extends PureComponent { |
|
|
|
export default class Info extends Component { |
|
|
|
constructor(props) { |
|
|
|
super(props); |
|
|
|
const { match, location } = props; |
|
|
|
@ -25,10 +27,20 @@ export default class Info extends PureComponent { |
|
|
|
key = menuMap[key] ? key : 'base'; |
|
|
|
this.state = { |
|
|
|
selectKey: key, |
|
|
|
meunMode: 'inline', |
|
|
|
}; |
|
|
|
} |
|
|
|
componentDidMount() { |
|
|
|
this.resize(); |
|
|
|
window.addEventListener('resize', this.resize); |
|
|
|
} |
|
|
|
componentWillUnmount() { |
|
|
|
window.removeEventListener('resize', this.resize); |
|
|
|
} |
|
|
|
getmenu = () => { |
|
|
|
return Object.keys(menuMap).map(item => <Item key={item}>{menuMap[item]}</Item>); |
|
|
|
return Object.keys(menuMap).map(item => ( |
|
|
|
<Item key={item}>{menuMap[item]}</Item> |
|
|
|
)); |
|
|
|
}; |
|
|
|
getRightTitle = () => { |
|
|
|
return menuMap[this.state.selectKey]; |
|
|
|
@ -39,6 +51,19 @@ export default class Info extends PureComponent { |
|
|
|
selectKey: key, |
|
|
|
}); |
|
|
|
}; |
|
|
|
@Bind() |
|
|
|
@Debounce(200) |
|
|
|
resize() { |
|
|
|
if (window.innerWidth > 768 || window.innerWidth < 454) { |
|
|
|
this.setState({ |
|
|
|
meunMode: 'inline', |
|
|
|
}); |
|
|
|
return; |
|
|
|
} |
|
|
|
this.setState({ |
|
|
|
meunMode: 'horizontal', |
|
|
|
}); |
|
|
|
} |
|
|
|
render() { |
|
|
|
const { match, routerData, currentUser } = this.props; |
|
|
|
if (!currentUser.userid) { |
|
|
|
@ -48,7 +73,7 @@ export default class Info extends PureComponent { |
|
|
|
<div className={styles.main}> |
|
|
|
<div className={styles.leftmenu}> |
|
|
|
<Menu |
|
|
|
mode={window.innerWidth < 769 ? 'horizontal' : 'inline'} |
|
|
|
mode={this.state.meunMode} |
|
|
|
selectedKeys={[this.state.selectKey]} |
|
|
|
onClick={this.selectKey} |
|
|
|
> |
|
|
|
@ -58,16 +83,16 @@ export default class Info extends PureComponent { |
|
|
|
<div className={styles.right}> |
|
|
|
<div className={styles.title}>{this.getRightTitle()}</div> |
|
|
|
<Switch> |
|
|
|
{ |
|
|
|
getRoutes(match.path, routerData).map(item => ( |
|
|
|
<Route |
|
|
|
key={item.key} |
|
|
|
path={item.path} |
|
|
|
render={props => <item.component {...props} currentUser={currentUser} />} |
|
|
|
exact={item.exact} |
|
|
|
/> |
|
|
|
)) |
|
|
|
} |
|
|
|
{getRoutes(match.path, routerData).map(item => ( |
|
|
|
<Route |
|
|
|
key={item.key} |
|
|
|
path={item.path} |
|
|
|
render={props => ( |
|
|
|
<item.component {...props} currentUser={currentUser} /> |
|
|
|
)} |
|
|
|
exact={item.exact} |
|
|
|
/> |
|
|
|
))} |
|
|
|
<Redirect exact from="/userinfo" to="/userinfo/base" /> |
|
|
|
<Redirect to="/exception/404" /> |
|
|
|
</Switch> |
|
|
|
|