// const ENV = process.env.NODE_ENV; const ENV = process.env; console.log(ENV,2); let hostapi = ''; // #ifdef MP-WEIXIN let hInfo = wx.getAccountInfoSync(); // console.log(hInfo.envVersion);//develop:开发版 trial:体验版 release:正式版 if(hInfo.miniProgram.envVersion == "develop" || hInfo.miniProgram.envVersion == "trial"){ // (开发版,体验版)域名 hostapi = 'https://hengmei.scdxtc.cn/api/'; } else { // 正式版-域名 hostapi = 'https://hm.hmzfyy.cn/api/'; } // #endif // 清理所有缓存并前往授权页 const goLogin = () => { // uni.clearStorageSync(); // uni.showToast({ // title:'信息错误请重新登录', // icon:'none' // }) // setTimeout(()=>{ // uni.reLaunch({ // url: '/pages/login/login' // }) // },1000) } // 请求错误处理 const checkError = (e) => { // console.error("----接口错误----", e) if (e.data) { if (e.data.code) { switch (Number(e.data.code)) { case 4003: // 参数错误 console.log('4003参数错误'); break; case 4004: // 记录不存在 console.log('4004记录不存在'); break; case 5001: // xxx错误 console.log('5001xxx错误'); break; case 5050: // 服务器错误,请稍后重试 console.log('5050服务器错误,请稍后重试'); break; case 5051: // 未知错误 console.log('5051未知错误'); break; case 6001: // token验证失败或已失效 console.log('6001token验证失败或已失效'); goLogin(); break; } } } } const flag = true; // 封装请求 const request = (method, url, options, ifLogin) => { 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) => { // 不需要登录 if(flag) { 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 { flag = false; uni.login({ provider: 'weixin', success: (res)=> { var params = {code:res.code} uni.request({ url: `${uni.getStorageSync('hostapi')}user/login`, method: 'post', data: params, success: res => { if(res.data.data.token!=''){ 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('paramsUrl') }) } } }) }, }); // uni.showToast({ // title:res.data.msg, // icon:'none' // }) checkError(res) } } else if(res.statusCode==500) { // goLogin(); } else { checkError(res) } }, fail: e => { checkError(e) }, complete: rest => { // console.log(rest); } }) } }) } // 上传文件 封装请求 const uploadFile = (url, options) => { let tempData = options || {} 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) } else { reject(temp) uni.showToast({ title: temp.msg || '接口错误(' + temp.code + ')', icon: 'none' }) } } else { uni.showToast({ title: `未知错误(${res.statusCode})`, icon: 'none' }) } }, fail(e) { // uni.showToast({ // title: '接口请求超时', // icon: 'none' // }) // reject(e.data) }, complete: () => { uni.hideLoading() } }); }) } export default { get: (url, options, ifLogin=true) => { return request('get', url, options, ifLogin) }, // JOSN格式 post: (url, options, ifLogin=true) => { return request('post', url, options, ifLogin) }, // form-data格式 postForm: (url, options, ifLogin=true) => { return request('postForm', url, options, ifLogin) }, // 上传 upload: (url, options, ifLogin=true) => { return uploadFile(url, options, ifLogin) } }