RightContent.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import React, { PureComponent } from 'react';
  2. import { FormattedMessage } from 'umi/locale';
  3. import { LogoutOutlined } from '@ant-design/icons';
  4. import { Spin, Tag, Menu, Avatar } from 'antd';
  5. import HeaderDropdown from '@/components/HeaderDropdown';
  6. import styles from '@/components/GlobalHeader/index.less';
  7. import { connect } from 'dva';
  8. import { Logout } from '@/services/PurchaseList';
  9. import router from 'umi/router';
  10. @connect(({ user }) => ({
  11. currentUser: user.currentUser,
  12. }))
  13. class GlobalHeaderRight extends PureComponent {
  14. async onMenuClick() {
  15. // this.props.dispatch({
  16. // type: 'purchaseList/logout',
  17. // });
  18. await Logout();
  19. router.push('/login');
  20. }
  21. render() {
  22. const { currentUser = {} } = this.props;
  23. const theme = 'dark';
  24. const menu = (
  25. <Menu className={styles.menu} selectedKeys={[]} onClick={() => this.onMenuClick()}>
  26. <Menu.Item key="logout">
  27. <LogoutOutlined />
  28. <FormattedMessage id="menu.account.logout" defaultMessage="logout" />
  29. </Menu.Item>
  30. </Menu>
  31. );
  32. let className = styles.right;
  33. if (theme === 'dark') {
  34. className = `${styles.right} ${styles.dark}`;
  35. }
  36. return (
  37. <div className={className}>
  38. {currentUser.CName ? (
  39. <div className={styles.userbox}>
  40. <HeaderDropdown overlay={menu}>
  41. <span className={`${styles.action} ${styles.account}`}>
  42. <Avatar
  43. size="small"
  44. className={styles.avatar}
  45. src="https://gw.alipayobjects.com/zos/antfincdn/XAosXuNZyF/BiazfanxmamNRoxxVxka.png"
  46. alt="avatar"
  47. />
  48. <span className={styles.name}>{currentUser.CName}</span>
  49. </span>
  50. </HeaderDropdown>
  51. </div>
  52. ) : (
  53. <Spin size="small" style={{ marginLeft: 8, marginRight: 8 }} />
  54. )}
  55. </div>
  56. );
  57. }
  58. }
  59. export default GlobalHeaderRight;