/** * 全站权限配置 * */ 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); });