9 changed files with 131 additions and 75 deletions
@ -1,87 +1,90 @@ |
|||||
/*--------------------------------------------------------------- |
/*--------------------------------------------------------------- |
||||
| 请求接口封装 | |
| 请求接口封装 | |
||||
---------------------------------------------------------------*/ |
---------------------------------------------------------------*/ |
||||
import axios from 'axios' |
import axios from "axios"; |
||||
import log from 'dai-js/modules/log' |
import message from "dai-js/modules/message/message"; |
||||
import curry from 'dai-js/tools/curry' |
import curry from "dai-js/tools/curry"; |
||||
|
|
||||
const request = curry( |
const request = curry( |
||||
(method, url, data = {}, headers = {}, progress = () => {}) => { |
(method, url, data = {}, headers = {}, progress = () => {}) => { |
||||
return new Promise((reslove) => { |
return new Promise((reslove) => { |
||||
let returnIniData = { |
let returnIniData = { |
||||
httpCode: '', |
httpCode: "", |
||||
data: {}, |
data: {}, |
||||
msg: '', |
msg: "", |
||||
code: '' |
code: "", |
||||
} |
}; |
||||
|
|
||||
// 添加服务器端URL
|
// 添加服务器端URL
|
||||
function processUrl(url) { |
function processUrl(url) { |
||||
if (url.indexOf('http://') > -1 || url.indexOf('https://') > -1) { |
if (url.indexOf("http://") > -1 || url.indexOf("https://") > -1) { |
||||
return url |
return url; |
||||
} |
} |
||||
return process.env.VUE_APP_API_SERVER + url |
return process.env.VUE_APP_API_SERVER + url; |
||||
} |
} |
||||
|
|
||||
url = processUrl(url) |
url = processUrl(url); |
||||
|
|
||||
const succFn = (res) => { |
const succFn = (res) => { |
||||
// log(`[request成功] ${url}`, data, res);
|
// log(`[request成功] ${url}`, data, res);
|
||||
let retData = { |
let retData = { |
||||
...returnIniData, |
...returnIniData, |
||||
...res.data, |
...res.data, |
||||
httpCode: res.statusCode |
httpCode: res.statusCode, |
||||
} |
}; |
||||
// if(typeof Vue.$afterRequestHook == 'function'){
|
// if(typeof Vue.$afterRequestHook == 'function'){
|
||||
// retData = Vue.$afterRequestHook(retData);
|
// retData = Vue.$afterRequestHook(retData);
|
||||
// }
|
// }
|
||||
|
if (res.data.code > 8000 && res.data.code < 10000) { |
||||
|
message.error(res.data.msg); |
||||
|
} |
||||
|
|
||||
reslove(retData) |
reslove(retData); |
||||
} |
}; |
||||
|
|
||||
const failFn = (err) => { |
const failFn = (err) => { |
||||
// log(`[request失败] ${url}`, data, err);
|
// log(`[request失败] ${url}`, data, err);
|
||||
|
|
||||
reslove( |
reslove( |
||||
Object.assign({}, returnIniData, { |
Object.assign({}, returnIniData, { |
||||
httpCode: '9999', //访问出现意外
|
httpCode: "9999", //访问出现意外
|
||||
msg: '网络错误' |
msg: "网络错误", |
||||
}) |
}) |
||||
) |
); |
||||
} |
}; |
||||
|
|
||||
if (method.toUpperCase() == 'POST') { |
if (method.toUpperCase() == "POST") { |
||||
axios |
axios |
||||
.post(url, data, { |
.post(url, data, { |
||||
headers, |
headers, |
||||
responseType: 'json' |
responseType: "json", |
||||
// progress,
|
// progress,
|
||||
// credentials: false,
|
// credentials: false,
|
||||
}) |
}) |
||||
.then(succFn) |
.then(succFn) |
||||
.catch(failFn) |
.catch(failFn); |
||||
} else { |
} else { |
||||
axios |
axios |
||||
.get(url, { |
.get(url, { |
||||
params: data, |
params: data, |
||||
headers, |
headers, |
||||
responseType: 'json' |
responseType: "json", |
||||
// credentials: true,
|
// credentials: true,
|
||||
}) |
}) |
||||
.then(succFn) |
.then(succFn) |
||||
.catch(failFn) |
.catch(failFn); |
||||
} |
} |
||||
}) |
}); |
||||
} |
} |
||||
) |
); |
||||
|
|
||||
export const requestGet = request('get') |
export const requestGet = request("get"); |
||||
|
|
||||
export const requestPost = request('post') |
export const requestPost = request("post"); |
||||
|
|
||||
export default { |
export default { |
||||
install(Vue) { |
install(Vue) { |
||||
Vue.prototype.$requestGet = requestGet |
Vue.prototype.$requestGet = requestGet; |
||||
Vue.prototype.$requestPost = requestPost |
Vue.prototype.$requestPost = requestPost; |
||||
} |
}, |
||||
} |
}; |
||||
|
Loading…
Reference in new issue