|
@@ -5,21 +5,38 @@ import React, { Component } from 'react';
|
|
|
import screenfull from 'screenfull';
|
|
|
import avater from '../style/imgs/b1.jpg';
|
|
|
import SiderCustom from './SiderCustom';
|
|
|
-import { Menu, Icon, Layout, Badge, Popover } from 'antd';
|
|
|
-import { gitOauthToken, gitOauthInfo } from '../axios';
|
|
|
+import { Badge, Icon, Layout, Menu, Popover } from 'antd';
|
|
|
+import { gitOauthInfo, gitOauthToken } from '../axios';
|
|
|
import { queryString } from '../utils';
|
|
|
import { withRouter } from 'react-router-dom';
|
|
|
import { PwaInstaller } from './widget';
|
|
|
import { connectAlita } from 'redux-alita';
|
|
|
+import * as PropTypes from 'prop-types';
|
|
|
+
|
|
|
const { Header } = Layout;
|
|
|
const SubMenu = Menu.SubMenu;
|
|
|
const MenuItemGroup = Menu.ItemGroup;
|
|
|
|
|
|
class HeaderCustom extends Component {
|
|
|
+
|
|
|
+ static propTypes = {
|
|
|
+ auth: PropTypes.object,
|
|
|
+ };
|
|
|
+ static defaultProps = {
|
|
|
+ auth: {
|
|
|
+ user: {
|
|
|
+ account: '',
|
|
|
+ username: '',
|
|
|
+ name: '',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ };
|
|
|
+
|
|
|
state = {
|
|
|
user: '',
|
|
|
visible: false,
|
|
|
};
|
|
|
+
|
|
|
componentDidMount() {
|
|
|
const QueryString = queryString();
|
|
|
const _user = JSON.parse(localStorage.getItem('user')) || '测试';
|
|
@@ -27,17 +44,18 @@ class HeaderCustom extends Component {
|
|
|
gitOauthToken(QueryString.code).then(res => {
|
|
|
gitOauthInfo(res.access_token).then(info => {
|
|
|
this.setState({
|
|
|
- user: info
|
|
|
+ user: info,
|
|
|
});
|
|
|
localStorage.setItem('user', JSON.stringify(info));
|
|
|
});
|
|
|
});
|
|
|
} else {
|
|
|
this.setState({
|
|
|
- user: _user
|
|
|
+ user: _user,
|
|
|
});
|
|
|
}
|
|
|
};
|
|
|
+
|
|
|
screenFull = () => {
|
|
|
if (screenfull.enabled) {
|
|
|
screenfull.request();
|
|
@@ -50,7 +68,7 @@ class HeaderCustom extends Component {
|
|
|
};
|
|
|
logout = () => {
|
|
|
localStorage.removeItem('user');
|
|
|
- this.props.history.push('/login')
|
|
|
+ this.props.history.push('/login');
|
|
|
};
|
|
|
popoverHide = () => {
|
|
|
this.setState({
|
|
@@ -60,14 +78,22 @@ class HeaderCustom extends Component {
|
|
|
handleVisibleChange = (visible) => {
|
|
|
this.setState({ visible });
|
|
|
};
|
|
|
+
|
|
|
render() {
|
|
|
- const { responsive = { data: {} }, path } = this.props;
|
|
|
+ const { responsive = { data: {} }, path ,auth={user:{}}} = this.props;
|
|
|
+
|
|
|
+ let user = auth.user;
|
|
|
+ if (!user) user={};
|
|
|
+ console.log('HeaderCustom=>', user);
|
|
|
+
|
|
|
return (
|
|
|
- <Header className="custom-theme header" >
|
|
|
+ <Header className="custom-theme header">
|
|
|
{
|
|
|
responsive.data.isMobile ? (
|
|
|
- <Popover content={<SiderCustom path={path} popoverHide={this.popoverHide} />} trigger="click" placement="bottomLeft" visible={this.state.visible} onVisibleChange={this.handleVisibleChange}>
|
|
|
- <Icon type="bars" className="header__trigger custom-trigger" />
|
|
|
+ <Popover content={<SiderCustom path={path} popoverHide={this.popoverHide}/>} trigger="click"
|
|
|
+ placement="bottomLeft" visible={this.state.visible}
|
|
|
+ onVisibleChange={this.handleVisibleChange}>
|
|
|
+ <Icon type="bars" className="header__trigger custom-trigger"/>
|
|
|
</Popover>
|
|
|
) : (
|
|
|
<Icon
|
|
@@ -83,19 +109,20 @@ class HeaderCustom extends Component {
|
|
|
onClick={this.menuClick}
|
|
|
>
|
|
|
<Menu.Item key="pwa">
|
|
|
- <PwaInstaller />
|
|
|
+ <PwaInstaller/>
|
|
|
</Menu.Item>
|
|
|
- <Menu.Item key="full" onClick={this.screenFull} >
|
|
|
- <Icon type="arrows-alt" onClick={this.screenFull} />
|
|
|
+ <Menu.Item key="full" onClick={this.screenFull}>
|
|
|
+ <Icon type="arrows-alt" onClick={this.screenFull}/>
|
|
|
</Menu.Item>
|
|
|
<Menu.Item key="1">
|
|
|
- <Badge count={25} overflowCount={10} style={{marginLeft: 10}}>
|
|
|
- <Icon type="notification" />
|
|
|
+ <Badge count={25} overflowCount={10} style={{ marginLeft: 10 }}>
|
|
|
+ <Icon type="notification"/>
|
|
|
</Badge>
|
|
|
</Menu.Item>
|
|
|
- <SubMenu title={<span className="avatar"><img src={avater} alt="头像" /><i className="on bottom b-white" /></span>}>
|
|
|
+ <SubMenu title={<span className="avatar"><img src={avater} alt="头像"/><i
|
|
|
+ className="on bottom b-white"/></span>}>
|
|
|
<MenuItemGroup title="用户中心">
|
|
|
- <Menu.Item key="setting:1">你好 - {this.props.user.userName}</Menu.Item>
|
|
|
+ <Menu.Item key="setting:1">你好 - {user.username}</Menu.Item>
|
|
|
<Menu.Item key="setting:2">个人信息</Menu.Item>
|
|
|
<Menu.Item key="logout"><span onClick={this.logout}>退出登录</span></Menu.Item>
|
|
|
</MenuItemGroup>
|
|
@@ -106,7 +133,7 @@ class HeaderCustom extends Component {
|
|
|
</SubMenu>
|
|
|
</Menu>
|
|
|
</Header>
|
|
|
- )
|
|
|
+ );
|
|
|
}
|
|
|
}
|
|
|
|