From 3ca91a731665962918a026f521c556f4745ebf35 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 16 十一月 2020 19:20:19 +0800
Subject: [PATCH] 2020-11-16

---
 src/tabviews/treepage/index.jsx |   86 +++++++++++++++++-------------------------
 1 files changed, 35 insertions(+), 51 deletions(-)

diff --git a/src/tabviews/treepage/index.jsx b/src/tabviews/treepage/index.jsx
index d90534d..579c736 100644
--- a/src/tabviews/treepage/index.jsx
+++ b/src/tabviews/treepage/index.jsx
@@ -13,8 +13,6 @@
 import MKEmitter from '@/utils/events.js'
 import asyncComponent from '@/utils/asyncComponent'
 import asyncSpinComponent from '@/utils/asyncSpinComponent'
-import {refreshTabView, modifyTabview} from '@/store/action'
-
 import NotFount from '@/components/404'
 import './index.scss'
 
@@ -51,7 +49,6 @@
     BIDs: {},             // 涓婄骇琛╥d
     visible: false,       // 寮规鏄剧ず闅愯棌鎺у埗
     treevisible: false,   // 鑿滃崟缁撴瀯鏍戝脊妗嗘樉绀洪殣钘忔帶鍒�
-    refreshtabs: null,    // 闇�瑕佸埛鏂扮殑鏍囩闆�
     confirmLoading: false,// 鑷畾涔夎缃ā鎬佹鍔犺浇涓�
     revertLoading: false, // 鎭㈠榛樿璁剧疆
     settingVisible: false,// 鑷畾涔夎缃ā鎬佹
@@ -483,33 +480,6 @@
   }
 
   /**
-   * @description 瀛愯〃鎿嶄綔瀹屾垚鍚庡埛鏂颁富琛�
-   */
-  handleMainTable = (type, tab) => {
-    if (type === 'maingrid' && (tab.supMenu === 'mainTable' || (!tab.supMenu && tab.level === 0))) {
-      this.loadmaindata()
-    } else if (type === 'mainline' && (tab.supMenu === 'mainTable' || (!tab.supMenu && tab.level === 0))) {
-      this.loadmaindata()
-    } else if ((type === 'maingrid' || type === 'mainline') && tab.supMenu) {
-      this.setState({
-        refreshtabs: [type, tab.supMenu]
-      }, () => {
-        this.setState({
-          refreshtabs: null
-        })
-      })
-    } else if (type === 'equaltab' && tab.equalTab && tab.equalTab.length > 0) {
-      this.setState({
-        refreshtabs: tab.equalTab
-      }, () => {
-        this.setState({
-          refreshtabs: null
-        })
-      })
-    }
-  }
-
-  /**
    * @description 琛ㄦ牸Id鍙樺寲
    */
   handleTableId = (type, id, data) => {
@@ -676,25 +646,43 @@
     })
   }
 
+  reloadData = (menuId) => {
+    const { MenuID } = this.props
+
+    if (MenuID !== menuId) return
+    
+    this.loadmaindata()
+  }
+
+  reloadMenuView = (menuId) => {
+    const { MenuID } = this.props
+
+    if (MenuID !== menuId) return
+
+    this.reloadview()
+  }
+
+  resetActiveMenu = (menuId) => {
+    const { MenuID } = this.props
+
+    if (MenuID !== menuId) return
+
+    this.setShortcut()
+  }
+
   UNSAFE_componentWillMount () {
     // 缁勪欢鍔犺浇鏃讹紝鑾峰彇鑿滃崟鏁版嵁
     this.loadconfig()
   }
 
-  UNSAFE_componentWillReceiveProps(nextProps) {
-    if (nextProps.refreshTab && nextProps.refreshTab.MenuID === this.props.MenuID) {
-      this.reloadview()
-      this.props.refreshTabView('')
-    } else if (!is(fromJS(this.props.tabviews), fromJS(nextProps.tabviews))) {
-      let selectTab = nextProps.tabviews.filter(tab => tab.selected)[0]
-      if (selectTab && selectTab.MenuID === this.props.MenuID) {
-        this.setShortcut()
-      }
-    }
-  }
-
   shouldComponentUpdate (nextProps, nextState) {
     return !is(fromJS(this.props), fromJS(nextProps)) || !is(fromJS(this.state), fromJS(nextState))
+  }
+
+  componentDidMount () {
+    MKEmitter.addListener('reloadData', this.reloadData)
+    MKEmitter.addListener('reloadMenuView', this.reloadMenuView)
+    MKEmitter.addListener('resetActiveMenu', this.resetActiveMenu)
   }
 
   /**
@@ -705,6 +693,9 @@
       return
     }
     document.onkeydown = () => {}
+    MKEmitter.removeListener('reloadData', this.reloadData)
+    MKEmitter.removeListener('reloadMenuView', this.reloadMenuView)
+    MKEmitter.removeListener('resetActiveMenu', this.resetActiveMenu)
   }
 
   changeExpandedKeys = (expandedKeys) => {
@@ -791,12 +782,10 @@
                           mainSearch={null}
                           userConfig={userConfig ? userConfig[_tab.uuid] : null}
                           SupMenuID={this.props.MenuID}
-                          refreshtabs={this.state.refreshtabs}
                           ContainerId={this.state.ContainerId}
                           BID={this.state.BIDs[_tab.supMenu] || ''}
                           BData={this.state.BIDs[_tab.supMenu + 'data'] || ''}
                           handleTableId={this.handleTableId}
-                          handleMainTable={(type) => this.handleMainTable(type, _tab)}
                         /> : null}
                     </TabPane>
                   )
@@ -868,8 +857,6 @@
 const mapStateToProps = (state) => {
   return {
     menuType: state.editLevel,
-    tabviews: state.tabviews,
-    refreshTab: state.refreshTab,
     permAction: state.permAction,
     permRoles: state.permRoles,
     memberLevel: state.memberLevel,
@@ -877,11 +864,8 @@
   }
 }
 
-const mapDispatchToProps = (dispatch) => {
-  return {
-    refreshTabView: (refreshTab) => dispatch(refreshTabView(refreshTab)),
-    modifyTabview: (tabviews) => dispatch(modifyTabview(tabviews))
-  }
+const mapDispatchToProps = () => {
+  return {}
 }
 
 export default connect(mapStateToProps, mapDispatchToProps)(TreePage)
\ No newline at end of file

--
Gitblit v1.8.0