index.js 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import React from 'react';
  2. import { Link } from 'react-router-dom';
  3. import { Dropdown } from 'antd';
  4. import Assets from '@src/components/Assets';
  5. import Button from '../Button';
  6. import './index.less';
  7. import { User } from '../../stores/user';
  8. function Header(props) {
  9. const { tabs = [], active, user } = props;
  10. return (
  11. <div id="header">
  12. <div className="body">
  13. <div className="left">
  14. <Assets name="logo" svg />
  15. </div>
  16. <div className="center">
  17. <div className="tabs">
  18. {tabs.map(item => {
  19. return (
  20. <Link to={item.path}>
  21. <div className={`tab ${active === item.key ? 'active' : ''}`}>{item.name}</div>
  22. </Link>
  23. );
  24. })}
  25. </div>
  26. </div>
  27. <div className="right">
  28. {user.login ? (
  29. <Dropdown
  30. trigger="hover"
  31. overlayClassName="header-user-overlay"
  32. overlay={
  33. <div className="list">
  34. <div className="item more">
  35. <div className="t-1">
  36. <Assets name="course" svg />
  37. 课程
  38. </div>
  39. <div className="t-s-12 nowrap">
  40. <span className="t-4">3</span> 份作业待完成
  41. </div>
  42. </div>
  43. <div className="item more">
  44. <div className="t-1">
  45. <Assets name="jijing" svg />
  46. 机经
  47. </div>
  48. <div className="t-s-12 nowrap">最近更新:2019-02-20</div>
  49. </div>
  50. <div className="item more">
  51. <div className="t-1">
  52. <Assets name="yaoqing" svg />
  53. 邀请好友
  54. </div>
  55. <div className="t-s-12 nowrap">第 1 位好友加入</div>
  56. </div>
  57. <div className="item more">
  58. <div className="t-1">
  59. <Assets name="message" svg />
  60. 消息
  61. </div>
  62. <div className="t-s-12 nowrap">到期提醒: 内容前6个字…</div>
  63. </div>
  64. <div className="item">
  65. <div className="t-1">
  66. <Assets name="exit" svg />
  67. 退出
  68. </div>
  69. </div>
  70. </div>
  71. }
  72. >
  73. <Link to="/my/main" className="info">
  74. <Assets src={user.info.avatar} />
  75. <span className="t-2 f-s-12">{user.info.nickname}</span>
  76. </Link>
  77. </Dropdown>
  78. ) : (
  79. <Button
  80. onClick={() => {
  81. User.needLogin();
  82. }}
  83. >
  84. 登录
  85. </Button>
  86. )}
  87. </div>
  88. </div>
  89. </div>
  90. );
  91. }
  92. Header.propTypes = {};
  93. export default Header;