mes_mobile/utils/api.js

129 lines
4.9 KiB
JavaScript
Raw Normal View History

2024-03-13 16:07:11 +08:00
import config from './envConfig.js';
import wf from './public.js'
const request = (url = '', data = {}, header = { //这里这样封装是为了后续具体组件中使用时可以直接传参,需按此顺序传参而不需要写urlxxx等键值对传参
//具体的header和后端商同后再编写这里以常见的token为例
'Authorization': 'Bearer '+uni.getStorageSync('mes_token') ? 'Bearer '+uni.getStorageSync('mes_token') : '',
}) => {
return new Promise((resolve, reject) => {
// console.log(config,800)
uni.request({
url: config.dev.VITE_BASE_API + url, //接口地址:前缀+方法中传入的地址
method: "POST", //请求方法
dataType: "json",
data: data, //传递参数
header: header, //自定义头部,和后端商同后编写
success: (res) => {
// console.log('request.js文件的通用接口请求封装返回的结果数据',res);
//注因为这里对请求成功的没有统一设置抛错提示所以后续具体组件中使用接口请求的res除200实际以后端同事定好的为准成功外的其他code需要额外写抛错提示
if (res.data.code == 'xxx') { //自定请求失败的情况这里以常见的token失效或过期为例
uni.removeStorageSync('token');
uni.showModal({
showCancel: false,
title: '温馨提示',
content: res.data.msg,
// header: {
// "Token": 'Bearer ' + uni.getStorageSync("mes_token")
// },
success: function(result) {
if (result.confirm) {
// uni.reLaunch({
// url: '/pages/login/index' //这里需用绝对路径才可
// });
}
}
});
}
if(res.header.Authorization){
uni.removeStorageSync('mes_token');
let obj = new Object();
let str =String(res.header.Authorization)
let newStr = str.slice(0, 0) + str.slice(7)
obj.mes_token=newStr;
uni.setStorageSync("mes_token",obj.mes_token);
}
resolve(res.data) //成功
},
// 这里的接口请求如果出现问题就输出接口请求失败的msg
//注因为这里对于请求失败的设置统一抛错提示了所以后续具体组件中使用接口请求的catch中不需要再写抛错提示
fail: (err) => {
uni.showToast({
title: "" + err.msg,
icon: 'none'
});
reject(err)
}
})
})
}
const postFuncLoading = (url = '', data = {}, header = { //这里这样封装是为了后续具体组件中使用时可以直接传参,需按此顺序传参而不需要写urlxxx等键值对传参
//具体的header和后端商同后再编写这里以常见的token为例
'Authorization': 'Bearer '+uni.getStorageSync('mes_token') ? 'Bearer '+uni.getStorageSync('mes_token') : '',
}) => {
uni.showLoading({
title: '加载中',
mask: true
})
return new Promise((resolve, reject) => {
// console.log(config,800)
uni.request({
url: config.dev.VITE_BASE_API + url, //接口地址:前缀+方法中传入的地址
method: "POST", //请求方法
dataType: "json",
data: data, //传递参数
header: header, //自定义头部,和后端商同后编写
success: (res) => {
setTimeout(function () {
uni.hideLoading();
}, 200);
// console.log('request.js文件的通用接口请求封装返回的结果数据',res);
//注因为这里对请求成功的没有统一设置抛错提示所以后续具体组件中使用接口请求的res除200实际以后端同事定好的为准成功外的其他code需要额外写抛错提示
if (res.data.code == 'xxx') { //自定请求失败的情况这里以常见的token失效或过期为例
uni.removeStorageSync('token');
uni.showModal({
showCancel: false,
title: '温馨提示',
content: res.data.msg,
// header: {
// "Token": 'Bearer ' + uni.getStorageSync("mes_token")
// },
success: function(result) {
if (result.confirm) {
// uni.reLaunch({
// url: '/pages/login/index' //这里需用绝对路径才可
// });
}
}
});
}
if(res.header.Authorization){
uni.removeStorageSync('mes_token');
let obj = new Object();
let str =String(res.header.Authorization)
let newStr = str.slice(0, 0) + str.slice(7)
obj.mes_token=newStr;
uni.setStorageSync("mes_token",obj.mes_token);
}
resolve(res.data) //成功
},
// 这里的接口请求如果出现问题就输出接口请求失败的msg
//注因为这里对于请求失败的设置统一抛错提示了所以后续具体组件中使用接口请求的catch中不需要再写抛错提示
fail: (err) => {
uni.showToast({
title: "" + err.msg,
icon: 'none'
});
reject(err)
}
})
})
}
export default {
request,
postFuncLoading
};