LogoutForm.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import React, {Component} from "react";
  2. import {Button, Form, message} from "antd";
  3. import {apiLogout} from "../../services/API/API";
  4. import getCookie from "../../utils/getCookie";
  5. import deleteCookie from "../../utils/deleteCookie";
  6. import {CheckCircleTwoTone, EnterOutlined, LoginOutlined, LogoutOutlined} from "@ant-design/icons";
  7. import './UserForm.less'
  8. import {Link} from "react-router-dom";
  9. class LogoutForm extends Component {
  10. handleSubmitLogout = () => {
  11. let params = {
  12. username: getCookie('username'),
  13. token: getCookie('token'),
  14. }
  15. apiLogout(params).then(res => {
  16. if (res.data.code === 200) {
  17. message.success('登出成功');
  18. deleteCookie()
  19. this.props.handleLogged()
  20. } else if (res.data.code === 303) {
  21. message.error(res.data.error)
  22. }
  23. })
  24. };
  25. clickButton = () => {
  26. let e = document.createEvent('MouseEvents');
  27. e.initEvent('click', true, true)
  28. document.getElementById('enter-link').dispatchEvent(e)
  29. }
  30. render() {
  31. return (
  32. <div className={'logged-div'}>
  33. <CheckCircleTwoTone className={'logged-logo'} twoToneColor="#52c41a"/>
  34. <Button className={'enter-button'} size="large" type="primary" icon={<LoginOutlined/>}
  35. onClick={this.clickButton}>
  36. <Link to={'/cloud/file'} style={{color: 'white'}} id={'enter-link'}>
  37. &nbsp;&nbsp;&nbsp;Enter
  38. </Link>
  39. </Button>
  40. <Form onFinish={this.handleSubmitLogout} className="login-form" initialValues={{remember: true}}>
  41. <Form.Item style={{marginBottom: '10px'}}>
  42. <Button size="large" type="primary" htmlType="submit" className="login-form-button"
  43. style={{width: '100%'}} icon={<LogoutOutlined/>}>
  44. Logout
  45. </Button>
  46. </Form.Item>
  47. </Form>
  48. </div>
  49. )
  50. }
  51. }
  52. export default LogoutForm;