feat: 内链页面的加载逻辑优化
This commit is contained in:
parent
61311eae26
commit
65be2c2077
@ -1,6 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<FillPage>
|
<FillPage>
|
||||||
<iframe :src="link" class="iframe-size"> </iframe>
|
<div v-if="!isLoading" class="loading-page">
|
||||||
|
<div class="dc-loader"></div>
|
||||||
|
</div>
|
||||||
|
<iframe v-show="isLoading" :src="link" class="iframe-size" id="internalLinkPage"> </iframe>
|
||||||
</FillPage>
|
</FillPage>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -10,6 +13,17 @@ import { useRoute } from "vue-router";
|
|||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
|
||||||
const link = ref<string>(route.meta.link as string);
|
const link = ref<string>(route.meta.link as string);
|
||||||
|
|
||||||
|
const isLoading = ref(false); // iframe是否加载完成
|
||||||
|
onMounted(() => {
|
||||||
|
let iframe = document.getElementById("internalLinkPage") as HTMLElement;
|
||||||
|
if (iframe) {
|
||||||
|
// 加载完成
|
||||||
|
iframe.onload = () => {
|
||||||
|
isLoading.value = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|||||||
@ -30,9 +30,9 @@ export default {
|
|||||||
["uigradients"]: "uigradients",
|
["uigradients"]: "uigradients",
|
||||||
["color-taking-tool"]: "color taking tool",
|
["color-taking-tool"]: "color taking tool",
|
||||||
["grid-generator"]: "grid generator",
|
["grid-generator"]: "grid generator",
|
||||||
["vue-official-website"]: "vue",
|
|
||||||
["vite-official-website"]: "vite",
|
|
||||||
["external-page"]: "external link page",
|
["external-page"]: "external link page",
|
||||||
|
["link-vue"]: "vue",
|
||||||
|
["link-vite"]: "vite",
|
||||||
["link-gitee"]: "gitee",
|
["link-gitee"]: "gitee",
|
||||||
["link-juejin"]: "juejin",
|
["link-juejin"]: "juejin",
|
||||||
["about-project"]: "about project",
|
["about-project"]: "about project",
|
||||||
|
|||||||
@ -31,9 +31,9 @@ export default {
|
|||||||
["uigradients"]: "渐变配色",
|
["uigradients"]: "渐变配色",
|
||||||
["color-taking-tool"]: "取色工具",
|
["color-taking-tool"]: "取色工具",
|
||||||
["grid-generator"]: "网格生成器",
|
["grid-generator"]: "网格生成器",
|
||||||
["vue-official-website"]: "vue官网",
|
|
||||||
["vite-official-website"]: "vite官网",
|
|
||||||
["external-page"]: "外链页面",
|
["external-page"]: "外链页面",
|
||||||
|
["link-vue"]: "外链 vue官网",
|
||||||
|
["link-vite"]: "外链 vite官网",
|
||||||
["link-gitee"]: "外链 gitee",
|
["link-gitee"]: "外链 gitee",
|
||||||
["link-juejin"]: "外链 掘金",
|
["link-juejin"]: "外链 掘金",
|
||||||
["not-power"]: "没有权限",
|
["not-power"]: "没有权限",
|
||||||
|
|||||||
@ -398,45 +398,13 @@ export const dynamicRoutes: RouteRecordRaw[] = [
|
|||||||
icon: "icon-menu"
|
icon: "icon-menu"
|
||||||
},
|
},
|
||||||
children: []
|
children: []
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/external-links/inline-page/vue-official-website",
|
|
||||||
name: "vue-official-website",
|
|
||||||
component: () => import("@/views/external-links/inline-page/inline-page.vue"),
|
|
||||||
meta: {
|
|
||||||
title: "vue-official-website",
|
|
||||||
hide: false,
|
|
||||||
keepAlive: true,
|
|
||||||
affix: false,
|
|
||||||
link: "https://cn.vuejs.org/", // 链接
|
|
||||||
iframe: true, // 区分是否内链 true内链 false外链
|
|
||||||
roles: ["admin"],
|
|
||||||
icon: "icon-menu"
|
|
||||||
},
|
|
||||||
children: []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/external-links/inline-page/vite-official-website",
|
|
||||||
name: "vite-official-website",
|
|
||||||
component: () => import("@/views/external-links/inline-page/inline-page.vue"),
|
|
||||||
meta: {
|
|
||||||
title: "vite-official-website",
|
|
||||||
hide: false,
|
|
||||||
keepAlive: true,
|
|
||||||
affix: false,
|
|
||||||
link: "https://www.vitejs.net/", // 链接
|
|
||||||
iframe: true, // 区分是否内链 true内链 false外链
|
|
||||||
roles: ["admin"],
|
|
||||||
icon: "icon-menu"
|
|
||||||
},
|
|
||||||
children: []
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/external-links/external-page",
|
path: "/external-links/external-page",
|
||||||
name: "external-page",
|
name: "external-page",
|
||||||
redirect: "/external-links/external-page/link-gitee",
|
redirect: "/external-links/external-page/link-vue",
|
||||||
meta: {
|
meta: {
|
||||||
title: "external-page",
|
title: "external-page",
|
||||||
hide: false,
|
hide: false,
|
||||||
@ -448,6 +416,38 @@ export const dynamicRoutes: RouteRecordRaw[] = [
|
|||||||
icon: "icon-menu"
|
icon: "icon-menu"
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
|
{
|
||||||
|
path: "/external-links/external-page/link-vue",
|
||||||
|
name: "link-vue",
|
||||||
|
component: () => import("@/views/external-links/external-page/external-page.vue"),
|
||||||
|
meta: {
|
||||||
|
title: "link-vue",
|
||||||
|
hide: false,
|
||||||
|
keepAlive: true,
|
||||||
|
affix: false,
|
||||||
|
link: "https://cn.vuejs.org/", // 链接
|
||||||
|
iframe: false, // 区分是否内链 true内链 false外链
|
||||||
|
roles: ["admin"],
|
||||||
|
icon: "icon-menu"
|
||||||
|
},
|
||||||
|
children: []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/external-links/external-page/link-vite",
|
||||||
|
name: "link-vite",
|
||||||
|
component: () => import("@/views/external-links/external-page/external-page.vue"),
|
||||||
|
meta: {
|
||||||
|
title: "link-vite",
|
||||||
|
hide: false,
|
||||||
|
keepAlive: true,
|
||||||
|
affix: false,
|
||||||
|
link: "https://www.vitejs.net/", // 链接
|
||||||
|
iframe: false, // 区分是否内链 true内链 false外链
|
||||||
|
roles: ["admin"],
|
||||||
|
icon: "icon-menu"
|
||||||
|
},
|
||||||
|
children: []
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: "/external-links/external-page/link-gitee",
|
path: "/external-links/external-page/link-gitee",
|
||||||
name: "link-gitee",
|
name: "link-gitee",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user