8 changed files with 78 additions and 23 deletions
@ -1,5 +1,8 @@ |
|||
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; |
|||
export const Loading = createAsyncComponent(() => import('./src/index.vue')); |
|||
// import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
|
|||
// export const Loading = createAsyncComponent(() => import('./src/index.vue'));
|
|||
|
|||
import Loading from './src/index.vue'; |
|||
|
|||
export { Loading }; |
|||
export { useLoading } from './src/useLoading'; |
|||
export { createLoading } from './src/createLoading'; |
|||
|
|||
@ -0,0 +1,29 @@ |
|||
import type { FunctionalComponent } from 'vue'; |
|||
import type { RouteLocation } from 'vue-router'; |
|||
|
|||
export interface DefaultContext { |
|||
Component: FunctionalComponent & { type: Indexable }; |
|||
route: RouteLocation; |
|||
} |
|||
|
|||
export function getTransitionName({ |
|||
route, |
|||
openCache, |
|||
cacheTabs, |
|||
enableTransition, |
|||
def, |
|||
}: Pick<DefaultContext, 'route'> & { |
|||
enableTransition: boolean; |
|||
openCache: boolean; |
|||
def: string; |
|||
cacheTabs: string[]; |
|||
}) { |
|||
const isInCache = cacheTabs.includes(route.name as string); |
|||
const transitionName = 'fade-slide'; |
|||
let name: string | null = transitionName; |
|||
|
|||
if (openCache) { |
|||
name = isInCache && route.meta.loaded && enableTransition ? transitionName : null; |
|||
} |
|||
return name || route.meta.transitionName || def; |
|||
} |
|||
Loading…
Reference in new issue