request.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import axios from 'axios'
  2. // import BASE_URL from '../config/env'
  3. import store from '../store'
  4. import { getToken } from '@/utils/auth'
  5. import router from '@/router'
  6. import { Message } from 'element-ui'
  7. import { resetServerTime } from './index'
  8. /* eslint-disable-next-line */
  9. const Store = require('electron-store')
  10. const localStore = new Store()
  11. const log = require('electron-log')
  12. // 创建axios实例
  13. const service = axios.create({
  14. baseURL: localStore.get('serverUrl') // api的base_url
  15. // timeout: 5000 // 请求超时时间
  16. })
  17. // request拦截器
  18. service.interceptors.request.use(config => {
  19. const token = getToken()
  20. if (token) {
  21. // config.data.SaToken = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
  22. Object.assign(config, {
  23. headers: { 'SaToken': token }
  24. })
  25. }
  26. return config
  27. }, error => {
  28. // Do something with request error
  29. console.log(error) // for debug
  30. log.error(JSON.stringify(error))
  31. Promise.reject(error)
  32. })
  33. // respone拦截器
  34. service.interceptors.response.use(response => {
  35. // store.commit('SET_DIFF_TIME', response.headers.date)
  36. if (process.env.NODE_ENV === 'production') {
  37. resetServerTime(response.headers.date)
  38. }
  39. /**
  40. * code为非20000是抛错 可结合自己业务进行修改
  41. */
  42. console.log(response)
  43. const { code, msg } = response.data
  44. if (code === '999999' && msg.includes('请登录后再访问') && getToken()) {
  45. store.dispatch('LogOut').then(() => {
  46. router.push('/login')
  47. })
  48. } else {
  49. return response.data
  50. }
  51. }, error => {
  52. let message = ''
  53. if (error.response.data && error.response.data.message) {
  54. message = error.response.data.message
  55. } else {
  56. message = '网络出错了'
  57. }
  58. Message({
  59. message: message,
  60. type: 'error'
  61. })
  62. log.error(JSON.stringify(error.response.config.data))
  63. log.error(JSON.stringify(error.response.data))
  64. return Promise.reject(error)
  65. })
  66. export default service