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.
70 lines
2.1 KiB
70 lines
2.1 KiB
<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>
|
|
|