From f1a4a2e83a5a3a3f8636c0d85a3a02471c5b07e7 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 05 三月 2025 15:39:52 +0800
Subject: [PATCH] Merge branch 'positec' into dms

---
 src/tabviews/custom/components/group/normal-group/index.jsx |   49 +++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 45 insertions(+), 4 deletions(-)

diff --git a/src/tabviews/custom/components/group/normal-group/index.jsx b/src/tabviews/custom/components/group/normal-group/index.jsx
index 3868f59..daaf5c3 100644
--- a/src/tabviews/custom/components/group/normal-group/index.jsx
+++ b/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>

--
Gitblit v1.8.0