84 lines
2.2 KiB
JavaScript
84 lines
2.2 KiB
JavaScript
import React, { Component, Fragment } from 'react';
|
|
import { formatMessage } from 'umi/locale';
|
|
import { connect } from 'dva';
|
|
import Link from 'umi/link';
|
|
import { Icon } from 'antd';
|
|
import GlobalFooter from '@/components/GlobalFooter';
|
|
import DocumentTitle from 'react-document-title';
|
|
import SelectLang from '@/components/SelectLang';
|
|
import styles from './UserLayout.less';
|
|
import logo from '../assets/logo.svg';
|
|
import getPageTitle from '@/utils/getPageTitle';
|
|
|
|
const links = [
|
|
{
|
|
key: 'help',
|
|
title: formatMessage({ id: 'layout.user.link.help' }),
|
|
href: '',
|
|
},
|
|
{
|
|
key: 'privacy',
|
|
title: formatMessage({ id: 'layout.user.link.privacy' }),
|
|
href: '',
|
|
},
|
|
{
|
|
key: 'terms',
|
|
title: formatMessage({ id: 'layout.user.link.terms' }),
|
|
href: '',
|
|
},
|
|
];
|
|
|
|
const copyright = (
|
|
<Fragment>
|
|
Copyright <Icon type="copyright" /> 2018 蚂蚁金服体验技术部出品
|
|
</Fragment>
|
|
);
|
|
|
|
class UserLayout extends Component {
|
|
componentDidMount() {
|
|
const {
|
|
dispatch,
|
|
route: { routes, authority },
|
|
} = this.props;
|
|
dispatch({
|
|
type: 'menu/getMenuData',
|
|
payload: { routes, authority },
|
|
});
|
|
}
|
|
|
|
render() {
|
|
const {
|
|
children,
|
|
location: { pathname },
|
|
breadcrumbNameMap,
|
|
} = this.props;
|
|
return (
|
|
<DocumentTitle title={getPageTitle(pathname, breadcrumbNameMap)}>
|
|
<div className={styles.container}>
|
|
<div className={styles.lang}>
|
|
<SelectLang />
|
|
</div>
|
|
<div className={styles.content}>
|
|
<div className={styles.top}>
|
|
<div className={styles.header}>
|
|
<Link to="/">
|
|
<img alt="logo" className={styles.logo} src={logo} />
|
|
<span className={styles.title}>后台管理系统</span>
|
|
</Link>
|
|
</div>
|
|
<div className={styles.desc}>TODO....</div>
|
|
</div>
|
|
{children}
|
|
</div>
|
|
<GlobalFooter links={links} copyright={copyright} />
|
|
</div>
|
|
</DocumentTitle>
|
|
);
|
|
}
|
|
}
|
|
|
|
export default connect(({ menu: menuModel }) => ({
|
|
menuData: menuModel.menuData,
|
|
breadcrumbNameMap: menuModel.breadcrumbNameMap,
|
|
}))(UserLayout);
|