request.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. "use strict";
  2. var __accessCheck = (obj, member, msg) => {
  3. if (!member.has(obj))
  4. throw TypeError("Cannot " + msg);
  5. };
  6. var __privateAdd = (obj, member, value) => {
  7. if (member.has(obj))
  8. throw TypeError("Cannot add the same private member more than once");
  9. member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
  10. };
  11. var __privateMethod = (obj, member, method) => {
  12. __accessCheck(obj, member, "access private method");
  13. return method;
  14. };
  15. var _request, request_fn;
  16. const common_vendor = require("../common/vendor.js");
  17. const store_user = require("../store/user.js");
  18. const settings_siteSetting = require("../settings/siteSetting.js");
  19. let requestCount = 0;
  20. const showLoading = () => {
  21. if (requestCount === 0) {
  22. common_vendor.index.showLoading({ mask: true });
  23. }
  24. requestCount++;
  25. };
  26. const hideLoading = () => {
  27. requestCount--;
  28. if (requestCount <= 0) {
  29. common_vendor.index.hideLoading();
  30. }
  31. };
  32. class Request {
  33. constructor() {
  34. __privateAdd(this, _request);
  35. }
  36. get(options) {
  37. return __privateMethod(this, _request, request_fn).call(this, {
  38. ...options,
  39. method: "GET"
  40. });
  41. }
  42. post(options) {
  43. return __privateMethod(this, _request, request_fn).call(this, {
  44. ...options,
  45. method: "POST"
  46. });
  47. }
  48. }
  49. _request = new WeakSet();
  50. request_fn = function(config) {
  51. const userStore = store_user.useUserStore();
  52. let {
  53. headers = {
  54. "Content-Type": "application/json;charset=UTF-8"
  55. },
  56. url,
  57. method,
  58. // 请求类型
  59. loading = true,
  60. // 是否触发 loading
  61. timeout = 60 * 3e3,
  62. // 请求超时时间
  63. returnResponse = false,
  64. // 是否返回原生数据
  65. message = true,
  66. hideErrorModal = false,
  67. // 报误弹窗
  68. params,
  69. // 请求参数
  70. customizeUrl = ""
  71. //自定义url
  72. } = config;
  73. const header = {
  74. ...headers,
  75. Authorization: userStore.getToken
  76. };
  77. if (method.toUpperCase() === "GET") {
  78. const now = Date.now();
  79. params = Object.assign(params || {}, { _t: now });
  80. }
  81. loading && showLoading();
  82. return new Promise((resolve, reject) => {
  83. common_vendor.index.request({
  84. url: settings_siteSetting.BASE_API_URL + url,
  85. header,
  86. method,
  87. timeout,
  88. data: params,
  89. dataType: "json",
  90. success: async (res) => {
  91. const { data } = res;
  92. if (returnResponse) {
  93. resolve(res);
  94. return;
  95. }
  96. switch (data.code) {
  97. case 200:
  98. resolve(data.data);
  99. break;
  100. case 400:
  101. common_vendor.index.showModal({
  102. title: data.msg || "系统异常,请联系管理员",
  103. cancelText: "回到首页",
  104. confirmText: "确定",
  105. success: (res2) => {
  106. if (res2.confirm)
  107. ;
  108. else if (res2.cancel) {
  109. common_vendor.index.redirectTo({ url: "/pages/index/index" });
  110. }
  111. }
  112. });
  113. reject();
  114. break;
  115. default:
  116. if (hideErrorModal)
  117. return;
  118. common_vendor.index.showModal({
  119. title: data.msg || "系统异常,请联系管理员",
  120. cancelText: "回到首页",
  121. confirmText: "确定",
  122. success: (res2) => {
  123. if (res2.confirm)
  124. ;
  125. else if (res2.cancel) {
  126. common_vendor.index.redirectTo({ url: "/pages/index/index" });
  127. }
  128. }
  129. });
  130. reject();
  131. break;
  132. }
  133. },
  134. fail: async (err) => {
  135. common_vendor.index.showToast({
  136. title: "网络不稳定,请稍后刷新重试",
  137. icon: "none"
  138. });
  139. await common_vendor.nextTick$1();
  140. reject(err);
  141. },
  142. complete: () => {
  143. loading && hideLoading();
  144. }
  145. });
  146. });
  147. };
  148. const api = new Request();
  149. exports.api = api;
  150. //# sourceMappingURL=../../.sourcemap/mp-weixin/utils/request.js.map