Quellcode durchsuchen

add 新增路由跳转自定义title

LiuHao vor 1 Jahr
Ursprung
Commit
3b3fb80231
3 geänderte Dateien mit 16 neuen und 6 gelöschten Zeilen
  1. 3 0
      src/layout/components/TagsView/index.vue
  2. 12 6
      src/plugins/tab.ts
  3. 1 0
      src/store/modules/tagsView.ts

+ 3 - 0
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) {

+ 12 - 6
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) {

+ 1 - 0
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);