/** * http 请求工具类 * */ import StorageUtil from './storageUtils.js' import JSEncrypt from '../../static/lib/jsencrypt.min.js'; const httpUtils = { // #ifdef H5 baseUrl: '/api', // #endif // #ifndef H5 baseUrl: 'http://120.27.238.55:8801', // #endif handleToken(url){ let token = StorageUtil.getStorage('userInfo','token'); if (!token) { return ''; } const publicKey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCWvK6UWCtSp/8qnTqyUfO0wbg4CuxOe7IeiDSAmATfHnWqBPnbZ73qQ4A90vGowB7mp5XnmBvgTwfXtDh08yd4btlHwSD3ShbRyGfGfV8lc47ZTLiJH0xuuN2iHfnfj8zQ5kcqijeotggo2rF8Uu7KSR3HxVyN9mO22C6p1r5wVQIDAQAB'; let encrypt = new JSEncrypt(); encrypt.setPublicKey(publicKey); let timeStamp = new Date().getTime(); return encrypt.encrypt(token + '_' + timeStamp + '_' + url); }, request (url, data = {}, method = 'GET', extraObj = {isShowLoad: false}) { let header = { 'Authorization': 'Bearer ' + this.handleToken(url), 'lang': 'zh_CN', 'content-type': 'application/json; charset=utf-8' } return new Promise((resolve, reject) => { if(extraObj.isShowLoad){ uni.showLoading({ mask: true, title: '加载中' }) } uni.request({ url: this.baseUrl + url, method, data, header, sslVerify: false, success: (res) => { let result = res.data; if(!this.isNotLogin(result)){ resolve(result); }else { // 用户信息失效 uni.removeStorage({ key: 'userInfo', success: (res) => { reject(result); uni.navigateTo({ url: '/pages/login/index?isNotLogin=1' }) }, fail() { reject(result); uni.navigateTo({ url: '/pages/login/index' }) } }); } extraObj.isShowLoad && uni.hideLoading() }, fail: (error) => { extraObj.isShowLoad && uni.hideLoading() reject(error); } }); }); }, isNotLogin(err) { return !err || !err.status || err.status == 700014; }, getRoleInfo(){ return StorageUtil.getStorage('userInfo','roleInfo') }, getToken(){ return StorageUtil.getStorage('userInfo','token') }, getUserFunction(){ return StorageUtil.getStorage('userInfo','userFunction') } } export default httpUtils;