axios.js 3.6 KB

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