From 3b3fb80231f74eecfe2e98e9a7968bfc405bc37f Mon Sep 17 00:00:00 2001
From: LiuHao <liuhaoai545@gmail.com>
Date: 星期日, 18 六月 2023 23:47:10 +0800
Subject: [PATCH] add 新增路由跳转自定义title

---
 src/store/modules/tagsView.ts            |    1 +
 src/plugins/tab.ts                       |   18 ++++++++++++------
 src/layout/components/TagsView/index.vue |    3 +++
 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 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 @@
     }
     // prettier-ignore
     await useTagsViewStore().delCachedView(obj)
-    router.replace({
+    await router.replace({
       path: '/redirect' + obj.path,
       query: obj.query
     });
@@ -34,9 +34,9 @@
     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 @@
   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 @@
 
   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);

--
Gitblit v1.9.3