request.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. import store from '@/store'
  2. import errorCode from '@/config/errorCode'
  3. import axios from 'axios'
  4. import mpAdapter from 'axios-miniprogram-adapter'
  5. axios.defaults.adapter = mpAdapter
  6. import mock from './mock'
  7. const baseUrl = 'https://zzjs.zzxcx.net/prod-api';
  8. // 创建axios实例
  9. const service = axios.create({
  10. // axios中请求配置有baseURL选项,表示请求URL公共部分
  11. //#ifdef MP-WEIXIN
  12. baseURL: process.env.NODE_ENV === 'development' ? 'https://jpcj-admin1.zzxcx.net/stage-api' : 'https://jpcj-admin.zzxcx.net/prod-api',
  13. //#endif
  14. //#ifdef MP-TOUTIAO
  15. baseURL: process.env.NODE_ENV === 'development' ? 'https://sdjk-admin1.zzxcx.net/stage-api' : 'https://sdjk-admin1.zzxcx.net/prod-api',
  16. //#endif
  17. })
  18. mock.init(service)
  19. // request拦截器
  20. service.interceptors.request.use(
  21. async config => {
  22. // 是否需要设置 token
  23. if (config.headers.isLogin) {
  24. return config
  25. }
  26. if (await store.dispatch("getToken")) {
  27. config.headers['Authorization'] = 'Bearer ' + await store.dispatch("getToken") // 让每个请求携带自定义token 请根据实际情况自行修改
  28. }
  29. else {
  30. }
  31. return config
  32. },
  33. error => {
  34. Promise.reject(error)
  35. }
  36. )
  37. // 响应拦截器
  38. service.interceptors.response.use(
  39. res => {
  40. // 未设置状态码则默认成功状态
  41. const code = res.data.code || 200;
  42. // 获取错误信息
  43. const msg = errorCode[code] || res.data.msg || errorCode['default']
  44. //重置Authorization时间
  45. if (code !== 401) store.commit('REFRESH_TOKEN')
  46. if (code !== 200) {
  47. if (code == 500) {
  48. console.log('code' + code + ':' + msg)
  49. wx.showToast({
  50. title: 'code' + code + ':系统错误',
  51. icon: 'none'
  52. })
  53. } else {
  54. console.log('code' + code + ':' + msg)
  55. wx.showToast({
  56. title: 'code' + code + ':' + msg,
  57. icon: 'none'
  58. })
  59. }
  60. }
  61. return res.data
  62. },
  63. error => {
  64. let {
  65. message
  66. } = error;
  67. console.log(error, 'error')
  68. if (!message) {
  69. message = "未知错误"
  70. wx.showToast({
  71. title: message,
  72. icon: 'none'
  73. })
  74. return Promise.reject(error)
  75. }
  76. if (message == "Network Error") {
  77. message = "后端接口连接异常";
  78. } else if (message.includes("timeout")) {
  79. message = "系统接口请求超时";
  80. } else if (message.includes("Request failed with status code")) {
  81. message = "系统接口" + message.substr(message.length - 3) + "异常";
  82. }
  83. wx.showToast({
  84. title: message,
  85. icon: 'none'
  86. })
  87. return Promise.reject(error)
  88. }
  89. )
  90. export default service