'admin-21.01.25:处理iframes刷新、Tagsview风格问题'

This commit is contained in:
lyt 2021-01-25 18:44:01 +08:00
parent 0e155e0141
commit 926fdd4751
3 changed files with 38 additions and 13 deletions

View File

@ -8,15 +8,15 @@
<div class="layout-columns-aside-li-box"> <div class="layout-columns-aside-li-box">
<template v-if="!v.meta.isLink"> <template v-if="!v.meta.isLink">
<i :class="v.meta.icon"></i> <i :class="v.meta.icon"></i>
<div class="layout-columns-aside-li-box-title"> <div class="layout-columns-aside-li-box-title font12">
{{v.meta.title && v.meta.title.length >= 2 ? v.meta.title.substr(0,2) : v.meta.title}} {{v.meta.title && v.meta.title.length >= 4 ? v.meta.title.substr(0,4) : v.meta.title}}
</div> </div>
</template> </template>
<template v-else> <template v-else>
<a :href="v.meta.isLink" target="_blank"> <a :href="v.meta.isLink" target="_blank">
<i :class="v.meta.icon"></i> <i :class="v.meta.icon"></i>
<div class="layout-columns-aside-li-box-title"> <div class="layout-columns-aside-li-box-title font12">
{{v.meta.title && v.meta.title.length >= 2 ? v.meta.title.substr(0,2) : v.meta.title}} {{v.meta.title && v.meta.title.length >= 4 ? v.meta.title.substr(0,4) : v.meta.title}}
</div> </div>
</a> </a>
</template> </template>

View File

@ -8,7 +8,7 @@
<i class="iconfont icon-webicon318 layout-navbars-tagsview-ul-li-iconfont font14" v-if="isActive(v.path)"></i> <i class="iconfont icon-webicon318 layout-navbars-tagsview-ul-li-iconfont font14" v-if="isActive(v.path)"></i>
<i class="layout-navbars-tagsview-ul-li-iconfont" :class="v.meta.icon" <i class="layout-navbars-tagsview-ul-li-iconfont" :class="v.meta.icon"
v-if="!isActive(v.path) && getThemeConfig.isTagsviewIcon"></i> v-if="!isActive(v.path) && getThemeConfig.isTagsviewIcon"></i>
<span>{{v.meta.title}}</span> <span :class="{'is-active-four': v.meta.isAffix}">{{v.meta.title}}</span>
<template v-if="isActive(v.path)"> <template v-if="isActive(v.path)">
<i class="el-icon-refresh-right ml5" @click="refreshCurrentTagsView(v.path)"></i> <i class="el-icon-refresh-right ml5" @click="refreshCurrentTagsView(v.path)"></i>
<i class="el-icon-close layout-navbars-tagsview-ul-li-icon layout-icon-active" v-if="!v.meta.isAffix" <i class="el-icon-close layout-navbars-tagsview-ul-li-icon layout-icon-active" v-if="!v.meta.isAffix"
@ -419,6 +419,11 @@ export default {
right: -51px; right: -51px;
} }
} }
.is-active-four {
&::after {
right: -40px;
}
}
&::before, &::before,
&::after { &::after {
content: ""; content: "";

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="layout-scrollbar"> <div class="layout-scrollbar">
<div class="layout-view-bg-white flex h100" v-loading="iframeLoading"> <div class="layout-view-bg-white flex h100" v-loading="iframeLoading">
<iframe :src="currentRouteMeta.isLink" frameborder="0" height="100%" width="100%" id="iframe"></iframe> <iframe :src="iframeUrl" frameborder="0" height="100%" width="100%" id="iframe"></iframe>
</div> </div>
</div> </div>
</template> </template>
@ -13,8 +13,12 @@ import {
reactive, reactive,
toRefs, toRefs,
onMounted, onMounted,
onBeforeMount,
onUnmounted,
nextTick, nextTick,
getCurrentInstance,
} from "vue"; } from "vue";
import { useRoute } from "vue-router";
export default defineComponent({ export default defineComponent({
name: "layoutIfameView", name: "layoutIfameView",
props: { props: {
@ -24,24 +28,40 @@ export default defineComponent({
}, },
}, },
setup(props) { setup(props) {
const { proxy } = getCurrentInstance();
const route = useRoute();
const state = reactive({ const state = reactive({
iframeLoading: true, iframeLoading: true,
iframeUrl: "",
}); });
// // loading
const currentRouteMeta = computed(() => { const initIframeLoad = () => {
return props.meta;
});
//
onMounted(() => {
nextTick(() => { nextTick(() => {
state.iframeLoading = true;
const iframe = document.getElementById("iframe"); const iframe = document.getElementById("iframe");
iframe.onload = () => { iframe.onload = () => {
state.iframeLoading = false; 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 { return {
currentRouteMeta,
...toRefs(state), ...toRefs(state),
}; };
}, },