From 5a9eed686fe1bf10a095e6b56fbef4188832fe00 Mon Sep 17 00:00:00 2001 From: 13404089107 <puwei@sinata.cn> Date: 星期二, 01 四月 2025 11:35:58 +0800 Subject: [PATCH] Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/leshan-laboratory --- src/router/index.js | 146 +++++++++++++++++++++++++++++++++++------------- 1 files changed, 106 insertions(+), 40 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index c4ba5c2..8c706f4 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -13,46 +13,86 @@ /** * path: "/login", ------页面地址 component: () => import("../views/login"), ------组件地址 + name: "Login", ------组件名称 缓存时需要 唯一性 meta: { title: "登录", ------页面标题 icon: "el-icon-user-solid", ------菜单图标 oneself: true, ------是否在单独页面打开 hide: true, ------是否隐藏改菜单 + keepAlive: true, ------是否缓存 } */ const routes = [ { - path: "", - redirect: "login", + path: "/login", + meta: { + title: "登录", + oneself: true, + hide: true, + }, + component: () => import("../views/login"), + }, + { + path: "/", component: Layouts, children: [ { - path: "/login", - meta: { - title: "登录", - oneself: true, - hide: true, - privilege: 'login' - }, - component: () => import("../views/login"), + path: "", + redirect: "/projectList/list" }, - ], - },{ - path: "", - redirect: "dispatching", - component: Layouts, - children: [ { - path: "/dispatching", + path: "/projectList", meta: { - title: "实验调度管理", - oneself: true, - hide: true, - privilege: 'dispatching' + title: "项目组管理", }, - component: () => import("../views/dispatching/list.vue"), + component: Parent, + children: [ + { + path: "list", + name: "ProjectList", + meta: { + title: "项目组管理", + }, + component: () => import("../views/projectList"), + }, + { + path: "addProject", + name: "AddProject", + meta: { + title: "新增项目组", + hide: true, + keepAlive: true, + }, + component: () => import("../views/projectList/addProject"), + } + ] }, + { + path: "/dataManagement", + component: Parent, + meta: { + title: "实验室数据管理", + }, + children: [ + { + path: "/approvalPlan", + meta: { + title: "项目课题方案审批", + keepAlive: true, + }, + component: () => import("../views/dataManagement/approvalPlan/list.vue"), + }, + { + path: "/dispatching", + meta: { + title: "实验调度管理", + keepAlive: true, + }, + component: () => import("../views/dataManagement/dispatching/list.vue"), + }, + ], + } ], }, ]; @@ -66,27 +106,53 @@ // 前置路由拦截器 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 + // 登录验证 + // 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 tagList = JSON.parse(localStorage.getItem('tagList') || '[]') + // 判断是否存在 + let isExist = tagList.some(item => item.path === to.path) + if (!isExist) { + // 只保存必要的信息 + const tagInfo = { + path: to.path, + name: to.name, + meta: to.meta + } + tagList.push(tagInfo) + localStorage.setItem('tagList', JSON.stringify(tagList)) + store.commit('SET_TAGLIST', tagList) + } } + + // 判断是否需要缓存 + if (to.meta.keepAlive) { + let keepAliveList = JSON.parse(localStorage.getItem('keepAliveList') || '[]') + // 判断是否已经缓存 + let isExist = keepAliveList.includes(to.name) + if (!isExist) { + keepAliveList.push(to.name) + localStorage.setItem('keepAliveList', JSON.stringify(keepAliveList)) + store.commit('SET_KEEPALIVELIST', keepAliveList) + } + } + next() - } + // } }); export default router; -- Gitblit v1.7.1