axios.js 3.1 KB

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