Blame view

src/permission.js 1.37 KB
赵千 committed
1 2
import router from './router'
import store from './store'
任超 committed
3
import { getMenuInfo } from '@/api/user'
赵千 committed
4 5 6 7 8 9 10 11 12
import NProgress from 'nprogress' // progress bar
import 'nprogress/nprogress.css' // progress bar style
import getPageTitle from '@/utils/get-page-title'
import Cookies from 'js-cookie'
NProgress.configure({ showSpinner: false }) // NProgress Configuration

router.beforeEach(async (to, from, next) => {
    NProgress.start()
    document.title = getPageTitle(to.meta.title)
任超 committed
13
    let hasAddDict = store.state.dict.addDict
任超 committed
14
    let hasAddRoute = store.state.permission.addRoutes
任超 committed
15 16
    if (!hasAddDict) {
        store.dispatch('dict/generateDic')
赵千 committed
17
    }
任超 committed
18 19
    if (hasAddRoute) {
        next()
任超 committed
20
        // next({ ...to, replace: true })
任超 committed
21 22
    } else {
        const { result: getMenuData } = await getMenuInfo()
任超 committed
23
        const accessRoutes = await store.dispatch('permission/generateRoutes', getMenuData)
任超 committed
24 25
        // 获取用户信息
        await store.dispatch('user/getUserInfo')
任超 committed
26
        router.addRoutes([...accessRoutes, { path: '*', redirect: '/404', hidden: true }])
任超 committed
27
        const routeTo = Cookies.get('routerTo')
任超 committed
28
        if (routeTo && routeTo !== '/') {
任超 committed
29
            next({ ...to, replace: true })
任超 committed
30 31 32
        } else {
            next('/home')
        }
任超 committed
33
    }
任超 committed
34
    NProgress.done()
赵千 committed
35 36 37 38 39 40
})
router.afterEach(to => {
    // 解决刷新页面报404问题
    Cookies.set("routerTo", to.fullPath)
    NProgress.done()
})