From 8d2b5e99e378820ec9d01d136ee208df7d4a3979 Mon Sep 17 00:00:00 2001 From: toesbieya <1647775459@qq.com> Date: Mon, 24 Aug 2020 16:48:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Diframe=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vue/src/layout/component/TagsView/index.vue | 2 +- vue/src/router/index.js | 18 +++++++++++++----- vue/src/router/module/example.js | 4 ++-- vue/src/store/module/iframe.js | 6 +++--- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/vue/src/layout/component/TagsView/index.vue b/vue/src/layout/component/TagsView/index.vue index 27041f5..742d6f1 100644 --- a/vue/src/layout/component/TagsView/index.vue +++ b/vue/src/layout/component/TagsView/index.vue @@ -105,7 +105,7 @@ export default { } }, - //将当前具有title的路由添加为tab页 + //将当前具有meta.title的路由添加为tab页 addTags(to = this.$route) { return to.meta.title ? this.$store.dispatch('tagsView/addView', to) : Promise.resolve() }, diff --git a/vue/src/router/index.js b/vue/src/router/index.js index 3fabbc4..1279b48 100644 --- a/vue/src/router/index.js +++ b/vue/src/router/index.js @@ -112,12 +112,20 @@ function getAuthorizedPath(route) { //判断是否需要打开iframe function iframeControl(to, from) { - let iframe = to.meta.iframe - const operate = iframe ? 'open' : 'close' - if (to.path === `/redirect${from.path}`) { - iframe = from.meta.iframe + //从iframe页面离开时,判断是否需要删除iframe + if (from.meta.iframe) { + let del = false + //如果设置了无缓存或是进行了刷新,那么移除iframe + if (from.meta.noCache || to.path === `/redirect${from.path}`) { + del = true + } + store.dispatch(`iframe/close`, {src: from.meta.iframe, del}) + } + + //跳转至iframe页面时,打开iframe + if (to.meta.iframe) { + store.dispatch(`iframe/open`, {src: to.meta.iframe}) } - return store.dispatch(`iframe/${operate}`, iframe) } export default router diff --git a/vue/src/router/module/example.js b/vue/src/router/module/example.js index 052c2fa..8bedfb7 100644 --- a/vue/src/router/module/example.js +++ b/vue/src/router/module/example.js @@ -72,9 +72,9 @@ const router = { meta: {title: '开发测试'} }, { - path:'cacheTest', + path: 'cacheTest', meta: {title: '详情页缓存测试', noCache: false}, - children:[ + children: [ { path: 'detailPage1', component: 'example/cacheTest/detail', diff --git a/vue/src/store/module/iframe.js b/vue/src/store/module/iframe.js index d360a87..9999bf2 100644 --- a/vue/src/store/module/iframe.js +++ b/vue/src/store/module/iframe.js @@ -18,15 +18,15 @@ const mutations = { } const actions = { - open({commit}, src) { + open({commit}, {src}) { commit('show', true) commit('current', src) commit('add', src) }, - close({commit}, src) { + close({commit}, {src, del}) { commit('show', false) commit('current', '') - commit('del', src) + del && commit('del', src) } }