diff --git a/src/router/index.js b/src/router/index.js index 529a4e8..00c439a 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -9,211 +9,216 @@ import {useAuthStore} from '@/stores/userstore.js' NProgress.configure({showSpinner: false}) const router = createRouter({ - history: createWebHistory(import.meta.env.BASE_URL), - routes: [ - { - path: '/login', - name: 'login', - component: () => import('@/views/login/index.vue'), - meta: { - hidden: true, - title: '登录' - } - }, - { - path: '/cas/login', - name: 'casLogin', - component: () => import('@/views/cas-login/index.vue'), - }, - { - path: '/', - name: 'layout', - component: Layout, - redirect: '/home', - meta: { - hidden: false - }, - children: [ + history: createWebHistory(import.meta.env.BASE_URL), + routes: [ { - path: '/home', - name: 'home', - component: () => import('@/views/home/index.vue'), - meta: { - title: '首页', - breadcrumb: true - } + path: '/login', + name: 'login', + component: () => import('@/views/login/index.vue'), + meta: { + hidden: true, + title: '登录' + } }, { - path: '/auth', - name: 'auth', - component: () => import('@/views/auth/index.vue'), - meta: { - title: '个人中心', - breadcrumb: true - } + path: '/cas/login', + name: 'casLogin', + component: () => import('@/views/cas-login/index.vue'), }, { - path: '/rapid/gen/edit/:tableId(\\d+)', - name: 'genEdit', - component: () => import('@/views/rapid/gen/editTable.vue'), - meta: { - title: '数据库生成配置', - breadcrumb: true - } + path: '/', + name: 'layout', + component: Layout, + redirect: '/home', + meta: { + hidden: false + }, + children: [ + { + path: '/home', + name: 'home', + component: () => import('@/views/home/index.vue'), + meta: { + title: '首页', + breadcrumb: true + } + }, + { + path: '/auth', + name: 'auth', + component: () => import('@/views/auth/index.vue'), + meta: { + title: '个人中心', + breadcrumb: true + } + }, + { + path: '/rapid/gen/edit/:tableId(\\d+)', + name: 'genEdit', + component: () => import('@/views/rapid/gen/editTable.vue'), + meta: { + title: '数据库生成配置', + breadcrumb: true + } + }, + { + path: '/workflow/process/edit/:deploymentId', + name: 'processEdit', + component: () => import('@/views/workflow/process/ProcessEdit.vue'), + meta: { + title: '编辑流程', + breadcrumb: true + } + }, + { + path: '/workflow/process', + name: 'process', + component: () => import('@/views/workflow/process/index.vue'), + meta: { + title: '流程管理', + breadcrumb: true + } + }, + { + path: '/workflow/process/edit', + name: 'processAdd', + component: () => import('@/views/workflow/process/ProcessEdit.vue'), + meta: { + title: '新增流程', + breadcrumb: true + } + }, + { + path: '/role-auth/user/:roleId(\\d+)/:roleName', + name: 'distribute', + component: () => import('@/views/system/role/DistributeUser.vue'), + meta: { + title: '角色分配用户', + breadcrumb: true + } + }, + { + path: '/post-auth/user/:postId(\\d+)/:postName', + name: 'assignUser', + component: () => import('@/views/system/post/DistributeUser.vue'), + meta: { + title: '岗位分配用户', + breadcrumb: true + } + }, + { + path: '/menu-auth/role/:menuId(\\d+)/:menuName', + name: 'assignRole', + component: () => import('@/views/system/menu/DistributeRole.vue'), + meta: { + title: '菜单分配角色', + breadcrumb: true + } + }, + { + path: '/system/notice/inform/index/:queryId', + name: 'notify', + component: () => import('@/views/system/notice/inform/index.vue'), + meta: { + title: '通知公告', + breadcrumb: false + } + }, + { + path: '/custom/query/sql/design/:queryId', + name: 'sql', + component: () => import('@/views/custom-query/sql/SqlDesign.vue'), + meta: { + title: '自定义sql查询配置', + breadcrumb: true + } + }, + { + path: '/custom/query/data/adapter/design/:queryId', + name: 'dataAdapter', + component: () => import('@/views/custom-query/data-adapter/DataAdapterDesign.vue'), + meta: { + title: '自定义数据适配器', + breadcrumb: true + } + }, + { + path: '/custom/query/echarts/design/:queryId', + name: 'echarts', + component: () => import('@/views/custom-query/echarts-editor/EchartsDesign.vue'), + meta: { + title: '自定义echarts查询配置', + breadcrumb: true + } + }, + { + path: '/rapid/data/:dsId(\\d+)', + name: 'rapid', + component: () => import('@/views/rapid/gen/index.vue'), + meta: { + title: '数据源关联数据', + breadcrumb: true + } + }, + ] }, { - path: '/workflow/process/edit/:deploymentId', - name: 'processEdit', - component: () => import('@/views/workflow/process/ProcessEdit.vue'), - meta: { - title: '编辑流程', - breadcrumb: true - } + path: '/topo/design/:queryId', + name: 'topEdit', + component: () => import('@/views/custom-query/topo/topologyDesign.vue'), + meta: { + title: 'top', + breadcrumb: false + } }, { - path: '/workflow/process', - name: 'process', - component: () => import('@/views/workflow/process/index.vue'), - meta: { - title: '流程管理', - breadcrumb: true - } - }, - { - path: '/workflow/process/edit', - name: 'processAdd', - component: () => import('@/views/workflow/process/ProcessEdit.vue'), - meta: { - title: '新增流程', - breadcrumb: true - } - }, - { - path: '/role-auth/user/:roleId(\\d+)/:roleName', - name: 'distribute', - component: () => import('@/views/system/role/DistributeUser.vue'), - meta: { - title: '角色分配用户', - breadcrumb: true - } - }, - { - path: '/post-auth/user/:postId(\\d+)/:postName', - name: 'assignUser', - component: () => import('@/views/system/post/DistributeUser.vue'), - meta: { - title: '岗位分配用户', - breadcrumb: true - } - }, - { - path: '/menu-auth/role/:menuId(\\d+)/:menuName', - name: 'assignRole', - component: () => import('@/views/system/menu/DistributeRole.vue'), - meta: { - title: '菜单分配角色', - breadcrumb: true - } - }, - { - path: '/system/notice/inform/index/:queryId', - name: 'notify', - component: () => import('@/views/system/notice/inform/index.vue'), - meta: { - title: '通知公告', - breadcrumb: false - } - }, - { - path: '/custom/query/sql/design/:queryId', - name: 'sql', - component: () => import('@/views/custom-query/sql/SqlDesign.vue'), - meta: { - title: '自定义sql查询配置', - breadcrumb: true - } - }, - { - path: '/custom/query/data/adapter/design/:queryId', - name: 'dataAdapter', - component: () => import('@/views/custom-query/data-adapter/DataAdapterDesign.vue'), - meta: { - title: '自定义数据适配器', - breadcrumb: true - } - }, - { - path: '/custom/query/echarts/design/:queryId', - name: 'echarts', - component: () => import('@/views/custom-query/echarts-editor/EchartsDesign.vue'), - meta: { - title: '自定义echarts查询配置', - breadcrumb: true - } - }, - { - path: '/rapid/data/:dsId(\\d+)', - name: 'rapid', - component: () => import('@/views/rapid/gen/index.vue'), - meta: { - title: '数据源关联数据', - breadcrumb: true - } - }, - ] - }, - { - path: '/topo/design/:queryId', - name: 'topEdit', - component: () => import('@/views/custom-query/topo/topologyDesign.vue'), - meta: { - title: 'top', - breadcrumb: false - } - }, - { - path: '/forbidden', - name: 'forbidden', - component: () => import('@/views/forbidden/index.vue'), - } - ] + path: '/forbidden', + name: 'forbidden', + component: () => import('@/views/forbidden/index.vue'), + } + ] }) router.beforeEach(async (to, form, next) => { - const permisstionStore = usePermisstionStroe() - const authStore = useAuthStore() - NProgress.start() - if (!getToken()) { - if (to.path === '/login' || to.path === '/cas/login' || to.path === '/forbidden') { - next() - NProgress.done() + const permisstionStore = usePermisstionStroe() + const authStore = useAuthStore() + NProgress.start() + if (!getToken()) { + if (to.path === '/login' || to.path === '/cas/login' || to.path === '/forbidden') { + next() + NProgress.done() + } else { + let path = window.location.pathname; + let query = window.location.search + sessionStorage.setItem('toView', JSON.stringify({ + path: path, + query: query + })) + window.location.href = `${window.location.origin}/api/auth/cas/login` + // next({path: '/api/auth/cas/login'}) + } } else { - sessionStorage.setItem('toView', JSON.stringify(to)) - window.location.href = `${window.location.origin}/api/auth/cas/login` - // next({path: '/api/auth/cas/login'}) - } - } else { - if (to.path === '/login'|| to.path === '/cas/login') { - next('/') - NProgress.done() - } else { - permisstionStore.setIsLoadRoutes(true) - if (permisstionStore.isLoadRoutes && permisstionStore.asyncRouters.length == 0) { - await permisstionStore.setAsyncRouters() - await authStore.setUserInfo() - next({...to, replace: true}) - } else { - next() - } - } + if (to.path === '/login' || to.path === '/cas/login') { + next('/') + NProgress.done() + } else { + permisstionStore.setIsLoadRoutes(true) + if (permisstionStore.isLoadRoutes && permisstionStore.asyncRouters.length == 0) { + await permisstionStore.setAsyncRouters() + await authStore.setUserInfo() + next({...to, replace: true}) + } else { + next() + } + } - } + } }) router.afterEach(() => { - NProgress.done() + NProgress.done() }) export default router diff --git a/src/utils/request.js b/src/utils/request.js index f9573b2..9c580c1 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -29,7 +29,8 @@ serveice.interceptors.response.use(response => { if (response.request.responseType === 'blob' || response.request.responseType === 'arraybuffer') { return response.data } - console.log("windows", window.location.pathname) + console.log("window.location.pathname", window.location.pathname) + console.log("windows", window.location.search) return response.data }, error => { let response = error.response @@ -43,8 +44,13 @@ serveice.interceptors.response.use(response => { closeOnClickModal: false }).then(() => { removeToken() - sessionStorage.setItem('toView', window.location.pathname) - window.location = '/api/auth/cas/login' + let path = window.location.pathname; + let query = window.location.search + sessionStorage.setItem('toView', JSON.stringify({ + path: path, + query: query + })) + window.location.href = `${window.location.origin}/api/auth/cas/login` }) return Promise.reject('会话已过期,请重新登录') case 402: diff --git a/src/views/cas-login/index.vue b/src/views/cas-login/index.vue index 996d4e5..e65559a 100644 --- a/src/views/cas-login/index.vue +++ b/src/views/cas-login/index.vue @@ -15,7 +15,14 @@ const init = () => { }) if (authStore.casToken(tokenValue)) { loading.close() - router.push('/') + const toView = sessionStorage.getItem('toView') + console.log(toView, 'toView'); + if (toView) { + let parse = JSON.parse(toView); + window.location.href = window.location.origin + parse.path + parse.query + } else { + router.push('/') + } } } init() diff --git a/src/views/home/index.vue b/src/views/home/index.vue index 679461a..cea4307 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -12,28 +12,28 @@ 科研管理平台 - - - - - - - - - - - + + + + + + + + + + + 1 - - - - - - - - - + + + + + + + + +
@@ -51,25 +51,25 @@ import * as echarts from 'echarts' import homeImage from "@/assets/home/home.png" import coffee from "@/assets/home/coffee.png" -import { useRouter } from 'vue-router'; +import {useRouter} from 'vue-router'; const router = useRouter() -const list=ref([ +const list = ref([ { title: '在线用户量', - num:2142 + num: 2142 }, { title: '在线用户量', - num:2142 + num: 2142 }, { title: '在线用户量', - num:2142 + num: 2142 }, { title: '在线用户量', - num:2142 + num: 2142 } ]) const barOption = { @@ -178,14 +178,15 @@ const init = () => { const redirectView = () => { const toView = sessionStorage.getItem('toView') console.log(toView, 'toView'); + let jsonView = JSON.parse(toView) toView ? - router.push({ - path: JSON.parse(toView).path, - query: { - ...JSON.parse(toView).query - } - }) : - null + router.push({ + path: jsonView.path, + query: { + ...jsonView.query + } + }) : + null } onMounted(() => { @@ -242,12 +243,14 @@ window.addEventListener('resize', () => { flex-direction: column; } } -.statistics{ + +.statistics { //display: flex; - .block{ + .block { } } + .container { height: calc((100vh / 2) - 150px); display: flex;