axios.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. import axios from 'axios'
  2. import store from './store'
  3. import { Message } from 'element-ui'
  4. // export const BASE_URL = 'https://api.xyyxt.net' //release
  5. // export const BASE_URL = 'https://test.xyyxt.net' //预发布
  6. export const BASE_URL = 'http://120.79.166.78:19012' //测试-外网
  7. // export const BASE_URL = 'http://192.168.1.222:5055' //测试
  8. export const tenantId = '867735392558919680'
  9. // export const tenantId = '141250585240548145'
  10. // export const tenantId = '667735392758919630'
  11. //图片上传api
  12. // export const BASE_IMG_URL = 'https://file.xyyxt.net/' //release
  13. export const BASE_IMG_URL = 'https://file-dev.xyyxt.net/' //test
  14. import tools from './common/tools'
  15. import router from './router'
  16. // 创建 axios 实例
  17. const request = axios.create({
  18. baseURL: BASE_URL,
  19. timeout: 10000 // 请求超时时间
  20. })
  21. // 错误处理函数
  22. const err = (error) => {
  23. if (error.response) {
  24. const data = error.response.data
  25. // const token = Vue.ls.get(ACCESS_TOKEN)
  26. if (error.response.status === 403) {
  27. }
  28. if (error.response.status === 401) {
  29. }
  30. }
  31. return Promise.reject(error)
  32. }
  33. // request interceptor(请求拦截器)
  34. request.interceptors.request.use(config => {
  35. const token = tools.getToken()
  36. if (token && !config.noToken) {
  37. config.headers['AuthorizationToken'] = 'WX ' + token // 让每个请求携带自定义 token 请根据实际情况自行修改
  38. }
  39. config.headers['TenantId'] = tenantId
  40. return config
  41. }, err)
  42. // response interceptor(接收拦截器)
  43. request.interceptors.response.use(async (response) => {
  44. const res = response.data
  45. const code = res.code || 200;
  46. if (code !== 200) {
  47. if (code == 401) {
  48. let userAccount = tools.getUserAccount();
  49. if (!userAccount) {
  50. // Message({
  51. // message: `登录失效,重新登录`,
  52. // type: "error",
  53. // });
  54. // setTimeout(() => {
  55. console.log('1231231')
  56. store.commit('setCurrentRouter', router.currentRoute)
  57. localStorage.removeItem('user_account')
  58. localStorage.removeItem('token')
  59. router.push({
  60. path: '/login'
  61. })
  62. return Promise.reject(res)
  63. // }, 1000);
  64. } else {
  65. let res = await refreshToken(response.config)
  66. return res
  67. }
  68. } else if (code == 500) {
  69. // Message({
  70. // message: res.msg,
  71. // type: "error",
  72. // });
  73. // localStorage.removeItem('user_account')
  74. // localStorage.removeItem('token')
  75. // console.log('222222')
  76. // router.push({
  77. // path: '/login'
  78. // })
  79. return Promise.reject(res)
  80. } else {
  81. return Promise.reject(res)
  82. }
  83. } else {
  84. return res
  85. }
  86. }, err)
  87. async function refreshToken(response) {
  88. let userAccount = tools.getUserAccount();
  89. var datas = {
  90. url: '/refreshToken/' + userAccount,
  91. method: 'get',
  92. noToken: true
  93. }
  94. const res = await request(datas)
  95. if (res.code === 200) {
  96. localStorage.setItem('token', res.data.token)
  97. var userInfo = {
  98. url: '/app/user/getInfo',
  99. method: 'get',
  100. params: {fromPlat: 2}, // 来源平台 1小程序 2PC网站
  101. }
  102. const resUser = await request(userInfo)
  103. if (resUser.data.code === 200) {
  104. store.state.userInfo = resUser.data
  105. localStorage.setItem('user_account', userAccount)
  106. num = 1;
  107. }
  108. let onset = await request(response)
  109. return onset
  110. } else {
  111. // Message({
  112. // message: `登录失效,重新登录`,
  113. // type: "error",
  114. // });
  115. // setTimeout(() => {
  116. localStorage.removeItem('user_account')
  117. localStorage.removeItem('token')
  118. console.log('33333')
  119. store.commit('setCurrentRouter', router.currentRoute)
  120. router.push({
  121. path: '/login'
  122. })
  123. // }, 1000);
  124. }
  125. }
  126. export default request