Commit db402b7c authored by 郭志伟's avatar 郭志伟

feat: 问题修复

parent e0770a60
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=e(require("axios"));function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var a=window.navigator.userAgent.toLowerCase(),u="micromessenger"==a.match(/MicroMessenger/i),c=/iphone|ipad|ipod/.test(a),l=/android/.test(a),d=function(e){var t=window.localStorage.getItem(e);try{return JSON.parse(t)}catch(e){return t}};function f(e){return e?Object.keys(e).map((function(t){return void 0===e[t]?"":encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).filter((function(e){return null!=e})).join("&"):""}function h(){return u?d("vccChannel")||"":(l?"159905":c?"159904":d("vccChannel"))||""}function g(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};return{service:{response:function(t){var n=t.data,r=t.config;if(r.rawData)return[n,null];if(0===n.code&&0===n.business_code||"0000"===n.code&&"0000"===n.businessCode)return[n.data,null];var o=n.msg||"服务异常";r.hideToast&&n.noAlert||e(o);var s=new Error(o);return s.response=n,console.error(s),[null,s]},request:function(e){var t=e.method,n=e.hideVccChannel;return e.headers["X-Auth-Token"]=d("vccToken")||"",e.customHeader&&Object.assign(e.headers,e.customHeader),e.creditToken&&(e.headers["X-Auth-Token"]=d("creditToken")),n||(e.headers.vccChannel=h()),"post"===t&&e.emulateJSON&&(e.headers["Content-Type"]="application/x-www-form-urlencoded",e.data=f(e.data)),e}}}}var p={status:{400:"错误请求",401:"您未登录或登录超时,请重新登录",403:"拒绝访问",404:"请求错误,未找到该资源",405:"请求方法未允许",408:"请求超时",500:"服务器端出错",501:"网络未实现",502:"网络错误",503:"服务不可用",504:"网络超时",505:"http版本不支持该请求"}},v={default:{request:function(e){return e},response:function(e){return e.data}}},y={timeout:15e3},m=function(){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){};return n(this,e),this.CancelToken=t.default.CancelToken,this.instance=t.default.create(i(i({},y),o)),this.pending={},this.reqNum=0,this.timeId=null,this.toastFn=s,this.loadingFn=a,this.strategyModes=i(i({},g(this.toastFn)),r),this.strategyModes.default=v,this.initRequestInterceptors(),this.initResponseInterceptors(),this.instance}var o,s,a;return o=e,(s=[{key:"beforeRequest",value:function(){var e=this;this.reqNum++,clearTimeout(this.timeId),this.timeId=setTimeout((function(){e.loadingFn(!0)}),1300)}},{key:"afterRequest",value:function(){this.reqNum--,this.reqNum<=0&&(this.clearRequest(),this.loadingFn(!1))}},{key:"clearRequest",value:function(){clearTimeout(this.timeId)}},{key:"setStrategy",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.strategyModes=t?e:i(i({},this.strategyModes),e)}},{key:"setLoadingFn",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};this.loadingFn=e}},{key:"setToastFn",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};this.toastFn=e}},{key:"initRequestInterceptors",value:function(){var e=this;this.instance.interceptors.request.use((function(t){return!t.hideLoading&&e.beforeRequest(t.url||""),e.pending[t.url]&&e.pending[t.url]("取消重复请求"),t.cancelToken=new e.CancelToken((function(n){return e.pending[t.url]=n})),t.strategy||(t.strategy="service"),e.strategyModes[t.strategy].request&&(t=e.strategyModes[t.strategy].request(t)),t}),(function(e){return[null,e]}))}},{key:"initResponseInterceptors",value:function(){var e=this,t=this;this.instance.interceptors.response.use((function(e){return e.config.url&&(!e.config.hideLoading&&t.afterRequest(),delete t.pending[e.config.url||""]),t.strategyModes[e.config.strategy].response(e)}),(function(n){t.afterRequest();var r="",o=!0;"Network Error"!==n.message||n.response?n.response&&n.response.status?r=p.status[n.response.status]||"未知异常码: ".concat(n.response.status):"取消重复请求"===n.message&&(r="取消重复请求",o=!1):r="服务不可用",o&&e.toastFn(r||"服务异常,请稍后重试");var s=new Error(r);return console.error(s),[null,s]}))}}])&&r(o.prototype,s),a&&r(o,a),e}();module.exports=m;
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=e(require("axios"));function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var a=window.navigator.userAgent.toLowerCase(),u="micromessenger"==a.match(/MicroMessenger/i),c=/iphone|ipad|ipod/.test(a),l=/android/.test(a),d=function(e){var t=window.localStorage.getItem(e);try{return JSON.parse(t)}catch(e){return t}};function f(e){return e?Object.keys(e).map((function(t){return void 0===e[t]?"":encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).filter((function(e){return null!=e})).join("&"):""}function h(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"vccChannel";return u?d(e)||"":(l?"159905":c?"159904":d(e))||""}function g(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};return{service:{response:function(t){var n=t.data,r=t.config;if(r.rawData)return[n,null];if(0===n.code&&0===n.business_code||"0000"===n.code&&"0000"===n.businessCode)return[n.data,null];var o=n.msg||"服务异常";r.hideToast&&n.noAlert||e(o);var s=new Error(o);return s.response=n,console.error(s),[null,s]},request:function(e){var t=e.method,n=e.hideVccChannel;return e.headers["X-Auth-Token"]=d("vccToken")||"",e.customHeader&&Object.assign(e.headers,e.customHeader),e.creditToken&&(e.headers["X-Auth-Token"]=d("creditToken")),n||(e.headers.vccChannel=h(),e.headers.sonVccChannel=h("sonVccChannel")),"post"===t&&e.emulateJSON&&(e.headers["Content-Type"]="application/x-www-form-urlencoded",e.data=f(e.data)),e}}}}var p={status:{400:"错误请求",401:"您未登录或登录超时,请重新登录",403:"拒绝访问",404:"请求错误,未找到该资源",405:"请求方法未允许",408:"请求超时",500:"服务器端出错",501:"网络未实现",502:"网络错误",503:"服务不可用",504:"网络超时",505:"http版本不支持该请求"}},v={default:{request:function(e){return e},response:function(e){return e.data}}},y={timeout:15e3,strategy:"service"},m=function(){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){};n(this,e),this.CancelToken=t.default.CancelToken,this.axiosConfig=i(i({},y),o),this.instance=t.default.create(this.axiosConfig),this.pending={},this.reqNum=0,this.timeId=null,this.toastFn=s,this.loadingFn=a,this.strategyModes=i(i({},g(this.toastFn)),r),this.strategyModes.default=v,this.initRequestInterceptors(),this.initResponseInterceptors()}var o,s,a;return o=e,(s=[{key:"getInstance",value:function(){return this.instance}},{key:"beforeRequest",value:function(){var e=this;this.reqNum++,clearTimeout(this.timeId),this.timeId=setTimeout((function(){e.loadingFn(!0)}),1300)}},{key:"afterRequest",value:function(){this.reqNum--,this.reqNum<=0&&(this.clearRequest(),this.loadingFn(!1))}},{key:"clearRequest",value:function(){clearTimeout(this.timeId)}},{key:"setStrategy",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.strategyModes=t?e:i(i({},this.strategyModes),e)}},{key:"setLoadingFn",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};this.loadingFn=e}},{key:"setToastFn",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};this.toastFn=e}},{key:"initRequestInterceptors",value:function(){var e=this;this.instance.interceptors.request.use((function(t){return!t.hideLoading&&e.beforeRequest(t.url||""),e.pending[t.url]&&e.pending[t.url]("取消重复请求"),t.cancelToken=new e.CancelToken((function(n){return e.pending[t.url]=n})),t.strategy=t.strategy||e.axiosConfig.strategy,e.strategyModes[t.strategy].request&&(t=e.strategyModes[t.strategy].request(t)),t}),(function(e){return[null,e]}))}},{key:"initResponseInterceptors",value:function(){var e=this,t=this;this.instance.interceptors.response.use((function(e){return e.config.url&&(!e.config.hideLoading&&t.afterRequest(),delete t.pending[e.config.url||""]),t.strategyModes[e.config.strategy].response(e)}),(function(n){t.afterRequest();var r="",o=!0;"Network Error"!==n.message||n.response?n.response&&n.response.status?r=p.status[n.response.status]||"未知异常码: ".concat(n.response.status):"取消重复请求"===n.message&&(r="取消重复请求",o=!1):r="服务不可用",o&&e.toastFn(r||"服务异常,请稍后重试");var s=new Error(r);return console.error(s),[null,s]}))}}])&&r(o.prototype,s),a&&r(o,a),e}();module.exports=m;
{
"name": "@qg/ui-request",
"version": "0.0.3",
"version": "0.0.8",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
......
{
"name": "@qg/ui-request",
"version": "0.0.5",
"version": "0.0.8",
"description": "axios策略请求封装",
"main": "dist/index.js",
"scripts": {
......
......@@ -10,10 +10,10 @@ function getURLSearchParams(json) {
return dataArray.filter(item => item !== undefined && item !== null).join('&');
}
function getVccChannel() {
function getVccChannel(channelKey = 'vccChannel') {
return isWechat
? localStorage.get('vccChannel') || ''
: (isAndroid ? '159905' : isIOS ? '159904' : localStorage.get('vccChannel')) || '';
? localStorage.get(channelKey) || ''
: (isAndroid ? '159905' : isIOS ? '159904' : localStorage.get(channelKey)) || '';
}
export default function strategyModes(toastFn = () => {}) {
return {
......@@ -56,6 +56,7 @@ export default function strategyModes(toastFn = () => {}) {
}
if (!hideVccChannel) {
cfg.headers['vccChannel'] = getVccChannel();
cfg.headers['sonVccChannel'] = getVccChannel('sonVccChannel');
}
if (method === 'post' && cfg.emulateJSON) {
cfg.headers['Content-Type'] = 'application/x-www-form-urlencoded';
......
......@@ -29,12 +29,14 @@ const defaultStratege = {
};
const defaultConfig = {
timeout: 15000
timeout: 15000,
strategy: 'service'
};
class HttpRequest {
constructor(strategy = {}, config = {}, toastFn = () => {}, loadingFn = () => {}) {
this.CancelToken = axios.CancelToken;
this.instance = axios.create({ ...defaultConfig, ...config });
this.axiosConfig = { ...defaultConfig, ...config };
this.instance = axios.create(this.axiosConfig);
this.pending = {};
this.reqNum = 0;
this.timeId = null;
......@@ -44,6 +46,8 @@ class HttpRequest {
this.strategyModes.default = defaultStratege;
this.initRequestInterceptors();
this.initResponseInterceptors();
}
getInstance() {
return this.instance;
}
beforeRequest() {
......@@ -83,9 +87,7 @@ class HttpRequest {
}
config.cancelToken = new self.CancelToken(c => (self.pending[config.url] = c));
// 使用默认响应处理策略
if (!config.strategy) {
config.strategy = 'service';
}
config.strategy = config.strategy || self.axiosConfig.strategy;
if (self.strategyModes[config.strategy].request) {
config = self.strategyModes[config.strategy].request(config);
}
......@@ -104,7 +106,6 @@ class HttpRequest {
!response.config.hideLoading && self.afterRequest();
delete self.pending[response.config.url || ''];
}
return self.strategyModes[response.config.strategy].response(response);
},
err => {
......
......@@ -2694,7 +2694,7 @@ var drawChart = (function () {
</script>
<script>
/*<!--*/
const data = {"version":1,"tree":{"name":"index.js","children":[{"name":"utils.js","uid":"6f55-1"},{"name":"localStorage.js","uid":"6f55-2"},{"name":"config.js","uid":"6f55-3"},{"name":"index.js","uid":"6f55-4"},{"name":"\u0000rollupPluginBabelHelpers.js","uid":"6f55-0"}],"renderedLength":5116,"isRoot":true},"nodes":{"6f55-0":{"renderedLength":1969,"id":"\u0000rollupPluginBabelHelpers.js"},"6f55-1":{"renderedLength":230,"id":"utils.js"},"6f55-2":{"renderedLength":634,"id":"localStorage.js"},"6f55-3":{"renderedLength":2182,"id":"config.js"},"6f55-4":{"renderedLength":4935,"isEntry":true,"id":"index.js"},"6f55-5":{"renderedLength":0,"isExternal":true,"id":"axios"}},"links":[{"source":"6f55-4","target":"6f55-0"},{"source":"6f55-4","target":"6f55-5"},{"source":"6f55-4","target":"6f55-3"},{"source":"6f55-3","target":"6f55-1"},{"source":"6f55-3","target":"6f55-2"}],"env":{"rollup":"2.44.0","rollup-plugin-visualizer":"4.2.2"},"options":{"gzip":false,"brotli":false}};
const data = {"version":1,"tree":{"name":"index.js","children":[{"name":"utils.js","uid":"31e0-1"},{"name":"localStorage.js","uid":"31e0-2"},{"name":"config.js","uid":"31e0-3"},{"name":"index.js","uid":"31e0-4"},{"name":"\u0000rollupPluginBabelHelpers.js","uid":"31e0-0"}],"renderedLength":5313,"isRoot":true},"nodes":{"31e0-0":{"renderedLength":1969,"id":"\u0000rollupPluginBabelHelpers.js"},"31e0-1":{"renderedLength":230,"id":"utils.js"},"31e0-2":{"renderedLength":634,"id":"localStorage.js"},"31e0-3":{"renderedLength":2352,"id":"config.js"},"31e0-4":{"renderedLength":5065,"isEntry":true,"id":"index.js"},"31e0-5":{"renderedLength":0,"isExternal":true,"id":"axios"}},"links":[{"source":"31e0-4","target":"31e0-0"},{"source":"31e0-4","target":"31e0-5"},{"source":"31e0-4","target":"31e0-3"},{"source":"31e0-3","target":"31e0-1"},{"source":"31e0-3","target":"31e0-2"}],"env":{"rollup":"2.44.0","rollup-plugin-visualizer":"4.2.2"},"options":{"gzip":false,"brotli":false}};
const run = () => {
const width = window.innerWidth;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment