You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
|
/*
|
|
|
|
|
|
* routes.js
|
|
|
|
|
|
* Copyright (C) 2025 veypi <i@veypi.com>
|
|
|
|
|
|
*
|
|
|
|
|
|
* 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
|