123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import router from "./index"
- import store from "../store/index"
- import NProgress from 'nprogress'
- import 'nprogress/nprogress.css'
- NProgress.configure({
- easing: 'ease', // 动画方式
- speed: 500, // 递增进度条的速度
- showSpinner: false, // 是否显示加载ico
- trickleSpeed: 200, // 自动递增间隔
- minimum: 0.3 // 初始化时的最小百分比
- })
- router.beforeEach((to, from, next) => {
- NProgress.start();
- NProgress.inc();
- if (!store.state.user.token) {
- //未登录 页面是否需要登录
- if (to.matched.length > 0 && !to.matched.some(record => record.meta.requiresAuth)) {
- next();
- } else {
- next({
- path: "/login"
- })
- }
- } else {
- // 用户已经登录 路由的访问权限
- if (!store.state.permission.permissionList) {
- store.dispatch("permission/FETCH_PERMISSION").then(() => {
- next({
- path: to.path
- })
- })
- } else {
- // store存在权限
- if (to.path !== "/login") {
- next();
- } else {
- next(from.fullPath)
- }
- }
- }
- })
- router.afterEach(() => {
- // 在即将进入新的页面组件前,关闭掉进度条
- NProgress.done()
- })
|