request.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import useStores from "@/store/modules/user.js";
  2. import configs from "@/config";
  3. import { getToken } from "@/utils/auth";
  4. import modal from "@/plugins/modal";
  5. import common from "@/plugins/common";
  6. let timeout = 10000;
  7. const request = (config) => {
  8. const useStore = useStores();
  9. // 是否需要设置 token
  10. const isToken = (config.headers || {}).isToken === false;
  11. config.header = config.header || {};
  12. if (getToken() && !isToken) {
  13. config.header["Authorization"] = getToken();
  14. }
  15. // get请求映射params参数
  16. if (config.params) {
  17. let url = config.url + "?" + common.tansParams(config.params);
  18. url = url.slice(0, -1);
  19. config.url = url;
  20. }
  21. return new Promise((resolve, reject) => {
  22. uni
  23. .request({
  24. method: config.method || "get",
  25. timeout: config.timeout || timeout,
  26. url: config.baseUrl || configs.baseUrl + config.url,
  27. data: config.data,
  28. header: config.header,
  29. dataType: "json",
  30. })
  31. .then((response) => {
  32. let res = response;
  33. if (res.error) {
  34. modal.msg("后端接口连接异常");
  35. reject("后端接口连接异常");
  36. return;
  37. }
  38. const code = res.data.code || 200;
  39. if (code === 401) {
  40. modal.confirm("登录状态已过期,您可以继续留在该页面,或者重新登录?").then((res) => {
  41. if (res) {
  42. useStore.LogOut().then((res) => {
  43. uni.reLaunch({ url: "/pages/login" });
  44. });
  45. }
  46. });
  47. modal.closeLoading();
  48. reject("无效的会话,或者会话已过期,请重新登录。");
  49. } else if (code === 404 || res.statusCode === 404) {
  50. if (res.data.msg.indexOf(":") !== -1) {
  51. modal.msg(res.data.msg.split(":")[1]);
  52. reject(res.data.msg.split(":")[1]);
  53. } else {
  54. modal.msg(res.data.msg);
  55. reject(res.data.msg);
  56. }
  57. modal.closeLoading();
  58. } else if (code === 500 || res.statusCode === 500) {
  59. if (res.data.msg.indexOf(":") !== -1) {
  60. modal.msg(res.data.msg.split(":")[1]);
  61. reject(res.data.msg.split(":")[1]);
  62. } else {
  63. modal.msg(res.data.msg);
  64. reject(res.data.msg);
  65. }
  66. modal.closeLoading();
  67. } else if (code !== 200 && code !== "0") {
  68. reject(code);
  69. }
  70. resolve(res.data);
  71. })
  72. .catch((error) => {
  73. let { message } = error;
  74. if (message === "Network Error") {
  75. message = "后端接口连接异常";
  76. } else if (message.includes("timeout")) {
  77. message = "系统接口请求超时";
  78. } else if (message.includes("Request failed with status code")) {
  79. message = "系统接口" + message.substr(message.length - 3) + "异常";
  80. }
  81. reject(error);
  82. });
  83. });
  84. };
  85. export default request;