You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

132 lines
3.2 KiB

  1. const url = 'https://gpttest.malls.iformall.com/C'
  2. class request {
  3. constructor(address) {
  4. if (address) {
  5. this.address = address;
  6. }
  7. }
  8. /**
  9. * 配置
  10. */
  11. /**
  12. * 请求路径前缀
  13. */
  14. address = url;
  15. /**
  16. * 请求头
  17. */
  18. headers = {
  19. "Content-Type": "application/json;charset=UTF-8",
  20. token: "",
  21. tenantId: ""
  22. };
  23. /**
  24. * @description 设置请求头
  25. * @param {*} data token , tenantId
  26. */
  27. setHead(token, tenantId) {
  28. this.headers.token = token;
  29. this.headers.tenantId = tenantId;
  30. }
  31. /**
  32. * @description 小程序appId
  33. * @returns {string} wxf288a9b8167ff2ca
  34. */
  35. appId = 'wxf288a9b8167ff2ca';
  36. /**
  37. * @description get
  38. * @param {*}param url & param
  39. * @method Request.get({url: url}).then(res=>{}).catch(err=>{})
  40. */
  41. get({ url, data, headers }) {
  42. headers = { ...this.headers, ...headers };
  43. url = `${this.address}${url}`;
  44. return new Promise((resolve, reject) => {
  45. wx.request({
  46. url: url,
  47. header: headers,
  48. data: data,
  49. method: "Get",
  50. success: res => {
  51. this.responseMap(res, resolve, reject);
  52. },
  53. fail: err => {
  54. console.log(err)
  55. if (err.errMsg == 'request:fail timeout') {
  56. err.errMsg = '请求超时,请检查您的网络设置!'
  57. } else if (err.errMsg == 'request:fail') {
  58. err.errMsg = '未检查到您的网络,请检查您的网络设置!'
  59. } else if (err.errMsg == 'request:fail request connect error') {
  60. err.errMsg = '连接失败'
  61. }
  62. reject(err);
  63. }
  64. });
  65. });
  66. }
  67. /**
  68. * @description post
  69. * @param {*}param url & param
  70. * @method Request.post({url: url,data: {}}).then(res=>{}).catch(err=>{})
  71. */
  72. post({ url, data, headers }) {
  73. headers = { ...this.headers, ...headers };
  74. url = `${this.address}${url}`;
  75. return new Promise((resolve, reject) => {
  76. wx.request({
  77. url: url,
  78. header: headers,
  79. data: data,
  80. method: "POST",
  81. success: res => {
  82. this.responseMap(res, resolve, reject);
  83. },
  84. fail: err => {
  85. if (err.errMsg == 'request:fail timeout') {
  86. err.errMsg = '请求超时,请检查您的网络设置!'
  87. } else if (err.errMsg == 'request:fail') {
  88. err.errMsg = '未检查到您的网络,请检查您的网络设置!'
  89. } else if (err.errMsg == 'request:fail request connect error') {
  90. err.errMsg = '连接失败'
  91. }
  92. reject(err);
  93. },
  94. complete: res => { }
  95. });
  96. });
  97. }
  98. /**
  99. * 过滤 请求信息
  100. * @param {*} res
  101. * @param {*} resolve
  102. * @param {*} reject
  103. */
  104. responseMap = (res, resolve, reject) => {
  105. // 网络状态码200
  106. if (res.statusCode == 200) {
  107. // 服务器code 200 成功
  108. if (res.data.code == 200) {
  109. resolve(res.data);
  110. } else if (res.data.code == 1052) {
  111. wx.reLaunch({
  112. url: '/pages/index/index'
  113. })
  114. } else {
  115. reject(res.data);
  116. }
  117. } else {
  118. console.log("请求出错:", res);
  119. reject(res.data);
  120. }
  121. };
  122. /** 日志 */
  123. log(url, body, headers) { }
  124. }
  125. module.exports = new request();