| | |
| | | /* |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2023-12-14 17:10:00 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2024-01-22 13:30:53 |
| | | * @FilePath: \jczz_web\src\permission.js |
| | | * @Description: |
| | | * |
| | | * Copyright (c) 2024 by shuishen, All Rights Reserved. |
| | | */ |
| | | /** |
| | | * 全站权限配置 |
| | | * |
| | | */ |
| | | import router from './router/router' |
| | | import store from './store' |
| | | import {validatenull} from '@/util/validate' |
| | | import {getToken} from '@/util/auth' |
| | | import NProgress from 'nprogress' // progress bar |
| | | import 'nprogress/nprogress.css' // progress bar style |
| | | NProgress.configure({showSpinner: false}); |
| | | import router from "./router/router"; |
| | | import store from "./store"; |
| | | import { validatenull } from "@/util/validate"; |
| | | import { getToken } from "@/util/auth"; |
| | | import NProgress from "nprogress"; // progress bar |
| | | import "nprogress/nprogress.css"; // progress bar style |
| | | import { getStore } from "@/util/store"; |
| | | |
| | | NProgress.configure({ showSpinner: false }); |
| | | const lockPage = store.getters.website.lockPage; //锁屏页 |
| | | router.beforeEach((to, from, next) => { |
| | | const meta = to.meta || {}; |
| | | const isMenu = meta.menu === undefined ? to.query.menu : meta.menu; |
| | | store.commit('SET_IS_MENU', isMenu === undefined); |
| | | store.commit("SET_IS_MENU", isMenu === undefined); |
| | | |
| | | if (getToken()) { |
| | | if (store.getters.isLock && to.path !== lockPage) { //如果系统激活锁屏,全部跳转到锁屏页 |
| | | next({path: lockPage}) |
| | | } else if (to.path === '/login') { //如果登录成功访问登录页跳转到主页 |
| | | next({path: '/'}) |
| | | if (store.getters.isLock && to.path !== lockPage) { |
| | | //如果系统激活锁屏,全部跳转到锁屏页 |
| | | next({ path: lockPage }); |
| | | } else if (to.path === "/login") { |
| | | //如果登录成功访问登录页跳转到主页 |
| | | next({ path: "/" }); |
| | | } else { |
| | | //如果用户信息为空则获取用户信息,获取用户信息失败,跳转到登录页 |
| | | if (store.getters.token.length === 0) { |
| | | store.dispatch('FedLogOut').then(() => { |
| | | next({path: '/login'}) |
| | | }) |
| | | store.dispatch("FedLogOut").then(() => { |
| | | next({ path: "/login" }); |
| | | }); |
| | | } else { |
| | | const value = to.query.src || to.fullPath; |
| | | const label = to.query.name || to.name; |
| | | const meta = to.meta || router.$avueRouter.meta || {}; |
| | | const i18n = to.query.i18n; |
| | | if (to.query.target) { |
| | | window.open(value) |
| | | } else if (meta.isTab !== false && !validatenull(value) && !validatenull(label)) { |
| | | store.commit('ADD_TAG', { |
| | | window.open(value); |
| | | } else if ( |
| | | meta.isTab !== false && |
| | | !validatenull(value) && |
| | | !validatenull(label) |
| | | ) { |
| | | store.commit("ADD_TAG", { |
| | | label: label, |
| | | value: value, |
| | | params: to.params, |
| | | query: to.query, |
| | | meta: (() => { |
| | | if (!i18n) { |
| | | return meta |
| | | return meta; |
| | | } |
| | | return { |
| | | i18n: i18n |
| | | } |
| | | i18n: i18n, |
| | | }; |
| | | })(), |
| | | group: router.$avueRouter.group || [] |
| | | group: router.$avueRouter.group || [], |
| | | }); |
| | | } |
| | | next() |
| | | if (to.path === "/welindex") { |
| | | next(store.getters.homeFirstPage); |
| | | return; |
| | | } |
| | | next(); |
| | | } |
| | | } |
| | | } else { |
| | | //判断是否需要认证,没有登录访问去登录页 |
| | | if (meta.isAuth === false) { |
| | | next() |
| | | next(); |
| | | } else { |
| | | next('/login') |
| | | next("/login"); |
| | | } |
| | | } |
| | | }) |
| | | }); |
| | | |
| | | router.afterEach(() => { |
| | | NProgress.done(); |