import carhelp from '@/utils/mixin.js' import requestSon from './requestSon.js'; const request = (options) => { //记录请求次数和响应次数 var tdate=new Date( +new Date() + 8 * 3600 * 1000 ).toJSON().substr(0,15).replace("T"," ") var token_tdate=null//每10分钟存储一次token if(options&&options.jp_identity){ token_tdate=carhelp.get(options.jp_identity+"_token_tdate"); }else{ token_tdate=carhelp.get("token_tdate"); } var token=carhelp.getToken(options); if(token_tdate&&token_tdate==tdate){ return requestSon(options); } var openId=carhelp.getOpenId() //var urlindex="/wechat/findUserInfo" var urlindex=process.car.wechatUrl+"/findUserInfo" var k=options.url.indexOf(urlindex)==-1; if(!openId&&k){ return } if(!k){ return requestSon(options); } return new Promise((resolve, reject) => { var loginurl="/mobile/regUser/findByOpenId" if(options&&options.jp_identity){ loginurl="/mobile/"+options.jp_identity+"/findByOpenId" } uni.request({ method:'get', url: process.car.BASE_URL + loginurl, data: { openId:openId, branchParameter:process.car.branchParameter }, header: { 'Content-Type': 'application/x-www-form-urlencoded', 'X-Requested-With': 'XMLHttpRequest', //'Authorization':token } }).then((response) => { let [error, res] = response; var userType=2 if(res.data.code == 200&&res.data.result){ userType=res.data.data.regUser.userType; } if (res.data.code == 200&&res.data.result&&userType==2) { var token = res ? res.data.data.token : ''; carhelp.setPersonInfo(res.data.data.regUser ); carhelp.setPersonInfoPlus(res.data.data ) carhelp.setToken(token); options.token=token var isson= requestSon(options) resolve(isson); } else if(res.data.code == 415||(res.data.code == 200&&!res.data.result)||res.data.code == 400||userType==1){ var backurl=window.location.href.split("#")[1] var url="/pages/login/index" if(options&&options.jp_identity){ url="/pagesFinance/login/index" } url+="?message=请登录&back="+ backurl if(options.data&&options.data.phone){ url+="&phone="+options.data.phone } carhelp.signOut() uni.redirectTo({ url:url }) }else{ reject(res.data.message) } }).catch(error => { let [err, res] = error; reject(err) }) }); } export default request