From e0c55f40d4c1c47e29de6c4c7e9433efa978bf7f Mon Sep 17 00:00:00 2001 From: kailong321200875 <321200875@qq.com> Date: Sun, 13 Aug 2023 16:41:47 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=AE=8C=E5=96=84useTagsView?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/TagsView/src/TagsView.vue | 3 ++- src/hooks/web/useTagsView.ts | 4 ++-- src/store/modules/tagsView.ts | 4 ++-- src/views/hooks/useTagsView.vue | 19 ++++++++++++------- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/components/TagsView/src/TagsView.vue b/src/components/TagsView/src/TagsView.vue index 5c7d68e..86baaa3 100644 --- a/src/components/TagsView/src/TagsView.vue +++ b/src/components/TagsView/src/TagsView.vue @@ -13,6 +13,7 @@ import { useTemplateRefsList } from '@vueuse/core' import { ElScrollbar } from 'element-plus' import { useScrollTo } from '@/hooks/event/useScrollTo' import { useTagsView } from '@/hooks/web/useTagsView' +import { cloneDeep } from 'lodash-es' const { getPrefixCls } = useDesign() @@ -50,7 +51,7 @@ const initTags = () => { for (const tag of unref(affixTagArr)) { // Must have tag name if (tag.name) { - tagsViewStore.addVisitedView(tag) + tagsViewStore.addVisitedView(cloneDeep(tag)) } } } diff --git a/src/hooks/web/useTagsView.ts b/src/hooks/web/useTagsView.ts index 6d78d6c..31eadb0 100644 --- a/src/hooks/web/useTagsView.ts +++ b/src/hooks/web/useTagsView.ts @@ -47,8 +47,8 @@ export const useTagsView = () => { callback?.() } - const setTitle = (title: string) => { - tagsViewStore.setTitle(title) + const setTitle = (title: string, path?: string) => { + tagsViewStore.setTitle(title, path) } return { diff --git a/src/store/modules/tagsView.ts b/src/store/modules/tagsView.ts index df511e1..039ee53 100644 --- a/src/store/modules/tagsView.ts +++ b/src/store/modules/tagsView.ts @@ -141,9 +141,9 @@ export const useTagsViewStore = defineStore('tagsView', { setSelectedTag(tag: RouteLocationNormalizedLoaded) { this.selectedTag = tag }, - setTitle(title: string) { + setTitle(title: string, path?: string) { for (const v of this.visitedViews) { - if (v.path === this.selectedTag?.path) { + if (v.path === (path ?? this.selectedTag?.path)) { v.meta.title = title break } diff --git a/src/views/hooks/useTagsView.vue b/src/views/hooks/useTagsView.vue index 7f827ec..a92fe8c 100644 --- a/src/views/hooks/useTagsView.vue +++ b/src/views/hooks/useTagsView.vue @@ -40,16 +40,21 @@ const closeCurrentTab = () => { const setTabTitle = () => { setTitle(new Date().getTime().toString()) } + +const setAnalysisTitle = () => { + setTitle(`分析页-${new Date().getTime().toString()}`, '/dashboard/analysis') +}