142 lines
3.2 KiB
TypeScript
142 lines
3.2 KiB
TypeScript
import axios from "axios";
|
|
import { ElMessage } from 'element-plus'
|
|
|
|
interface requestType {
|
|
url: string
|
|
params?: any
|
|
}
|
|
const handleCode = async (code: number, message: string) => {
|
|
if (code != 200) {
|
|
console.log(message);
|
|
ElMessage.error(message || `后端接口${code}异常`)
|
|
|
|
}
|
|
if (code == 401) {
|
|
ElMessage.error(message || '登录失效')
|
|
setTimeout(() => {
|
|
location.href = "/login"
|
|
}, 1500);
|
|
}
|
|
}
|
|
|
|
//创建axsio 赋给常量service
|
|
const service = axios.create({
|
|
baseURL: "https://sh-ocr-api.bskies.cc/",
|
|
// baseURL: "/api",
|
|
timeout: 30000,
|
|
|
|
});
|
|
// 添加请求拦截器
|
|
service.interceptors.request.use(
|
|
(config: any) => {
|
|
config.headers = {
|
|
'Content-Type': 'application/json;charset=UTF-8',
|
|
"authorization": localStorage.getItem("token"),
|
|
}
|
|
console.log(config, 'config')
|
|
return config;
|
|
},
|
|
(error: any) => {
|
|
return Promise.reject(error);
|
|
}
|
|
);
|
|
// 添加响应拦截器
|
|
service.interceptors.response.use(
|
|
(response) => {
|
|
//response参数是响应对象
|
|
// 对响应数据做点什么
|
|
|
|
const { data, config } = response
|
|
return data;
|
|
},
|
|
(error: any) => {
|
|
const { response } = error
|
|
if (error.response && error.response.data) {
|
|
const { status, data } = response
|
|
handleCode(status, data.message)
|
|
// 对响应错误做点什么
|
|
return Promise.reject(error);
|
|
} else {
|
|
let { message } = error
|
|
if (message === 'Network Error') {
|
|
message = '后端接口连接异常'
|
|
}
|
|
if (message.includes('timeout')) {
|
|
message = '后端接口请求超时'
|
|
}
|
|
if (message.includes('Request failed with status code')) {
|
|
const code = message.substr(message.length - 3)
|
|
message = '后端接口' + code + '异常'
|
|
}
|
|
ElMessage.error(message || `后端接口未知异常`)
|
|
return Promise.reject(error);
|
|
}
|
|
}
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* @description GET
|
|
*/
|
|
const GET = ({ url, params }: requestType) => {
|
|
return service({
|
|
url,
|
|
method: "GET",
|
|
params
|
|
})
|
|
}
|
|
|
|
/**
|
|
* @description POST
|
|
*/
|
|
const POST = ({ url, params }: requestType) => {
|
|
return service({
|
|
url,
|
|
method: "POST",
|
|
data: params
|
|
})
|
|
}
|
|
/**
|
|
* @description PUT
|
|
*/
|
|
const PUT = ({ url, params }: requestType) => {
|
|
return service({
|
|
url,
|
|
method: "PUT",
|
|
data: params
|
|
})
|
|
}
|
|
|
|
/**
|
|
* @description DELETE
|
|
*/
|
|
const DELETE = ({ url, params }: requestType) => {
|
|
return service({
|
|
url,
|
|
method: 'delete',
|
|
data: params
|
|
})
|
|
}
|
|
|
|
/**
|
|
* @description PATCH
|
|
*/
|
|
const PATCH = ({ url, params }: requestType) => {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
service
|
|
.put(url, params)
|
|
.then((res: any) => {
|
|
if (res && res.status == 200) {
|
|
resolve(res)
|
|
}
|
|
})
|
|
.catch((error: any) => {
|
|
reject(error)
|
|
})
|
|
})
|
|
}
|
|
export { GET, POST, PUT, DELETE, PATCH } |