224 lines
5.8 KiB
JavaScript
224 lines
5.8 KiB
JavaScript
// 判断当前环境
|
||
const ENV = process.env.NODE_ENV;
|
||
console.log(ENV,'当前环境'); // development:开发环境 test:测试环境 production:生产环境
|
||
// 配置全局域名
|
||
// #ifdef APP-PLUS
|
||
const hostapi = 'http://maintain.7and5.cn';
|
||
// #endif
|
||
// #ifdef MP-WEIXIN
|
||
const hostapi = 'http://maintain.7and5.cn';
|
||
// #endif
|
||
// #ifdef H5
|
||
const hostapi = '/web';
|
||
// #endif
|
||
// 清理所有缓存并前往授权页
|
||
const goLogin = () => {
|
||
uni.clearStorageSync();
|
||
uni.navigateTo({
|
||
url: '/pages/login/login'
|
||
})
|
||
}
|
||
let flag = true;
|
||
// 刷新token并跳转到当前页面
|
||
const refreshTokenPage = () => {
|
||
uni.login({
|
||
provider: 'weixin',
|
||
success: (result)=> {
|
||
uni.request({
|
||
url: `${hostapi}user/login`,
|
||
method: 'post',
|
||
data: {code:result.code},
|
||
success: res => {
|
||
if(res.data.data.token!=''){
|
||
flag = true;
|
||
uni.setStorageSync('token',res.data.data.token); // 缓存token
|
||
uni.setStorageSync('openid',res.data.data.openid)//缓存openid
|
||
uni.setStorageSync('expire',res.data.data.expire); // 缓存失效时间(时间戳格式)
|
||
uni.setStorageSync('phone_active',res.data.data.phone_active); // 是否绑定手机号
|
||
uni.setStorageSync('is_active',res.data.data.is_active)//是否第一次授权
|
||
uni.reLaunch({ // 重新进入当前页面
|
||
url:uni.getStorageSync('page-path-options')
|
||
})
|
||
}
|
||
}
|
||
})
|
||
},
|
||
});
|
||
}
|
||
let errorFlag = true;
|
||
// 请求错误处理
|
||
const checkError = (e) => {
|
||
// console.error("----接口错误----", e)
|
||
if (e.data) {
|
||
if (e.data.code) {
|
||
switch (Number(e.data.code)) {
|
||
case 500:
|
||
// 接口错误
|
||
console.log('500接口错误');
|
||
case 4003:
|
||
// 参数错误
|
||
console.log('4003参数错误');
|
||
break;
|
||
case 4004:
|
||
// 记录不存在
|
||
console.log('4004记录不存在');
|
||
break;
|
||
case 5001:
|
||
// xxx错误
|
||
console.log('5001xxx错误');
|
||
break;
|
||
case 5050:
|
||
// 服务器错误,请稍后重试
|
||
console.log('5050服务器错误,请稍后重试');
|
||
// 调用到登录页
|
||
goLogin();
|
||
break;
|
||
case 5051:
|
||
// 未知错误
|
||
console.log('5051未知错误');
|
||
break;
|
||
case 6001:
|
||
// token验证失败或已失效
|
||
console.log('6001token验证失败或已失效');
|
||
if(flag) {
|
||
flag = false;
|
||
// 调用刷新token事件并跳转到当前页面
|
||
refreshTokenPage();
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
} else {
|
||
if(e.errMsg=="request:fail 对应的服务器证书无效。" || e.errno==600001) {
|
||
if(errorFlag) {
|
||
errorFlag = false;
|
||
uni.showModal({
|
||
title:'服务器证书无效',
|
||
confirmText:'确定',
|
||
showCancel:false,
|
||
success:(e)=> {
|
||
if(e.confirm) {
|
||
// #ifdef MP-WEIXIN
|
||
// 退出小程序
|
||
wx.exitMiniProgram();
|
||
// #endif
|
||
// #ifdef APP-PLUS
|
||
if (uni.getSystemInfoSync().platform == 'ios'){
|
||
plus.ios.import("UIApplication").sharedApplication().performSelector("exit")
|
||
} else if (uni.getSystemInfoSync().platform == 'android'){
|
||
plus.runtime.quit();
|
||
}
|
||
// #endif
|
||
}
|
||
}
|
||
})
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
// 封装request的(GET、POST)请求
|
||
const request = (method, url, options) => {
|
||
let methods = '';
|
||
let headers = {};
|
||
switch (method) {
|
||
case 'get':
|
||
methods = 'GET'
|
||
headers = {
|
||
'Content-Type': 'application/json; charset=UTF-8',
|
||
'Authorization': 'Bearer '+uni.getStorageSync('token') || ''
|
||
}
|
||
break;
|
||
case 'post':
|
||
methods = 'POST'
|
||
headers = {
|
||
'Content-Type': 'application/json; charset=UTF-8',
|
||
'Authorization': 'Bearer '+uni.getStorageSync('token') || ''
|
||
}
|
||
break;
|
||
case 'postForm':
|
||
methods = 'POST'
|
||
headers = {
|
||
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
|
||
'Authorization': 'Bearer '+uni.getStorageSync('token') || ''
|
||
}
|
||
break;
|
||
}
|
||
return new Promise((resolve, reject) => {
|
||
uni.request({
|
||
url: `${hostapi}${url}`,
|
||
method: methods,
|
||
data: options,
|
||
header: headers,
|
||
success: res => {
|
||
console.log(`${url}返的结果===>`,res);
|
||
if (res.statusCode == 200) {
|
||
if (res.data.code == 0) {
|
||
// 接口调用成功
|
||
resolve(res.data);
|
||
} else {
|
||
// 接口返回错误信息
|
||
checkError(res);
|
||
}
|
||
} else {
|
||
// 接口返回错误信息
|
||
checkError(res);
|
||
}
|
||
},
|
||
fail: e => {
|
||
// 接口请求错误
|
||
checkError(e, reject);
|
||
},
|
||
complete: rest => {
|
||
// 是否成功,都会执行
|
||
console.log(rest,100);
|
||
}
|
||
})
|
||
})
|
||
}
|
||
// 上传文件 封装请求
|
||
const uploadFile = (url, options) => {
|
||
let tempData = options || {}
|
||
console.log(tempData,108);
|
||
return new Promise((resolve, reject) => {
|
||
uni.uploadFile({
|
||
url: `${hostapi}${url}`,
|
||
filePath: tempData.file,
|
||
name: 'image',
|
||
fileType:'image',
|
||
formData: tempData,
|
||
header: {
|
||
'Content-Type': 'multipart/form-data;charset=UTF-8',
|
||
'Authorization': 'Bearer '+uni.getStorageSync('token') || ''
|
||
},
|
||
success: res => {
|
||
if (res.statusCode == 200) {
|
||
let temp = JSON.parse(res.data)
|
||
if (temp.code == 0) {
|
||
resolve(temp)
|
||
}
|
||
}
|
||
}
|
||
});
|
||
})
|
||
}
|
||
|
||
|
||
export default {
|
||
get: (url, options) => {
|
||
return request('get', url, options)
|
||
},
|
||
// JOSN格式
|
||
post: (url, options) => {
|
||
return request('post', url, options)
|
||
},
|
||
// form-data格式
|
||
postForm: (url, options) => {
|
||
return request('postForm', url, options)
|
||
},
|
||
// 上传
|
||
upload: (url, options) => {
|
||
return uploadFile(url, options)
|
||
}
|
||
}
|