You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
4.5 KiB
125 lines
4.5 KiB
/** |
|
* 全站权限配置 |
|
* |
|
*/ |
|
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 }); |
|
const lockPage = store.getters.website.lockPage; //锁屏页 |
|
router.beforeEach((to, from, next) => { |
|
console.log(to); |
|
window.routeName = to.name |
|
if (to.path.indexOf('home') < 0) { |
|
document.documentElement.style.fontSize = ''; |
|
} else { |
|
window.onresize = () => { |
|
if (location.href.indexOf('home') < 0) { |
|
} |
|
else { |
|
var dev_width = document.documentElement.clientWidth || document.body.clientWidth |
|
document.documentElement.style.fontSize = (dev_width / 1920) * 100 + 'px' |
|
} |
|
} |
|
} |
|
const meta = to.meta || {}; |
|
const isMenu = meta.menu === undefined ? to.query.menu : meta.menu; |
|
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: '/' }) |
|
} else { |
|
//如果用户信息为空则获取用户信息,获取用户信息失败,跳转到登录页 |
|
if (store.getters.token.length === 0) { |
|
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)) { |
|
if(from.path.indexOf('/garden/index') != -1){ |
|
if(to.path.indexOf('sourceAnaly/index') == -1){ |
|
const routerUrl = router.resolve({ path: to.path, query: to.query,params:to.params }); |
|
window.open(routerUrl.href,'_blank') |
|
}else{ |
|
next() |
|
} |
|
}else if(from.path.indexOf('sourceAnaly/index') != -1){ |
|
if(to.path.indexOf('/garden/index') == -1){ |
|
const routerUrl = router.resolve({ path: to.path, query: to.query,params:to.params }); |
|
window.open(routerUrl.href,'_blank') |
|
}else{ |
|
next() |
|
} |
|
}else{ |
|
if(from.path != '/'){ |
|
if(to.path.indexOf('/garden/index') != -1 || to.path.indexOf('sourceAnaly/index') != -1){ |
|
const routerUrl = router.resolve({ path: to.path, query: to.query,params:to.params }); |
|
window.open(routerUrl.href,'_blank') |
|
}else{ |
|
next() |
|
} |
|
}else{ |
|
next() |
|
} |
|
// 单独部署监控模块删除此代码 |
|
if(to.path.indexOf('/opsVisualization/index') != -1){ // 单独部署监控模块删除此代码 |
|
next('/opsVisualization/tuobu') // 单独部署监控模块删除此代码 |
|
} // 单独部署监控模块删除此代码 |
|
} |
|
// store.commit('ADD_TAG', { |
|
// label: label, |
|
// value: value, |
|
// params: to.params, |
|
// query: to.query, |
|
// meta: (() => { |
|
// if (!i18n) { |
|
// return meta |
|
// } |
|
// return { |
|
// i18n: i18n |
|
// } |
|
// })(), |
|
// group: router.$avueRouter.group || [] |
|
// }); |
|
} |
|
} |
|
} |
|
} else { |
|
//判断是否需要认证,没有登录访问去登录页 |
|
if (meta.isAuth === false) { |
|
next() |
|
} else { |
|
if (to.path.indexOf('/opsVisualization') == '-1') { |
|
next('/login') |
|
} |
|
//运维可视化免登录 |
|
else { |
|
next() |
|
} |
|
} |
|
} |
|
}) |
|
|
|
router.afterEach(() => { |
|
NProgress.done(); |
|
let title = store.getters.tag.label; |
|
let i18n = store.getters.tag.meta.i18n; |
|
title = router.$avueRouter.generateTitle(title, i18n); |
|
//判断登录页的情况 |
|
if (router.history.current.fullPath === "/login") { |
|
title = "登录"; |
|
} |
|
//根据当前的标签也获取label的值动态设置浏览器标题 |
|
router.$avueRouter.setTitle(title); |
|
});
|
|
|