From 926fdd47513553134316ec0b87a9e2f7af816757 Mon Sep 17 00:00:00 2001 From: lyt <1105290566@qq.com> Date: Mon, 25 Jan 2021 18:44:01 +0800 Subject: [PATCH] =?UTF-8?q?'admin-21.01.25:=E5=A4=84=E7=90=86iframes?= =?UTF-8?q?=E5=88=B7=E6=96=B0=E3=80=81Tagsview=E9=A3=8E=E6=A0=BC=E9=97=AE?= =?UTF-8?q?=E9=A2=98'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/layout/component/columnsAside.vue | 8 ++--- .../layout/navBars/tagsView/tagsView.vue | 7 +++- .../src/views/layout/routerView/iframes.vue | 36 ++++++++++++++----- 3 files changed, 38 insertions(+), 13 deletions(-) diff --git a/vue-admin-wonderful-next/src/views/layout/component/columnsAside.vue b/vue-admin-wonderful-next/src/views/layout/component/columnsAside.vue index 9ee2a12..d13dfb4 100644 --- a/vue-admin-wonderful-next/src/views/layout/component/columnsAside.vue +++ b/vue-admin-wonderful-next/src/views/layout/component/columnsAside.vue @@ -8,15 +8,15 @@
diff --git a/vue-admin-wonderful-next/src/views/layout/navBars/tagsView/tagsView.vue b/vue-admin-wonderful-next/src/views/layout/navBars/tagsView/tagsView.vue index 0a04c38..bbc30db 100644 --- a/vue-admin-wonderful-next/src/views/layout/navBars/tagsView/tagsView.vue +++ b/vue-admin-wonderful-next/src/views/layout/navBars/tagsView/tagsView.vue @@ -8,7 +8,7 @@ - {{v.meta.title}} + {{v.meta.title}} @@ -13,8 +13,12 @@ import { reactive, toRefs, onMounted, + onBeforeMount, + onUnmounted, nextTick, + getCurrentInstance, } from "vue"; +import { useRoute } from "vue-router"; export default defineComponent({ name: "layoutIfameView", props: { @@ -24,24 +28,40 @@ export default defineComponent({ }, }, setup(props) { + const { proxy } = getCurrentInstance(); + const route = useRoute(); const state = reactive({ iframeLoading: true, + iframeUrl: "", }); - // 获取父级菜单数据 - const currentRouteMeta = computed(() => { - return props.meta; - }); - // 页面加载时 - onMounted(() => { + // 初始化页面加载 loading + const initIframeLoad = () => { nextTick(() => { + state.iframeLoading = true; const iframe = document.getElementById("iframe"); iframe.onload = () => { state.iframeLoading = false; }; }); + }; + // 页面加载前 + onBeforeMount(() => { + state.iframeUrl = props.meta.isLink; + proxy.mittBus.on("onTagsViewRefreshRouterView", (path: string) => { + if (route.path !== path) return false; + state.iframeUrl = `${props.meta.isLink}?key=${Math.random()}`; + initIframeLoad(); + }); + }); + // 页面加载时 + onMounted(() => { + initIframeLoad(); + }); + // 页面卸载时 + onUnmounted(() => { + proxy.mittBus.off("onTagsViewRefreshRouterView"); }); return { - currentRouteMeta, ...toRefs(state), }; },