import Vue from 'vue' import Router from 'vue-router' import './fixed-router' import { base } from '@/api/base' import { getToken } from '@/utils/login-helper' // @ts-ignore import eventBus from 'vue3-eventbus' Vue.use(Router) export const constantRoutes = [ // { // path: '*', // redirect: '/error/404', // }, ] export const asyncRouterMap = [ /** 主页 */ { path: '/', alias: ['/index'], component: () => import('@/views/Index.vue'), name: 'Main', meta: { title: '主页', keepAlive: true, }, }, /** 登录 */ { name: 'login', alias: ['/index/login'], hidden: true, meta: { title: '登录' }, path: '/login', component: () => import('@/views/Login.vue') }, /** 错误页 */ // { // path: '/error', // component: HeaderLayout, // redirect: '/error/404', // name: 'Error', // meta: { // title: '', // }, // children: [ // { // path: '404', // component: () => import('@/views/Error/404.vue'), // name: '404', // meta: { // title: '404', // }, // }, // { // path: '403', // component: () => import('@/views/Error/403.vue'), // name: '403', // meta: { // title: '403', // }, // }, // { // path: '500', // component: () => import('@/views/Error/500.vue'), // name: '500', // meta: { // title: '500', // }, // }, // ], // }, ] const createRouter = () => new Router({ mode: 'history', base: `${base}/`, routes: [...constantRoutes, ...asyncRouterMap], }) const router = createRouter() export function useRouter() { return router } export function useRoute() { return router.currentRoute } //设置路由导航守卫 router.beforeEach((to, from, next) => { const token = getToken() // 是否需要登录 if (to.name !== 'Login' && !token) { } // 设置网页标题 document.title = to.meta.title || '' next() eventBus.emit('routeChange', to, from) }) export default router