index.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. /* eslint-disable */
  2. import Request from './request';
  3. // import {
  4. // refreshToken
  5. // } from '@/api/login';
  6. import indexConfig from '@/config/global.config.js';
  7. import mUtil from '@/utils/index.js';
  8. import store from '@/store';
  9. const yghttp = new Request();
  10. const debug_token =
  11. "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ5Y184NjAzNDg2NyIsInVzZXJfaWQiOjEyLCJtb2JpbGUiOiIxMzQzNzEwNDgxMiIsIm5pY2tuYW1lIjoieWNfODYwMzQ4NjciLCJleHAiOjE3NDE0MDM3MDcsImlhdCI6MTcwOTg2NzcwN30.LwHRcGuKyUV9S4o_cW0QhqO9KYY6L-AW6d1nMzDLCCjDLyEsdHj1Us2EbVqEJgx1Wut-hjIDqZw0iwwszsW_Kw";
  12. // request全局参数设置
  13. yghttp.setConfig(config => {
  14. /* 设置全局配置 */
  15. config.baseUrl = indexConfig.baseUrl; /* 根域名不同 */
  16. const systemInfo = uni.getSystemInfoSync();
  17. const systemInfoHeaders = {
  18. 'device-name': systemInfo.brand, // 设备名称
  19. width: systemInfo.screenWidth, // 屏幕宽度
  20. height: systemInfo.screenHeight, // 屏幕高度
  21. os: systemInfo.platform, // 客户端平台
  22. 'os-version': systemInfo.system // 操作系统版本
  23. };
  24. config.header = {
  25. ...config.header,
  26. ...systemInfoHeaders
  27. };
  28. return config;
  29. });
  30. let isRefreshing = false;
  31. let requests = [];
  32. let goLogin = false;
  33. const onLogin = (msg) => {
  34. if (goLogin) return;
  35. goLogin = true
  36. const pages = getCurrentPages();
  37. const route = pages[pages.length - 1].route;
  38. if (!route || route !== 'pages/login/index') {
  39. try {
  40. mUtil.toast(msg);
  41. uni.removeStorageSync('apiToken');
  42. setTimeout(() => {
  43. uni.navigateTo({
  44. url: '/pages/login/index',
  45. complete: () => {
  46. goLogin = false;
  47. }
  48. })
  49. }, 500)
  50. } catch (e) {
  51. //TODO handle the exception
  52. goLogin = false;
  53. }
  54. } else {
  55. goLogin = false;
  56. };
  57. }
  58. yghttp.interceptor.request(
  59. config => {
  60. if (config.url === '/activity/lottery') {
  61. // 设置点击抽奖的接口时间
  62. config.timeout = 5000
  63. }
  64. if (config.isToken == false) {
  65. } else {
  66. config.header['apiToken'] = debug_token || uni.getStorageSync('apiToken');
  67. }
  68. /* 请求之前拦截器 */
  69. // config.header['client'] = 'applet';
  70. config.header['client'] = 'app';
  71. // 单商户
  72. // config.header['merchant-id'] = uni.getStorageSync('merchantId') || 1;
  73. return config;
  74. },
  75. error => {
  76. return Promise.reject(error);
  77. }
  78. );
  79. // 刷新refreshToken
  80. async function handleRefreshToken(refresh_token) {
  81. const params = {};
  82. params.group = mUtil.platformGroupFilter();
  83. params.refresh_token = refresh_token;
  84. await http.post(refreshToken, params).then(async r => {
  85. store.commit('login', r.data);
  86. isRefreshing = false;
  87. });
  88. }
  89. yghttp.interceptor.response(
  90. async response => {
  91. if (response.header['refresh_token']) {
  92. store.commit('login', response.header.refresh_token);
  93. uni.setStorageSync('apiToken', response.header.refresh_token);
  94. }
  95. /* 请求之后拦截器 */
  96. switch (response.data.code) {
  97. case 200:
  98. return response.data;
  99. case 400:
  100. mUtil.toast('错误的请求');
  101. return Promise.reject(response.data.message);
  102. break;
  103. case 500:
  104. mUtil.toast(response.data.msg);
  105. return Promise.reject(response.data.msg);
  106. break;
  107. case 5001:
  108. mUtil.toast(response.data.msg);
  109. return response.data;
  110. case 100001:
  111. onLogin(response.data.msg)
  112. return Promise.reject();
  113. break;
  114. case 100004:
  115. onLogin(response.data.msg)
  116. return Promise.reject();
  117. break;
  118. case 100007:
  119. mUtil.toast(response.data.msg);
  120. setTimeout(() => {
  121. let pages = getCurrentPages();
  122. let currentPage = pages[pages.length - 1];
  123. let url = currentPage.route; // 当前页面路径
  124. if (url != 'pages/government/realAttestation') {
  125. uni.navigateTo({
  126. url: '/pages/government/realAttestation'
  127. })
  128. }
  129. }, 500)
  130. return Promise.reject();
  131. break;
  132. default:
  133. mUtil.toast(response.data.msg);
  134. return Promise.reject(response.data.msg);
  135. }
  136. },
  137. error => {
  138. return Promise.reject(error);
  139. }
  140. );
  141. export {
  142. yghttp
  143. };