request.js 4.7 KB

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