| | |
| | | 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' |
| | |
| | | class WorkSpace extends Component { |
| | | state = { |
| | | tabviews: [{ |
| | | uuid: Utils.getuuid(), |
| | | id: Utils.getuuid(), |
| | | createDate: '', |
| | | method: 'POST', |
| | | interface: '', |
| | |
| | | } |
| | | |
| | | 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: '', |
| | |
| | | |
| | | handleAdd = () => { |
| | | let item = { |
| | | uuid: Utils.getuuid(), |
| | | id: Utils.getuuid(), |
| | | createDate: '', |
| | | method: 'POST', |
| | | interface: '', |
| | |
| | | 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() |
| | | }) |
| | | } |
| | |
| | | |
| | | 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> |