UserPage.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import React, {Component} from "react";
  2. import LoginForm from "../../components/Forms/LoginForm";
  3. import {Col, message, Tabs} from "antd";
  4. import RegisterForm from "../../components/Forms/RegisterForm";
  5. import './UserPage.less'
  6. import ForgetPasswordForm from "../../components/Forms/ForgetPasswordForm";
  7. import LogoutForm from "../../components/Forms/LogoutForm";
  8. import getCookie from "../../utils/getCookie";
  9. import {apiRootFolderId} from "../../services/API/API";
  10. const {TabPane} = Tabs;
  11. class UserPage extends Component {
  12. state = {
  13. loginStatus: "login",
  14. tagWidth: this.props.comeFrom === 'home' ? 8 : 20,
  15. tagOffset: this.props.comeFrom === 'home' ? 12 : 2,
  16. selectedKey: '1',
  17. };
  18. componentWillMount() {
  19. let params = {
  20. username: getCookie('username'),
  21. token: getCookie('token'),
  22. }
  23. apiRootFolderId(params).then(res => {
  24. if (res.data.code === 200) {
  25. this.setState({
  26. loginStatus: 'logged',
  27. })
  28. } else if (res.data.code === 401) {
  29. message.error('未登录')
  30. } else {
  31. message.error('错误')
  32. }
  33. })
  34. }
  35. handleLogged = () => {
  36. this.setState({
  37. loginStatus: this.state.loginStatus === 'login' ? 'logged' : 'login',
  38. })
  39. }
  40. handleSelectKey = () => {
  41. this.setState({
  42. selectedKey: this.state.selectedKey === '1' ? '2' : '1',
  43. })
  44. this.handleLoginStatus('login')
  45. }
  46. handleLoginStatus = LoginStatus => {
  47. this.setState(
  48. {
  49. loginStatus: LoginStatus,
  50. }
  51. )
  52. if (LoginStatus === 'forget') {
  53. this.setState(
  54. {
  55. tagWidth: this.props.comeFrom === 'home' ? 10 : 24,
  56. tagOffset: this.props.comeFrom === 'home' ? 11 : 0,
  57. }
  58. )
  59. } else {
  60. this.setState(
  61. {
  62. tagWidth: this.props.comeFrom === 'home' ? 8 : 20,
  63. tagOffset: this.props.comeFrom === 'home' ? 12 : 2,
  64. }
  65. )
  66. }
  67. }
  68. render() {
  69. let {loginStatus, tagWidth, tagOffset} = this.state;
  70. const renderTabBar = (props, DefaultTabBar) => (
  71. <DefaultTabBar {...props} style={{width: '100%'}}/>
  72. );
  73. return (
  74. <Col span={tagWidth} offset={tagOffset} className={'UserCard'}>
  75. <Tabs
  76. onChange={this.handleSelectKey}
  77. size={'large'}
  78. animated={true}
  79. centered={true}
  80. tabBarGutter={50}
  81. renderTabBar={renderTabBar}
  82. activeKey={this.state.selectedKey}
  83. >
  84. <TabPane
  85. tab={loginStatus === 'forget' ? "RESET PASSWORD" : loginStatus === 'login' ? "LOGIN" : 'LOGOUT'}
  86. key="1"
  87. style={{padding: "20px 30px 10px"}}>
  88. {
  89. loginStatus === 'login' ?
  90. <LoginForm handleLoginStatus={this.handleLoginStatus.bind(this)}
  91. handleLogged={this.handleLogged.bind(this)}/>
  92. : loginStatus === 'forget' ?
  93. <ForgetPasswordForm handleLoginStatus={this.handleLoginStatus.bind(this)}/>
  94. : <LogoutForm handleLogged={this.handleLogged.bind(this)}/>
  95. }
  96. </TabPane>
  97. {
  98. loginStatus === 'logged' ? null :
  99. <TabPane tab="REGISTER" key="2" style={{padding: "20px 30px 0"}}>
  100. <RegisterForm handleSelectKey={this.handleSelectKey.bind(this)}/>
  101. </TabPane>
  102. }
  103. </Tabs>
  104. </Col>
  105. );
  106. }
  107. }
  108. export default UserPage;