From 891e8aaad3b2ce6980fd44d1cf49192dca1c3c66 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 23 十一月 2022 14:30:30 +0800
Subject: [PATCH] 2022-11-23

---
 src/components/tabview/index.jsx |   38 +++++++++++++++++++++++---------------
 1 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/src/components/tabview/index.jsx b/src/components/tabview/index.jsx
index 2828134..2d23bc8 100644
--- a/src/components/tabview/index.jsx
+++ b/src/components/tabview/index.jsx
@@ -20,10 +20,10 @@
 const BaseTable = asyncComponent(() => import('@/tabviews/basetable'))
 const CalendarPage = asyncComponent(() => import('@/tabviews/calendar'))
 const TreePage = asyncComponent(() => import('@/tabviews/treepage'))
-const TabManage = asyncComponent(() => import('@/tabviews/tabmanage'))
 const Iframe = asyncComponent(() => import('@/tabviews/iframe'))
 const RoleManage = asyncComponent(() => import('@/tabviews/rolemanage'))
 const FormTab = asyncComponent(() => import('@/tabviews/formtab'))
+const TabManage = asyncComponent(() => import('@/tabviews/tabmanage'))
 
 class TabViews extends Component {
   static propTpyes = {
@@ -109,7 +109,7 @@
   
       // 鑾峰彇涓昏彍鍗曞弬鏁�
       let menudefer = new Promise(resolve => {
-        Api.getAppVersion().then(() => {
+        Api.getAppVersion(menu.MenuID).then(() => {
           resolve()
         }, () => {
           resolve()
@@ -124,10 +124,10 @@
     }
   }
 
-  modifyTabs = (tab, type, fixed) => {
+  modifyTabs = (tab, fixed) => {
     const { tabviews, activeId } = this.state
 
-    if (type === 'plus' && fixed) {
+    if (fixed) {
       let _tabs = tabviews.filter(item => item.MenuID !== tab.MenuID)
       let index = _tabs.findIndex(item => item.MenuID === activeId)
 
@@ -144,7 +144,7 @@
           activeId: tab.MenuID
         })
       })
-    } else if (type === 'plus') {
+    } else {
       if (tabviews.findIndex(item => item.MenuID === tab.MenuID) > -1) {
         let _tabs = tabviews.filter(item => item.MenuID !== tab.MenuID)
         this.setState({
@@ -161,11 +161,6 @@
           activeId: tab.MenuID
         })
       }
-    } else if (type === 'replace') {
-      this.setState({
-        tabviews: tab ? [tab] : [],
-        activeId: tab ? tab.MenuID : ''
-      })
     }
 
     let node = document.getElementById('root').parentNode.parentNode
@@ -185,26 +180,39 @@
     })
   }
 
+  changeTemp = (MenuID, Template) => {
+    let tabs = fromJS(this.state.tabviews).toJS()
+
+    this.setState({
+      tabviews: tabs.map(item => {
+        if (item.MenuID === MenuID) {
+          item.type = Template
+        }
+        return item
+      })
+    })
+  }
+
   selectcomponent = (view) => {
     // 鏍规嵁tab椤典腑鑿滃崟淇℃伅锛岄�夋嫨鎵�闇�鐨勭粍浠�
     if (view.type === 'Home') {
       return (<Home MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>)
     } else if (view.type === 'CommonTable') {
-      return (<CommonTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>)
+      return (<CommonTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param} changeTemp={this.changeTemp}/>)
     } else if (view.type === 'BaseTable') {
-      return (<BaseTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>)
+      return (<BaseTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param} changeTemp={this.changeTemp}/>)
     } else if (view.type === 'CustomPage') {
-      return (<CustomPage MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>)
+      return (<CustomPage MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param} changeTemp={this.changeTemp}/>)
     } else if (view.type === 'TreePage') {
       return (<TreePage MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>)
     } else if (view.type === 'CalendarPage') {
       return (<CalendarPage MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>)
-    } else if (view.type === 'TabManage') {
-      return (<TabManage MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>)
     } else if (view.type === 'RolePermission') {
       return (<RoleManage MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>)
     } else if (view.type === 'FormTab') {
       return (<FormTab MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>)
+    } else if (view.type === 'TabManage') {
+      return (<TabManage MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>)
     } else if (view.type === 'iframe') {
       return (<Iframe key={view.MenuID} MenuID={view.MenuID} MenuNo={view.MenuNo} title={view.MenuName} MenuName={view.MenuName} url={window.GLOB.baseurl + 'zh-CN/' + view.LinkUrl}/>)
     } else {

--
Gitblit v1.8.0