From 5575dcb361ae7aff8095223db61ba40d6b64616a Mon Sep 17 00:00:00 2001
From: hyingbo <1363390067@qq.com>
Date: 星期六, 16 八月 2025 20:53:27 +0800
Subject: [PATCH] 添加首页功能

---
 src/components/layouts/TabLayout.vue |  654 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 328 insertions(+), 326 deletions(-)

diff --git a/src/components/layouts/TabLayout.vue b/src/components/layouts/TabLayout.vue
index b70473d..4eb6c7a 100644
--- a/src/components/layouts/TabLayout.vue
+++ b/src/components/layouts/TabLayout.vue
@@ -5,7 +5,7 @@
     <!-- update-end- author:sunjianlei --- date:20191009 --- for: 鎻愬崌鍙抽敭鑿滃崟鐨勫眰绾� -->
     <a-tabs
       @contextmenu.native="e => onContextmenu(e)"
-      v-if="multipage"
+      v-if="$route.meta.title!=='棣栭〉'&&multipage"
       :active-key="activePage"
       class="tab-layout-tabs"
       style="height:52px"
@@ -14,11 +14,12 @@
       @change="changePage"
       @tabClick="tabCallBack"
       @edit="editPage">
-      <a-tab-pane :id="page.fullPath" :key="page.fullPath" v-for="page in pageList" :closable="!(page.meta.title=='棣栭〉')">
-        <span slot="tab" :pagekey="page.fullPath">{{ page.meta.title }}</span>
+      <a-tab-pane :id="page.path" :key="page.path" v-for="page in pageList"
+                  :closable="!(page.meta.title=='棣栭〉')">
+        <span slot="tab" :pagekey="page.path">{{ page.meta.title }}</span>
       </a-tab-pane>
     </a-tabs>
-    <div style="margin: 12px 12px 0;">
+    <div :style="{padding: $route.meta.title=='棣栭〉'?'0':'12px 12px 0'}">
       <!-- update-begin-author:taoyan date:20201221 for:姝ゅ鍒犳帀transition鏍囩 涓嶇煡閬撲负浠�涔堝姞涓婂悗 椤甸潰璺敱鍒囨崲鐨勬椂鍊欏嵆1鍙婅彍鍗曞垏鍒�2鍙婅彍鍗曠殑鏃跺�� 涓や釜鑿滃崟椤甸潰浼氬悓鏃跺嚭鐜�300-500绉掑乏鍙� -->
       <keep-alive v-if="multipage">
         <router-view v-if="reloadFlag"/>
@@ -28,351 +29,352 @@
       </template>
       <!-- update-end-author:taoyan date:20201221 for:姝ゅ鍒犳帀transition鏍囩 涓嶇煡閬撲负浠�涔堝姞涓婂悗 椤甸潰璺敱鍒囨崲鐨勬椂鍊欏嵆1鍙婅彍鍗曞垏鍒�2鍙婅彍鍗曠殑鏃跺�� 涓や釜鑿滃崟椤甸潰浼氬悓鏃跺嚭鐜�300-500绉掑乏鍙� -->
     </div>
-    <!-- update-begin-author:zyf date:20211129 for:qiankun 鎸傝浇瀛愬簲鐢ㄧ洅瀛� -->
-    <div id="content" class="app-view-box"></div>
-    <!-- update-end-author:zyf date:20211129 for: qiankun 鎸傝浇瀛愬簲鐢ㄧ洅瀛�-->
   </global-layout>
 </template>
 
 <script>
-  import GlobalLayout from '@/components/page/GlobalLayout'
-  import Contextmenu from '@/components/menu/Contextmenu'
-  import { mixin, mixinDevice } from '@/utils/mixin.js'
-  import { triggerWindowResizeEvent } from '@/utils/util'
-  import Vue from 'vue'
-  import { CACHE_INCLUDED_ROUTES } from '@/store/mutation-types'
-  import registerApps from "@/qiankun";
+import GlobalLayout from '@/components/page/GlobalLayout'
+import Contextmenu from '@/components/menu/Contextmenu'
+import { mixin, mixinDevice } from '@/utils/mixin.js'
+import { triggerWindowResizeEvent } from '@/utils/util'
+import Vue from 'vue'
+import { CACHE_INCLUDED_ROUTES } from '@/store/mutation-types'
 
-  const indexKey = '/dashboard/analysis'
+const indexKey = '/dashboard/analysis'
 
-  export default {
-    name: 'TabLayout',
-    components: {
-      GlobalLayout,
-      Contextmenu
-    },
-    mixins: [mixin, mixinDevice],
-    data() {
-      return {
-        pageList: [],
-        linkList: [],
-        activePage: '',
-        menuVisible: false,
-        menuItemList: [
-          { key: '4', icon: 'reload', text: '鍒� 鏂�' },
-          { key: '1', icon: 'arrow-left', text: '鍏抽棴宸︿晶' },
-          { key: '2', icon: 'arrow-right', text: '鍏抽棴鍙充晶' },
-          { key: '3', icon: 'close', text: '鍏抽棴鍏跺畠' }
-        ],
-        reloadFlag:true
+export default {
+  name: 'TabLayout',
+  components: {
+    GlobalLayout,
+    Contextmenu
+  },
+  mixins: [mixin, mixinDevice],
+  data() {
+    return {
+      pageList: [],
+      linkList: [],
+      activePage: '',
+      menuVisible: false,
+      menuItemList: [
+        { key: '4', icon: 'reload', text: '鍒� 鏂�' },
+        { key: '1', icon: 'arrow-left', text: '鍏抽棴宸︿晶' },
+        { key: '2', icon: 'arrow-right', text: '鍏抽棴鍙充晶' },
+        { key: '3', icon: 'close', text: '鍏抽棴鍏跺畠' }
+      ],
+      reloadFlag: true
+    }
+  },
+  /* update_begin author:wuxianquan date:20190828 for: 鍏抽棴褰撳墠tab椤碉紝渚涘瓙椤甸潰璋冪敤 ->鏈涜彍鍗曡兘閰嶇疆澶栭摼锛岀洿鎺ュ脊鍑烘柊椤甸潰鑰屼笉鏄祵鍏frame #428 */
+  provide() {
+    return {
+      closeCurrent: this.closeCurrent
+    }
+  },
+  /* update_end author:wuxianquan date:20190828 for: 鍏抽棴褰撳墠tab椤碉紝渚涘瓙椤甸潰璋冪敤->鏈涜彍鍗曡兘閰嶇疆澶栭摼锛岀洿鎺ュ脊鍑烘柊椤甸潰鑰屼笉鏄祵鍏frame #428 */
+  computed: {
+    multipage() {
+      //鍒ゆ柇濡傛灉鏄墜鏈烘ā寮忥紝鑷姩鍒囨崲涓哄崟椤甸潰妯″紡
+      if (this.isMobile()) {
+        return false
+      } else {
+        return this.$store.state.app.multipage
+      }
+    }
+  },
+  created() {
+    if (this.$route.path != indexKey) {
+      this.addIndexToFirst()
+    }
+    // 澶嶅埗涓�涓猺oute瀵硅薄鍑烘潵锛屼笉鑳藉奖鍝嶅師route
+    let currentRoute = Object.assign({}, this.$route)
+    currentRoute.meta = Object.assign({}, currentRoute.meta)
+    this.pageList.push(currentRoute)
+    this.linkList.push(currentRoute.fullPath)
+    this.activePage = currentRoute.fullPath
+    this.$bus.$on('clickMenuTitleSelected', this.clickMenuTitleSelected)
+  },
+  mounted() {
+  },
+  watch: {
+    '$route': function(newRoute) {
+      //console.log("鏂扮殑璺敱",newRoute)
+      this.activePage = newRoute.fullPath
+      if (!this.multipage) {
+        this.linkList = [newRoute.fullPath]
+        this.pageList = [Object.assign({}, newRoute)]
+        // update-begin-author:taoyan date:20200211 for: TASK #3368 銆愯矾鐢辩紦瀛樸�戦椤电殑缂撳瓨璁剧疆鏈夐棶棰橈紝闇�瑕佹牴鎹悗鍙扮殑璺敱閰嶇疆鏉ュ疄鐜版槸鍚︾紦瀛�
+      } else if (indexKey == newRoute.fullPath) {
+        //棣栭〉鏃� 鍒ゆ柇鏄惁缂撳瓨 娌℃湁缂撳瓨 鍒锋柊涔�
+        if (newRoute.meta.keepAlive === false) {
+          this.routeReload()
+        }
+        // update-end-author:taoyan date:20200211 for: TASK #3368 銆愯矾鐢辩紦瀛樸�戦椤电殑缂撳瓨璁剧疆鏈夐棶棰橈紝闇�瑕佹牴鎹悗鍙扮殑璺敱閰嶇疆鏉ュ疄鐜版槸鍚︾紦瀛�
+      } else if (this.linkList.indexOf(newRoute.fullPath) < 0) {
+        this.linkList.push(newRoute.fullPath)
+        this.pageList.push(Object.assign({}, newRoute))
+        //// update-begin-author:sunjianlei date:20200103 for: 濡傛灉鏂板鐨勯〉闈㈤厤缃簡缂撳瓨璺敱锛岄偅涔堝氨寮哄埗鍒锋柊涓�閬� #842
+        // if (newRoute.meta.keepAlive) {
+        //   this.routeReload()
+        // }
+        //// update-end-author:sunjianlei date:20200103 for: 濡傛灉鏂板鐨勯〉闈㈤厤缃簡缂撳瓨璺敱锛岄偅涔堝氨寮哄埗鍒锋柊涓�閬� #842
+      } else if (this.linkList.indexOf(newRoute.fullPath) >= 0) {
+        let oldIndex = this.linkList.indexOf(newRoute.fullPath)
+        let oldPositionRoute = this.pageList[oldIndex]
+        this.pageList.splice(oldIndex, 1, Object.assign({}, newRoute, { meta: oldPositionRoute.meta }))
       }
     },
-    /* update_begin author:wuxianquan date:20190828 for: 鍏抽棴褰撳墠tab椤碉紝渚涘瓙椤甸潰璋冪敤 ->鏈涜彍鍗曡兘閰嶇疆澶栭摼锛岀洿鎺ュ脊鍑烘柊椤甸潰鑰屼笉鏄祵鍏frame #428 */
-    provide(){
-      return{
-        closeCurrent:this.closeCurrent,
-        changeTitle: this.changeTitle,
-        changeTabTitle: this.changeTabTitle,
+    'activePage': function(key) {
+      let index = this.linkList.lastIndexOf(key)
+      let waitRouter = this.pageList[index]
+      // 銆怲ESTA-523銆戜慨澶嶏細涓嶅厑璁搁噸澶嶈烦杞矾鐢卞紓甯�
+      if (waitRouter.path !== this.$route.fullPath) {
+        this.$router.push(Object.assign({}, waitRouter))
       }
+      this.changeTitle(waitRouter.meta.title)
     },
-    /* update_end author:wuxianquan date:20190828 for: 鍏抽棴褰撳墠tab椤碉紝渚涘瓙椤甸潰璋冪敤->鏈涜彍鍗曡兘閰嶇疆澶栭摼锛岀洿鎺ュ脊鍑烘柊椤甸潰鑰屼笉鏄祵鍏frame #428 */
-    computed: {
-      multipage() {
-        //鍒ゆ柇濡傛灉鏄墜鏈烘ā寮忥紝鑷姩鍒囨崲涓哄崟椤甸潰妯″紡
-        if (this.isMobile()) {
-          return false
-        } else {
-          return this.$store.state.app.multipage
+    'multipage': function(newVal) {
+      if (this.reloadFlag) {
+        if (!newVal) {
+          this.linkList = [this.$route.fullPath]
+          this.pageList = [this.$route]
         }
       }
     },
-    created() {
-      if (this.$route.path != indexKey) {
+    // update-begin-author:sunjianlei date:20191223 for: 淇浠庡崟椤垫ā寮忓垏鎹㈠洖澶氶〉妯″紡鍚庨椤典笉灞呯涓�浣嶇殑 BUG
+    device() {
+      if (this.multipage && this.linkList.indexOf(indexKey) === -1) {
         this.addIndexToFirst()
       }
-      // 澶嶅埗涓�涓猺oute瀵硅薄鍑烘潵锛屼笉鑳藉奖鍝嶅師route
-      let currentRoute = Object.assign({}, this.$route)
-      currentRoute.meta = Object.assign({}, currentRoute.meta)
-      this.pageList.push(currentRoute)
-      this.linkList.push(currentRoute.fullPath)
-      this.activePage = currentRoute.fullPath
-    },
-    mounted() {
-      if (process.env.VUE_APP_QIANKUN == 'true') {
-        //update-begin-author:zyf date:20211129 for:qiankun 娉ㄥ唽瀛愬簲鐢�
-        if (!window.qiankunStarted) {
-          window.qiankunStarted = true;
-          registerApps();
+    }
+    // update-end-author:sunjianlei date:20191223 for: 淇浠庡崟椤垫ā寮忓垏鎹㈠洖澶氶〉妯″紡鍚庨椤典笉灞呯涓�浣嶇殑 BUG
+  },
+  methods: {
+    // update-begin-author:sunjianlei date:20191223 for: 淇浠庡崟椤垫ā寮忓垏鎹㈠洖澶氶〉妯″紡鍚庨椤典笉灞呯涓�浣嶇殑 BUG
+    // 灏嗛椤垫坊鍔犲埌绗竴浣�
+    addIndexToFirst() {
+      this.pageList.splice(0, 0, {
+        name: 'dashboard-analysis',
+        path: indexKey,
+        fullPath: indexKey,
+        meta: {
+          icon: 'dashboard',
+          title: '棣栭〉'
         }
-        //update-end-author:zyf date:20211129 for:qiankun 娉ㄥ唽瀛愬簲鐢�
+      })
+      this.linkList.splice(0, 0, indexKey)
+    },
+    // update-end-author:sunjianlei date:20191223 for: 淇浠庡崟椤垫ā寮忓垏鎹㈠洖澶氶〉妯″紡鍚庨椤典笉灞呯涓�浣嶇殑 BUG
+
+    // update-begin-author:sunjianlei date:20200120 for: 鍔ㄦ�佹洿鏀归〉闈㈡爣棰�
+    changeTitle(title) {
+      let projectTitle = 'MDC鏅烘収杞﹂棿'
+      // 棣栭〉鐗规畩澶勭悊
+      if (this.$route.path === indexKey) {
+        document.title = projectTitle
+      } else {
+        document.title = title + ' 路 ' + projectTitle
       }
     },
-    watch: {
-      '$route': function(newRoute) {
-        //console.log("鏂扮殑璺敱",newRoute)
-        this.activePage = newRoute.fullPath
-        if (!this.multipage) {
-          this.linkList = [newRoute.fullPath]
-          this.pageList = [Object.assign({},newRoute)]
-        // update-begin-author:taoyan date:20200211 for: TASK #3368 銆愯矾鐢辩紦瀛樸�戦椤电殑缂撳瓨璁剧疆鏈夐棶棰橈紝闇�瑕佹牴鎹悗鍙扮殑璺敱閰嶇疆鏉ュ疄鐜版槸鍚︾紦瀛�
-        } else if(indexKey==newRoute.fullPath) {
-          //棣栭〉鏃� 鍒ゆ柇鏄惁缂撳瓨 娌℃湁缂撳瓨 鍒锋柊涔�
-          if (newRoute.meta.keepAlive === false) {
-            this.routeReload()
-          }
-        // update-end-author:taoyan date:20200211 for: TASK #3368 銆愯矾鐢辩紦瀛樸�戦椤电殑缂撳瓨璁剧疆鏈夐棶棰橈紝闇�瑕佹牴鎹悗鍙扮殑璺敱閰嶇疆鏉ュ疄鐜版槸鍚︾紦瀛�
-        }else if (this.linkList.indexOf(newRoute.fullPath) < 0) {
-          this.linkList.push(newRoute.fullPath)
-          this.pageList.push(Object.assign({},newRoute))
-          //// update-begin-author:sunjianlei date:20200103 for: 濡傛灉鏂板鐨勯〉闈㈤厤缃簡缂撳瓨璺敱锛岄偅涔堝氨寮哄埗鍒锋柊涓�閬� #842
-          // if (newRoute.meta.keepAlive) {
-          //   this.routeReload()
-          // }
-          //// update-end-author:sunjianlei date:20200103 for: 濡傛灉鏂板鐨勯〉闈㈤厤缃簡缂撳瓨璺敱锛岄偅涔堝氨寮哄埗鍒锋柊涓�閬� #842
-        } else if (this.linkList.indexOf(newRoute.fullPath) >= 0) {
-          let oldIndex = this.linkList.indexOf(newRoute.fullPath)
-          let oldPositionRoute = this.pageList[oldIndex]
-          this.pageList.splice(oldIndex, 1, Object.assign({},newRoute,{meta:oldPositionRoute.meta}))
-        }
-      },
-      'activePage': function(key) {
-        let index = this.linkList.lastIndexOf(key)
-        let waitRouter = this.pageList[index]
-        // 銆怲ESTA-523銆戜慨澶嶏細涓嶅厑璁搁噸澶嶈烦杞矾鐢卞紓甯�
-        if (waitRouter.fullPath !== this.$route.fullPath) {
-          this.$router.push(Object.assign({}, waitRouter))
-        }
-        this.changeTitle(waitRouter.meta.title)
-      },
-      'multipage': function(newVal) {
-        if(this.reloadFlag){
-          if (!newVal) {
-            this.linkList = [this.$route.fullPath]
-            this.pageList = [this.$route]
-          }
-        }
-      },
-      // update-begin-author:sunjianlei date:20191223 for: 淇浠庡崟椤垫ā寮忓垏鎹㈠洖澶氶〉妯″紡鍚庨椤典笉灞呯涓�浣嶇殑 BUG
-      device() {
-        if (this.multipage && this.linkList.indexOf(indexKey) === -1) {
-          this.addIndexToFirst()
-        }
-      },
-      // update-end-author:sunjianlei date:20191223 for: 淇浠庡崟椤垫ā寮忓垏鎹㈠洖澶氶〉妯″紡鍚庨椤典笉灞呯涓�浣嶇殑 BUG
+    // update-end-author:sunjianlei date:20200120 for: 鍔ㄦ�佹洿鏀归〉闈㈡爣棰�
+
+    changePage(key) {
+      this.activePage = key
     },
-    methods: {
-      // update-begin-author:sunjianlei date:20191223 for: 淇浠庡崟椤垫ā寮忓垏鎹㈠洖澶氶〉妯″紡鍚庨椤典笉灞呯涓�浣嶇殑 BUG
-      // 灏嗛椤垫坊鍔犲埌绗竴浣�
-      addIndexToFirst() {
-        this.pageList.splice(0, 0, {
-          name: 'dashboard-analysis',
-          path: indexKey,
-          fullPath: indexKey,
-          meta: {
-            icon: 'dashboard',
-            title: '棣栭〉'
-          }
-        })
-        this.linkList.splice(0, 0, indexKey)
-      },
-      // update-end-author:sunjianlei date:20191223 for: 淇浠庡崟椤垫ā寮忓垏鎹㈠洖澶氶〉妯″紡鍚庨椤典笉灞呯涓�浣嶇殑 BUG
+    tabCallBack() {
+      this.$nextTick(() => {
+        //update-begin-author:taoyan date: 20201211 for:銆愭柊鐗堛�憃nline鎶ラ敊 JT-100
+        setTimeout(() => {
+          //鐪佸競鍖虹粍浠堕噷闈㈢粰window缁戝畾浜嗕釜resize浜嬩欢 瀵艰嚧鍒囨崲椤甸潰鐨勬椂鍊欒Е鍙戜簡浠栫殑resize锛屼絾鏄垏鎹㈤〉闈紝鐪佸競鍖虹粍浠惰繕娌¤閿�姣佸墠灏辫Е鍙戜簡璇ヤ簨浠讹紝瀵艰嚧鎺у埗鍙版姤閿欙紝鍔犱釜寤惰繜
+          triggerWindowResizeEvent()
+        }, 20)
+        //update-end-author:taoyan date: 20201211 for:銆愭柊鐗堛�憃nline鎶ラ敊 JT-100
+      })
+    },
+    editPage(key, action) {
+      this[action](key)
+    },
+    remove(key) {
+      if (key == indexKey) {
+        this.$message.warning('棣栭〉涓嶈兘鍏抽棴!')
+        return
+      }
+      if (this.pageList.length === 1) {
+        this.$message.warning('杩欐槸鏈�鍚庝竴椤碉紝涓嶈兘鍐嶅叧闂簡鍟�')
+        return
+      }
+      let removeRoute = this.pageList.filter(item => item.path == key)
+      this.pageList = this.pageList.filter(item => item.path !== key)
+      let index = this.linkList.indexOf(key)
+      this.linkList = this.linkList.filter(item => item !== key)
+      index = index >= this.linkList.length ? this.linkList.length - 1 : index
+      this.activePage = this.linkList[index]
 
-      // update-begin-author:sunjianlei date:20200120 for: 鍔ㄦ�佹洿鏀归〉闈㈡爣棰�
-      /**
-       * 淇敼褰撳墠椤甸潰鐨勭獥鍙f爣棰�
-       * @param title 瑕佷慨鏀圭殑鏂版爣棰�
-       */
-      changeTitle(title) {
-        let projectTitle = "MDC鏅烘収杞﹂棿"
-        // 棣栭〉鐗规畩澶勭悊
-        if (this.$route.path === indexKey) {
-          document.title = projectTitle
-        } else {
-          document.title = title + ' 路 ' + projectTitle
+      //update-begin--Author:scott  Date:20201015 for锛氳矾鐢辩紦瀛橀棶棰橈紝鍏抽棴浜唗ab椤垫椂鍐嶆墦寮�灏变笉鍒锋柊 #842
+      //鍏抽棴椤甸潰鍒欎粠缂撳瓨cache_included_routes涓垹闄よ矾鐢憋紝涓嬫鐐瑰嚮鑿滃崟浼氶噸鏂板姞杞介〉闈�
+      let cacheRouterArray = Vue.ls.get(CACHE_INCLUDED_ROUTES) || []
+      if (removeRoute && removeRoute[0]) {
+        let componentName = removeRoute[0].meta.componentName
+        if (cacheRouterArray.includes(componentName)) {
+          cacheRouterArray.splice(cacheRouterArray.findIndex(item => item === componentName), 1)
+          Vue.ls.set(CACHE_INCLUDED_ROUTES, cacheRouterArray)
         }
-      },
-      /**
-       * 淇敼tab鏍囩鐨勬爣棰�
-       * @param title 瑕佷慨鏀圭殑鏂版爣棰�
-       * @param fullPath 瑕佷慨鏀圭殑璺敱鍏ㄨ矾寰勶紝濡傛灉涓嶅~灏辨槸淇敼褰撳墠璺敱
-       */
-      changeTabTitle(title, fullPath = '') {
-        if (title) {
-          let currentRoute = this.pageList.find((r) => r.fullPath === (fullPath ? fullPath : this.$route.fullPath))
-          if (currentRoute != null) {
-            currentRoute.meta = {...currentRoute.meta, title}
-          }
-        }
-      },
-      // update-end-author:sunjianlei date:20200120 for: 鍔ㄦ�佹洿鏀归〉闈㈡爣棰�
-
-      changePage(key) {
-        this.activePage = key
-      },
-      tabCallBack() {
-        this.$nextTick(() => {
-          //update-begin-author:taoyan date: 20201211 for:銆愭柊鐗堛�憃nline鎶ラ敊 JT-100
-         setTimeout(()=>{
-           //鐪佸競鍖虹粍浠堕噷闈㈢粰window缁戝畾浜嗕釜resize浜嬩欢 瀵艰嚧鍒囨崲椤甸潰鐨勬椂鍊欒Е鍙戜簡浠栫殑resize锛屼絾鏄垏鎹㈤〉闈紝鐪佸競鍖虹粍浠惰繕娌¤閿�姣佸墠灏辫Е鍙戜簡璇ヤ簨浠讹紝瀵艰嚧鎺у埗鍙版姤閿欙紝鍔犱釜寤惰繜
-           triggerWindowResizeEvent()
-         },20)
-          //update-end-author:taoyan date: 20201211 for:銆愭柊鐗堛�憃nline鎶ラ敊 JT-100
-        })
-      },
-      editPage(key, action) {
-        this[action](key)
-      },
-      remove(key) {
-        if (key == indexKey) {
-          this.$message.warning('棣栭〉涓嶈兘鍏抽棴!')
-          return
-        }
-        if (this.pageList.length === 1) {
-          this.$message.warning('杩欐槸鏈�鍚庝竴椤碉紝涓嶈兘鍐嶅叧闂簡鍟�')
-          return
-        }
-        console.log("this.pageList ",this.pageList );
-        let removeRoute = this.pageList.filter(item => item.fullPath == key)
-        this.pageList = this.pageList.filter(item => item.fullPath !== key)
-        let index = this.linkList.indexOf(key)
-        this.linkList = this.linkList.filter(item => item !== key)
-        index = index >= this.linkList.length ? this.linkList.length - 1 : index
-        this.activePage = this.linkList[index]
-
-        //update-begin--Author:scott  Date:20201015 for锛氳矾鐢辩紦瀛橀棶棰橈紝鍏抽棴浜唗ab椤垫椂鍐嶆墦寮�灏变笉鍒锋柊 #842
-        //鍏抽棴椤甸潰鍒欎粠缂撳瓨cache_included_routes涓垹闄よ矾鐢憋紝涓嬫鐐瑰嚮鑿滃崟浼氶噸鏂板姞杞介〉闈�
-        let cacheRouterArray = Vue.ls.get(CACHE_INCLUDED_ROUTES) || []
-        if (removeRoute && removeRoute[0]) {
-          let componentName = removeRoute[0].meta.componentName
-          console.log("key: ", key);
-          console.log("componentName: ", componentName);
-          if(cacheRouterArray.includes(componentName)){
-            cacheRouterArray.splice(cacheRouterArray.findIndex(item => item === componentName), 1)
-            Vue.ls.set(CACHE_INCLUDED_ROUTES, cacheRouterArray)
-          }
-          this.emitPageClosed(removeRoute[0])
-        }
-        //update-end--Author:scott  Date:20201015 for锛氳矾鐢辩紦瀛橀棶棰橈紝鍏抽棴浜唗ab椤垫椂鍐嶆墦寮�灏变笉鍒锋柊 #842
-
-      },
-      // 瑙﹀彂 page-closed 锛堥〉闈㈠叧闂級鍏ㄥ眬浜嬩欢
-      emitPageClosed(closedRoute) {
-        this.$root.$emit('page-closed', {
-          closedRoute,
-          pageList: this.pageList,
-          linkList: this.linkList,
-          activePage: this.activePage
-        })
-      },
-      onContextmenu(e) {
-        const pagekey = this.getPageKey(e.target)
-        if (pagekey !== null) {
-          e.preventDefault()
-          this.menuVisible = true
-        }
-      },
-      getPageKey(target, depth) {
-        depth = depth || 0
-        if (depth > 2) {
-          return null
-        }
-        let pageKey = target.getAttribute('pagekey')
-        pageKey = pageKey || (target.previousElementSibling ? target.previousElementSibling.getAttribute('pagekey') : null)
-        return pageKey || (target.firstElementChild ? this.getPageKey(target.firstElementChild, ++depth) : null)
-      },
-      onMenuSelect(key, target) {
-        let pageKey = this.getPageKey(target)
-        switch (key) {
-          case '1':
-            this.closeLeft(pageKey)
-            break
-          case '2':
-            this.closeRight(pageKey)
-            break
-          case '3':
-            this.closeOthers(pageKey)
-            break
-          case '4':
-            this.routeReload()
-            break
-          default:
-            break
-        }
-      },
-      /* update_begin author:wuxianquan date:20190828 for: 鍏抽棴褰撳墠tab椤碉紝渚涘瓙椤甸潰璋冪敤->鏈涜彍鍗曡兘閰嶇疆澶栭摼锛岀洿鎺ュ脊鍑烘柊椤甸潰鑰屼笉鏄祵鍏frame #428 */
-      closeCurrent(){
-        this.remove(this.activePage);
-      },
-      /* update_end author:wuxianquan date:20190828 for: 鍏抽棴褰撳墠tab椤碉紝渚涘瓙椤甸潰璋冪敤->鏈涜彍鍗曡兘閰嶇疆澶栭摼锛岀洿鎺ュ脊鍑烘柊椤甸潰鑰屼笉鏄祵鍏frame #428 */
-      closeOthers(pageKey) {
-        let index = this.linkList.indexOf(pageKey)
-        if (pageKey == indexKey || pageKey.indexOf('?ticke=')>=0) {
-          this.linkList = this.linkList.slice(index, index + 1)
-          this.pageList = this.pageList.slice(index, index + 1)
-          this.activePage = this.linkList[0]
-        } else {
-          let indexContent = this.pageList.slice(0, 1)[0]
-          this.linkList = this.linkList.slice(index, index + 1)
-          this.pageList = this.pageList.slice(index, index + 1)
-          this.linkList.unshift(indexContent.fullPath)
-          this.pageList.unshift(indexContent)
-          this.activePage = this.linkList[1]
-        }
-      },
-      closeLeft(pageKey) {
-        if (pageKey == indexKey) {
-          return
-        }
-        let tempList = [...this.pageList]
-        let indexContent = tempList.slice(0, 1)[0]
-        let index = this.linkList.indexOf(pageKey)
-        this.linkList = this.linkList.slice(index)
-        this.pageList = this.pageList.slice(index)
-        this.linkList.unshift(indexContent.fullPath)
+        this.emitPageClosed(removeRoute[0])
+      }
+      //update-end--Author:scott  Date:20201015 for锛氳矾鐢辩紦瀛橀棶棰橈紝鍏抽棴浜唗ab椤垫椂鍐嶆墦寮�灏变笉鍒锋柊 #842
+      this.tabCallBack()
+    },
+    // 瑙﹀彂 page-closed 锛堥〉闈㈠叧闂級鍏ㄥ眬浜嬩欢
+    emitPageClosed(closedRoute) {
+      this.$root.$emit('page-closed', {
+        closedRoute,
+        pageList: this.pageList,
+        linkList: this.linkList,
+        activePage: this.activePage
+      })
+    },
+    onContextmenu(e) {
+      const pagekey = this.getPageKey(e.target)
+      if (pagekey !== null) {
+        e.preventDefault()
+        this.menuVisible = true
+      }
+    },
+    getPageKey(target, depth) {
+      depth = depth || 0
+      if (depth > 2) {
+        return null
+      }
+      let pageKey = target.getAttribute('pagekey')
+      pageKey = pageKey || (target.previousElementSibling ? target.previousElementSibling.getAttribute('pagekey') : null)
+      return pageKey || (target.firstElementChild ? this.getPageKey(target.firstElementChild, ++depth) : null)
+    },
+    onMenuSelect(key, target) {
+      let pageKey = this.getPageKey(target)
+      switch (key) {
+        case '1':
+          this.closeLeft(pageKey)
+          break
+        case '2':
+          this.closeRight(pageKey)
+          break
+        case '3':
+          this.closeOthers(pageKey)
+          break
+        case '4':
+          this.routeReload()
+          break
+        default:
+          break
+      }
+    },
+    /* update_begin author:wuxianquan date:20190828 for: 鍏抽棴褰撳墠tab椤碉紝渚涘瓙椤甸潰璋冪敤->鏈涜彍鍗曡兘閰嶇疆澶栭摼锛岀洿鎺ュ脊鍑烘柊椤甸潰鑰屼笉鏄祵鍏frame #428 */
+    closeCurrent() {
+      this.remove(this.activePage)
+    },
+    /* update_end author:wuxianquan date:20190828 for: 鍏抽棴褰撳墠tab椤碉紝渚涘瓙椤甸潰璋冪敤->鏈涜彍鍗曡兘閰嶇疆澶栭摼锛岀洿鎺ュ脊鍑烘柊椤甸潰鑰屼笉鏄祵鍏frame #428 */
+    closeOthers(pageKey) {
+      let index = this.linkList.indexOf(pageKey)
+      if (pageKey == indexKey || pageKey.indexOf('?ticke=') >= 0) {
+        this.linkList = this.linkList.slice(index, index + 1)
+        this.pageList = this.pageList.slice(index, index + 1)
+        this.activePage = this.linkList[0]
+      } else {
+        let indexContent = this.pageList.slice(0, 1)[0]
+        this.linkList = this.linkList.slice(index, index + 1)
+        this.pageList = this.pageList.slice(index, index + 1)
+        this.linkList.unshift(indexContent.path)
         this.pageList.unshift(indexContent)
-        if (this.linkList.indexOf(this.activePage) < 0) {
-          this.activePage = this.linkList[0]
+        this.activePage = this.linkList[1]
+      }
+    },
+    closeLeft(pageKey) {
+      if (pageKey == indexKey) {
+        return
+      }
+      let tempList = [...this.pageList]
+      let indexContent = tempList.slice(0, 1)[0]
+      let index = this.linkList.indexOf(pageKey)
+      this.linkList = this.linkList.slice(index)
+      this.pageList = this.pageList.slice(index)
+      this.linkList.unshift(indexContent.path)
+      this.pageList.unshift(indexContent)
+      // 鑻ュ皢婵�娲婚〉涓�骞跺叧闂垯鏄剧ず瀵艰埅鏍忛櫎棣栭〉绗竴涓〉闈�
+      if (this.linkList.indexOf(this.activePage) < 0) {
+        this.activePage = this.linkList[1]
+      }
+    },
+    closeRight(pageKey) {
+      let index = this.linkList.indexOf(pageKey)
+      this.linkList = this.linkList.slice(0, index + 1)
+      this.pageList = this.pageList.slice(0, index + 1)
+      // 鑻ュ皢婵�娲婚〉涓�骞跺叧闂垯鏄剧ず瀵艰埅鏍忔渶鍚庝竴涓〉闈�
+      if (this.linkList.indexOf(this.activePage) < 0) {
+        this.activePage = this.linkList[this.linkList.length - 1]
+      }
+    },
+    //update-begin-author:taoyan date:20190430 for:鍔ㄦ�佽矾鐢眛itle鏄剧ず閰嶇疆鐨勮彍鍗晅itle鑰屼笉鏄叾瀵瑰簲璺敱鐨則itle
+    dynamicRouterShow(key, title) {
+      let keyIndex = this.linkList.indexOf(key)
+      if (keyIndex >= 0) {
+        let currRouter = this.pageList[keyIndex]
+        let meta = Object.assign({}, currRouter.meta, { title: title })
+        this.pageList.splice(keyIndex, 1, Object.assign({}, currRouter, { meta: meta }))
+        if (key === this.activePage) {
+          this.changeTitle(title)
         }
-      },
-      closeRight(pageKey) {
-        let index = this.linkList.indexOf(pageKey)
-        this.linkList = this.linkList.slice(0, index + 1)
-        this.pageList = this.pageList.slice(0, index + 1)
-        if (this.linkList.indexOf(this.activePage < 0)) {
-          this.activePage = this.linkList[this.linkList.length - 1]
-        }
-      },
-      //update-begin-author:taoyan date:20190430 for:鍔ㄦ�佽矾鐢眛itle鏄剧ず閰嶇疆鐨勮彍鍗晅itle鑰屼笉鏄叾瀵瑰簲璺敱鐨則itle
-      dynamicRouterShow(key,title){
-        let keyIndex = this.linkList.indexOf(key)
-        if(keyIndex>=0){
-          let currRouter = this.pageList[keyIndex]
-          let meta = Object.assign({},currRouter.meta,{title:title})
-          this.pageList.splice(keyIndex, 1, Object.assign({},currRouter,{meta:meta}))
-          if (key === this.activePage) {
-            this.changeTitle(title)
-          }
-        }
-      },
-      //update-end-author:taoyan date:20190430 for:鍔ㄦ�佽矾鐢眛itle鏄剧ず閰嶇疆鐨勮彍鍗晅itle鑰屼笉鏄叾瀵瑰簲璺敱鐨則itle
+      }
+    },
+    //update-end-author:taoyan date:20190430 for:鍔ㄦ�佽矾鐢眛itle鏄剧ず閰嶇疆鐨勮彍鍗晅itle鑰屼笉鏄叾瀵瑰簲璺敱鐨則itle
 
-      //update-begin-author:taoyan date:20191008 for:璺敱鍒锋柊
-      routeReload(){
-        this.reloadFlag = false
-        let ToggleMultipage = "ToggleMultipage"
-        this.$store.dispatch(ToggleMultipage,false)
-        this.$nextTick(()=>{
-          this.$store.dispatch(ToggleMultipage,true)
-          this.reloadFlag = true
-        })
-      },
-      //update-end-author:taoyan date:20191008 for:璺敱鍒锋柊
-      //鏂板涓�涓繑鍥炴柟娉�
-      excuteCallback(callback){
-        callback()
-      },
+    //update-begin-author:taoyan date:20191008 for:璺敱鍒锋柊
+    routeReload() {
+      this.reloadFlag = false
+      let ToggleMultipage = 'ToggleMultipage'
+      this.$store.dispatch(ToggleMultipage, false)
+      this.$nextTick(() => {
+        this.$store.dispatch(ToggleMultipage, true)
+        this.reloadFlag = true
+      })
+    },
+    //update-end-author:taoyan date:20191008 for:璺敱鍒锋柊
+    //鏂板涓�涓繑鍥炴柟娉�
+    excuteCallback(callback) {
+      callback()
+    },
+
+    clickMenuTitleSelected(selectedMenus) {
+      //console.log("鏂扮殑璺敱",newRoute)
+      this.activePage = selectedMenus[0].path
+      if (!this.multipage) {
+        this.linkList = [this.linkList[0], selectedMenus[0].path]
+        this.pageList = [this.pageList[0], Object.assign({}, selectedMenus[0])]
+        // update-begin-author:taoyan date:20200211 for: TASK #3368 銆愯矾鐢辩紦瀛樸�戦椤电殑缂撳瓨璁剧疆鏈夐棶棰橈紝闇�瑕佹牴鎹悗鍙扮殑璺敱閰嶇疆鏉ュ疄鐜版槸鍚︾紦瀛�
+      } else if (indexKey == selectedMenus[0].path) {
+        //棣栭〉鏃� 鍒ゆ柇鏄惁缂撳瓨 娌℃湁缂撳瓨 鍒锋柊涔�
+        if (selectedMenus[0].meta.keepAlive === false) {
+          this.routeReload()
+        }
+        // update-end-author:taoyan date:20200211 for: TASK #3368 銆愯矾鐢辩紦瀛樸�戦椤电殑缂撳瓨璁剧疆鏈夐棶棰橈紝闇�瑕佹牴鎹悗鍙扮殑璺敱閰嶇疆鏉ュ疄鐜版槸鍚︾紦瀛�
+      } else {
+        // selectedMenus.forEach(menuItem => {
+        //   if (!this.linkList.includes(menuItem.path)) {
+        //     console.log('瑙﹀彂澧炲姞')
+        //     this.linkList.push(menuItem.path)
+        //     this.pageList.push(menuItem)
+        //   } else {
+        //     console.log('瑙﹀彂娌℃湁澧炲姞')
+        //     let oldIndex = this.linkList.indexOf(menuItem.path)
+        //     let oldPositionRoute = this.pageList[oldIndex]
+        //     this.pageList.splice(oldIndex, 1, Object.assign({}, menuItem, { meta: oldPositionRoute.meta }))
+        //   }
+        // })
+        // 鐐瑰嚮鏍囬鍚庡湪瀵艰埅鏍忚鐩栧墠涓�涓爣棰樻墍灞曞紑鐨勪笅绾ц彍鍗�
+        this.linkList = [this.linkList[0], ...selectedMenus.map(item => item.path)]
+        this.pageList = [this.pageList[0], ...selectedMenus]
+      }
     }
   }
+}
 </script>
 
 <style lang="less">
@@ -423,9 +425,9 @@
 
     &.ant-tabs-card .ant-tabs-tab {
 
-      padding: 0 24px !important;
-      background-color: white !important;
-      margin-right: 10px !important;
+    padding: 0 20px 0 2px !important;
+    background-color: white !important;
+    /*margin-right: 10px !important;*/
 
       .ant-tabs-close-x {
         width: 12px !important;

--
Gitblit v1.9.3