Folder.js 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import React, {Component} from "react";
  2. import {DeleteOutlined, FolderOpenTwoTone, FolderTwoTone, PicCenterOutlined} from "@ant-design/icons";
  3. import './Folder.less';
  4. import {Button, Dropdown, Menu, message} from "antd";
  5. import getCookie from "../../utils/getCookie";
  6. import {apiDeleteFolder} from "../../services/API/API";
  7. class Folder extends Component {
  8. state = {
  9. isOver: false
  10. }
  11. onMouseOver = () => {
  12. this.setState({
  13. isOver: true
  14. })
  15. }
  16. onMouseOut = () => {
  17. this.setState({
  18. isOver: false
  19. })
  20. }
  21. handleOpenFolder = () => {
  22. this.props.cdFolder(this.props.ele.folder_id, this.props.ele.folder_name)
  23. }
  24. handleDeleteFolder = () => {
  25. let params = {
  26. username: getCookie('username'),
  27. token: getCookie('token'),
  28. folder_id: this.props.ele.folder_id,
  29. }
  30. apiDeleteFolder(params).then(res => {
  31. if (res.data.code === 200) {
  32. message.success('删除成功');
  33. this.props.cdFolder(this.props.fatherFolderId)
  34. } else if (res.data.code === 401) {
  35. message.error('未登录')
  36. window.location.href = "";
  37. } else if (res.data.code === 400) {
  38. message.error('文件夹不存在')
  39. // window.location.href = "";
  40. } else if (res.data.code === 404) {
  41. message.error('没有删除文件夹的权限')
  42. // window.location.href = "";
  43. } else {
  44. message.error('错误')
  45. // window.location.href = "";
  46. }
  47. })
  48. }
  49. render() {
  50. let {isOver} = this.state
  51. const ele = this.props.ele
  52. const menu = (
  53. <Menu>
  54. <Menu.Item key="open">
  55. <Button onClick={this.handleOpenFolder} type="dashed" icon={<PicCenterOutlined/>}>
  56. &nbsp;&nbsp;OPEN&nbsp;&nbsp;
  57. </Button>
  58. </Menu.Item>
  59. <Menu.Item key="delete">
  60. <Button onClick={this.handleDeleteFolder} type="dashed" icon={<DeleteOutlined/>}>
  61. &nbsp;DELETE&nbsp;
  62. </Button>
  63. </Menu.Item>
  64. </Menu>
  65. );
  66. return (
  67. <div className={'folder' + (isOver ? '-over' : '')} onMouseEnter={this.onMouseOver}
  68. onMouseLeave={this.onMouseOut}
  69. onDoubleClick={this.handleOpenFolder}
  70. >
  71. {
  72. isOver ? <div className={'folder-options'}>
  73. <Dropdown overlay={menu} trigger={['click']} placement="bottomLeft" arrow>
  74. <a className="dropdown-link" onClick={e => e.preventDefault()}>
  75. &nbsp;·&nbsp;·&nbsp;·&nbsp;
  76. </a>
  77. </Dropdown>
  78. </div> : <div>
  79. </div>
  80. }
  81. {
  82. isOver ? <FolderOpenTwoTone className={'folder-logo'}/> :
  83. <FolderTwoTone className={'folder-logo'}/>
  84. }
  85. <div className={'folder-name'}>
  86. {ele.folder_name}
  87. </div>
  88. </div>
  89. )
  90. }
  91. }
  92. export default Folder;