axiosHelper.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. import axios from 'axios'
  2. import {
  3. getToken
  4. } from '@/common/auth.js'
  5. import store from '@/store/index.js'
  6. let url='';
  7. // uEnvDev
  8. if (process.env.NODE_ENV === 'development') {
  9. // TODO
  10. url='/api';
  11. }
  12. // uEnvProd
  13. if (process.env.NODE_ENV === 'production') {
  14. // TODO
  15. url='/api';
  16. }
  17. // create an axios instance
  18. const service = axios.create({
  19. baseURL: url, // url = base url + request url
  20. // withCredentials: true, // send cookies when cross-domain requests
  21. //crossDomain=true,
  22. //headers: {'Content-Type': 'application/x-www-form-urlencoded'},
  23. timeout: 20000 // request timeout
  24. })
  25. // request interceptor
  26. service.interceptors.request.use(
  27. config => {
  28. // do something before request is sent
  29. //console.info("axioshelper request");
  30. //console.info(mget.getters);
  31. //console.info(store);
  32. if (store.state.isLogin) {
  33. if(store.state.token)
  34. {
  35. // let each request carry token
  36. // ['X-Token'] is a custom headers key
  37. // please modify it according to the actual situation
  38. config.headers['X-Token'] = store.state.token.tokenStr;
  39. }
  40. else{
  41. if(store.state.user.userCode==-undefined){
  42. uni.navigateTo({
  43. url:"/pages/LoginSupplier/LoginSupplier"
  44. });
  45. }
  46. else{
  47. uni.navigateTo({
  48. url:"/"
  49. });
  50. }
  51. return config;
  52. }
  53. }
  54. console.info('axioshelper request config',config);
  55. return config;
  56. },
  57. error => {
  58. // do something with request error
  59. console.log(error) // for debug
  60. return Promise.reject(error)
  61. }
  62. )
  63. // response interceptor
  64. service.interceptors.response.use(
  65. /**
  66. * If you want to get http information such as headers or status
  67. * Please return response => response
  68. */
  69. /**
  70. * Determine the request status by custom code
  71. * Here is just an example
  72. * You can also judge the status by HTTP Status Code
  73. */
  74. response => {
  75. console.info('axioshelper应答原始数据', response);
  76. const res = response.data;
  77. //console.info('axioshelper应答response.data', res);
  78. if (res.code == 500) {
  79. uni.showModal({
  80. title: '系统错误',
  81. content: res.errMsg,
  82. showCancel: false
  83. });
  84. return res;
  85. }
  86. if(res.isSuccess==false&&(res.code==201||res.code==202||res.code==205)){
  87. uni.showModal({
  88. title: '警告',
  89. content: res.errMsg,
  90. showCancel: false,
  91. success:function(ret){
  92. if(ret.confirm){
  93. if(store.state.user.userCode==-undefined){
  94. uni.navigateTo({
  95. url:"/pages/LoginSupplier/LoginSupplier"
  96. });
  97. }
  98. else{
  99. uni.navigateTo({
  100. url:"/"
  101. });
  102. }
  103. }
  104. }
  105. });
  106. return res;
  107. }
  108. //console.info(res);
  109. return res;
  110. },
  111. error => {
  112. console.log('axioshelper 应答error' + error) // for debug
  113. uni.showModal({
  114. title: '错误',
  115. content: error.message,
  116. showCancel: false
  117. });
  118. return Promise.reject(error)
  119. }
  120. )
  121. export default service