king
2024-04-05 f5130f2469384b423043a111223b518e78f43075
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import { DoubleLeftOutlined, DoubleRightOutlined } from '@ant-design/icons'
 
import asyncComponent from '@/utils/asyncComponent'
import './index.scss'
 
const TabTransfer = asyncComponent(() => import('@/tabviews/custom/components/share/tabtransfer'))
 
class NormalGroup extends Component {
  static propTpyes = {
    config: PropTypes.object
  }
 
  state = {
    visible: true,
    mergeAble: this.props.config.setting.mergeAble === 'true'
  }
 
  render() {
    const { config, style } = this.props
    const { visible, mergeAble } = this.state
 
    if (config.components.length === 0) return (<div className={'ant-col ant-col-' + config.width} style={style}><div style={config.style}></div></div>)
    
    return (
      <div className={`ant-col ant-col-${config.width} ${mergeAble ? ' mk-merge-able mk-ctrl-' + (config.setting.ctrlNumber || 1) : ''} ${visible ? '' : ' close'}`} style={style}>
        <div className={'normal-group-wrap ' + (config.setting.layout || '')} id={'anchor' + config.uuid} style={config.style}>
          <div className="mk-control">
            <DoubleLeftOutlined onClick={() => this.setState({visible: false})}/>
            <DoubleRightOutlined onClick={() => this.setState({visible: true})}/>
          </div>
          {config.setting && config.setting.title ? <div className="group-header" style={config.headerStyle}>
            <span className="title">{config.setting.title}</span>
          </div> : null}
          <TabTransfer config={config}/>
        </div>
      </div>
    )
  }
}
 
export default NormalGroup