feat: 面包屑动画

This commit is contained in:
wang_fan_w 2024-05-08 23:46:22 +08:00
parent 70a5f49275
commit 4031205771

View File

@ -2,7 +2,7 @@
<div> <div>
<a-space direction="vertical"> <a-space direction="vertical">
<a-breadcrumb> <a-breadcrumb>
<a-breadcrumb-item v-for="(item, index) in breadcrumb" :key="item.path"> <a-breadcrumb-item v-for="(item, index) in breadcrumb" :key="item.path" :class="transition">
<span v-if="index === breadcrumb.length - 1" class="main_button">{{ $t(`language.${item?.meta?.title || ""}`) }}</span> <span v-if="index === breadcrumb.length - 1" class="main_button">{{ $t(`language.${item?.meta?.title || ""}`) }}</span>
<span v-else class="route_button" @click="onBreadcrumb(item as RouteLocationMatched)">{{ <span v-else class="route_button" @click="onBreadcrumb(item as RouteLocationMatched)">{{
$t(`language.${item?.meta?.title || ""}`) $t(`language.${item?.meta?.title || ""}`)
@ -15,6 +15,11 @@
<script setup lang="ts"> <script setup lang="ts">
import { RouteLocationMatched } from "vue-router"; import { RouteLocationMatched } from "vue-router";
import { storeToRefs } from "pinia";
import { useThemeConfig } from "@/store/modules/theme-config";
const themeStore = useThemeConfig();
const { transitionPage } = storeToRefs(themeStore);
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
@ -37,6 +42,11 @@ const breadcrumb = computed(() => {
}); });
}); });
//
const transition = computed(() => {
return transitionPage.value === "fadeInOut" ? "fadeInOut-enter-active" : "cardInOut-enter-active";
});
// //
const onBreadcrumb = (route: RouteLocationMatched) => { const onBreadcrumb = (route: RouteLocationMatched) => {
let path = route.redirect ? route.redirect : route.path; let path = route.redirect ? route.redirect : route.path;