request.js 4.8 KB

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