index-yg.js 3.5 KB

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