| | |
| | | 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')) |
| | |
| | | |
| | | 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> |