httpApi.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import request from "./index";
  2. import {getObjValue} from "vue-utils-plus"
  3. //封装的请求
  4. export const httpApi = async (obj, message= true) => {
  5. return new Promise( (resolve) => {
  6. //发起请求
  7. request(obj).then((response) => {
  8. resolve(getResData(response,false));
  9. }).catch((response) => {
  10. if (message) {
  11. window.$message?.error(getMsgVal(response));
  12. }
  13. resolve(getResData(response,true));
  14. })
  15. });
  16. }
  17. //处理数据
  18. const getResData = (response, error = false) => {
  19. const headers = getObjValue(response?.headers)
  20. return {
  21. response,
  22. res: response?.data,
  23. data: response?.data?.data,
  24. code: response?.data?.code,
  25. msg: response?.data?.msg,
  26. status: response?.status,
  27. disposition: headers['content-disposition'],
  28. message: getMsgVal(response),
  29. error: error
  30. }
  31. }
  32. //获取msg消息内容
  33. const getMsgVal = (response) => {
  34. const {msg, error_description} = getObjValue(response.data)
  35. return msg || error_description || '未知错误';
  36. }