axios.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import axios from 'axios'
  2. import {Message} from 'element-ui'
  3. import {
  4. getToken,
  5. setToken
  6. } from './auth.js'
  7. import qs from 'qs'
  8. const service = axios.create({
  9. baseURL: process.env.VUE_APP_BASE_API, // api的base_url
  10. // baseURL:'https://ding.insys.g107.com/',
  11. timeout: 5000,
  12. headers: {
  13. 'Content-Type': 'application/x-www-form-urlencoded',
  14. },
  15. transformRequest: [function(data) {
  16. return qs.stringify(data)
  17. }]
  18. })
  19. service.interceptors.request.use(
  20. config => {
  21. if (getToken()) {
  22. // config.headers['A-Token'] = getToken()
  23. config.headers['A-Token'] = ' eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvdGVzdC1kaW5nLmcxMDcuY29tXC9hcGlcL2RpbmdcL2xvZ2luIiwiaWF0IjoxNjA1MjQ4MzM1LCJleHAiOjE2MDU4NDgzMzUsIm5iZiI6MTYwNTI0ODMzNSwianRpIjoiU29DNXFjZTY2aDhkbWdtaSIsInN1YiI6MTU5LCJwcnYiOiJjYTY0ODlkNTBmMjQwN2E2NzgzMGU4MDkwZDAxNDg4MzU2ODU5NjJiIiwicm9sZSI6ImVtcGxveWVlIn0.2Ayf0qYdg7cfpFSYGMFDxxE5ypkc5HwbM_QADleNik8'
  24. }
  25. if (config.url == '/api/integral/statistics/ranking' || config.url == '/api/integral/review/apply'|| config.url == '/api/rule/import') {
  26. config.headers['Accept'] = 'application/vnd.test.v2+json'
  27. }
  28. if (config.url == '/api/integral/statistics/prize/list' || config.url =='/api/integral/performance/employee') {
  29. config.headers['Accept'] = 'application/vnd.test.v3+json'
  30. }
  31. if (config.url == '/api/integral/statistics/integral') {
  32. config.headers['Accept'] = 'application/json, text/plain, */*';
  33. }
  34. return config
  35. },
  36. error => {
  37. Promise.reject(error)
  38. }
  39. )
  40. // respone interceptor
  41. service.interceptors.response.use(
  42. response => {
  43. if (response.data.code === 1) {
  44. if(response.data.data.token){
  45. setToken(response.data.data.token);
  46. }else if (response.data.refresh_token) {
  47. if (response.data.refresh_token !== getToken()) {
  48. setToken(response.data.refresh_token);
  49. }
  50. }
  51. return response;
  52. } else if (response.data.code === 401) {
  53. Message({
  54. message: response.data.msg,
  55. type: 'error',
  56. })
  57. return Promise.reject(response.data.msg)
  58. }else{
  59. Message({
  60. message: response.data.msg,
  61. type: 'error',
  62. })
  63. return Promise.reject(response.data.msg)
  64. }
  65. },
  66. error => {
  67. if(error.message=='interrupt'){
  68. // Message({
  69. // message: '请勿频繁切换页面',
  70. // type: 'warning',
  71. // })
  72. return Promise.reject(error.message)
  73. }else if(error.message=='Network Error'){
  74. Message({
  75. message: '网络异常,请检查网络是否畅通,再重新进入应用',
  76. type: 'error',
  77. })
  78. return Promise.reject(error.message)
  79. }else{
  80. Message({
  81. message: error.message,
  82. type: 'error',
  83. })
  84. return Promise.reject(error.message)
  85. }
  86. }
  87. )
  88. export default service