bd-admin
Version:
一款能根据需求快速配置vue后台管理的脚手架
61 lines (55 loc) • 1.52 kB
text/typescript
import axios from "axios";
import { getLocalStorage } from "@/utils/index";
import { UserInfoParams } from "@/store/modules/user";
// import { useUserInfoStore } from "@/store/modules/user";
// const userInfoStoreWithOut = useUserInfoStore();
const service = axios.create({
baseURL: import.meta.env.VITE_APP_BASE_API,
timeout: 10000,
});
/**
* "Content-Type"
* "application/octet-stream", // 二进制流"
* "application/msword", // Word文档格式
* "application/json:charset=utf-8", // JSON数据格式
* "multipart/form-data", //文件上传
*/
service.interceptors.request.use(
(request) => {
const userLocal = getLocalStorage<UserInfoParams>("user");
const { token } = userLocal || ({} as UserInfoParams);
request.headers.Authorization = token ? "Bearer " + token : undefined;
return request;
},
(err) => {
return Promise.reject(err);
},
);
// 响应拦截,根据业务文档自行调整
service.interceptors.response.use(
(response) => {
const { status, data } = response;
if (status !== 200) return {};
// resultCode是与后端约定好的
switch (data.resultCode) {
case 200:
return data;
default:
}
return response.data;
},
(err) => {
if (err.response) {
const { status } = err.response;
switch (status) {
case 404:
err.message = "请求地址出错";
break;
default:
break;
}
}
return Promise.reject(err);
},
);
export default service;