import type { FunctionalComponent } from 'vue'; import { computed, defineComponent, unref, Transition, KeepAlive } from 'vue'; import { RouterView, RouteLocation } from 'vue-router'; import FrameLayout from '/@/layouts/iframe/index.vue'; import { useRootSetting } from '/@/hooks/setting/useRootSetting'; import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting'; import { useCache } from './useCache'; import { useMultipleTabSetting } from '/@/hooks/setting/useMultipleTabSetting'; // import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; interface DefaultContext { Component: FunctionalComponent & { type: Indexable }; route: RouteLocation; } // const FrameLayout=createAsyncComponent(()=>'/@/layouts/iframe/index.vue') export default defineComponent({ name: 'PageLayout', setup() { const { getCaches } = useCache(true); const { getShowMultipleTab } = useMultipleTabSetting(); const { getOpenKeepAlive, getCanEmbedIFramePage } = useRootSetting(); const { getBasicTransition, getEnableTransition } = useTransitionSetting(); const openCache = computed(() => unref(getOpenKeepAlive) && unref(getShowMultipleTab)); return () => { return (