request.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import { aes_encrypt, aes_decrypt } from '@/store/aes_endecrypt.js';
  2. // 此vm参数为页面的实例,可以通过它引用vuex中的变量
  3. module.exports = (vm) => {
  4. // 初始化请求配置
  5. uni.$u.http.setConfig((config) => {
  6. /* config 为默认全局配置*/
  7. config.baseURL = 'http://yyds:8088'; /* 根域名 */
  8. // config.baseURL = 'http://nas.lsxxy.top:8011/'; /* 根域名 */
  9. config.header={
  10. 'content-type': 'application/json;charset=UTF-8',
  11. // 'content-type': 'application/json;charset=UTF-8',
  12. 'Authorization': vm.$store.state.vuex_token.token,
  13. };
  14. return config
  15. })
  16. // 请求拦截
  17. uni.$u.http.interceptors.request.use((config) => { // 可使用async await 做异步操作
  18. // 初始化请求拦截器时,会执行此方法,此时data为undefined,赋予默认{}
  19. config.data = config.data || {}
  20. // 根据custom参数中配置的是否需要token,添加对应的请求头
  21. config.header.Authorization = vm.$store.state.vuex_token.token;
  22. // console.log(config.header.Authorization)
  23. // if(config.url == 'admin/api.login/index'){
  24. // console.log(config.url)
  25. // }else{
  26. // // config.header.Authorization = vm.$store.state.vuex_token;
  27. // }
  28. return config
  29. }, config => { // 可使用async await 做异步操作
  30. return Promise.reject(config)
  31. })
  32. // 响应拦截
  33. uni.$u.http.interceptors.response.use((response) => { /* 对响应成功做点什么 可使用async await 做异步操作*/
  34. const data = response.data
  35. // console.log(data)
  36. // 自定义参数
  37. const custom = response.config?.custom
  38. if(data.code ==1 || data.code == 200 ) {
  39. // uni.$u.toast(data.msg)
  40. // var decrypt = aes_decrypt(data.data);
  41. // console.log(decrypt)
  42. // const params={
  43. // code:data.code,
  44. // data:decrypt,
  45. // msg:data.msg
  46. // }
  47. // console.log(params)
  48. return data;
  49. } else if(data.code == 400){
  50. uni.$u.toast(data.msg)
  51. setTimeout(() => {
  52. vm.$u.route('pages/auth/login');
  53. }, 1500)
  54. return false;
  55. }else{
  56. //uni.$u.toast(data.msg)
  57. uni.showToast({
  58. title:data.msg,
  59. type: 'error',
  60. icon: true,
  61. position: 'center',
  62. duration: 3500
  63. });
  64. return false;
  65. }
  66. }, (response) => {
  67. // 对响应错误做点什么 (statusCode !== 200)
  68. return Promise.reject(response)
  69. })
  70. }