Browse Source

perf: tag

xiaoxian521 3 năm trước cách đây
mục cha
commit
02c3a88ed6
2 tập tin đã thay đổi với 39 bổ sung11 xóa
  1. 26 10
      src/router/index.ts
  2. 13 1
      src/views/tabs/index.vue

+ 26 - 10
src/router/index.ts

@@ -1,15 +1,17 @@
 import {
   Router,
+  RouteMeta,
   createRouter,
   RouteComponent,
+  RouteRecordName,
   createWebHashHistory,
   RouteRecordNormalized
 } from "vue-router";
-import { RouteConfigs } from "/@/layout/types";
-import { split, uniqBy } from "lodash-es";
 import { openLink } from "/@/utils/link";
 import NProgress from "/@/utils/progress";
+import { split, uniqBy } from "lodash-es";
 import { useTimeoutFn } from "@vueuse/core";
+import { RouteConfigs } from "/@/layout/types";
 import { storageSession, storageLocal } from "/@/utils/storage";
 import { usePermissionStoreHook } from "/@/store/modules/permission";
 import { useMultiTagsStoreHook } from "/@/store/modules/multiTags";
@@ -25,6 +27,7 @@ import externalLink from "./modules/externalLink";
 import remainingRouter from "./modules/remaining";
 import flowChartRouter from "./modules/flowchart";
 import componentsRouter from "./modules/components";
+
 // 动态路由
 import { getAsyncRoutes } from "/@/api/routes";
 import { transformI18n } from "/@/plugins/i18n";
@@ -234,16 +237,29 @@ router.beforeEach((to, _from, next) => {
       if (usePermissionStoreHook().wholeRoutes.length === 0)
         initRouter(name.username).then((router: Router) => {
           if (!useMultiTagsStoreHook().getMultiTagsCache) {
+            const handTag = (
+              path: string,
+              parentPath: string,
+              name: RouteRecordName,
+              meta: RouteMeta
+            ): void => {
+              useMultiTagsStoreHook().handleTags("push", {
+                path,
+                parentPath,
+                name,
+                meta
+              });
+            };
+            const parentPath = to.matched[0]?.path;
             if (to.meta?.realPath) {
-              to.meta.title = `No.${to.params?.id} - 详情信息`;
+              const { path, name, meta } = to.matched[0]?.children[0];
+              handTag(path, parentPath, name, meta);
+              return router.push(path);
+            } else {
+              const { path, name, meta } = to;
+              handTag(path, parentPath, name, meta);
+              return router.push(to.path);
             }
-            useMultiTagsStoreHook().handleTags("push", {
-              path: to.path,
-              parentPath: to.matched[0]?.path,
-              name: to.name,
-              meta: to.meta
-            });
-            return router.push(to.path);
           }
           router.push(to.path);
           // 刷新页面更新标签栏与页面路由匹配

+ 13 - 1
src/views/tabs/index.vue

@@ -13,7 +13,7 @@ function toDetail(index: number) {
     parentPath: route.matched[0].path,
     name: "tabDetail",
     meta: {
-      title: `No.${index} - 详情信息`,
+      title: { zh: `No.${index} - 详情信息`, en: `No.${index} - DetailInfo` },
       showLink: false,
       i18n: false,
       dynamicLevel: 3,
@@ -46,5 +46,17 @@ function toDetail(index: number) {
 .tabs-container {
   padding: 10px;
   background: #fff;
+
+  ::v-deep(.el-collapse-item__header) {
+    line-height: 20px;
+  }
+
+  ::v-deep(.el-collapse-item__wrap) {
+    border-bottom: none;
+  }
+
+  button {
+    margin: 10px;
+  }
 }
 </style>