Skip to content

Commit 175abd0

Browse files
perf: 完善useTagsView
1 parent a869a45 commit 175abd0

File tree

5 files changed

+28
-4
lines changed

5 files changed

+28
-4
lines changed

src/hooks/web/useTagsView.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,17 @@ export const useTagsView = () => {
4747
callback?.()
4848
}
4949

50+
const setTitle = (title: string) => {
51+
tagsViewStore.setTitle(title)
52+
}
53+
5054
return {
5155
closeAll,
5256
closeLeft,
5357
closeRight,
5458
closeOther,
5559
closeCurrent,
56-
refreshPage
60+
refreshPage,
61+
setTitle
5762
}
5863
}

src/router/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,8 @@ export const asyncRouterMap: AppRouteRecordRaw[] = [
339339
meta: {
340340
hidden: true,
341341
title: t('router.details'),
342-
canTo: true
342+
canTo: true,
343+
activeMenu: '/function/multiple-tabs'
343344
}
344345
}
345346
]

src/store/modules/tagsView.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,14 @@ export const useTagsViewStore = defineStore('tagsView', {
140140
// 设置当前选中的tag
141141
setSelectedTag(tag: RouteLocationNormalizedLoaded) {
142142
this.selectedTag = tag
143+
},
144+
setTitle(title: string) {
145+
for (const v of this.visitedViews) {
146+
if (v.path === this.selectedTag?.path) {
147+
v.meta.title = title
148+
break
149+
}
150+
}
143151
}
144152
}
145153
})

src/views/Function/MultipleTabsDemo.vue

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,15 @@ import { ContentWrap } from '@/components/ContentWrap'
33
import { ElInput } from 'element-plus'
44
import { ref } from 'vue'
55
import { useRoute } from 'vue-router'
6+
import { useTagsView } from '@/hooks/web/useTagsView'
7+
8+
const { setTitle } = useTagsView()
69
710
const { params } = useRoute()
811
912
const val = ref(params.id as string)
13+
14+
setTitle(`详情页-${val.value}`)
1015
</script>
1116

1217
<template>

src/views/hooks/useTagsView.vue

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { useRouter } from 'vue-router'
66
77
const { push } = useRouter()
88
9-
const { closeAll, closeLeft, closeRight, closeOther, closeCurrent, refreshPage } = useTagsView()
9+
const { closeAll, closeLeft, closeRight, closeOther, closeCurrent, refreshPage, setTitle } =
10+
useTagsView()
1011
1112
const closeAllTabs = () => {
1213
closeAll(() => {
@@ -35,6 +36,10 @@ const closeCurrentTab = () => {
3536
push('/dashboard/analysis')
3637
})
3738
}
39+
40+
const setTabTitle = () => {
41+
setTitle(new Date().getTime().toString())
42+
}
3843
</script>
3944

4045
<template>
@@ -45,6 +50,6 @@ const closeCurrentTab = () => {
4550
<ElButton @click="closeOtherTabs"> 关闭其他标签页 </ElButton>
4651
<ElButton @click="closeCurrentTab"> 关闭当前标签页 </ElButton>
4752
<ElButton @click="refresh"> 刷新当前标签页 </ElButton>
53+
<ElButton @click="setTabTitle"> 修改当前标题 </ElButton>
4854
</ContentWrap>
4955
</template>
50-
@/hooks/web/useTagsView

0 commit comments

Comments
 (0)