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.

86 lines
1.8 KiB

8 months ago
8 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: 'https://shop-admin.xzaiyp.top/shop_demo',
  12. timeout: '5000s',
  13. })
  14. request.interceptors.request.use(config => {
  15. config.headers['Content-Type'] = "application/x-www-form-urlencoded"
  16. if (localStorage.getItem('token')) {
  17. config.headers['X-Access-Token'] = `${localStorage.getItem('token')}`
  18. }
  19. if (uni.getStorageSync('language')) {
  20. config.headers['Language'] = `${uni.getStorageSync('language')}`
  21. }
  22. clearEmptyParam(config)
  23. return config;
  24. })
  25. request.interceptors.response.use(res => {
  26. if (res.headers['token']) {
  27. localStorage.setItem('token', res.headers['token'])
  28. }
  29. if (res.data.code != 200) {
  30. uni.$u.toast(uni.$resMessage[res.data.message] || res.data.message)
  31. }
  32. if (res.data.code == 401) {
  33. localStorage.removeItem('token')
  34. uni.navigateTo({
  35. url: "/pages/login/login"
  36. })
  37. }
  38. return res.data;
  39. },
  40. err => {
  41. console.log(err);
  42. if (err.response.status == 401) {
  43. localStorage.removeItem('token')
  44. // router.replace('/login').catch(()=>{})
  45. uni.navigateTo({
  46. url: "/pages/login/login"
  47. })
  48. }
  49. return Promise.reject(new Error(err))
  50. })
  51. export function handleRequest(key, data, params) {
  52. if (!shop[key]) {
  53. return console.error('无效key');
  54. }
  55. if (shop[key].auth) {
  56. if (!localStorage.getItem('token')) {
  57. uni.navigateTo({
  58. url: "/pages/login/login"
  59. })
  60. console.error('需要登录')
  61. return {
  62. then() {}
  63. };
  64. }
  65. }
  66. return request({
  67. ...shop[key],
  68. data,
  69. params
  70. })
  71. };
  72. export default handleRequest