king
2025-03-05 4d6b132ef4d1ecb55397fa82dd8f18ab150b1e60
src/tabviews/custom/components/group/normal-group/index.jsx
@@ -3,6 +3,7 @@
import { DoubleLeftOutlined, DoubleRightOutlined } from '@ant-design/icons'
import asyncComponent from '@/utils/asyncComponent'
import MKEmitter from '@/utils/events.js'
import './index.scss'
const TabTransfer = asyncComponent(() => import('@/tabviews/custom/components/share/tabtransfer'))
@@ -14,24 +15,64 @@
  state = {
    visible: true,
    hidden: this.props.config.setting.bindPropId ? null : false,
    mergeAble: this.props.config.setting.mergeAble === 'true'
  }
  componentDidMount () {
    const { config } = this.props
    if (config.setting.bindPropId) {
      MKEmitter.addListener('resetSelectLine', this.resetStatus)
    }
  }
  componentWillUnmount () {
    this.setState = () => {
      return
    }
    MKEmitter.removeListener('resetSelectLine', this.resetStatus)
  }
  resetStatus = (MenuID, _, data) => {
    const { config } = this.props
    if (config.setting.bindPropId !== MenuID) return
    if (!data || data.$$empty) {
      this.setState({hidden: true})
    } else {
      this.setState({hidden: false})
    }
  }
  render() {
    const { config, style } = this.props
    const { visible, mergeAble } = this.state
    const { visible, mergeAble, hidden } = this.state
    if (config.components.length === 0) return (<div className={'ant-col ant-col-' + config.width} style={style}><div style={config.style}></div></div>)
    let _wrapStyle = style
    if (hidden) {
      _wrapStyle = {...style}
      _wrapStyle.display = 'none'
    }
    let title = config.setting && config.setting.title
    if (title && hidden === null) {
      title = ''
    }
    
    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={`ant-col ant-col-${config.width} ${mergeAble ? ' mk-merge-able mk-ctrl-' + (config.setting.ctrlNumber || 1) : ''} ${visible ? '' : ' close'}`} style={_wrapStyle}>
        <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>
          {title ? <div className="group-header" style={config.headerStyle}>
            <span className="title">{title}</span>
          </div> : null}
          <TabTransfer config={config}/>
        </div>