重构云文件管理系统

This commit is contained in:
2026-04-02 23:35:19 +08:00
parent 9ff222c22c
commit ceb6c8258c
11 changed files with 294 additions and 147 deletions

View File

@@ -1,4 +1,4 @@
import axios from 'axios'
import axios from 'axios'
const request = axios.create({
baseURL: '/api',
@@ -17,9 +17,35 @@ request.interceptors.request.use(
)
request.interceptors.response.use(
response => response.data,
response => {
const res = response.data
// 如果是二进制数据blob直接返回
if (response.config.responseType === 'blob') {
return res
}
// 统一响应格式: { code, message, data }
// code === 200 表示成功,返回 data
if (res.code === 200) {
return res.data
}
// 业务错误,抛出异常
const error = new Error(res.message || '请求失败')
error.code = res.code
error.response = response
return Promise.reject(error)
},
error => {
const status = error.response?.status
const data = error.response?.data
// 如果响应体中有错误信息,优先使用
if (data && typeof data === 'object' && data.message) {
error.message = data.message
error.code = data.code
}
// 只有 401/403 才清理 token 并跳转登录页
// 但在登录页时不跳转(避免死循环),登录接口的 401 也不跳转