From a181fc113d024ed34d6b488c65882961bd1de3f4 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 02 六月 2020 19:00:57 +0800
Subject: [PATCH] 2020-06-02

---
 src/templates/sharecomponent/tabscomponent/index.jsx |   49 +++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 45 insertions(+), 4 deletions(-)

diff --git a/src/templates/sharecomponent/tabscomponent/index.jsx b/src/templates/sharecomponent/tabscomponent/index.jsx
index 5749ffe..79711ac 100644
--- a/src/templates/sharecomponent/tabscomponent/index.jsx
+++ b/src/templates/sharecomponent/tabscomponent/index.jsx
@@ -16,7 +16,6 @@
 
 class TablesComponent extends Component {
   static propTpyes = {
-    type: PropTypes.string,       // 鑿滃崟绫诲瀷
     tabs: PropTypes.array,        // 鏍囩缁�
     config: PropTypes.object,     // 椤甸潰閰嶇疆
     setSubConfig: PropTypes.func, // 瀛愭爣绛鹃厤缃�
@@ -28,6 +27,7 @@
     tabgroups: [],     // 鏍囩缁�
     card: [],          // 缂栬緫鏍囩
     group: [],         // 缂栬緫缁�
+    levels: null,      // 鏍戝舰椤甸潰鐨勬爣绛剧骇鍒叧鑱�
     visible: false     // 妯℃�佹鎺у埗
   }
 
@@ -83,22 +83,28 @@
    * @description 鏍囩缂栬緫锛岀瓫閫夊彲閫夌殑涓嬬骇鏍囩涓庡凡鍏宠仈鐨勪笅绾ф爣绛�
    */
   handleTab = (card, _group) => {
+    const { config } = this.props
     let tabgroups = fromJS(this.state.tabgroups).toJS()
 
     let menus = [
       {value: '', text: '绌�'},
-      {value: 'mainTable', text: this.props.type === 'main' ? '涓昏〃' : '涓绘暟鎹�'}
+      {value: 'mainTable', text: '涓昏〃'}
     ]
     let equalTabs = []
     let supMenu = card.supMenu || ''
     let equalTab = card.equalTab || []
     let isuptab = true
     let equalTabIds = []
+    let levels = {}
 
-    tabgroups.forEach((group, i) => {
+    tabgroups.forEach(group => {
       if (group.uuid === _group.uuid) {
         isuptab = false
         group.sublist.forEach(tab => { // 鍙叧鑱旂殑鍚岀骇鏍囩
+          if (tab.level) {
+            levels[tab.uuid] = tab.level
+          }
+
           if (tab.uuid === card.uuid) return
 
           equalTabIds.push(tab.uuid)
@@ -106,6 +112,10 @@
         })
       } else if (isuptab) {
         group.sublist.forEach(tab => {
+          if (tab.level) {
+            levels[tab.uuid] = tab.level
+          }
+
           menus.push({
             value: tab.uuid,
             text: tab.label
@@ -122,11 +132,16 @@
       equalTab = equalTab.filter(tabId => equalTabIds.includes(tabId))
     }
 
+    if (config.Template !== 'TreePage') {
+      levels = null
+    }
+
     this.setState({
       visible: true,
       card: card,
+      levels: levels,
       group: _group,
-      formlist: getTabForm(card, supMenu, menus, equalTab, equalTabs, this.props.type)
+      formlist: getTabForm(card, supMenu, menus, equalTab, equalTabs, config.Template)
     })
   }
 
@@ -176,6 +191,20 @@
         return _group
       })
 
+      // 鏇存柊涓庝箣鍏宠仈鐨勬爣绛炬樉绀虹骇鍒�
+      if (config.Template === 'TreePage' && res.level !== card.level) {
+        tabgroups = tabgroups.map(_group => {
+          _group.sublist = _group.sublist.map(item => {
+            if (item.supMenu === res.uuid) {
+              item.level = res.level
+            }
+
+            return item
+          })
+          return _group
+        })
+      }
+
       this.setState({
         card: null,
         group: null,
@@ -204,6 +233,17 @@
           if (_group.uuid === group.uuid) {
             _group.sublist = _group.sublist.filter(item => item.uuid !== card.uuid)
           }
+          return _group
+        })
+
+        // 娓呴櫎涓庝箣鍏宠仈鏍囩鐨勪笂绾ф爣绛捐缃�
+        tabgroups = tabgroups.map(_group => {
+          _group.sublist = _group.sublist.map(item => {
+            if (item.supMenu === card.uuid) {
+              item.supMenu = ''
+            }
+            return item
+          })
           return _group
         })
 
@@ -386,6 +426,7 @@
             dict={this.state.dict}
             card={this.state.card}
             tabs={this.props.tabs}
+            levels={this.state.levels}
             formlist={this.state.formlist}
             inputSubmit={this.handleSubmit}
             wrappedComponentRef={(inst) => this.tabsFormRef = inst}

--
Gitblit v1.8.0