UNPKG

@eim-materials/eim-pc-admin-lite

Version:

该模板适用于从 0 到 1 开始搭建项目,内置基础的页面,路由和菜单展示。

44 lines (40 loc) 1.16 kB
import router from '@/router'; import store from '@/store'; import NProgress from 'nprogress'; import 'nprogress/nprogress.css'; NProgress.configure({ showSpinner: false, }); router.beforeEach((to, from, next) => { NProgress.start(); const token = localStorage.getItem('template_token'); let userinfo = {}; let roles = {}; try { userinfo = JSON.parse(localStorage.getItem('template_userinfo')) ? JSON.parse(localStorage.getItem('template_userinfo')) : {}; } catch (e) { userinfo = {}; } try { roles = JSON.parse(localStorage.getItem('template_roles')) ? JSON.parse(localStorage.getItem('template_roles')) : ['init']; } catch (e) { roles = ['init']; } store.commit('SETTOKEN', token); store.commit('SETUSERINFO', userinfo); store.commit('SETROLES', roles); if (store.getters.token) { if (store.getters.roles.indexOf(to.name) > -1 || store.getters.roles[0] === 'init') { next(); } else { next({ path: '/403', replace: true }); } } else if (to.path === '/login') { next(); } else { next({ path: '/login', replace: true }); } }); router.afterEach(() => { NProgress.done(); });