8 changed files with 78 additions and 23 deletions
@ -1,5 +1,8 @@ |
|||||
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; |
// import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
|
||||
export const Loading = createAsyncComponent(() => import('./src/index.vue')); |
// export const Loading = createAsyncComponent(() => import('./src/index.vue'));
|
||||
|
|
||||
|
import Loading from './src/index.vue'; |
||||
|
|
||||
|
export { Loading }; |
||||
export { useLoading } from './src/useLoading'; |
export { useLoading } from './src/useLoading'; |
||||
export { createLoading } from './src/createLoading'; |
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