tools.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /**
  2. * Created by 叶子 on 2017/7/30.
  3. * http通用工具函数
  4. */
  5. import axios from 'axios';
  6. import { message } from 'antd';
  7. import config from '../const';
  8. function checkURL(url) {
  9. if (/(http|ws|https)/.test(url)) {
  10. return url;
  11. }
  12. return `${config.BASE_API}${url}`;
  13. }
  14. /**
  15. * 公用get请求
  16. * @param url 接口地址
  17. * @param msg 接口异常提示
  18. * @param params 请求参数
  19. * @param headers 接口所需header配置
  20. */
  21. export const get = ({ url, headers, params, msg = '接口异常' }) =>
  22. axios
  23. .get(checkURL(url), { headers, params })
  24. .then(res => res.data)
  25. .catch(err => {
  26. console.log(err);
  27. message.warn(msg);
  28. return Promise.reject(err);
  29. });
  30. /**
  31. * 公用post请求
  32. * @param url 接口地址
  33. * @param data 接口参数
  34. * @param msg 接口异常提示
  35. * @param headers 接口所需header配置
  36. */
  37. export const post = ({ url, data, msg = '接口异常', headers={} }) =>
  38. axios
  39. .post(checkURL(url), data, headers)
  40. .then(res => res.data)
  41. .catch(err => {
  42. console.log(err);
  43. message.warn(msg);
  44. return Promise.reject(err);
  45. });
  46. /**
  47. *
  48. * @param url
  49. * @param data
  50. * @param msg
  51. * @param headers
  52. * @returns {Promise<AxiosResponse<any> | never>}
  53. */
  54. export const put = ({ url, data, msg = '接口异常', headers }) =>
  55. axios.put(checkURL(url), data, headers)
  56. .then(resp => resp.data)
  57. .catch(err => {
  58. console.log('err : ', url, ' err: ', err);
  59. return Promise.reject(err);
  60. });
  61. export const del = ({ url, data, headers }) =>
  62. axios.delete(checkURL(url), { data, headers })
  63. .then(resp => resp.data)
  64. .catch(err => {
  65. return Promise.reject(err);
  66. });