From 8790f99a94733c7c3836706c75a77f9bbb15c2ca Mon Sep 17 00:00:00 2001
From: hejianhao <15708179461@qq.com>
Date: 星期一, 31 三月 2025 17:09:30 +0800
Subject: [PATCH] layout布局修改,标签卡,列表组件封装

---
 src/router/index.js |   82 ++++++++++++++++++++++++++++++----------
 1 files changed, 61 insertions(+), 21 deletions(-)

diff --git a/src/router/index.js b/src/router/index.js
index 16e7630..6863c07 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -13,17 +13,19 @@
 /**
  *  path: "/login",   ------页面地址
     component: () => import("../views/login"),  ------组件地址
+    name: "Login",  ------组件名称 缓存时需要 唯一性
     meta: {
       title: "登录",    ------页面标题
       icon: "el-icon-user-solid",  ------菜单图标
       oneself: true,  ------是否在单独页面打开
       hide: true,  ------是否隐藏改菜单
+      keepAlive: true,  ------是否缓存
     }
  */
 
 const routes = [
     {
-        path: "",
+        path: "/",
         redirect: "login",
         component: Layouts,
         children: [
@@ -33,9 +35,26 @@
                     title: "登录",
                     oneself: true,
                     hide: true,
-                    privilege: 'login'
                 },
                 component: () => import("../views/login"),
+            },
+            {
+                path: "/projectList",
+                meta: {
+                    title: "项目组管理",
+                },
+                component: Parent,
+                children: [
+                    {
+                        path: "list",
+                        name: "ProjectList",
+                        meta: {
+                            title: "项目组管理",
+                            keepAlive: true,
+                        },
+                        component: () => import("../views/projectList"),
+                    }
+                ]
             },
         ],
     },
@@ -50,27 +69,48 @@
 // 前置路由拦截器
 router.beforeEach((to, from, next) => {
     // 设置当前页签名称
-    document.title = to.meta.title || '职评网管理系统';
-    // 没有登录并且要去的页面不是登录页面,在强制跳转到登录
-    if (to.path === "/login") {
-        localStorage.removeItem('userInfo')
-        next()
-    } else if (!localStorage.getItem('userInfo')) {
-        next('/login')
-    } else {
-        // 判断是否拥有要跳转菜单权限
-        let menus = store.state.menus
+    document.title = to.meta.title || '实验室流程';
 
-        // console.log(store.state.menus);
-        // console.log(to.meta);
-        // console.log(to.meta.hasOwnProperty('privilege'));
-        // console.log(!menus.includes(to.meta.privilege));
-        
-        if (to.meta.hasOwnProperty('privilege') && !menus.includes(to.meta.privilege)) {
-            return
-        }
-        next()
+    // 判断是否需要缓存
+    if (to.meta.keepAlive) {
+        store.commit('SET_KEEPALIVELIST', [...store.state.keepAliveList, to.name])
     }
+    // 设置标签列表
+    if (!to.meta.hide || !to.meta.oneself) {
+        // 判断是否存在
+        let isExist = store.state.tagList.some(item => item.path === to.path)
+        if (!isExist) {
+            store.commit('SET_TAGLIST', [...store.state.tagList, to])
+        }
+    }
+    next()
+
+    // 没有登录并且要去的页面不是登录页面,在强制跳转到登录
+    // if (to.path === "/login") {
+    //     localStorage.removeItem('userInfo')
+    //     next()
+    // } else if (!localStorage.getItem('userInfo')) {
+    //     next('/login')
+    // } else {
+    //     // 判断是否拥有要跳转菜单权限
+    //     let menus = store.state.menus
+    //     if (to.meta.hasOwnProperty('privilege') && !menus.includes(to.meta.privilege)) {
+    //         return
+    //     }
+    // 设置标签列表
+    // if (!to.meta.hide || !to.meta.oneself) {
+    //     // 判断是否存在
+    //     let isExist = store.state.tagList.some(item => item.path === to.path)
+    //     if (!isExist) {
+    //         store.commit('SET_TAGLIST', [...store.state.tagList, to])
+    //     }
+    // }
+    //     // 判断是否需要缓存
+    //     if (to.meta.keepAlive) {
+    //         store.commit('SET_KEEPALIVELIST', [...store.state.keepAliveList, to.name])
+    //     }
+    //     next()
+    // }
 });
 
 export default router;

--
Gitblit v1.7.1