fix(projects): fix multi tab page only render once. fixed #441

This commit is contained in:
Soybean 2024-05-24 02:23:59 +08:00
parent 64fc0996e3
commit e379d6ce67
2 changed files with 6 additions and 2 deletions

View File

@ -3,6 +3,7 @@ import { computed } from 'vue';
import { useAppStore } from '@/store/modules/app'; import { useAppStore } from '@/store/modules/app';
import { useThemeStore } from '@/store/modules/theme'; import { useThemeStore } from '@/store/modules/theme';
import { useRouteStore } from '@/store/modules/route'; import { useRouteStore } from '@/store/modules/route';
import { useTabStore } from '@/store/modules/tab';
defineOptions({ defineOptions({
name: 'GlobalContent' name: 'GlobalContent'
@ -20,6 +21,7 @@ withDefaults(defineProps<Props>(), {
const appStore = useAppStore(); const appStore = useAppStore();
const themeStore = useThemeStore(); const themeStore = useThemeStore();
const routeStore = useRouteStore(); const routeStore = useRouteStore();
const tabStore = useTabStore();
const transitionName = computed(() => (themeStore.page.animate ? themeStore.page.animateMode : '')); const transitionName = computed(() => (themeStore.page.animate ? themeStore.page.animateMode : ''));
</script> </script>
@ -36,7 +38,7 @@ const transitionName = computed(() => (themeStore.page.animate ? themeStore.page
<component <component
:is="Component" :is="Component"
v-if="appStore.reloadFlag" v-if="appStore.reloadFlag"
:key="route.path" :key="tabStore.getTabIdByRoute(route)"
:class="{ 'p-16px': showPadding }" :class="{ 'p-16px': showPadding }"
class="flex-grow bg-layout transition-300" class="flex-grow bg-layout transition-300"
/> />

View File

@ -17,6 +17,7 @@ import {
getDefaultHomeTab, getDefaultHomeTab,
getFixedTabIds, getFixedTabIds,
getTabByRoute, getTabByRoute,
getTabIdByRoute,
isTabInTabs, isTabInTabs,
updateTabByI18nKey, updateTabByI18nKey,
updateTabsByI18nKey updateTabsByI18nKey
@ -288,6 +289,7 @@ export const useTabStore = defineStore(SetupStoreId.Tab, () => {
setTabLabel, setTabLabel,
resetTabLabel, resetTabLabel,
isTabRetain, isTabRetain,
updateTabsByLocale updateTabsByLocale,
getTabIdByRoute
}; };
}); });