mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-08 01:17:23 +08:00
feat: 路由动画(每个路由都可添加不同动画)
This commit is contained in:
parent
a31d154806
commit
b1702ed7fe
@ -1,17 +1,40 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, getCurrentInstance } from "vue";
|
import { ref, computed, getCurrentInstance } from "vue";
|
||||||
import { usePermissionStoreHook } from "/@/store/modules/permission";
|
import { usePermissionStoreHook } from "/@/store/modules/permission";
|
||||||
|
|
||||||
const keepAlive: Boolean = ref(
|
const keepAlive: Boolean = ref(
|
||||||
getCurrentInstance().appContext.config.globalProperties.$config?.KeepAlive
|
getCurrentInstance().appContext.config.globalProperties.$config?.KeepAlive
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const transition = computed(() => {
|
||||||
|
return route => {
|
||||||
|
return route.meta.transition;
|
||||||
|
};
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<section class="app-main">
|
<section class="app-main">
|
||||||
<router-view>
|
<router-view>
|
||||||
<template #default="{ Component, route }">
|
<template #default="{ Component, route }">
|
||||||
<transition appear name="fade-transform" mode="out-in">
|
<transition
|
||||||
|
:name="
|
||||||
|
transition(route) && route.meta.transition.enterTransition
|
||||||
|
? 'pure-classes-transition'
|
||||||
|
: (transition(route) && route.meta.transition.name) ||
|
||||||
|
'fade-transform'
|
||||||
|
"
|
||||||
|
:enter-active-class="
|
||||||
|
transition(route) &&
|
||||||
|
`animate__animated ${route.meta.transition.enterTransition}`
|
||||||
|
"
|
||||||
|
:leave-active-class="
|
||||||
|
transition(route) &&
|
||||||
|
`animate__animated ${route.meta.transition.leaveTransition}`
|
||||||
|
"
|
||||||
|
mode="out-in"
|
||||||
|
appear
|
||||||
|
>
|
||||||
<keep-alive
|
<keep-alive
|
||||||
v-if="keepAlive"
|
v-if="keepAlive"
|
||||||
:include="usePermissionStoreHook().cachePageList"
|
:include="usePermissionStoreHook().cachePageList"
|
||||||
|
@ -20,7 +20,6 @@ const componentsRouter = {
|
|||||||
meta: {
|
meta: {
|
||||||
title: "message.hsvideo",
|
title: "message.hsvideo",
|
||||||
showLink: true,
|
showLink: true,
|
||||||
keepAlive: true,
|
|
||||||
savedPosition: true
|
savedPosition: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -32,6 +31,9 @@ const componentsRouter = {
|
|||||||
title: "message.hsmap",
|
title: "message.hsmap",
|
||||||
showLink: true,
|
showLink: true,
|
||||||
keepAlive: true,
|
keepAlive: true,
|
||||||
|
transition: {
|
||||||
|
name: "fade"
|
||||||
|
},
|
||||||
savedPosition: true
|
savedPosition: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -42,6 +44,10 @@ const componentsRouter = {
|
|||||||
meta: {
|
meta: {
|
||||||
title: "message.hsdraggable",
|
title: "message.hsdraggable",
|
||||||
showLink: true,
|
showLink: true,
|
||||||
|
transition: {
|
||||||
|
enterTransition: "animate__zoomIn",
|
||||||
|
leaveTransition: "animate__zoomOut"
|
||||||
|
},
|
||||||
savedPosition: true
|
savedPosition: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user