|
|
|
@ -6,7 +6,9 @@ import { useTransition } from './useTransition'; |
|
|
|
|
|
|
|
import { RouterView, RouteLocation } from 'vue-router'; |
|
|
|
import { tabStore } from '/@/store/modules/tab'; |
|
|
|
import FrameLayout from '/@/layouts/iframe/index.vue'; |
|
|
|
|
|
|
|
import { useSetting } from '/@/hooks/core/useSetting'; |
|
|
|
// import { useRouter } from 'vue-router';
|
|
|
|
export default defineComponent({ |
|
|
|
name: 'PageLayout', |
|
|
|
@ -22,6 +24,7 @@ export default defineComponent({ |
|
|
|
const { on: transitionOn } = useTransition(); |
|
|
|
on = transitionOn; |
|
|
|
} |
|
|
|
const { projectSetting } = useSetting(); |
|
|
|
return () => { |
|
|
|
const { |
|
|
|
routerTransition, |
|
|
|
@ -32,32 +35,35 @@ export default defineComponent({ |
|
|
|
|
|
|
|
const openCache = openKeepAlive && show; |
|
|
|
const cacheTabs = toRaw(tabStore.getKeepAliveTabsState) as string[]; |
|
|
|
return [ |
|
|
|
<RouterView> |
|
|
|
{{ |
|
|
|
default: ({ Component, route }: { Component: any; route: RouteLocation }) => { |
|
|
|
const Content = openCache ? ( |
|
|
|
<KeepAlive max={max} include={cacheTabs}> |
|
|
|
return ( |
|
|
|
<div> |
|
|
|
<RouterView> |
|
|
|
{{ |
|
|
|
default: ({ Component, route }: { Component: any; route: RouteLocation }) => { |
|
|
|
const Content = openCache ? ( |
|
|
|
<KeepAlive max={max} include={cacheTabs}> |
|
|
|
<Component {...route.params} /> |
|
|
|
</KeepAlive> |
|
|
|
) : ( |
|
|
|
<Component {...route.params} /> |
|
|
|
</KeepAlive> |
|
|
|
) : ( |
|
|
|
<Component {...route.params} /> |
|
|
|
); |
|
|
|
return openRouterTransition ? ( |
|
|
|
<Transition |
|
|
|
{...on} |
|
|
|
name={route.meta.transitionName || routerTransition} |
|
|
|
mode="out-in" |
|
|
|
> |
|
|
|
{() => Content} |
|
|
|
</Transition> |
|
|
|
) : ( |
|
|
|
Content |
|
|
|
); |
|
|
|
}, |
|
|
|
}} |
|
|
|
</RouterView>, |
|
|
|
]; |
|
|
|
); |
|
|
|
return openRouterTransition ? ( |
|
|
|
<Transition |
|
|
|
{...on} |
|
|
|
name={route.meta.transitionName || routerTransition} |
|
|
|
mode="out-in" |
|
|
|
> |
|
|
|
{() => Content} |
|
|
|
</Transition> |
|
|
|
) : ( |
|
|
|
Content |
|
|
|
); |
|
|
|
}, |
|
|
|
}} |
|
|
|
</RouterView> |
|
|
|
{projectSetting.canEmbedIFramePage && <FrameLayout />} |
|
|
|
</div> |
|
|
|
); |
|
|
|
}; |
|
|
|
}, |
|
|
|
}); |
|
|
|
|