request.js 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. "use strict";
  2. const common_vendor = require("../common/vendor.js");
  3. const stores_user = require("../stores/user.js");
  4. const config = require("../config.js");
  5. const utils_auth = require("./auth.js");
  6. const utils_errorCode = require("./errorCode.js");
  7. const utils_common = require("./common.js");
  8. let timeout = 1e4;
  9. const baseUrl = config.config.baseUrl;
  10. const request = (config2) => {
  11. const isToken = (config2.headers || {}).isToken === false;
  12. config2.header = config2.header || {};
  13. if (utils_auth.getToken() && !isToken) {
  14. config2.header["satoken"] = utils_auth.getToken();
  15. config2.header["sysId"] = common_vendor.index.getStorageSync("sysId");
  16. }
  17. if (config2.params) {
  18. let url = config2.url + "?" + utils_common.tansParams(config2.params);
  19. url = url.slice(0, -1);
  20. config2.url = url;
  21. }
  22. return new Promise((resolve, reject) => {
  23. common_vendor.index.request({
  24. method: config2.method || "post",
  25. timeout: config2.timeout || timeout,
  26. url: config2.baseUrl || baseUrl + config2.url,
  27. data: config2.data,
  28. header: config2.header,
  29. dataType: "json"
  30. }).then((response) => {
  31. const { data } = response;
  32. saveLogs(config2.url, config2.data, data.data);
  33. const code = data.code || 404;
  34. const msg = utils_errorCode.errorCode[code] || data.msg || utils_errorCode.errorCode["default"];
  35. if (code === 501) {
  36. let pages = getCurrentPages();
  37. let currentPage = pages[pages.length - 1].route;
  38. if (currentPage != "pages/login") {
  39. utils_common.toast("登录状态已过期,请重新登陆!");
  40. reject("无效的会话,或者会话已过期,请重新登录。");
  41. stores_user.useUserStore().LogOut().then((res) => {
  42. common_vendor.index.reLaunch({
  43. url: "/pages/login"
  44. });
  45. });
  46. }
  47. } else if (code === 500) {
  48. utils_common.toast(msg.substr(0, 50));
  49. reject(msg);
  50. } else if (code !== 200) {
  51. utils_common.toast(msg);
  52. reject(code);
  53. } else if (code === 404) {
  54. utils_common.toast("请求超时");
  55. reject(code);
  56. }
  57. resolve(data.data);
  58. }).catch((error) => {
  59. saveLogs(config2.url, config2.data, error);
  60. common_vendor.index.hideLoading();
  61. let { message } = error;
  62. if (message === "Network Error") {
  63. message = "网络连接超时";
  64. } else if (message.includes("timeout")) {
  65. message = "网络连接超时";
  66. } else if (message.includes("Request failed with status code")) {
  67. message = "系统接口" + message.substr(message.length - 3) + "异常";
  68. }
  69. utils_common.toast(message);
  70. reject(error);
  71. });
  72. });
  73. };
  74. function saveLogs(url, params, res) {
  75. let arr = [];
  76. let obj = {
  77. url,
  78. time: common_vendor.index.$u.timeFormat(new Date(), "yyyy-mm-dd hh:MM:ss"),
  79. params: JSON.stringify(params) || "无",
  80. res: JSON.stringify(res).substr(0, 1e3)
  81. };
  82. if (common_vendor.index.getStorageSync("logs")) {
  83. let arr2 = JSON.parse(common_vendor.index.getStorageSync("logs"));
  84. arr2.unshift(obj);
  85. if (arr2.length > 30) {
  86. arr2.pop();
  87. }
  88. common_vendor.index.setStorageSync("logs", JSON.stringify(arr2));
  89. } else {
  90. arr.unshift(obj);
  91. common_vendor.index.setStorageSync("logs", JSON.stringify(arr));
  92. }
  93. }
  94. exports.request = request;