forked from wangjiadong/comp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.1 KiB
71 lines
2.1 KiB
1 year ago
|
<template>
|
||
|
<RouterView>
|
||
|
<template #default="{ Component, route }">
|
||
|
<!-- <transition-->
|
||
|
<!-- :name="-->
|
||
|
<!-- getTransitionName({-->
|
||
|
<!-- route,-->
|
||
|
<!-- openCache,-->
|
||
|
<!-- enableTransition: getEnableTransition,-->
|
||
|
<!-- cacheTabs: getCaches,-->
|
||
|
<!-- def: getBasicTransition,-->
|
||
|
<!-- })-->
|
||
|
<!-- "-->
|
||
|
<!-- mode="out-in"-->
|
||
|
<!-- appear-->
|
||
|
<!-- >-->
|
||
|
<keep-alive v-if="openCache" :include="getCaches">
|
||
|
<component :is="Component" :key="route.fullPath" />
|
||
|
</keep-alive>
|
||
|
<component v-else :is="Component" :key="route.fullPath" />
|
||
|
<!-- </transition>-->
|
||
|
</template>
|
||
|
</RouterView>
|
||
|
<FrameLayout v-if="getCanEmbedIFramePage" />
|
||
|
</template>
|
||
|
|
||
|
<script lang="ts">
|
||
|
import { computed, defineComponent, unref } from 'vue';
|
||
|
|
||
|
import FrameLayout from '/@/layouts/iframe/index.vue';
|
||
|
|
||
|
import { useRootSetting } from '/@/hooks/setting/useRootSetting';
|
||
|
|
||
|
import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting';
|
||
|
import { useMultipleTabSetting } from '/@/hooks/setting/useMultipleTabSetting';
|
||
|
import { getTransitionName } from './transition';
|
||
|
|
||
|
import { useMultipleTabStore } from '/@/store/modules/multipleTab';
|
||
|
|
||
|
export default defineComponent({
|
||
|
name: 'PageLayout',
|
||
|
components: { FrameLayout },
|
||
|
setup() {
|
||
|
const { getShowMultipleTab } = useMultipleTabSetting();
|
||
|
const tabStore = useMultipleTabStore();
|
||
|
|
||
|
const { getOpenKeepAlive, getCanEmbedIFramePage } = useRootSetting();
|
||
|
|
||
|
const { getBasicTransition, getEnableTransition } = useTransitionSetting();
|
||
|
|
||
|
const openCache = computed(() => unref(getOpenKeepAlive) && unref(getShowMultipleTab));
|
||
|
|
||
|
const getCaches = computed((): string[] => {
|
||
|
if (!unref(getOpenKeepAlive)) {
|
||
|
return [];
|
||
|
}
|
||
|
return tabStore.getCachedTabList;
|
||
|
});
|
||
|
|
||
|
return {
|
||
|
getTransitionName,
|
||
|
openCache,
|
||
|
getEnableTransition,
|
||
|
getBasicTransition,
|
||
|
getCaches,
|
||
|
getCanEmbedIFramePage,
|
||
|
};
|
||
|
},
|
||
|
});
|
||
|
</script>
|