import * as vueRouter from 'vue-router'
import baseData from './modules/base'
import { getToken } from '~src/api/auth'
import { getRouterData } from './routers'
import NProgress from 'nprogress'
import '~src/styles/app/nprogress.scss'
import config from '~src/config/index'

//设置路由数据
const router = vueRouter.createRouter({
    history: vueRouter.createWebHashHistory(),
    routes: baseData,
})

//路由拦截
router.beforeResolve(async (to) => {
    NProgress.start()
    const token = getToken(), auth = ['/login']
    if (auth.indexOf(to.path) !== -1) {
        return true
    } else if (!token) {
        return '/login'
    } else {
        const res = await getRouterData(to.name)
        if (res) {
            return true
        } else {
            return '/login'
        }
    }
})

router.afterEach((to) => {
    //根据当前跳转的路由设置显示在浏览器标签的title
    let pageTitle = to.meta['title'], title = config.title;
    if (to.path !== "/") {
        window.document.title =  pageTitle?`${pageTitle} - ${title}`:title;
    } else {
        window.document.title = title;
    }
    window.scrollTo(0, 0)
    NProgress.done()
})

export function setupRouter(app) {
    app.use(router)
    return router
}

export default router
