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

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

//路由拦截
router.beforeResolve(async (to) => {
    NProgress.start();
    const token = getToken()
    if (to.path === '/login') return true
    if (to.path === '/auth') return true
    if (!token) return '/login'
    if (to.meta?.isAuth) return true
    const res = await getRouterData(to.name)
    if (!res) return '/login'
    return true
})

router.afterEach((to) => {
    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;
