/* * routes.js * Copyright (C) 2025 veypi * * Distributed under terms of the MIT license. */ import token from './token.js' function wrapAxios(axios) { axios.interceptors.response.use(function(response) { if (response.data && response.data.code === 0) { return response.data.data } return response; }, function(error) { let data = error.response ? error.response.data : error.response if (data.code >= 400) { return Promise.reject(data.message) } return Promise.reject(data.message); }); } async function checkAuth(to, from, next) { if (token.isExpired()) { await token.refresh() } if (token.isExpired()) { token.logout() } } /** * 定义路由 * @param{{$axios:Axios, $bus:EventBus, $router: VRouter, root:string}} env * */ function setup(env) { token.setRoot(env.root) token.wrapAxios(env.$axios) wrapAxios(env.$axios) let user = token.body() env.Guser = user env.Gtoken = token.getToken() // 添加路由 env.$router.addRoutes([ { path: '/', component: '/page/index.html', name: 'home', }, { path: '/404', component: '/page/404.html', name: '404' }, { path: '*', // 通配符,匹配所有未定义的路由 component: (path) => { if (path.endsWith('.html')) { return path; // 如果是HTML文件,直接返回 } path = '/page' + path return path + '.html' }, } ]) } export default setup