king
2023-12-12 49f09cc6f8ff8c30a75ed1a9d6f510b69b73962a
src/views/interface/workspace/index.jsx
@@ -1,5 +1,6 @@
import React, {Component} from 'react'
import { Icon, Tabs } from 'antd'
import { Tabs } from 'antd'
import { PlusOutlined, CloseOutlined } from '@ant-design/icons'
import Utils from '@/utils/utils.js'
import MKEmitter from '@/utils/events.js'
@@ -11,7 +12,7 @@
class WorkSpace extends Component {
  state = {
    tabviews: [{
      uuid: Utils.getuuid(),
      id: Utils.getuuid(),
      createDate: '',
      method: 'POST',
      interface: '',
@@ -38,24 +39,24 @@
  }
  useInterface = (item) => {
    item.uuid = Utils.getuuid()
    item.id = Utils.getuuid()
    
    this.setState({tabviews: [...this.state.tabviews, item]}, () => {
      let div = document.getElementById(item.uuid)
      let div = document.getElementById(item.id)
      div && div.click && div.click()
    })
  }
  handleTabview = (view) => {
    let tabviews = fromJS(this.state.tabviews).toJS()
    tabviews = tabviews.filter(item => item.uuid !== view.uuid)
    tabviews = tabviews.filter(item => item.id !== view.id)
    this.setState({tabviews}, () => {
      if (tabviews.length > 0) return
      setTimeout(() => {
        this.setState({tabviews: [{
          uuid: Utils.getuuid(),
          id: Utils.getuuid(),
          createDate: '',
          method: 'POST',
          interface: '',
@@ -71,7 +72,7 @@
  handleAdd = () => {
    let item = {
      uuid: Utils.getuuid(),
      id: Utils.getuuid(),
      createDate: '',
      method: 'POST',
      interface: '',
@@ -82,7 +83,7 @@
      formData: []
    }
    this.setState({tabviews: [...this.state.tabviews, item]}, () => {
      let div = document.getElementById(item.uuid)
      let div = document.getElementById(item.id)
      div && div.click && div.click()
    })
  }
@@ -92,23 +93,23 @@
    return (
      <div className="workspace-wrap">
        <Icon className="add-view" type="plus" onClick={this.handleAdd} />
        <PlusOutlined className="add-view" onClick={this.handleAdd} />
        <Tabs type="card">
          {tabviews.map(view => {
            return (
              <Tabs.TabPane
                tab={
                  <span className="control" id={view.uuid || ''}>
                  <span className="control" id={view.id || ''}>
                    <span className="method">
                      {view.method || 'POST'}
                    </span>
                    <span className="interface">
                      {view.interface || 'Untitled Request'}
                    </span>
                    <Icon type="close" onClick={() => this.handleTabview(view)}/>
                    <CloseOutlined onClick={() => this.handleTabview(view)}/>
                  </span>
                }
                key={view.uuid}
                key={view.id}
              >
                <Request config={view} />
              </Tabs.TabPane>