request.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import jphelp from '@/apis/utils/mixin.js'
  2. import requestSon from './requestSon.js';
  3. const request = (options) => {
  4. //记录请求次数和响应次数
  5. var tdate=new Date( +new Date() + 8 * 3600 * 1000 ).toJSON().substr(0,15).replace("T"," ")
  6. var token_tdate=jphelp.get("token_tdate");//每10分钟存储一次token
  7. var token=jphelp.getToken(options);
  8. if(token_tdate&&token_tdate==tdate){
  9. return requestSon(options);
  10. }
  11. var openId=jphelp.getOpenId()
  12. var urlindex="/wechat/findUserInfo"
  13. var k=options.url.indexOf(urlindex)==-1;
  14. if(!openId&&k){
  15. return
  16. }
  17. if(!k){
  18. return requestSon(options);
  19. }
  20. return new Promise((resolve, reject) => {
  21. var loginurl="/mobile/sysUser/findByOpenId"
  22. var data= {
  23. openId:openId,
  24. roleName:'XJ'
  25. }
  26. uni.request({
  27. method:'get',
  28. url: process.jphelp.BASE_URL + loginurl,
  29. data:data,
  30. header: {
  31. 'Content-Type': 'application/x-www-form-urlencoded',
  32. 'X-Requested-With': 'XMLHttpRequest',
  33. //'Authorization':token
  34. }
  35. }).then((response) => {
  36. let [error, res] = response;
  37. if (res.data.code == 200&&res.data.result) {
  38. var token = res ? res.data.data.token : '';
  39. jphelp.setPersonInfo(res.data.data.user);
  40. jphelp.setPersonInfoPlus(res.data.data)
  41. options.token=token
  42. var isson= requestSon(options)
  43. resolve(isson);
  44. } else if(res.data.code == 415||(res.data.code == 200&&!res.data.result)||res.data.code == 400){
  45. //var url=window.location.href.split("#")[1]
  46. console.log("没有免登陆 ----------------"+options.url)
  47. //var url="/pages/login/index?message=请登录&back="+ url+"&phone="+options.data.phone
  48. var thisurl='/pages/login/login';
  49. if(options&&options.data&&options.data.jpcode){
  50. thisurl+="?jpcode="+options.data.jpcode
  51. }
  52. jphelp.signOut()
  53. uni.redirectTo({
  54. url: thisurl
  55. })
  56. }else{
  57. reject(res.data.message)
  58. }
  59. }).catch(error => {
  60. let [err, res] = error;
  61. reject(err)
  62. })
  63. });
  64. }
  65. export default request