Browse Source

添加页面缓存

DESKTOP-NE65RNK\Citrus_limon 1 year ago
parent
commit
80e1dcd5ed
3 changed files with 17 additions and 7 deletions
  1. 3 1
      package.json
  2. 9 1
      src/components/PageLayout/Layout.vue
  3. 5 5
      src/router/routes.ts

+ 3 - 1
package.json

@@ -8,7 +8,9 @@
     "build": "vue-tsc && vite build && npm run zip && npm run del",
     "preview": "vite preview",
     "zip": "tar -cvf dist.zip dist",
-    "del": "rmdir /S /Q dist"
+    "del": "rmdir /S /Q dist",
+    "publish": "vue-tsc && vite build && npm run upload && npm run del",
+    "upload": "scp -r dist root@57.180.248.115:/home/ubuntu/html"
   },
   "dependencies": {
     "@layui/layui-vue": "^2.13.0",

+ 9 - 1
src/components/PageLayout/Layout.vue

@@ -11,7 +11,12 @@
         <Tag />
         <div class="layout-main">
           <div class="layout-content">
-            <router-view />
+            <router-view v-slot="{ Component, route }">
+              <keep-alive v-if="route.meta.keepAlive">
+                <component :is="Component" />
+              </keep-alive>
+              <component v-else :is="Component" />
+            </router-view>
           </div>
         </div>
       </lay-body>
@@ -26,7 +31,10 @@ import Side from "./Side.vue";
 import Tag from "./Tag.vue";
 import { get_client_info } from "@/api/index";
 import { generateAvatar } from "@/utils/index";
+import { useRoute } from "vue-router";
 
+const route = useRoute();
+console.log(route);
 interface MenuList {
   icon?: string;
   id?: number;

+ 5 - 5
src/router/routes.ts

@@ -14,31 +14,31 @@ const routes: Array<RouteRecordRaw> = [
         path: "/dashboard",
         name: "Dashboard",
         component: () => import("@/views/dashboard/index.vue"),
-        meta: { title: "控制中心" },
+        meta: { title: "控制中心", keepAlive: true },
       },
       {
         path: "/system/user",
         name: "SystemUser",
         component: () => import("@/views/system/user/index.vue"),
-        meta: { title: "用户管理" },
+        meta: { title: "用户管理", keepAlive: true },
       },
       {
         path: "/system/webpage",
         name: "SystemWebpage",
         component: () => import("@/views/system/webpage/index.vue"),
-        meta: { title: "页面管理" },
+        meta: { title: "页面管理", keepAlive: true },
       },
       {
         path: "/system/organization",
         name: "SystemOrganization",
         component: () => import("@/views/system/organization/index.vue"),
-        meta: { title: "组织管理" },
+        meta: { title: "组织管理", keepAlive: true },
       },
       {
         path: "/system/permissions",
         name: "SystemPermissions",
         component: () => import("@/views/system/permissions/index.vue"),
-        meta: { title: "权限管理" },
+        meta: { title: "权限管理", keepAlive: false },
       },
     ],
   },