/** * 全站权限配置 * */ import router from './router/router'; import store from '@/store'; import { validatenull } from '@/util/validate'; import NProgress from 'nprogress'; // progress bar import 'nprogress/nprogress.css'; // progress bar style NProgress.configure({ showSpinner: false }); router.beforeEach((to, from, next) => { NProgress.start(); const meta = to.meta || {}; if (store.getters.access_token) { if (store.getters.isLock && to.path !== '/lock') { next({ path: '/lock' }); } else if (to.path === '/login') { next({ path: '/' }); } else { const value = to.query.src || to.fullPath; const label = to.query.name || to.name; if (meta.isTab !== false && !validatenull(value) && !validatenull(label)) { store.commit('ADD_TAG', { label: label, value: value, params: to.params, query: to.query, group: router.$avueRouter.group || [] }); } next(); } } else { // 页面多开:载入localStorage的auth参数 By Luxn let auth = JSON.parse(localStorage.getItem("authorization") || "{}"); if ( meta.isAuth === false) { next(); }else{ if (auth.date_time) { let key = ["access_token", "refresh_token", "expires_in", "user_info", "language"]; key.forEach((item, i) => { store.commit("SET_" + item.toUpperCase(), auth[item]); store.commit("SET_PERMISSIONS", auth.user_info.authorities || []); }); // 获取左侧导航,打开Path页面 By Luxn store.dispatch("GetMenu", { language: auth.language, type: true }).then((data) => { let path = window.location.hash.substr(1); if (data.length > 0 && path.length > 1) { router.$avueRouter.formatRoutes(data, true); next({ path: path }); } else { next(); } }); }else{ next('/login'); } } } }) router.afterEach((to,from) => { NProgress.done(); const title = store.getters.tag.label; router.$avueRouter.setTitle(title); // 打开新页面标题不对,根据router配置的title进行替换 if(to.meta.title){ router.$avueRouter.setTitle( to.meta.title) } })