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.
 
 

133 lines
3.3 KiB

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