From a16a7006603e4b68b52689e88479881bff8c6106 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期六, 26 七月 2025 17:06:44 +0800
Subject: [PATCH] 维修工单修改

---
 src/components/layouts/TabLayout.vue |  133 +++++++++++++++++++++++++++----------------
 1 files changed, 83 insertions(+), 50 deletions(-)

diff --git a/src/components/layouts/TabLayout.vue b/src/components/layouts/TabLayout.vue
index c04e062..31d3ea8 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"/>
@@ -60,13 +61,13 @@
           { key: '2', icon: 'arrow-right', text: '鍏抽棴鍙充晶' },
           { key: '3', icon: 'close', text: '鍏抽棴鍏跺畠' }
         ],
-        reloadFlag:true
+        reloadFlag: true
       }
     },
     /* update_begin author:wuxianquan date:20190828 for: 鍏抽棴褰撳墠tab椤碉紝渚涘瓙椤甸潰璋冪敤 ->鏈涜彍鍗曡兘閰嶇疆澶栭摼锛岀洿鎺ュ脊鍑烘柊椤甸潰鑰屼笉鏄祵鍏frame #428 */
-    provide(){
-      return{
-        closeCurrent:this.closeCurrent
+    provide() {
+      return {
+        closeCurrent: this.closeCurrent
       }
     },
     /* update_end author:wuxianquan date:20190828 for: 鍏抽棴褰撳墠tab椤碉紝渚涘瓙椤甸潰璋冪敤->鏈涜彍鍗曡兘閰嶇疆澶栭摼锛岀洿鎺ュ脊鍑烘柊椤甸潰鑰屼笉鏄祵鍏frame #428 */
@@ -90,6 +91,7 @@
       this.pageList.push(currentRoute)
       this.linkList.push(currentRoute.fullPath)
       this.activePage = currentRoute.fullPath
+      this.$bus.$on('clickMenuTitleSelected', this.clickMenuTitleSelected)
     },
     mounted() {
     },
@@ -99,17 +101,17 @@
         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) {
+          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) {
+          // 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))
+          this.pageList.push(Object.assign({}, newRoute))
           //// update-begin-author:sunjianlei date:20200103 for: 濡傛灉鏂板鐨勯〉闈㈤厤缃簡缂撳瓨璺敱锛岄偅涔堝氨寮哄埗鍒锋柊涓�閬� #842
           // if (newRoute.meta.keepAlive) {
           //   this.routeReload()
@@ -118,20 +120,20 @@
         } 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}))
+          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) {
+        if (waitRouter.path !== this.$route.fullPath) {
           this.$router.push(Object.assign({}, waitRouter))
         }
         this.changeTitle(waitRouter.meta.title)
       },
       'multipage': function(newVal) {
-        if(this.reloadFlag){
+        if (this.reloadFlag) {
           if (!newVal) {
             this.linkList = [this.$route.fullPath]
             this.pageList = [this.$route]
@@ -143,7 +145,7 @@
         if (this.multipage && this.linkList.indexOf(indexKey) === -1) {
           this.addIndexToFirst()
         }
-      },
+      }
       // update-end-author:sunjianlei date:20191223 for: 淇浠庡崟椤垫ā寮忓垏鎹㈠洖澶氶〉妯″紡鍚庨椤典笉灞呯涓�浣嶇殑 BUG
     },
     methods: {
@@ -165,7 +167,7 @@
 
       // update-begin-author:sunjianlei date:20200120 for: 鍔ㄦ�佹洿鏀归〉闈㈡爣棰�
       changeTitle(title) {
-        let projectTitle = "缁熻鍒嗘瀽"
+        let projectTitle = 'MDC鏅烘収杞﹂棿'
         // 棣栭〉鐗规畩澶勭悊
         if (this.$route.path === indexKey) {
           document.title = projectTitle
@@ -181,10 +183,10 @@
       tabCallBack() {
         this.$nextTick(() => {
           //update-begin-author:taoyan date: 20201211 for:銆愭柊鐗堛�憃nline鎶ラ敊 JT-100
-         setTimeout(()=>{
-           //鐪佸競鍖虹粍浠堕噷闈㈢粰window缁戝畾浜嗕釜resize浜嬩欢 瀵艰嚧鍒囨崲椤甸潰鐨勬椂鍊欒Е鍙戜簡浠栫殑resize锛屼絾鏄垏鎹㈤〉闈紝鐪佸競鍖虹粍浠惰繕娌¤閿�姣佸墠灏辫Е鍙戜簡璇ヤ簨浠讹紝瀵艰嚧鎺у埗鍙版姤閿欙紝鍔犱釜寤惰繜
-           triggerWindowResizeEvent()
-         },20)
+          setTimeout(() => {
+            //鐪佸競鍖虹粍浠堕噷闈㈢粰window缁戝畾浜嗕釜resize浜嬩欢 瀵艰嚧鍒囨崲椤甸潰鐨勬椂鍊欒Е鍙戜簡浠栫殑resize锛屼絾鏄垏鎹㈤〉闈紝鐪佸競鍖虹粍浠惰繕娌¤閿�姣佸墠灏辫Е鍙戜簡璇ヤ簨浠讹紝瀵艰嚧鎺у埗鍙版姤閿欙紝鍔犱釜寤惰繜
+            triggerWindowResizeEvent()
+          }, 20)
           //update-end-author:taoyan date: 20201211 for:銆愭柊鐗堛�憃nline鎶ラ敊 JT-100
         })
       },
@@ -200,9 +202,8 @@
           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 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
@@ -213,16 +214,14 @@
         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)){
+          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
-
+        this.tabCallBack()
       },
       // 瑙﹀彂 page-closed 锛堥〉闈㈠叧闂級鍏ㄥ眬浜嬩欢
       emitPageClosed(closedRoute) {
@@ -269,13 +268,13 @@
         }
       },
       /* update_begin author:wuxianquan date:20190828 for: 鍏抽棴褰撳墠tab椤碉紝渚涘瓙椤甸潰璋冪敤->鏈涜彍鍗曡兘閰嶇疆澶栭摼锛岀洿鎺ュ脊鍑烘柊椤甸潰鑰屼笉鏄祵鍏frame #428 */
-      closeCurrent(){
-        this.remove(this.activePage);
+      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) {
+        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]
@@ -283,7 +282,7 @@
           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.linkList.unshift(indexContent.path)
           this.pageList.unshift(indexContent)
           this.activePage = this.linkList[1]
         }
@@ -297,27 +296,29 @@
         let index = this.linkList.indexOf(pageKey)
         this.linkList = this.linkList.slice(index)
         this.pageList = this.pageList.slice(index)
-        this.linkList.unshift(indexContent.fullPath)
+        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]
         }
       },
       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)) {
+        // 鑻ュ皢婵�娲婚〉涓�骞跺叧闂垯鏄剧ず瀵艰埅鏍忔渶鍚庝竴涓〉闈�
+        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){
+      dynamicRouterShow(key, title) {
         let keyIndex = this.linkList.indexOf(key)
-        if(keyIndex>=0){
+        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}))
+          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)
           }
@@ -326,20 +327,52 @@
       //update-end-author:taoyan date:20190430 for:鍔ㄦ�佽矾鐢眛itle鏄剧ず閰嶇疆鐨勮彍鍗晅itle鑰屼笉鏄叾瀵瑰簲璺敱鐨則itle
 
       //update-begin-author:taoyan date:20191008 for:璺敱鍒锋柊
-      routeReload(){
+      routeReload() {
         this.reloadFlag = false
-        let ToggleMultipage = "ToggleMultipage"
-        this.$store.dispatch(ToggleMultipage,false)
-        this.$nextTick(()=>{
-          this.$store.dispatch(ToggleMultipage,true)
+        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){
+      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>
@@ -392,9 +425,9 @@
 
     &.ant-tabs-card .ant-tabs-tab {
 
-      padding: 0 24px !important;
+      padding: 0 20px 0 2px !important;
       background-color: white !important;
-      margin-right: 10px !important;
+      /*margin-right: 10px !important;*/
 
       .ant-tabs-close-x {
         width: 12px !important;
@@ -422,7 +455,7 @@
       border-bottom: 1px solid transparent !important;
     }
     .ant-tabs-tab-active {
-      border-color: @primary-color!important;
+      border-color: @primary-color !important;
     }
   }
 

--
Gitblit v1.9.3