axios.js 3.6 KB

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