request.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import axios from 'axios'
  2. import { getToken, removeToken } from '@/utils/auth'
  3. import { showNotify } from 'vant';
  4. import $router from '@/router'
  5. // create an axios instance
  6. const service = axios.create({
  7. // Vite默认不支持process
  8. // baseURL: process.env.VITE_BASE_URL,
  9. baseURL: import.meta.env.VITE_BASE_URL,
  10. timeout: 50000 // 请求超时
  11. })
  12. // 请求拦截器
  13. service.interceptors.request.use(
  14. config => {
  15. if (getToken()) {
  16. // 设置请求带上token
  17. config.headers['token'] = getToken()
  18. }
  19. return config
  20. },
  21. error => {
  22. // 异常情况
  23. console.log(error)
  24. return Promise.reject(error)
  25. }
  26. )
  27. // 返回拦截器
  28. service.interceptors.response.use(
  29. response => {
  30. const res = response.data
  31. // code不等于200的处理
  32. if (res.code !== 200) {
  33. // code 10004 未登录处理
  34. if (res.code === 10004 || res.code === 10005 || res.code === 10008) {
  35. showNotify(
  36. {
  37. type: 'danger',
  38. message: res.msg
  39. }
  40. );
  41. $router.push('/index/login');
  42. removeToken();
  43. } else if(res.code === 10033) {
  44. showNotify(
  45. {
  46. type: 'danger',
  47. message: '当前节点需要业务操作, 请在电脑端处理节点'
  48. }
  49. );
  50. } else {
  51. showNotify(
  52. {
  53. type: 'danger',
  54. message: res.msg
  55. }
  56. );
  57. }
  58. return res
  59. } else {
  60. return res
  61. }
  62. },
  63. error => {
  64. console.log('err' + error)
  65. showNotify({ type: 'danger', message: error.message });
  66. return Promise.reject(error)
  67. }
  68. )
  69. export default service