- 请求拦截器统一 Auth 头不带 Bearer 前缀,新增 /suanli 前缀路由到算力调度后端 - 任务创建/轮询/历史接口迁移至 apis/display,改为 axios 调用替代原始 fetch - 模型 API 分离为两层:apis 纯 HTTP 调用 + utils 缓存业务逻辑 - 新增历史任务列表接口 requestTaskHistory(支持 user_id/platform_code 筛选和分页) - 响应拦截器兼容 status/code 双字段,用户信息兼容新旧 data 格式 - 移除免费次数(freeTimes)体系 - 更新 CLAUDE.md 文档
85 lines
2.4 KiB
JavaScript
85 lines
2.4 KiB
JavaScript
import axios from 'axios'
|
||
import { getToken } from '@/utils/auth'
|
||
import { userError } from './tokenError'
|
||
|
||
// 创建axios实例
|
||
const service = axios.create({
|
||
baseURL: import.meta.env.VITE_API_BASE_URL,
|
||
timeout: 50000 // 请求超时时间
|
||
})
|
||
|
||
const StatusCodeMessage = {
|
||
200: '服务器成功返回请求的数据',
|
||
201: '新建或修改数据成功。',
|
||
202: '一个请求已经进入后台排队(异步任务)',
|
||
204: '删除数据成功',
|
||
400: '请求错误(400)',
|
||
401: '未授权,请重新登录(401)',
|
||
403: '拒绝访问(403)',
|
||
404: '请求出错(404)',
|
||
408: '请求超时(408)',
|
||
500: '服务器错误(500)',
|
||
501: '服务未实现(501)',
|
||
502: '网络错误(502)',
|
||
503: '服务不可用(503)',
|
||
504: '网络超时(504)'
|
||
}
|
||
|
||
// request拦截器
|
||
service.interceptors.request.use(
|
||
(config) => {
|
||
const token = getToken()
|
||
if (!config.headers) {
|
||
config.headers = {}
|
||
}
|
||
|
||
// 统一 Auth 头不带 Bearer 前缀
|
||
if (token) config.headers.Authorization = token
|
||
|
||
if (config.url?.startsWith(import.meta.env.VITE_API_TASK_PREFIX)) { // 算力调度后端
|
||
config.baseURL = import.meta.env.VITE_API_TASK_TARGET
|
||
} else if (config.url?.startsWith(import.meta.env.VITE_API_PAY_PREFIX)) { // 支付服务路由
|
||
config.baseURL = import.meta.env.VITE_API_PAY_TARGET
|
||
} else if (config.url?.startsWith(import.meta.env.VITE_API_AIGC_PREFIX)) { // 资源服务路由
|
||
config.baseURL = import.meta.env.VITE_API_AIGC_TARGET
|
||
}
|
||
return config
|
||
},
|
||
(error) => {
|
||
// Do something with request error
|
||
Promise.reject(error)
|
||
}
|
||
)
|
||
|
||
// response 拦截器
|
||
service.interceptors.response.use(
|
||
(response) => {
|
||
const { data } = response
|
||
const { success, code, status, msg, message } = data
|
||
if (success || code === 0 || status === 0) {
|
||
console.log('msg: \n', msg)
|
||
return response.data
|
||
} else if (code === 401 && response.config.url !== '/login/validateToken`') { // 判断code=401时进行页面刷新,但是不对检验token这个路由的请求判断,防止出现死循环
|
||
userError()
|
||
}
|
||
console.log('CodeMessage: \n', StatusCodeMessage[code])
|
||
console.log('msg: \n', msg)
|
||
return response.data
|
||
},
|
||
(error) => {
|
||
console.log('err: \n', error)
|
||
return Promise.reject(error)
|
||
}
|
||
)
|
||
|
||
// 添加HTTP DELETE方法
|
||
service.del = function (url, config) {
|
||
return service({
|
||
method: 'delete',
|
||
url,
|
||
...config
|
||
})
|
||
}
|
||
|
||
export default service
|