2 lines
3.9 KiB
JavaScript
2 lines
3.9 KiB
JavaScript
import e from"axios";import r from"qs";import{cloneDeep as t}from"lodash-es";function n(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}var s=function e(r,t,n,s){if("object"===o(t)){if(Array.isArray(t))return t.map((function(r){return e(null,r,n,s)}));for(var i in t){var a=t[i],c="function"==typeof n?n(i,a):i;t[c]=e(i,a,n,s),c!==i&&delete t[i]}return t}return"function"==typeof s?s(r,t):t},i=function(e){return"string"==typeof e&&e?e.replace(e[0],e[0].toLowerCase()):e},a=function(e){return"string"==typeof e&&e?e.replace(e[0],e[0].toUpperCase()):e};function c(e){return{"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regExp","[object Undefined]":"undefined","[object Null]":"null","[object Event]":"event","[object Object]":"object","[object MouseEvent]":"mouseEvent"}[Object.prototype.toString.call(e)]}function u(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function f(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?u(Object(t),!0).forEach((function(r){n(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):u(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}var p=function(e){return s(null,e,i)},l=function(e,r){return f({error:f({},e)},r)},d=function(e){return"local"===window.STATIC_ENV_CONFIG.VUE_APP_MODEL&&console.warn("接口非0啦!错误信息看这里!","\n responseURL:",e.request.responseURL,"\n data: ",e.data,"\n all message: ",e),!1},b=function(e){if("undefined"===c(e))return d(e),Promise.reject(new Error("response is undefined"));var r=e.data,t=void 0===r?{}:r,n=e.config,o=void 0===n?{}:n;o.hideLoading;var a={reqConfig:f({},p(o))};return o.headers&&"old"===o.headers["x-api-version"]?0!=+t.errcode?(d(e),Promise.reject(l(t,a))):f({data:t},a):t.Response?void 0!==t.Response.Data?Object.assign(s(null,t.Response,i),a):(d(e),Promise.reject(Object.assign(s(null,t.Response,i),a))):f({},e)},j=function(e){if(e&&e.response){var r=e.response,t=r.config,n=void 0===t?{}:t,o=r.data,a=void 0===o?{}:o;n.hideLoading,console.error("=====> statusCode no 2xx,Reject: ",e.response);var u={reqConfig:f({},p(n))};return"object"===c(a)?"old"!==n.headers["x-api-version"]?Promise.reject(Object.assign(s(null,a.Response,i),u)):Promise.reject(l(a,u)):Promise.reject(l({data:e.response.data,status:e.response.status,statusText:e.response.statusText,headers:e.response.headers},u))}return Promise.reject(e||new Error("Unknown Network Error"))},y=function(e){if("old"!==e.headers["x-api-version"]){if(e.data){var r=t(e.data);Object.assign(e,{data:s(null,r,a)})}if(e.params){var n=t(e.params);Object.assign(e,{params:s(null,n,a)})}}return e.hideLoading,e},m=function(e){return Promise.reject(e)},O=function(){var r=e.create({maxRedirects:0});return r.defaults.timeout=window.STATIC_ENV_CONFIG&&window.STATIC_ENV_CONFIG.VUE_APP_API_TIMEOUT||15e3,r.defaults.headers["Content-Type"]="application/json",r.interceptors.request.use(y,m),r.interceptors.response.use(b,j),r},g=function(){var t=e.create({method:"post",headers:{"Content-Type":"application/x-www-form-urlencoded"},transformRequest:[function(e){return Object.keys(e).forEach((function(r){"object"===o(e[r])&&Object.assign(e,n({},r,JSON.stringify(e[r])))})),r.stringify(e)}]});return t.interceptors.request.use(y,m),t.interceptors.response.use(b,j),t},v=O(),w=g();export{O as createRequest,g as createRequestFd,v as request,w as requestFd};
|