request.js 2.6 KB

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