import AjaxPlugin from 'axios';
const request = (
url: string,
{
method,
data = {},
isMock = false, //是否是mock接口
response = 'json', //文件传输需要替换格式
}: {
method: string;
data?: any;
isMock: boolean;
response?: any;
}
) => {
return new Promise((resolve, reject) => {
if (url.indexOf('?') < 0) {
url += '?_dt=' + Math.random();
}
if (
data &&
typeof data === 'object' &&
(method === 'get' || method === 'delete')
) {
for (const k in data) {
if (data.hasOwnProperty(k)) {
if (k === 'key' && (data[k] || '').indexOf("'") >= 0) {
data[k] = data[k].replace(/\/'/g, '');
}
url += '&' + k + '=' + data[k];
}
}
}
let ajaxResult: any;
if (method === 'get') {
ajaxResult = AjaxPlugin.get(url, { responseType: response });
} else if (method === 'delete') {
ajaxResult = AjaxPlugin.delete(url);
} else if (method === 'post') {
ajaxResult = AjaxPlugin.post(url, data, { responseType: response });
} else if (method === 'put') {
ajaxResult = AjaxPlugin.put(url, data);
}
ajaxResult
.then(
(r: any) => {
resolve(r.data);
},
(r: any) => {
reject(r.data);
}
)
});
};
export default request;
export async function queryData(data: any) {
return await request('xxxxurl', {
method: 'post',
data
});
}