request.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. import store from "@/store/index.js";
  2. import config from "@/common/config";
  3. var num = 1;
  4. //接口api
  5. // export const BASE_URL = 'https://api.xyyxt.net' //release
  6. export const BASE_URL = config.BASE_URL;
  7. // #ifdef MP-WEIXIN
  8. export let tenantId = config.tenantId; // 祥粤云学堂:867735392558919680,祥粤学堂:667735392758919630, 中建云学堂-567735392758918520
  9. // #endif
  10. // #ifdef H5
  11. export const host =
  12. process.env.NODE_ENV === "production"
  13. ? window.location.host
  14. : "120.79.166.78:19012";
  15. export let tenantId = uni.getStorageSync(host) || "";
  16. // #endif
  17. export const myRequest = (options) => {
  18. if (store.state.allowLoading && !options.noLoading) {
  19. uni.showLoading({
  20. title: "拼命加载中...",
  21. mask: true,
  22. });
  23. }
  24. return new Promise(async (resolve, reject) => {
  25. // #ifdef H5
  26. if (!tenantId) {
  27. tenantId = await getTenantId();
  28. uni.setStorageSync(host, tenantId);
  29. }
  30. // #endif
  31. let token = uni.getStorageSync("token");
  32. uni.request({
  33. url: BASE_URL + options.url,
  34. method: options.method || "GET",
  35. data: options.data,
  36. header: options.noToken
  37. ? {
  38. TenantId: tenantId,
  39. }
  40. : {
  41. AuthorizationToken:
  42. "WX " + (token ? token : uni.getStorageSync("token_temp")),
  43. TenantId: tenantId,
  44. },
  45. success: async (res) => {
  46. if (!options.compleLoading) {
  47. // 请求的接口有带compleLoading 就不隐藏加载中
  48. uni.hideLoading();
  49. }
  50. if (res.data.code == 401) {
  51. if (num <= 2) {
  52. if (!uni.getStorageSync("user_account")) {
  53. var pages = getCurrentPages(); // 获取栈实例
  54. let currentRoute = pages[pages.length - 1].route; // 获取当前页面路由
  55. if (currentRoute != "pages4/login/login") {
  56. uni.navigateTo({
  57. url: "/pages4/login/login",
  58. });
  59. uni.removeStorageSync("h5_code");
  60. }
  61. } else {
  62. num++;
  63. res = await doRequest(options);
  64. }
  65. } else {
  66. uni.removeStorageSync("user_account");
  67. var pages = getCurrentPages(); // 获取栈实例
  68. let currentRoute = pages[pages.length - 1].route; // 获取当前页面路由
  69. if (currentRoute != "pages4/login/login") {
  70. uni.navigateTo({
  71. url: "/pages4/login/login",
  72. });
  73. uni.removeStorageSync("h5_code");
  74. }
  75. }
  76. }
  77. resolve(res);
  78. },
  79. fail: (err) => {
  80. uni.hideLoading();
  81. uni.showToast({
  82. title: "请求接口失败",
  83. icon: "none",
  84. });
  85. console.log("请求失败err---: ", options.url);
  86. if (options.url == "/face/certification/CompareFace") {
  87. console.log("人脸识别错误---1:", err);
  88. }
  89. reject(JSON.stringify(err));
  90. },
  91. complete: () => {
  92. // uni.hideLoading()
  93. // uni.hideToast()
  94. },
  95. });
  96. });
  97. async function doRequest(response) {
  98. let user_account = uni.getStorageSync("user_account");
  99. var datas = {
  100. url: "/refreshToken/" + user_account,
  101. method: "get",
  102. noToken: true,
  103. };
  104. const res = await myRequest(datas);
  105. if (res.data.code === 200) {
  106. uni.setStorageSync("token", res.data.data.token);
  107. var userInfo = {
  108. url: "/app/user/getInfo",
  109. method: "get",
  110. data: { fromPlat: 1 }, // 来源平台 1小程序 2PC网站
  111. };
  112. const resUser = await myRequest(userInfo);
  113. if (resUser.data.code === 200) {
  114. store.state.userInfo = resUser.data.data;
  115. uni.setStorageSync("user_account", user_account);
  116. num = 1;
  117. }
  118. let onset = await myRequest(response);
  119. return onset;
  120. } else {
  121. var pages = getCurrentPages(); // 获取栈实例
  122. let currentRoute = pages[pages.length - 1].route; // 获取当前页面路由
  123. console.log("request-->333:", currentRoute);
  124. if (currentRoute != "pages4/login/login") {
  125. uni.navigateTo({
  126. url: "/pages4/login/login",
  127. });
  128. uni.removeStorageSync("h5_code");
  129. }
  130. }
  131. }
  132. };
  133. function getTenantId() {
  134. return new Promise((resolve, reject) => {
  135. uni.request({
  136. url: config.BASE_URL + "/app/common/findTenantId",
  137. method: "get",
  138. data: {
  139. hostH5: host,
  140. },
  141. success: (res) => {
  142. if (res.data.code == 200) {
  143. resolve(res.data.data);
  144. } else {
  145. uni.showToast({
  146. title: "请求接口失败",
  147. icon: "none",
  148. });
  149. reject();
  150. }
  151. },
  152. fail: (err) => {
  153. uni.showToast({
  154. title: "请求接口失败",
  155. icon: "none",
  156. });
  157. reject(JSON.stringify(err));
  158. },
  159. });
  160. });
  161. }