base.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. /**
  2. * Created by jimmy-jiang on 2016/11/21.
  3. */
  4. import {
  5. Config
  6. } from 'config.js';
  7. class Base {
  8. constructor() {
  9. "use strict";
  10. this.baseRestUrl = Config.restUrl;
  11. }
  12. request(params, noRefetch) {
  13. var that = this,
  14. url = this.baseRestUrl + params.url,
  15. pheader = {};
  16. if (!params.type) {
  17. params.type = 'POST';
  18. }
  19. /*不需要再次组装地址*/
  20. if (params.setUpUrl == false) {
  21. url = params.url;
  22. }
  23. var token = {
  24. 'token': wx.getStorageSync('cwxcx_token'),
  25. };
  26. if (!params.header) {
  27. pheader = {
  28. 'content-type': 'application/x-www-form-urlencoded',
  29. }
  30. } else {
  31. pheader = params.header;
  32. }
  33. // var header = Object.assign(token, pheader);
  34. var param=Object.assign(token,params.data)
  35. // console.log(header)
  36. wx.request({
  37. url: url,
  38. data: param,
  39. method: params.type,
  40. header: pheader,
  41. success: function (res) {
  42. if(res.data.code == -1){
  43. wx.setStorageSync('cwxcx_token', '')
  44. wx.reLaunch({
  45. url: '/pages/login/login',
  46. })
  47. }else{
  48. if (res.statusCode == 20010) {
  49. wx.switchTab({
  50. url: '/pages/index/index',
  51. success: function (res) {
  52. wx.setStorageSync('login', false)
  53. },
  54. fail: function (res) { },
  55. complete: function (res) { },
  56. })
  57. } else if (res.statusCode !== 200 || typeof res.data !== 'object') {
  58. wx.showModal({
  59. title: '',
  60. content: '网络请求出错',
  61. showCancel: false
  62. })
  63. return false;
  64. }
  65. // 判断以2(2xx)开头的状态码为正确
  66. // 异常不要返回到回调中,就在request中处理,记录日志并showToast一个统一的错误即可
  67. var code = res.statusCode.toString();
  68. var startChar = code.charAt(0);
  69. if (startChar == '2') {
  70. params.sCallback && params.sCallback(res.data);
  71. } else {
  72. if (code == '401') {
  73. if (!noRefetch) {
  74. that._refetch(params);
  75. }
  76. }
  77. that._processError(res);
  78. params.eCallback && params.eCallback(res.data);
  79. }
  80. }},
  81. fail: function (err) {
  82. that._processError(err);
  83. }
  84. });
  85. }
  86. _processError(err) {
  87. console.log(err,'12312313');
  88. }
  89. _refetch(param) {
  90. var token = new Token();
  91. token.getTokenFromServer((token) => {
  92. this.request(param, true);
  93. });
  94. }
  95. /*获得元素上的绑定的值*/
  96. getDataSet(event, key) {
  97. return event.currentTarget.dataset[key];
  98. };
  99. };
  100. export {
  101. Base
  102. };