From bccd6cb3c3bc86fa1891abdee22f253403f55590 Mon Sep 17 00:00:00 2001 From: Soybean Date: Sat, 2 Mar 2024 11:08:14 +0800 Subject: [PATCH] fix(projects): fix repeat home tab --- src/store/modules/tab/index.ts | 6 +++--- src/store/modules/tab/shared.ts | 12 ++++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/store/modules/tab/index.ts b/src/store/modules/tab/index.ts index 6394b6e8..6beb22af 100644 --- a/src/store/modules/tab/index.ts +++ b/src/store/modules/tab/index.ts @@ -9,7 +9,7 @@ import { localStg } from '@/utils/storage'; import { useRouteStore } from '@/store/modules/route'; import { useThemeStore } from '../theme'; import { - filterTabsByAllRoutes, + extractTabsByAllRoutes, filterTabsById, filterTabsByIds, findTabByRouteName, @@ -63,8 +63,8 @@ export const useTabStore = defineStore(SetupStoreId.Tab, () => { const storageTabs = localStg.get('globalTabs'); if (themeStore.tab.cache && storageTabs) { - const filteredTabs = filterTabsByAllRoutes(router, storageTabs); - tabs.value = updateTabsByI18nKey(filteredTabs); + const extractedTabs = extractTabsByAllRoutes(router, storageTabs); + tabs.value = updateTabsByI18nKey(extractedTabs); } addTab(currentRoute); diff --git a/src/store/modules/tab/shared.ts b/src/store/modules/tab/shared.ts index 31a4449a..e4cf1635 100644 --- a/src/store/modules/tab/shared.ts +++ b/src/store/modules/tab/shared.ts @@ -14,9 +14,13 @@ export function getAllTabs(tabs: App.Global.Tab[], homeTab?: App.Global.Tab) { return []; } - const fixedTabs = tabs.filter(tab => tab.fixedIndex !== undefined).sort((a, b) => a.fixedIndex! - b.fixedIndex!); + const filterHomeTabs = tabs.filter(tab => tab.id !== homeTab.id); - const remainTabs = tabs.filter(tab => tab.fixedIndex === undefined); + const fixedTabs = filterHomeTabs + .filter(tab => tab.fixedIndex !== undefined) + .sort((a, b) => a.fixedIndex! - b.fixedIndex!); + + const remainTabs = filterHomeTabs.filter(tab => tab.fixedIndex === undefined); const allTabs = [homeTab, ...fixedTabs, ...remainTabs]; @@ -154,12 +158,12 @@ export function filterTabsByIds(tabIds: string[], tabs: App.Global.Tab[]) { } /** - * filter tabs by all routes + * extract tabs by all routes * * @param router * @param tabs */ -export function filterTabsByAllRoutes(router: Router, tabs: App.Global.Tab[]) { +export function extractTabsByAllRoutes(router: Router, tabs: App.Global.Tab[]) { const routes = router.getRoutes(); const routeNames = routes.map(route => route.name);