From 07b5dcb4905a15d0b39a51219d51c57fbd5ca4d1 Mon Sep 17 00:00:00 2001 From: hcong <1050828145@qq.com> Date: 星期四, 28 十一月 2024 13:35:04 +0800 Subject: [PATCH] 1. 新增登录页面 2. 新增登录接口 3. 新增stores/userToken.js 保存登录状态登录和退出登录 和 stores/activeCheck.js 保存登录超时和延时函数 4. components/core/Header完善退出登录点击事件 5. 新增cookie工具类 6. 新增登录工具类 --- src/router/index.js | 127 +++++++++++++++++++++++++++++++---------- 1 files changed, 95 insertions(+), 32 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index f08c0ce..4b29d64 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -2,7 +2,9 @@ import { createRouter, createWebHistory, createWebHashHistory } from 'vue-router' import pinia from '../stores/index' import { useLoadingStore } from '../stores/loadingStore' - +import { useActiveCheck } from '@/stores/activeCheck'; +import { useUserStore } from '@/stores/userToken'; +import loginUtil from '../utils/loginUtil'; const routes = [ // { // //鏁存敼瀹℃牳 @@ -14,50 +16,82 @@ { //闂鍔ㄦ�佽窡韪� name: 'profollow', - path: '/analysis/profollow', - component: () => import('@/views/fysp/analysis/ProFollow.vue') + path: '/fysp/data-product/profollow', + component: () => import('@/views/fysp/data-product/ProdProFollow.vue') }, { //闂鏁存敼鍒嗘瀽 name: 'proanalysis', - path: '/analysis/proanalysis', - component: () => import('@/views/fysp/analysis/ProAnalysis.vue') + path: '/fysp/data-product/proanalysis', + component: () => import('@/views/fysp/data-product/ProdProAnalysis.vue') }, { //瑙勮寖鎬ц瘎浼� name: 'standardjudge', - path: '/analysis/standardjudge', - component: () => import('@/views/fysp/analysis/StandardJudge.vue') + path: '/fysp/data-product/standardjudge', + component: () => import('@/views/fysp/data-product/ProdStandardJudge.vue') }, { //鏃ユ姤绠$悊 name: 'dailyreport', - path: '/dailyreport', - component: () => import('@/views/fysp/dailyreport/DailyReport.vue') + path: '/fysp/data-product/dailyreport', + component: () => import('@/views/fysp/data-product/ProdDailyReport.vue') }, { - //鍦烘櫙鎶ュ憡-宸ュ湴 - name: 'construction', - path: '/scenereport/construction', - component: () => import('@/views/fysp/scenereport/ConstructionReport.vue') + //鍦烘櫙鎶ュ憡 + name: 'scenereport', + path: '/fysp/data-product/scenereport', + component: () => import('@/views/fysp/data-product/ProdSceneReport.vue') + }, + // { + // //鍦烘櫙鎶ュ憡-宸ュ湴 + // name: 'construction', + // path: '/scenereport/construction', + // component: () => import('@/views/fysp/scenereport/ConstructionReport.vue') + // }, + // { + // //鍦烘櫙鎶ュ憡-鐮佸ご + // name: 'wharf', + // path: '/scenereport/wharf', + // component: () => import('@/views/fysp/scenereport/WharfReport.vue') + // }, + // { + // //鍦烘櫙鎶ュ憡-鎼呮媽绔� + // name: 'mixing', + // path: '/scenereport/mixing', + // component: () => import('@/views/fysp/scenereport/MixingReport.vue') + // }, + // { + // //鍦烘櫙鎶ュ憡-鍫嗗満 + // name: 'storage', + // path: '/scenereport/storage', + // component: () => import('@/views/fysp/scenereport/StorageReport.vue') + // }, + + { + //鐩戠浠诲姟 + name: 'taskmanage', + path: '/fysp/task/manage', + component: () => import('@/views/fysp/task/TaskManage.vue'), + meta: { keepAlive: true } }, { - //鍦烘櫙鎶ュ憡-鐮佸ご - name: 'wharf', - path: '/scenereport/wharf', - component: () => import('@/views/fysp/scenereport/WharfReport.vue') + //鐩戠浠诲姟鍦烘櫙缂栬緫 + name: 'monitorObjEdit', + path: '/fysp/task/edit', + component: () => import('@/views/fysp/task/MonitorObjEdit.vue') }, { - //鍦烘櫙鎶ュ憡-鎼呮媽绔� - name: 'mixing', - path: '/scenereport/mixing', - component: () => import('@/views/fysp/scenereport/MixingReport.vue') + //鐩戠浠诲姟璁″垝缂栬緫 + name: 'monitorPlanEdit', + path: '/fysp/task/plan/edit', + component: () => import('@/views/fysp/task/MonitorPlanEdit.vue') }, { - //鍦烘櫙鎶ュ憡-鍫嗗満 - name: 'storage', - path: '/scenereport/storage', - component: () => import('@/views/fysp/scenereport/StorageReport.vue') + //鐩戠浠诲姟璁″垝缂栬緫 + name: 'monitorTaskCreate', + path: '/fysp/task/create', + component: () => import('@/views/fysp/task/MonitorTaskCreate.vue') }, { //闂瀹℃牳 @@ -170,19 +204,48 @@ name: 'userMatch', path: '/common/userMatch', component: () => import('@/views/common/UserMatch.vue') + }, + { + //鏂囨。鐢熸垚娴嬭瘯 + name: 'docTest', + path: '/common/docTest', + component: () => import('@/views/DocTest.vue') + }, + { + //鐧婚檰 + name: 'loginView', + path: '/common/loginView', + component: () => import('@/views/LoginView.vue') } -] +]; const router = createRouter({ // history: createWebHistory(import.meta.env.BASE_URL) history: createWebHashHistory(), routes: routes -}) +}); -const loadingStore = useLoadingStore(pinia) +const loadingStore = useLoadingStore(pinia); +const activeCheck = useActiveCheck(pinia); +const userStore = useUserStore(pinia); // eslint-disable-next-line no-unused-vars router.afterEach((to, from) => { - loadingStore.clearLoading() -}) - -export { router, routes } + loadingStore.clearLoading(); +}); +function loginJudge() { + // 濡傛灉鏄湭鐧诲綍 灏濊瘯浠巆ookie鐧诲綍 + if (!userStore.isLoggedIn()) { + loginUtil.loginFromCookie(); + } + // 濡傛灉鐧诲綍瓒呮椂 璺宠浆鍒扮櫥褰曢〉闈� + if (!activeCheck.isActive()) { + router.push('/common/loginView'); + } +} +router.beforeEach((to, from) => { + // 娣诲姞鐧诲綍楠岃瘉 + if (to.fullPath !== '/common/loginView') { + loginJudge(); + } +}); +export { router, routes }; -- Gitblit v1.9.3