From b4efe3758dd14262c30d2bea5dbe8e0cc2bb70fd Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Tue, 19 Aug 2025 17:38:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=8D=E5=90=8C?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=E4=BD=BF=E7=94=A8=E7=9B=B8=E5=90=8C=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E6=97=B6=EF=BC=8C=E5=A4=9A=E4=B8=AA=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E9=A1=B5=E4=BC=9A=E5=90=8C=E6=97=B6=E8=A2=AB=E6=BF=80=E6=B4=BB?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/hooks/useTag.ts | 13 ++++++++++--- src/store/modules/multiTags.ts | 19 ++++++------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/layout/hooks/useTag.ts b/src/layout/hooks/useTag.ts index 11a94b7d8..9ee4c11ef 100644 --- a/src/layout/hooks/useTag.ts +++ b/src/layout/hooks/useTag.ts @@ -114,14 +114,21 @@ export function useTags() { ]); function conditionHandle(item, previous, next) { + const currentName = route.name || ""; + const itemName = item.name || ""; + if (isBoolean(route?.meta?.showLink) && route?.meta?.showLink === false) { if (Object.keys(route.query).length > 0) { - return isEqual(route.query, item.query) ? previous : next; + return currentName === itemName && isEqual(route.query, item.query) + ? previous + : next; } else { - return isEqual(route.params, item.params) ? previous : next; + return currentName === itemName && isEqual(route.params, item.params) + ? previous + : next; } } else { - return route.path === item.path ? previous : next; + return currentName === itemName ? previous : next; } } diff --git a/src/store/modules/multiTags.ts b/src/store/modules/multiTags.ts index 5d1b669c8..d798578b0 100644 --- a/src/store/modules/multiTags.ts +++ b/src/store/modules/multiTags.ts @@ -80,22 +80,15 @@ export const useMultiTagsStore = defineStore("pure-multiTags", { if (isBoolean(tagVal?.meta?.showLink) && !tagVal?.meta?.showLink) return; const tagPath = tagVal.path; - // 判断tag是否已存在 const tagHasExits = this.multiTags.some(tag => { - return tag.path === tagPath; + return ( + tag.path === tagPath && + isEqual(tag?.query, tagVal?.query) && + isEqual(tag?.params, tagVal?.params) + ); }); - // 判断tag中的query键值是否相等 - const tagQueryHasExits = this.multiTags.some(tag => { - return isEqual(tag?.query, tagVal?.query); - }); - - // 判断tag中的params键值是否相等 - const tagParamsHasExits = this.multiTags.some(tag => { - return isEqual(tag?.params, tagVal?.params); - }); - - if (tagHasExits && tagQueryHasExits && tagParamsHasExits) return; + if (tagHasExits) return; // 动态路由可打开的最大数量 const dynamicLevel = tagVal?.meta?.dynamicLevel ?? -1;