request.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import axios from 'axios'
  2. import { Toast, Dialog } from 'vant'
  3. import store from '../store/index'
  4. const service = axios.create({
  5. // baseURL: 'http://172.16.30.26:8805/wxserver/', // dev
  6. baseURL: 'http://218.104.151.241:8805/wxserver', // prod
  7. withCredentials: true,
  8. timeout: 0,
  9. })
  10. service.interceptors.request.use(
  11. (config) => {
  12. store.commit('SET_LOADING', true)
  13. return config
  14. },
  15. (error) => {
  16. store.commit('SET_LOADING', false)
  17. return Promise.reject(error)
  18. }
  19. )
  20. service.interceptors.response.use(
  21. (response) => {
  22. store.commit('SET_LOADING', false)
  23. if (response.data.code === 200) {
  24. return response.data.data
  25. }
  26. if (response.data.code === 0) {
  27. return response.data
  28. }
  29. if (response.data.code > 1000 && response.data.code < 2000) {
  30. Toast({
  31. message: response.data.message,
  32. position: 'top',
  33. })
  34. } else if (response.data.code > 2000 && response.data.code < 3000) {
  35. Dialog.alert({
  36. title: '提示',
  37. message: response.data.message,
  38. })
  39. }
  40. return Promise.reject(new Error(response.data.message || '服务器内部错误'))
  41. },
  42. (error) => {
  43. store.commit('SET_LOADING', false)
  44. return Promise.reject(error)
  45. }
  46. )
  47. export default service