123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- import router from '../router'
- import NProgress from 'nprogress'
- import 'nprogress/nprogress.css'
- import {
- getToken,
- getComment,
- removeToken
- } from '@/uitls/auth'
- import store from '../store';
- import {
- Message
- } from 'element-ui'
- NProgress.configure({
- showSpinner: false
- })
- const baseUrl = ['/', '/401', '/404', '/loginRegister/login', '/work', '/message', '/space/project',
- '/iot/device/detail','/work/system/main'
- ];
- const testBaseUrl = (path) => { //判断公共路由
- let nowBaseUrl = ['/loginRegister/login'].filter((item) => {
- return (item == path && item != '/')
- })
- return nowBaseUrl.length == 0;
- }
- /* 消息提示 */
- const tip = (msg, type) => {
- let types = type || 'warning';
- Message({
- message: msg,
- type: types,
- duration: 2000
- });
- }
- const testComment = (path) => { //判断权限路由
- let comment = getComment() ? JSON.parse(getComment()) : [];
- let nowComment = comment.concat(baseUrl).filter((item) => {
- return item == path
- })
- return nowComment.length == 0;
- }
- router.beforeEach((to, from, next) => {
- if (getToken() && !(store.getters && store.getters.user && store.getters.user.userId) && !sessionStorage
- .getItem('store')) removeToken();
- /* 判断是否登录 */
- if (!getToken() && testBaseUrl(to.path)) return next('/loginRegister/login');
- /* 判断路由是否存在 */
- if (to.matched.length === 0) return next('/404');
- /* 判断是否有权限 */
- if (testComment(to.path)) return next('/401');
- /* 无项目时跳转项目列表页面 */
- if (getToken() && localStorage.getItem('projectId') == 0 && to.path !== '/space/project') {
- tip('暂无项目,请先添加项目');
- return next('/space/project');
- }
- NProgress.start();
- next();
- });
- router.afterEach(() => {
- NProgress.done();
- });
- router.onError((error) => {
- NProgress.done();
- location.reload();
- });
|