You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
1.9 KiB

9 months ago
9 months ago
9 months ago
9 months ago
  1. import axios from "./axios";
  2. import {
  3. clearEmptyParam
  4. } from './clearEmptyParam'
  5. import Vue from "vue";
  6. import shop from "./shop";
  7. const request = axios.create({
  8. // baseURL: 'https://admin.arcskytech.top/uav-api',//生产环境外国服务器
  9. baseURL: 'https://uav-api.xzaiyp.top/uav-api',//演示环境
  10. // baseURL: 'http://h5.xzaiyp.top/uav-api',//开发环境
  11. // baseURL: 'http://h5.xzaiyp.top/uav-two',//开发环境
  12. // baseURL: 'https://shop-admin.xzaiyp.top/shop_demo',
  13. timeout: '5000s',
  14. })
  15. request.interceptors.request.use(config => {
  16. config.headers['Content-Type'] = "application/x-www-form-urlencoded"
  17. if (localStorage.getItem('token')) {
  18. config.headers['X-Access-Token'] = `${localStorage.getItem('token')}`
  19. }
  20. if (uni.getStorageSync('language')) {
  21. config.headers['Language'] = `${uni.getStorageSync('language')}`
  22. }
  23. clearEmptyParam(config)
  24. return config;
  25. })
  26. request.interceptors.response.use(res => {
  27. if (res.headers['token']) {
  28. localStorage.setItem('token', res.headers['token'])
  29. }
  30. if (res.data.code != 200) {
  31. uni.$u.toast(uni.$resMessage[res.data.message] || res.data.message)
  32. }
  33. if (res.data.code == 401) {
  34. localStorage.removeItem('token')
  35. uni.navigateTo({
  36. url: "/pages/login/login"
  37. })
  38. }
  39. return res.data;
  40. },
  41. err => {
  42. console.log(err);
  43. if (err.response.status == 401) {
  44. localStorage.removeItem('token')
  45. // router.replace('/login').catch(()=>{})
  46. uni.navigateTo({
  47. url: "/pages/login/login"
  48. })
  49. }
  50. return Promise.reject(new Error(err))
  51. })
  52. export function handleRequest(key, data, params) {
  53. if (!shop[key]) {
  54. return console.error('无效key');
  55. }
  56. if (shop[key].auth) {
  57. if (!localStorage.getItem('token')) {
  58. uni.navigateTo({
  59. url: "/pages/login/login"
  60. })
  61. console.error('需要登录')
  62. return {
  63. then() {}
  64. };
  65. }
  66. }
  67. return request({
  68. ...shop[key],
  69. data,
  70. params
  71. })
  72. };
  73. export default handleRequest