From 02d848bf39005e83882a87f8bc322d8499b92fbc Mon Sep 17 00:00:00 2001
From: whychdw <49690745@qq.com>
Date: 星期六, 29 八月 2020 10:05:44 +0800
Subject: [PATCH] 提交修改

---
 src/pages/home.vue |   35 ++++++++++++++++++++++++++++++++++-
 1 files changed, 34 insertions(+), 1 deletions(-)

diff --git a/src/pages/home.vue b/src/pages/home.vue
index af8982d..e29510c 100644
--- a/src/pages/home.vue
+++ b/src/pages/home.vue
@@ -10,7 +10,7 @@
             class="no-selected full-height add-m-menu flex-layout">
                 <el-tab-pane v-for="item in tabs" :key="item.name" 
                 :label="item.label" :name="item.name" :closable="item.closable">
-                    <iframe :src="item.src" width="100%" height="100%" frameborder="0" scrolling="no"></iframe>
+                    <iframe :name="item.name" :src="item.src" width="100%" height="100%" frameborder="0" scrolling="no"></iframe>
                 </el-tab-pane>
             </el-tabs>
         </div>
@@ -95,7 +95,40 @@
             // 璁剧疆婵�娲荤殑瀵艰埅
             this.acTabs = menu.name;
         },
+        // 澶勭悊浠庡瓙iframe涓幏鍙栧埌鐨勬寚浠�
+        handleMessage(msg) {
+            switch(msg.cmd) {
+                // 鍚屾椤甸潰鐨勬寚浠�
+                case 'syncPage':
+                    this.syncPage(msg.params);
+                break;
+            }
+        },
+        syncPage(params) {
+            let tabs = this.tabs;
+            let menu = params.pageInfo;
+            // 妫�娴媙ame鏄惁宸茬粡瀛樺湪tabs鍐�
+            let notIn = true;
+            tabs.forEach(item=>{
+                if(item.name == menu.name) {
+                    notIn = false;
+                }
+            });
+            // 涓嶅湪, 娣诲姞menu鍒皌abs涓�
+            if(notIn) {
+                tabs.push(menu);
+            }
+
+            // 璁剧疆婵�娲荤殑瀵艰埅
+            this.acTabs = menu.name;
+        }
     },
+    mounted() {
+        window.addEventListener('message', (msg)=>{
+            // 澶勭悊鏁版嵁
+            this.handleMessage(msg.data);
+        });
+    }
 }
 </script>
 

--
Gitblit v1.9.1