diff --git a/src/design/var/index.less b/src/design/var/index.less
index 4df39e2e..62935732 100644
--- a/src/design/var/index.less
+++ b/src/design/var/index.less
@@ -15,7 +15,5 @@
@side-drag-z-index: 200;
@page-loading-z-index: 10000;
-// app menu
-
// left-menu
-@app-menu-item-height: 42px;
+@app-menu-item-height: 46px;
diff --git a/src/layouts/default/LayoutContent.tsx b/src/layouts/default/LayoutContent.tsx
index 0ab53f95..29444395 100644
--- a/src/layouts/default/LayoutContent.tsx
+++ b/src/layouts/default/LayoutContent.tsx
@@ -16,7 +16,6 @@ export default defineComponent({
return () => {
const { contentMode, openPageLoading } = unref(getProjectConfigRef);
const { getPageLoading } = appStore;
-
const wrapClass = contentMode === ContentEnum.FULL ? 'full' : 'fixed';
return (
diff --git a/src/layouts/page/index.tsx b/src/layouts/page/index.tsx
index 68154df7..c16d6c52 100644
--- a/src/layouts/page/index.tsx
+++ b/src/layouts/page/index.tsx
@@ -12,9 +12,16 @@ import { appStore } from '/@/store/modules/app';
export default defineComponent({
name: 'PageLayout',
setup() {
- const getProjectConfigRef = computed(() => {
- return appStore.getProjectConfig;
+ const getProjectConfigRef = computed(() => appStore.getProjectConfig);
+ const openCacheRef = computed(() => {
+ const {
+ openKeepAlive,
+ multiTabsSetting: { show },
+ } = unref(getProjectConfigRef);
+ return openKeepAlive && show;
});
+ const getCacheTabsRef = computed(() => toRaw(tabStore.getKeepAliveTabsState) as string[]);
+
const { openPageLoading } = unref(getProjectConfigRef);
let on = {};
@@ -27,21 +34,20 @@ export default defineComponent({
const {
routerTransition,
openRouterTransition,
- openKeepAlive,
- multiTabsSetting: { show, max },
+ multiTabsSetting: { max },
} = unref(getProjectConfigRef);
- const openCache = openKeepAlive && show;
- const cacheTabs = toRaw(tabStore.getKeepAliveTabsState) as string[];
return (
{{
default: ({ Component, route }: { Component: any; route: RouteLocation }) => {
// No longer show animations that are already in the tab
- const name = route.meta.inTab ? 'fade' : null;
+ const cacheTabs = unref(getCacheTabsRef);
+ const isInCache = cacheTabs.includes(route.name as string);
+ const name = isInCache && route.meta.inTab ? 'fade' : null;
- const Content = openCache ? (
+ const Content = unref(openCacheRef) ? (
diff --git a/src/layouts/page/useTransition.ts b/src/layouts/page/useTransition.ts
index ed9088d7..2c1a5945 100644
--- a/src/layouts/page/useTransition.ts
+++ b/src/layouts/page/useTransition.ts
@@ -3,6 +3,7 @@ import { tryOnUnmounted } from '/@/utils/helper/vueHelper';
export function useTransition() {
function handleAfterEnter() {
const { openRouterTransition, openPageLoading } = appStore.getProjectConfig;
+
if (!openRouterTransition || !openPageLoading) return;
// Close loading after the route switching animation ends
appStore.setPageLoadingAction(false);
diff --git a/src/router/guard/index.ts b/src/router/guard/index.ts
index d5b11724..0fcb8ef1 100644
--- a/src/router/guard/index.ts
+++ b/src/router/guard/index.ts
@@ -21,6 +21,8 @@ export function createGuard(router: Router) {
if (removeAllHttpPending) {
axiosCanceler = new AxiosCanceler();
}
+
+ createPageLoadingGuard(router);
router.beforeEach(async (to) => {
// Determine whether the tab has been opened
const isOpen = getIsOpenTab(to.fullPath);
@@ -59,5 +61,4 @@ export function createGuard(router: Router) {
openNProgress && createProgressGuard(router);
createPermissionGuard(router);
- createPageLoadingGuard(router);
}
diff --git a/src/router/guard/pageLoadingGuard.ts b/src/router/guard/pageLoadingGuard.ts
index 189fb600..c9e17f60 100644
--- a/src/router/guard/pageLoadingGuard.ts
+++ b/src/router/guard/pageLoadingGuard.ts
@@ -20,6 +20,7 @@ export function createPageLoadingGuard(router: Router) {
appStore.commitPageLoadingState(true);
return true;
}
+
if (show && openKeepAlive && !isFirstLoad) {
const tabList = tabStore.getTabsState;