From beb4c3a37f314b97657a1d85e7db2abf40dbe6c3 Mon Sep 17 00:00:00 2001 From: nebv Date: Tue, 13 Oct 2020 01:39:56 +0800 Subject: [PATCH] fix: fix routing switch, tab is not activated --- src/components/Menu/src/BasicMenu.tsx | 15 ++++++------ src/hooks/web/usePage.ts | 1 + src/hooks/web/useTabs.ts | 10 +++++--- src/layouts/Logo.vue | 4 ++-- src/layouts/default/LayoutMenu.tsx | 2 +- src/layouts/default/index.less | 2 +- src/layouts/default/multitabs/index.tsx | 32 +++++++++++++++++-------- src/settings/projectSetting.ts | 2 +- 8 files changed, 42 insertions(+), 26 deletions(-) diff --git a/src/components/Menu/src/BasicMenu.tsx b/src/components/Menu/src/BasicMenu.tsx index 3593a7c5..dd4ef27b 100644 --- a/src/components/Menu/src/BasicMenu.tsx +++ b/src/components/Menu/src/BasicMenu.tsx @@ -239,14 +239,13 @@ export default defineComponent({ ) : (
{getSlot(slots, 'header')} - {props.search && ( - - )} +
{() => renderMenu()}
diff --git a/src/hooks/web/usePage.ts b/src/hooks/web/usePage.ts index a56e0a55..277e7836 100644 --- a/src/hooks/web/usePage.ts +++ b/src/hooks/web/usePage.ts @@ -10,6 +10,7 @@ export type RouteLocationRawEx = Omit & { path: PageEn function handleError(e: Error) { console.error(e); + // 101是为了 大于 打开时候设置的100延时防止闪动 setTimeout(() => { appStore.commitPageLoadingState(false); }, 101); diff --git a/src/hooks/web/useTabs.ts b/src/hooks/web/useTabs.ts index 646bbbda..e7eccfc3 100644 --- a/src/hooks/web/useTabs.ts +++ b/src/hooks/web/useTabs.ts @@ -3,6 +3,9 @@ import { PageEnum } from '/@/enums/pageEnum'; import { TabItem, tabStore } from '/@/store/modules/tab'; import { appStore } from '/@/store/modules/app'; import router from '/@/router'; +import { ref } from 'vue'; + +const activeKeyRef = ref(''); type Fn = () => void; type RouteFn = (tabItem: TabItem) => void; @@ -70,12 +73,13 @@ export function useTabs() { closeOther: () => canIUseFn() && closeOther(tabStore.getCurrentTab), closeCurrent: () => canIUseFn() && closeCurrent(tabStore.getCurrentTab), resetCache: () => canIUseFn() && resetCache(), - addTab: (path: PageEnum, goTo = false) => { + addTab: (path: PageEnum, goTo = false, replace = false) => { useTimeout(() => { tabStore.addTabByPathAction(path); }, 0); - - goTo && router.push(path); + activeKeyRef.value = path; + goTo && replace ? router.replace : router.push(path); }, + activeKeyRef, }; } diff --git a/src/layouts/Logo.vue b/src/layouts/Logo.vue index 38235686..ea2a6c68 100644 --- a/src/layouts/Logo.vue +++ b/src/layouts/Logo.vue @@ -1,7 +1,7 @@