request.js 4.4 KB

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