From 3b3fb80231f74eecfe2e98e9a7968bfc405bc37f Mon Sep 17 00:00:00 2001 From: LiuHao Date: Sun, 18 Jun 2023 23:47:10 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E6=96=B0=E5=A2=9E=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E8=B7=B3=E8=BD=AC=E8=87=AA=E5=AE=9A=E4=B9=89title?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/components/TagsView/index.vue | 3 +++ src/plugins/tab.ts | 18 ++++++++++++------ src/store/modules/tagsView.ts | 1 + 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/layout/components/TagsView/index.vue b/src/layout/components/TagsView/index.vue index e65df65..8998ca1 100644 --- a/src/layout/components/TagsView/index.vue +++ b/src/layout/components/TagsView/index.vue @@ -125,6 +125,9 @@ const initTags = () => { } const addTags = () => { const { name } = route; + if(route.query.title) { + route.meta.title = route.query.title; + } if (name) { useTagsViewStore().addView(route); if (route.meta.link) { diff --git a/src/plugins/tab.ts b/src/plugins/tab.ts index a310154..1c0ab7a 100644 --- a/src/plugins/tab.ts +++ b/src/plugins/tab.ts @@ -17,7 +17,7 @@ export default { } // prettier-ignore await useTagsViewStore().delCachedView(obj) - router.replace({ + await router.replace({ path: '/redirect' + obj.path, query: obj.query }); @@ -34,9 +34,9 @@ export default { if (obj === undefined) { // prettier-ignore const { visitedViews } = await useTagsViewStore().delView(router.currentRoute.value) as any - const latestView = visitedViews.slice(-1)[0] + const latestView = visitedViews.slice(-1)[0]; if (latestView) { - return router.push(latestView.fullPath) + return router.push(latestView.fullPath); } return router.push('/'); } @@ -58,9 +58,15 @@ export default { closeOtherPage(obj: TagView) { return useTagsViewStore().delOthersViews(obj || router.currentRoute.value); }, - // 打开tab页签 - openPage(url: RouteLocationRaw) { - return router.push(url); + /** + * 打开tab页签 + * @param url 路由地址 + * @param title 标题 + * @param query 参数 + */ + openPage(url: string, title?: string, query?: any) { + const obj = { path: url, query: { ...query, title } }; + return router.push(obj); }, // 修改tab页签 updatePage(obj: TagView) { diff --git a/src/store/modules/tagsView.ts b/src/store/modules/tagsView.ts index af980ef..064e4ee 100644 --- a/src/store/modules/tagsView.ts +++ b/src/store/modules/tagsView.ts @@ -167,6 +167,7 @@ export const useTagsViewStore = defineStore('tagsView', () => { const addCachedView = (view: TagView): void => { const viewName = view.name as string; + if (!viewName) return; if (cachedViews.value.includes(viewName)) return; if (!view.meta?.noCache) { cachedViews.value.push(viewName);