Commit b5770471 authored by chuan.liu's avatar chuan.liu

创意酒api处理

parent 733dc164
......@@ -149,32 +149,32 @@
"Action": "guanying.customcategory.list.get",
...this.signParams
}
// const res = await apiGetCategory(params)
const res2 = {
Data: {
CategoryList: [{
TemplateCategoryID: "7",
CategoryName: "婚庆定制"
},
{
TemplateCategoryID: "8",
CategoryName: "商务科技"
},
{
TemplateCategoryID: "9",
CategoryName: "宴会类别"
},
{
TemplateCategoryID: "10",
CategoryName: "自定义"
}
],
GoodsImage: "http://att.c0331.dev.guanyingyun.com/attachment/works/frontimagepath/2022/03/28/16484637403730.png",
},
ErrCode: "0",
ErrMsg: "",
Status: "Success"
}
const res2 = await apiGetCategory(params)
// const res2 = {
// Data: {
// CategoryList: [{
// TemplateCategoryID: "7",
// CategoryName: "婚庆定制"
// },
// {
// TemplateCategoryID: "8",
// CategoryName: "商务科技"
// },
// {
// TemplateCategoryID: "9",
// CategoryName: "宴会类别"
// },
// {
// TemplateCategoryID: "10",
// CategoryName: "自定义"
// }
// ],
// GoodsImage: "http://att.c0331.dev.guanyingyun.com/attachment/works/frontimagepath/2022/03/28/16484637403730.png",
// },
// ErrCode: "0",
// ErrMsg: "",
// Status: "Success"
// }
this.tabs = res2.Data.CategoryList
this.goodsBottleImage = res2.Data.GoodsImage
this.activeTabItem = res2.Data.CategoryList[0]
......@@ -188,34 +188,34 @@
},
async getCategoryDetail() {
const params = {
"OutsideGoodsID": "432608038931800064",
"Action": "guanying.customtemplate.list.get",
"OutsideGoodsID": "432608038931800064",
"TemplateCategoryID": this.activeTabItem.TemplateCategoryID,
"PageID": "1",
"Pagesize": "100",
"Pagesize": "99",
...this.signParams
}
const res = await apiGetCategoryDetail(params)
const res2 = {
Data: [{
"TemplateID": "2",
"OriginImageWidth": "803",
"OriginImageHeight": "2516",
"OriginImagePath": "https://att.wuliangcreart.com/attachment/works/custom/2019/08/02/52Origin08.png",
"ThumbImagePath": "https://att.wuliangcreart.com/attachment/works/custom/2019/08/02/Thumb08.png",
}, {
"TemplateID": "2",
"OriginImageWidth": "803",
"OriginImageHeight": "2516",
"OriginImagePath": "https://att.wuliangcreart.com/attachment/works/custom/2019/08/02/52Origin08.png",
"ThumbImagePath": "https://att.wuliangcreart.com/attachment/works/custom/2019/08/02/Thumb08.png",
}],
ErrCode: "0",
ErrMsg: "",
Status: "Success"
}
const res2 = await apiGetCategoryDetail(params)
// const res2 = {
// Data: [{
// "TemplateID": "2",
// "OriginImageWidth": "803",
// "OriginImageHeight": "2516",
// "OriginImagePath": "https://att.wuliangcreart.com/attachment/works/custom/2019/08/02/52Origin08.png",
// "ThumbImagePath": "https://att.wuliangcreart.com/attachment/works/custom/2019/08/02/Thumb08.png",
// }, {
// "TemplateID": "2",
// "OriginImageWidth": "803",
// "OriginImageHeight": "2516",
// "OriginImagePath": "https://att.wuliangcreart.com/attachment/works/custom/2019/08/02/52Origin08.png",
// "ThumbImagePath": "https://att.wuliangcreart.com/attachment/works/custom/2019/08/02/Thumb08.png",
// }],
// ErrCode: "0",
// ErrMsg: "",
// Status: "Success"
// }
this.templateCategoryDetail = res2.Data
},
......@@ -230,24 +230,24 @@
"Action": "guanying.goodstemplate.detail.query",
...this.signParams
}
const res = await apiGetCategoryDetailById(params)
const res2 = {
Data: {
"TemplateID": '1',
"ThumbImagePath": '',
"OriginImagePath": '',
"OriginImageWidth": '',
"OriginImageHeight": '',
"ConfigContent": {
"InitImgList": [{
"imgID": 1
}],
},
},
ErrCode: "0",
ErrMsg: "",
Status: "Success"
}
const res2 = await apiGetCategoryDetailById(params)
// const res2 = {
// Data: {
// "TemplateID": '1',
// "ThumbImagePath": '',
// "OriginImagePath": '',
// "OriginImageWidth": '',
// "OriginImageHeight": '',
// "ConfigContent": {
// "InitImgList": [{
// "imgID": 1
// }],
// },
// },
// ErrCode: "0",
// ErrMsg: "",
// Status: "Success"
// }
this.activeTemplateItemDetail = res2.Data.ConfigContent.InitImgList[0]
},
async handleSave() {
......
......@@ -48,7 +48,7 @@
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode="aspectFit"></image>
</view>
</view>
<view class="text-block" v-if="condition.ZZFLD000099===1">
<view class="text-block">
<text class="middle-date">喷码方式</text>
<view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell">
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -2068,7 +2068,7 @@ index;exports.default = _default;
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _index = __webpack_require__(/*! @/utils/index.js */ 16);\n\n\nvar _validate = _interopRequireDefault(__webpack_require__(/*! @/utils/validate.js */ 17));\nvar _jsBase = __webpack_require__(/*! js-base64 */ 18);\n\n\nvar _index2 = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 19));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError(\"Cannot call a class as a function\");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}var\n\nRequest = /*#__PURE__*/function () {_createClass(Request, [{ key: \"setConfig\",\n // 设置全局默认配置\n value: function setConfig(customConfig) {\n // 深度合并对象,否则会造成对象深层属性丢失\n this.config = (0, _index.deepMerge)(this.config, customConfig);\n }\n\n // 主要请求部分\n }, { key: \"request\", value: function request() {var _this = this;var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n // 检查请求拦截\n if (this.interceptor.request && typeof this.interceptor.request === 'function') {\n var tmpConfig = {};\n var interceptorRequest = this.interceptor.request(options);\n if (interceptorRequest === false) {\n // 返回一个处于pending状态中的Promise,来取消原promise,避免进入then()回调\n return new Promise(function () {});\n }\n this.options = interceptorRequest;\n }\n\n options.dataType = options.dataType || this.config.dataType;\n options.responseType = options.responseType || this.config.responseType;\n options.url = options.url || '';\n options.params = options.params || {};\n options.header = Object.assign({}, this.config.header, options.header);\n options.method = options.method || this.config.method;\n options.sslVerify = false;\n\n // console.log('api.helper-----request', options, this.options)\n\n return new Promise(function (resolve, reject) {\n options.complete = function (response) {\n __f__(\"log\", 'api.helper---options.complete', response, \" at servers/api.helper.js:43\");\n // 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)\n uni.hideLoading();\n // 清除定时器,如果请求回来了,就无需loading\n clearTimeout(_this.config.timer);\n _this.config.timer = null;\n // 判断用户对拦截返回数据的要求,如果originalData为true,返回所有的数据(response)到拦截器,否则只返回response.data\n if (_this.config.originalData) {\n // 判断是否存在拦截器\n if (_this.interceptor.response && typeof _this.interceptor.response === 'function') {\n var resInterceptors = _this.interceptor.response(response);\n // 如果拦截器不返回false,就将拦截器返回的内容给this.$u.post的then回调\n if (resInterceptors !== false) {\n resolve(resInterceptors);\n } else {\n // 如果拦截器返回false,意味着拦截器定义者认为返回有问题,直接接入catch回调\n reject(response);\n }\n } else {\n // 如果要求返回原始数据,就算没有拦截器,也返回最原始的数据\n resolve(response);\n }\n } else {\n if (response.statusCode == 200) {\n if (_this.interceptor.response && typeof _this.interceptor.response ===\n 'function') {\n var _resInterceptors = _this.interceptor.response(response.data);\n if (_resInterceptors !== false) {\n resolve(_resInterceptors);\n } else {\n reject(response.data);\n }\n } else {\n // 如果不是返回原始数据(originalData=false),且没有拦截器的情况下,返回纯数据给then回调\n resolve(response.data);\n }\n } else {\n // 不返回原始数据的情况下,服务器状态码不为200,modal弹框提示\n // if(response.errMsg) {\n // \tuni.showModal({\n // \t\ttitle: response.errMsg\n // \t});\n // }\n if (response.statusCode == 500) {\n uni.showToast({\n title: '服务器异常',\n duration: 2000,\n icon: 'none' });\n\n }\n if (response.statusCode == 401) {\n uni.showToast({\n title: '登录已失效',\n duration: 2000,\n icon: 'none' });\n\n uni.navigateTo({\n url: \"/pages/login/login\" });\n\n }\n reject(response);\n }\n }\n };\n\n // 判断用户传递的URL是否/开头,如果不是,加上/,这里使用了uView的test.js验证库的url()方法\n options.url = _validate.default.url(options.url) ? options.url : (options.baseUrl ? options.baseUrl :\n _this.\n config.baseUrl) + (options.url.\n indexOf('/') == 0 ?\n options.url : '/' + options.url);\n\n // 是否显示loading\n // 加一个是否已有timer定时器的判断,否则有两个同时请求的时候,后者会清除前者的定时器id\n // 而没有清除前者的定时器,导致前者超时,一直显示loading\n if (_this.config.showLoading && !_this.config.timer) {\n _this.config.timer = setTimeout(function () {\n uni.showLoading({\n title: _this.config.loadingText,\n mask: _this.config.loadingMask });\n\n _this.config.timer = null;\n }, _this.config.loadingTime);\n }\n // console.log('api.helper-----finally***request', options)\n uni.request(options);\n });\n // .catch(res => {\n // \t// 如果返回reject(),不让其进入this.$u.post().then().catch()后面的catct()\n // \t// 因为很多人都会忘了写后面的catch(),导致报错捕获不到catch\n // \treturn new Promise(()=>{});\n // })\n } }]);\n\n function Request() {var _this2 = this;_classCallCheck(this, Request);\n this.config = {\n baseUrl: 'http://221.10.127.60:5000', // 请求的根域名\n // 默认的请求头\n header: {},\n method: 'POST',\n // 设置为json,返回后uni.request会对数据进行一次JSON.parse\n dataType: 'json',\n // 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可\n responseType: 'text',\n showLoading: true, // 是否显示请求中的loading\n loadingText: '请求中...',\n loadingTime: 800, // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms\n timer: null, // 定时器\n sslVerify: false, // 定时器\n originalData: false, // 是否在拦截器中返回服务端的原始数据,见文档说明\n loadingMask: true // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透\n };\n\n // 拦截器\n this.interceptor = {\n // 请求前的拦截\n request: function request(config) {\n config.header['Authorization'] = \"Basic \".concat(_jsBase.Base64.encode('wangpc:LZY888@@'));\n try {\n if (config.url.indexOf('crm-app/login') === -\n 1 &&\n _index2.default.state.vuex_token) {\n config.header['X-Auth-Token'] = _index2.default.\n state.vuex_token;\n }\n\n if (config.header['Content-Type'] && config.header['Content-Type'].indexOf(\n 'x-www-form-urlencoded') === -1) {\n config.header['Content-Type'] = \"application/json; charset=utf-8\";\n }\n\n\n if (config.url.indexOf('crm-app') !== -1) {\n // config.baseUrl = 'http://10.0.135.61'\n config.baseUrl = 'http://221.10.127.60:5000';\n } else if (config.url.indexOf('adapter') !== -1) {\n // config.baseUrl = 'http://api.c0331.dev.guanyingyun.com'\n config.baseUrl = 'http://221.10.127.60:5000/cyj';\n } else if (config.url.indexOf('wmdpwebservices') !== -1) {\n // config.baseUrl = 'https://10.0.134.182:9002'\n config.baseUrl = 'http://221.10.127.60:5000/sczx';\n // config.baseUrl = ''\n } else {\n config.baseUrl = 'http://221.10.127.60:5000/wlySap';\n }\n } catch (e) {\n __f__(\"log\", 'error', e, \" at servers/api.helper.js:189\");\n }\n // if (config.url.indexOf('crm-app/login') !== -1 && !store.state.vuex_token) {\n // \tuni.showToast({\n // \t\ttitle: '登录已失效',\n // \t\tduration: 2000,\n // \t\ticon: 'none'\n // \t});\n // \tuni.navigateTo({\n // \t\turl: \"/pages/login/login\"\n // \t})\n // }\n __f__(\"log\", 'helper--interceptor---request-----', config, \" at servers/api.helper.js:201\");\n return config;\n },\n // 请求后的拦截\n response: function response(res) {\n __f__(\"log\", 'helper--iinterceptor---response-----', res, \" at servers/api.helper.js:206\");\n if (res.MSGTYPE === 'S' || res.msgtype === 'S' || res.status === 1 || res.result === \"S\" ||\n res.Status ===\n 'Success') {\n // 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么\n return res;\n } else {\n uni.showToast({\n title: res.MESSAGE || res.msg || res.message || res.ErrMsg,\n duration: 2000,\n icon: 'none' });\n\n return false;\n };\n } };\n\n\n // get请求\n this.get = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n method: 'GET',\n url: url,\n header: header,\n data: data });\n\n };\n\n // post请求\n this.post = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'POST',\n header: header,\n data: data });\n\n };\n\n // put请求,不支持支付宝小程序(HX2.6.15)\n this.put = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'PUT',\n header: header,\n data: data });\n\n };\n\n // delete请求,不支持支付宝和头条小程序(HX2.6.15)\n this.delete = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'DELETE',\n header: header,\n data: data });\n\n };\n }return Request;}();var _default =\n\nnew Request();exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc2VydmVycy9hcGkuaGVscGVyLmpzIl0sIm5hbWVzIjpbIlJlcXVlc3QiLCJjdXN0b21Db25maWciLCJjb25maWciLCJvcHRpb25zIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0IiwidG1wQ29uZmlnIiwiaW50ZXJjZXB0b3JSZXF1ZXN0IiwiUHJvbWlzZSIsImRhdGFUeXBlIiwicmVzcG9uc2VUeXBlIiwidXJsIiwicGFyYW1zIiwiaGVhZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0aG9kIiwic3NsVmVyaWZ5IiwicmVzb2x2ZSIsInJlamVjdCIsImNvbXBsZXRlIiwicmVzcG9uc2UiLCJ1bmkiLCJoaWRlTG9hZGluZyIsImNsZWFyVGltZW91dCIsInRpbWVyIiwib3JpZ2luYWxEYXRhIiwicmVzSW50ZXJjZXB0b3JzIiwic3RhdHVzQ29kZSIsImRhdGEiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwiaWNvbiIsIm5hdmlnYXRlVG8iLCJ2YWxpZGF0ZSIsImJhc2VVcmwiLCJpbmRleE9mIiwic2hvd0xvYWRpbmciLCJzZXRUaW1lb3V0IiwibG9hZGluZ1RleHQiLCJtYXNrIiwibG9hZGluZ01hc2siLCJsb2FkaW5nVGltZSIsIkJhc2U2NCIsImVuY29kZSIsInN0b3JlIiwic3RhdGUiLCJ2dWV4X3Rva2VuIiwiZSIsInJlcyIsIk1TR1RZUEUiLCJtc2d0eXBlIiwic3RhdHVzIiwicmVzdWx0IiwiU3RhdHVzIiwiTUVTU0FHRSIsIm1zZyIsIm1lc3NhZ2UiLCJFcnJNc2ciLCJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoib0lBQUE7OztBQUdBO0FBQ0E7OztBQUdBLHNGOztBQUVNQSxPO0FBQ0w7OEJBQ1VDLFksRUFBYztBQUN2QjtBQUNBLFdBQUtDLE1BQUwsR0FBYyxzQkFBVSxLQUFLQSxNQUFmLEVBQXVCRCxZQUF2QixDQUFkO0FBQ0E7O0FBRUQ7aURBQ3NCLHNCQUFkRSxPQUFjLHVFQUFKLEVB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QTtBQUNBLFNBQUtnQyxJQUFMLEdBQVksVUFBQ2xELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzVDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxNQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtpQyxHQUFMLEdBQVcsVUFBQ25ELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzNDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxLQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtrQyxNQUFMLEdBQWMsVUFBQ3BELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzlDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxRQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDtBQVFBLEc7O0FBRWEsSUFBSTdCLE9BQUosRSIsImZpbGUiOiIxNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGRlZXBNZXJnZVxufSBmcm9tIFwiQC91dGlscy9pbmRleC5qc1wiO1xuaW1wb3J0IHZhbGlkYXRlIGZyb20gXCJAL3V0aWxzL3ZhbGlkYXRlLmpzXCI7XG5pbXBvcnQge1xuXHRCYXNlNjRcbn0gZnJvbSAnanMtYmFzZTY0J1xuaW1wb3J0IHN0b3JlIGZyb20gJ0Avc3RvcmUvaW5kZXguanMnXG5cbmNsYXNzIFJlcXVlc3Qge1xuXHQvLyDorr7nva7lhajlsYDpu5jorqTphY3nva5cblx0c2V0Q29uZmlnKGN1c3RvbUNvbmZpZykge1xuXHRcdC8vIOa3seW6puWQiOW5tuWvueixoe+8jOWQpuWImeS8mumAoOaIkOWvueixoea3seWxguWxnuaAp+S4ouWksVxuXHRcdHRoaXMuY29uZmlnID0gZGVlcE1lcmdlKHRoaXMuY29uZmlnLCBjdXN0b21Db25maWcpO1xuXHR9XG5cblx0Ly8g5Li76KaB6K+35rGC6YOo5YiGXG5cdHJlcXVlc3Qob3B0aW9ucyA9IHt9KSB7XG5cblx0XHQvLyDmo4Dmn6Xor7fmsYLmi6bmiKpcblx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0ICYmIHR5cGVvZiB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3QgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGxldCB0bXBDb25maWcgPSB7fTtcblx0XHRcdGxldCBpbnRlcmNlcHRvclJlcXVlc3QgPSB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3Qob3B0aW9ucyk7XG5cdFx0XHRpZiAoaW50ZXJjZXB0b3JSZXF1ZXN0ID09PSBmYWxzZSkge1xuXHRcdFx0XHQvLyDov5Tlm57kuIDkuKrlpITkuo5wZW5kaW5n54q25oCB5Lit55qEUHJvbWlzZe+8jOadpeWPlua2iOWOn3Byb21pc2XvvIzpgb/lhY3ov5vlhaV0aGVuKCnlm57osINcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTtcblx0XHRcdH1cblx0XHRcdHRoaXMub3B0aW9ucyA9IGludGVyY2VwdG9yUmVxdWVzdDtcblx0XHR9XG5cblx0XHRvcHRpb25zLmRhdGFUeXBlID0gb3B0aW9ucy5kYXRhVHlwZSB8fCB0aGlzLmNvbmZpZy5kYXRhVHlwZTtcblx0XHRvcHRpb25zLnJlc3BvbnNlVHlwZSA9IG9wdGlvbnMucmVzcG9uc2VUeXBlIHx8IHRoaXMuY29uZmlnLnJlc3BvbnNlVHlwZTtcblx0XHRvcHRpb25zLnVybCA9IG9wdGlvbnMudXJsIHx8ICcnO1xuXHRcdG9wdGlvbnMucGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgfHwge307XG5cdFx0b3B0aW9ucy5oZWFkZXIgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbmZpZy5oZWFkZXIsIG9wdGlvbnMuaGVhZGVyKTtcblx0XHRvcHRpb25zLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kIHx8IHRoaXMuY29uZmlnLm1ldGhvZDtcblx0XHRvcHRpb25zLnNzbFZlcmlmeSA9IGZhbHNlXG5cblx0XHQvLyBjb25zb2xlLmxvZygnYXBpLmhlbHBlci0tLS0tcmVxdWVzdCcsIG9wdGlvbnMsIHRoaXMub3B0aW9ucylcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRvcHRpb25zLmNvbXBsZXRlID0gKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdhcGkuaGVscGVyLS0tb3B0aW9ucy5jb21wbGV0ZScsIHJlc3BvbnNlKVxuXHRcdFx0XHQvLyDor7fmsYLov5Tlm57lkI7vvIzpmpDol49sb2FkaW5nKOWmguaenOivt+axgui/lOWbnuW/q+eahOivne+8jOWPr+iDveS8muayoeaciWxvYWRpbmcpXG5cdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHQvLyDmuIXpmaTlrprml7blmajvvIzlpoLmnpzor7fmsYLlm57mnaXkuobvvIzlsLHml6DpnIBsb2FkaW5nXG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLmNvbmZpZy50aW1lcik7XG5cdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0Ly8g5Yik5pat55So5oi35a+55oum5oiq6L+U5Zue5pWw5o2u55qE6KaB5rGC77yM5aaC5p6cb3JpZ2luYWxEYXRh5Li6dHJ1Ze+8jOi/lOWbnuaJgOacieeahOaVsOaNrihyZXNwb25zZSnliLDmi6bmiKrlmajvvIzlkKbliJnlj6rov5Tlm55yZXNwb25zZS5kYXRhXG5cdFx0XHRcdGlmICh0aGlzLmNvbmZpZy5vcmlnaW5hbERhdGEpIHtcblx0XHRcdFx0XHQvLyDliKTmlq3mmK/lkKblrZjlnKjmi6bmiKrlmahcblx0XHRcdFx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSAmJiB0eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UpO1xuXHRcdFx0XHRcdFx0Ly8g5aaC5p6c5oum5oiq5Zmo5LiN6L+U5ZueZmFsc2XvvIzlsLHlsIbmi6bmiKrlmajov5Tlm57nmoTlhoXlrrnnu5l0aGlzLiR1LnBvc3TnmoR0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRpZiAocmVzSW50ZXJjZXB0b3JzICE9PSBmYWxzZSkge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJlc0ludGVyY2VwdG9ycyk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyDlpoLmnpzmi6bmiKrlmajov5Tlm55mYWxzZe+8jOaEj+WRs+edgOaLpuaIquWZqOWumuS5ieiAheiupOS4uui/lOWbnuaciemXrumimO+8jOebtOaOpeaOpeWFpWNhdGNo5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOWmguaenOimgeaxgui/lOWbnuWOn+Wni+aVsOaNru+8jOWwseeul+ayoeacieaLpuaIquWZqO+8jOS5n+i/lOWbnuacgOWOn+Wni+eahOaVsOaNrlxuXHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNwb25zZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgJiYgdHlwZW9mIHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgPT09XG5cdFx0XHRcdFx0XHRcdCdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXNJbnRlcmNlcHRvcnMgIT09IGZhbHNlKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNJbnRlcmNlcHRvcnMpO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZS5kYXRhKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Ly8g5aaC5p6c5LiN5piv6L+U5Zue5Y6f5aeL5pWw5o2uKG9yaWdpbmFsRGF0YT1mYWxzZSnvvIzkuJTmsqHmnInmi6bmiKrlmajnmoTmg4XlhrXkuIvvvIzov5Tlm57nuq/mlbDmja7nu5l0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOS4jei/lOWbnuWOn+Wni+aVsOaNrueahOaDheWGteS4i++8jOacjeWKoeWZqOeKtuaAgeeggeS4jeS4ujIwMO+8jG1vZGFs5by55qGG5o+Q56S6XG5cdFx0XHRcdFx0XHQvLyBpZihyZXNwb25zZS5lcnJNc2cpIHtcblx0XHRcdFx0XHRcdC8vIFx0dW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdFx0XHQvLyBcdFx0dGl0bGU6IHJlc3BvbnNlLmVyck1zZ1xuXHRcdFx0XHRcdFx0Ly8gXHR9KTtcblx0XHRcdFx0XHRcdC8vIH1cblx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDUwMCkge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+acjeWKoeWZqOW8guW4uCcsXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDAsXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PSA0MDEpIHtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfnmbvlvZXlt7LlpLHmlYgnLFxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHRcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZWplY3QocmVzcG9uc2UpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIOWIpOaWreeUqOaIt+S8oOmAkueahFVSTOaYr+WQpi/lvIDlpLQs5aaC5p6c5LiN5pivLOWKoOS4ii/vvIzov5nph4zkvb/nlKjkuoZ1Vmlld+eahHRlc3QuanPpqozor4HlupPnmoR1cmwoKeaWueazlVxuXHRcdFx0b3B0aW9ucy51cmwgPSB2YWxpZGF0ZS51cmwob3B0aW9ucy51cmwpID8gb3B0aW9ucy51cmwgOiAoKG9wdGlvbnMuYmFzZVVybCA/IG9wdGlvbnMuYmFzZVVybCA6XG5cdFx0XHRcdHRoaXNcblx0XHRcdFx0LmNvbmZpZy5iYXNlVXJsKSArIChvcHRpb25zLnVybFxuXHRcdFx0XHQuaW5kZXhPZignLycpID09IDAgP1xuXHRcdFx0XHRvcHRpb25zLnVybCA6ICcvJyArIG9wdGlvbnMudXJsKSk7XG5cblx0XHRcdC8vIOaYr+WQpuaYvuekumxvYWRpbmdcblx0XHRcdC8vIOWKoOS4gOS4quaYr+WQpuW3suaciXRpbWVy5a6a5pe25Zmo55qE5Yik5pat77yM5ZCm5YiZ5pyJ5Lik5Liq5ZCM5pe26K+35rGC55qE5pe25YCZ77yM5ZCO6ICF5Lya5riF6Zmk5YmN6ICF55qE5a6a5pe25ZmoaWRcblx0XHRcdC8vIOiAjOayoeaciea4hemZpOWJjeiAheeahOWumuaXtuWZqO+8jOWvvOiHtOWJjeiAhei2heaXtu+8jOS4gOebtOaYvuekumxvYWRpbmdcblx0XHRcdGlmICh0aGlzLmNvbmZpZy5zaG93TG9hZGluZyAmJiAhdGhpcy5jb25maWcudGltZXIpIHtcblx0XHRcdFx0dGhpcy5jb25maWcudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuY29uZmlnLmxvYWRpbmdUZXh0LFxuXHRcdFx0XHRcdFx0bWFzazogdGhpcy5jb25maWcubG9hZGluZ01hc2tcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0fSwgdGhpcy5jb25maWcubG9hZGluZ1RpbWUpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2FwaS5oZWxwZXItLS0tLWZpbmFsbHkqKipyZXF1ZXN0Jywgb3B0aW9ucylcblx0XHRcdHVuaS5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdH0pXG5cdFx0Ly8gLmNhdGNoKHJlcyA9PiB7XG5cdFx0Ly8gXHQvLyDlpoLmnpzov5Tlm55yZWplY3QoKe+8jOS4jeiuqeWFtui/m+WFpXRoaXMuJHUucG9zdCgpLnRoZW4oKS5jYXRjaCgp5ZCO6Z2i55qEY2F0Y3QoKVxuXHRcdC8vIFx0Ly8g5Zug5Li65b6I5aSa5Lq66YO95Lya5b+Y5LqG5YaZ5ZCO6Z2i55qEY2F0Y2goKe+8jOWvvOiHtOaKpemUmeaNleiOt+S4jeWIsGNhdGNoXG5cdFx0Ly8gXHRyZXR1cm4gbmV3IFByb21pc2UoKCk9Pnt9KTtcblx0XHQvLyB9KVxuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYXNlVXJsOiAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMCcsIC8vIOivt+axgueahOagueWfn+WQjVxuXHRcdFx0Ly8g6buY6K6k55qE6K+35rGC5aS0XG5cdFx0XHRoZWFkZXI6IHt9LFxuXHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHQvLyDorr7nva7kuLpqc29u77yM6L+U5Zue5ZCOdW5pLnJlcXVlc3TkvJrlr7nmlbDmja7ov5vooYzkuIDmrKFKU09OLnBhcnNlXG5cdFx0XHRkYXRhVHlwZTogJ2pzb24nLFxuXHRcdFx0Ly8g5q2k5Y+C5pWw5peg6ZyA5aSE55CG77yM5Zug5Li6NSvlkozmlK/ku5jlrp3lsI/nqIvluo/kuI3mlK/mjIHvvIzpu5jorqTkuLp0ZXh05Y2z5Y+vXG5cdFx0XHRyZXNwb25zZVR5cGU6ICd0ZXh0Jyxcblx0XHRcdHNob3dMb2FkaW5nOiB0cnVlLCAvLyDmmK/lkKbmmL7npLror7fmsYLkuK3nmoRsb2FkaW5nXG5cdFx0XHRsb2FkaW5nVGV4dDogJ+ivt+axguS4rS4uLicsXG5cdFx0XHRsb2FkaW5nVGltZTogODAwLCAvLyDlnKjmraTml7bpl7TlhoXvvIzor7fmsYLov5jmsqHlm57mnaXnmoTor53vvIzlsLHmmL7npLrliqDovb3kuK3liqjnlLvvvIzljZXkvY1tc1xuXHRcdFx0dGltZXI6IG51bGwsIC8vIOWumuaXtuWZqFxuXHRcdFx0c3NsVmVyaWZ5OiBmYWxzZSwgLy8g5a6a5pe25ZmoXG5cdFx0XHRvcmlnaW5hbERhdGE6IGZhbHNlLCAvLyDmmK/lkKblnKjmi6bmiKrlmajkuK3ov5Tlm57mnI3liqHnq6/nmoTljp/lp4vmlbDmja7vvIzop4HmlofmoaPor7TmmI5cblx0XHRcdGxvYWRpbmdNYXNrOiB0cnVlLCAvLyDlsZXnpLpsb2FkaW5n55qE5pe25YCZ77yM5piv5ZCm57uZ5LiA5Liq6YCP5piO55qE6JKZ5bGC77yM6Ziy5q2i6Kem5pG456m/6YCPXG5cdFx0fVxuXG5cdFx0Ly8g5oum5oiq5ZmoXG5cdFx0dGhpcy5pbnRlcmNlcHRvciA9IHtcblx0XHRcdC8vIOivt+axguWJjeeahOaLpuaIqlxuXHRcdFx0cmVxdWVzdDogKGNvbmZpZykgPT4ge1xuXHRcdFx0XHRjb25maWcuaGVhZGVyWydBdXRob3JpemF0aW9uJ10gPSBgQmFzaWMgJHtCYXNlNjQuZW5jb2RlKCd3YW5ncGM6TFpZODg4QEAnKX1gO1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSA9PT0gLVxuXHRcdFx0XHRcdFx0MSAmJlxuXHRcdFx0XHRcdFx0c3RvcmUuc3RhdGUudnVleF90b2tlbikge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmhlYWRlclsnWC1BdXRoLVRva2VuJ10gPSBzdG9yZVxuXHRcdFx0XHRcdFx0XHQuc3RhdGUudnVleF90b2tlblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSAmJiBjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXS5pbmRleE9mKFxuXHRcdFx0XHRcdFx0XHQneC13d3ctZm9ybS11cmxlbmNvZGVkJykgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSA9IFwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOFwiXG5cdFx0XHRcdFx0fVxuXG5cblx0XHRcdFx0XHRpZiAoY29uZmlnLnVybC5pbmRleE9mKCdjcm0tYXBwJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMTAuMC4xMzUuNjEnXG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwJ1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoY29uZmlnLnVybC5pbmRleE9mKCdhZGFwdGVyJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vYXBpLmMwMzMxLmRldi5ndWFueWluZ3l1bi5jb20nXG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL2N5aidcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNvbmZpZy51cmwuaW5kZXhPZignd21kcHdlYnNlcnZpY2VzJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwczovLzEwLjAuMTM0LjE4Mjo5MDAyJ1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMC9zY3p4J1xuXHRcdFx0XHRcdFx0Ly8gY29uZmlnLmJhc2VVcmwgPSAnJ1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL3dseVNhcCdcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZXJyb3InLCBlKVxuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSAhPT0gLTEgJiYgIXN0b3JlLnN0YXRlLnZ1ZXhfdG9rZW4pIHtcblx0XHRcdFx0Ly8gXHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0Ly8gXHRcdHRpdGxlOiAn55m75b2V5bey5aSx5pWIJyxcblx0XHRcdFx0Ly8gXHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHQvLyBcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdC8vIFx0fSk7XG5cdFx0XHRcdC8vIFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHQvLyBcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdC8vIFx0fSlcblx0XHRcdFx0Ly8gfVxuXHRcdFx0XHRjb25zb2xlLmxvZygnaGVscGVyLS1pbnRlcmNlcHRvci0tLXJlcXVlc3QtLS0tLScsIGNvbmZpZylcblx0XHRcdFx0cmV0dXJuIGNvbmZpZztcblx0XHRcdH0sXG5cdFx0XHQvLyDor7fmsYLlkI7nmoTmi6bmiKpcblx0XHRcdHJlc3BvbnNlOiAocmVzKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdoZWxwZXItLWlpbnRlcmNlcHRvci0tLXJlc3BvbnNlLS0tLS0nLCByZXMpXG5cdFx0XHRcdGlmIChyZXMuTVNHVFlQRSA9PT0gJ1MnIHx8IHJlcy5tc2d0eXBlID09PSAnUycgfHwgcmVzLnN0YXR1cyA9PT0gMSB8fCByZXMucmVzdWx0ID09PSBcIlNcIiB8fFxuXHRcdFx0XHRcdHJlcy5TdGF0dXMgPT09XG5cdFx0XHRcdFx0J1N1Y2Nlc3MnKSB7XG5cdFx0XHRcdFx0Ly8g5aaC5p6c5oqKb3JpZ2luYWxEYXRh6K6+572u5Li65LqGdHJ1Ze+8jOi/memHjHJldHVybuWbnuS7gOS5iO+8jHRoaXMuJHUucG9zdOeahHRoZW7lm57osIPkuK3lsLHkvJrlvpfliLDku4DkuYhcblx0XHRcdFx0XHRyZXR1cm4gcmVzO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5NRVNTQUdFIHx8IHJlcy5tc2cgfHwgcmVzLm1lc3NhZ2UgfHwgcmVzLkVyck1zZyxcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZ2V06K+35rGCXG5cdFx0dGhpcy5nZXQgPSAodXJsLCBkYXRhID0ge30sIGhlYWRlciA9IHt9KSA9PiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5yZXF1ZXN0KHtcblx0XHRcdFx0bWV0aG9kOiAnR0VUJyxcblx0XHRcdFx0dXJsLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcG9zdOivt+axglxuXHRcdHRoaXMucG9zdCA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcHV06K+35rGC77yM5LiN5pSv5oyB5pSv5LuY5a6d5bCP56iL5bqPKEhYMi42LjE1KVxuXHRcdHRoaXMucHV0ID0gKHVybCwgZGF0YSA9IHt9LCBoZWFkZXIgPSB7fSkgPT4ge1xuXHRcdFx0cmV0dXJuIHRoaXMucmVxdWVzdCh7XG5cdFx0XHRcdHVybCxcblx0XHRcdFx0bWV0aG9kOiAnUFVUJyxcblx0XHRcdFx0aGVhZGVyLFxuXHRcdFx0XHRkYXRhXG5cdFx0XHR9KVxuXHRcdH1cblxuXHRcdC8vIGRlbGV0Zeivt+axgu+8jOS4jeaUr+aMgeaUr+S7mOWuneWSjOWktOadoeWwj+eoi+W6jyhIWDIuNi4xNSlcblx0XHR0aGlzLmRlbGV0ZSA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ0RFTEVURScsXG5cdFx0XHRcdGhlYWRlcixcblx0XHRcdFx0ZGF0YVxuXHRcdFx0fSlcblx0XHR9XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IG5ldyBSZXF1ZXN0XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///15\n");
eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _index = __webpack_require__(/*! @/utils/index.js */ 16);\n\n\nvar _validate = _interopRequireDefault(__webpack_require__(/*! @/utils/validate.js */ 17));\nvar _jsBase = __webpack_require__(/*! js-base64 */ 18);\n\n\nvar _index2 = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 19));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError(\"Cannot call a class as a function\");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}var\n\nRequest = /*#__PURE__*/function () {_createClass(Request, [{ key: \"setConfig\",\n // 设置全局默认配置\n value: function setConfig(customConfig) {\n // 深度合并对象,否则会造成对象深层属性丢失\n this.config = (0, _index.deepMerge)(this.config, customConfig);\n }\n\n // 主要请求部分\n }, { key: \"request\", value: function request() {var _this = this;var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n // 检查请求拦截\n if (this.interceptor.request && typeof this.interceptor.request === 'function') {\n var tmpConfig = {};\n var interceptorRequest = this.interceptor.request(options);\n if (interceptorRequest === false) {\n // 返回一个处于pending状态中的Promise,来取消原promise,避免进入then()回调\n return new Promise(function () {});\n }\n this.options = interceptorRequest;\n }\n\n options.dataType = options.dataType || this.config.dataType;\n options.responseType = options.responseType || this.config.responseType;\n options.url = options.url || '';\n options.params = options.params || {};\n options.header = Object.assign({}, this.config.header, options.header);\n options.method = options.method || this.config.method;\n options.sslVerify = false;\n\n // console.log('api.helper-----request', options, this.options)\n\n return new Promise(function (resolve, reject) {\n options.complete = function (response) {\n __f__(\"log\", 'api.helper---options.complete', response, \" at servers/api.helper.js:43\");\n // 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)\n uni.hideLoading();\n // 清除定时器,如果请求回来了,就无需loading\n clearTimeout(_this.config.timer);\n _this.config.timer = null;\n // 判断用户对拦截返回数据的要求,如果originalData为true,返回所有的数据(response)到拦截器,否则只返回response.data\n if (_this.config.originalData) {\n // 判断是否存在拦截器\n if (_this.interceptor.response && typeof _this.interceptor.response === 'function') {\n var resInterceptors = _this.interceptor.response(response);\n // 如果拦截器不返回false,就将拦截器返回的内容给this.$u.post的then回调\n if (resInterceptors !== false) {\n resolve(resInterceptors);\n } else {\n // 如果拦截器返回false,意味着拦截器定义者认为返回有问题,直接接入catch回调\n reject(response);\n }\n } else {\n // 如果要求返回原始数据,就算没有拦截器,也返回最原始的数据\n resolve(response);\n }\n } else {\n if (response.statusCode == 200) {\n if (_this.interceptor.response && typeof _this.interceptor.response ===\n 'function') {\n var _resInterceptors = _this.interceptor.response(response.data);\n if (_resInterceptors !== false) {\n resolve(_resInterceptors);\n } else {\n reject(response.data);\n }\n } else {\n // 如果不是返回原始数据(originalData=false),且没有拦截器的情况下,返回纯数据给then回调\n resolve(response.data);\n }\n } else {\n // 不返回原始数据的情况下,服务器状态码不为200,modal弹框提示\n // if(response.errMsg) {\n // \tuni.showModal({\n // \t\ttitle: response.errMsg\n // \t});\n // }\n if (response.statusCode == 500) {\n uni.showToast({\n title: '服务器异常',\n duration: 2000,\n icon: 'none' });\n\n }\n if (response.statusCode == 401) {\n uni.showToast({\n title: '登录已失效',\n duration: 2000,\n icon: 'none' });\n\n uni.navigateTo({\n url: \"/pages/login/login\" });\n\n }\n reject(response);\n }\n }\n };\n\n // 判断用户传递的URL是否/开头,如果不是,加上/,这里使用了uView的test.js验证库的url()方法\n options.url = _validate.default.url(options.url) ? options.url : (options.baseUrl ? options.baseUrl :\n _this.\n config.baseUrl) + (options.url.\n indexOf('/') == 0 ?\n options.url : '/' + options.url);\n\n // 是否显示loading\n // 加一个是否已有timer定时器的判断,否则有两个同时请求的时候,后者会清除前者的定时器id\n // 而没有清除前者的定时器,导致前者超时,一直显示loading\n if (_this.config.showLoading && !_this.config.timer) {\n _this.config.timer = setTimeout(function () {\n uni.showLoading({\n title: _this.config.loadingText,\n mask: _this.config.loadingMask });\n\n _this.config.timer = null;\n }, _this.config.loadingTime);\n }\n // console.log('api.helper-----finally***request', options)\n uni.request(options);\n });\n // .catch(res => {\n // \t// 如果返回reject(),不让其进入this.$u.post().then().catch()后面的catct()\n // \t// 因为很多人都会忘了写后面的catch(),导致报错捕获不到catch\n // \treturn new Promise(()=>{});\n // })\n } }]);\n\n function Request() {var _this2 = this;_classCallCheck(this, Request);\n this.config = {\n baseUrl: 'http://221.10.127.60:5000', // 请求的根域名\n // 默认的请求头\n header: {},\n method: 'POST',\n // 设置为json,返回后uni.request会对数据进行一次JSON.parse\n dataType: 'json',\n // 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可\n responseType: 'text',\n showLoading: true, // 是否显示请求中的loading\n loadingText: '请求中...',\n loadingTime: 800, // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms\n timer: null, // 定时器\n sslVerify: false, // 定时器\n originalData: false, // 是否在拦截器中返回服务端的原始数据,见文档说明\n loadingMask: true // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透\n };\n\n // 拦截器\n this.interceptor = {\n // 请求前的拦截\n request: function request(config) {\n config.header['Authorization'] = \"Basic \".concat(_jsBase.Base64.encode('wangpc:LZY888@@'));\n try {\n if (config.url.indexOf('crm-app/login') === -\n 1 &&\n _index2.default.state.vuex_token) {\n config.header['X-Auth-Token'] = _index2.default.\n state.vuex_token;\n }\n\n if (config.header['Content-Type'] && config.header['Content-Type'].indexOf(\n 'x-www-form-urlencoded') === -1) {\n config.header['Content-Type'] = \"application/json; charset=utf-8\";\n }\n\n\n if (config.url.indexOf('crm-app') !== -1) {\n // config.baseUrl = 'http://10.0.135.61'\n config.baseUrl = 'http://221.10.127.60:5000';\n } else if (config.url.indexOf('adapter') !== -1) {\n config.baseUrl = 'http://api.c0331.dev.guanyingyun.com';\n // config.baseUrl = 'http://221.10.127.60:5000/cyj'\n } else if (config.url.indexOf('wmdpwebservices') !== -1) {\n // config.baseUrl = 'https://10.0.134.182:9002'\n config.baseUrl = 'http://221.10.127.60:5000/sczx';\n // config.baseUrl = ''\n } else {\n config.baseUrl = 'http://221.10.127.60:5000/wlySap';\n }\n } catch (e) {\n __f__(\"log\", 'error', e, \" at servers/api.helper.js:189\");\n }\n // if (config.url.indexOf('crm-app/login') !== -1 && !store.state.vuex_token) {\n // \tuni.showToast({\n // \t\ttitle: '登录已失效',\n // \t\tduration: 2000,\n // \t\ticon: 'none'\n // \t});\n // \tuni.navigateTo({\n // \t\turl: \"/pages/login/login\"\n // \t})\n // }\n __f__(\"log\", 'helper--interceptor---request-----', config, \" at servers/api.helper.js:201\");\n return config;\n },\n // 请求后的拦截\n response: function response(res) {\n __f__(\"log\", 'helper--iinterceptor---response-----', res, \" at servers/api.helper.js:206\");\n if (res.MSGTYPE === 'S' || res.msgtype === 'S' || res.status === 1 || res.result === \"S\" ||\n res.Status ===\n 'Success') {\n // 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么\n return res;\n } else {\n uni.showToast({\n title: res.MESSAGE || res.msg || res.message || res.ErrMsg,\n duration: 2000,\n icon: 'none' });\n\n return false;\n };\n } };\n\n\n // get请求\n this.get = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n method: 'GET',\n url: url,\n header: header,\n data: data });\n\n };\n\n // post请求\n this.post = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'POST',\n header: header,\n data: data });\n\n };\n\n // put请求,不支持支付宝小程序(HX2.6.15)\n this.put = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'PUT',\n header: header,\n data: data });\n\n };\n\n // delete请求,不支持支付宝和头条小程序(HX2.6.15)\n this.delete = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'DELETE',\n header: header,\n data: data });\n\n };\n }return Request;}();var _default =\n\nnew Request();exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc2VydmVycy9hcGkuaGVscGVyLmpzIl0sIm5hbWVzIjpbIlJlcXVlc3QiLCJjdXN0b21Db25maWciLCJjb25maWciLCJvcHRpb25zIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0IiwidG1wQ29uZmlnIiwiaW50ZXJjZXB0b3JSZXF1ZXN0IiwiUHJvbWlzZSIsImRhdGFUeXBlIiwicmVzcG9uc2VUeXBlIiwidXJsIiwicGFyYW1zIiwiaGVhZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0aG9kIiwic3NsVmVyaWZ5IiwicmVzb2x2ZSIsInJlamVjdCIsImNvbXBsZXRlIiwicmVzcG9uc2UiLCJ1bmkiLCJoaWRlTG9hZGluZyIsImNsZWFyVGltZW91dCIsInRpbWVyIiwib3JpZ2luYWxEYXRhIiwicmVzSW50ZXJjZXB0b3JzIiwic3RhdHVzQ29kZSIsImRhdGEiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwiaWNvbiIsIm5hdmlnYXRlVG8iLCJ2YWxpZGF0ZSIsImJhc2VVcmwiLCJpbmRleE9mIiwic2hvd0xvYWRpbmciLCJzZXRUaW1lb3V0IiwibG9hZGluZ1RleHQiLCJtYXNrIiwibG9hZGluZ01hc2siLCJsb2FkaW5nVGltZSIsIkJhc2U2NCIsImVuY29kZSIsInN0b3JlIiwic3RhdGUiLCJ2dWV4X3Rva2VuIiwiZSIsInJlcyIsIk1TR1RZUEUiLCJtc2d0eXBlIiwic3RhdHVzIiwicmVzdWx0IiwiU3RhdHVzIiwiTUVTU0FHRSIsIm1zZyIsIm1lc3NhZ2UiLCJFcnJNc2ciLCJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoib0lBQUE7OztBQUdBO0FBQ0E7OztBQUdBLHNGOztBQUVNQSxPO0FBQ0w7OEJBQ1VDLFksRUFBYztBQUN2QjtBQUNBLFdBQUtDLE1BQUwsR0FBYyxzQkFBVSxLQUFLQSxNQUFmLEVBQXVCRCxZQUF2QixDQUFkO0FBQ0E7O0FBRUQ7aURBQ3NCLHNCQUFkRSxPQUFjLHVFQUFKLEVB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QTtBQUNBLFNBQUtnQyxJQUFMLEdBQVksVUFBQ2xELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzVDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxNQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtpQyxHQUFMLEdBQVcsVUFBQ25ELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzNDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxLQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtrQyxNQUFMLEdBQWMsVUFBQ3BELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzlDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxRQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDtBQVFBLEc7O0FBRWEsSUFBSTdCLE9BQUosRSIsImZpbGUiOiIxNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGRlZXBNZXJnZVxufSBmcm9tIFwiQC91dGlscy9pbmRleC5qc1wiO1xuaW1wb3J0IHZhbGlkYXRlIGZyb20gXCJAL3V0aWxzL3ZhbGlkYXRlLmpzXCI7XG5pbXBvcnQge1xuXHRCYXNlNjRcbn0gZnJvbSAnanMtYmFzZTY0J1xuaW1wb3J0IHN0b3JlIGZyb20gJ0Avc3RvcmUvaW5kZXguanMnXG5cbmNsYXNzIFJlcXVlc3Qge1xuXHQvLyDorr7nva7lhajlsYDpu5jorqTphY3nva5cblx0c2V0Q29uZmlnKGN1c3RvbUNvbmZpZykge1xuXHRcdC8vIOa3seW6puWQiOW5tuWvueixoe+8jOWQpuWImeS8mumAoOaIkOWvueixoea3seWxguWxnuaAp+S4ouWksVxuXHRcdHRoaXMuY29uZmlnID0gZGVlcE1lcmdlKHRoaXMuY29uZmlnLCBjdXN0b21Db25maWcpO1xuXHR9XG5cblx0Ly8g5Li76KaB6K+35rGC6YOo5YiGXG5cdHJlcXVlc3Qob3B0aW9ucyA9IHt9KSB7XG5cblx0XHQvLyDmo4Dmn6Xor7fmsYLmi6bmiKpcblx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0ICYmIHR5cGVvZiB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3QgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGxldCB0bXBDb25maWcgPSB7fTtcblx0XHRcdGxldCBpbnRlcmNlcHRvclJlcXVlc3QgPSB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3Qob3B0aW9ucyk7XG5cdFx0XHRpZiAoaW50ZXJjZXB0b3JSZXF1ZXN0ID09PSBmYWxzZSkge1xuXHRcdFx0XHQvLyDov5Tlm57kuIDkuKrlpITkuo5wZW5kaW5n54q25oCB5Lit55qEUHJvbWlzZe+8jOadpeWPlua2iOWOn3Byb21pc2XvvIzpgb/lhY3ov5vlhaV0aGVuKCnlm57osINcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTtcblx0XHRcdH1cblx0XHRcdHRoaXMub3B0aW9ucyA9IGludGVyY2VwdG9yUmVxdWVzdDtcblx0XHR9XG5cblx0XHRvcHRpb25zLmRhdGFUeXBlID0gb3B0aW9ucy5kYXRhVHlwZSB8fCB0aGlzLmNvbmZpZy5kYXRhVHlwZTtcblx0XHRvcHRpb25zLnJlc3BvbnNlVHlwZSA9IG9wdGlvbnMucmVzcG9uc2VUeXBlIHx8IHRoaXMuY29uZmlnLnJlc3BvbnNlVHlwZTtcblx0XHRvcHRpb25zLnVybCA9IG9wdGlvbnMudXJsIHx8ICcnO1xuXHRcdG9wdGlvbnMucGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgfHwge307XG5cdFx0b3B0aW9ucy5oZWFkZXIgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbmZpZy5oZWFkZXIsIG9wdGlvbnMuaGVhZGVyKTtcblx0XHRvcHRpb25zLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kIHx8IHRoaXMuY29uZmlnLm1ldGhvZDtcblx0XHRvcHRpb25zLnNzbFZlcmlmeSA9IGZhbHNlXG5cblx0XHQvLyBjb25zb2xlLmxvZygnYXBpLmhlbHBlci0tLS0tcmVxdWVzdCcsIG9wdGlvbnMsIHRoaXMub3B0aW9ucylcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRvcHRpb25zLmNvbXBsZXRlID0gKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdhcGkuaGVscGVyLS0tb3B0aW9ucy5jb21wbGV0ZScsIHJlc3BvbnNlKVxuXHRcdFx0XHQvLyDor7fmsYLov5Tlm57lkI7vvIzpmpDol49sb2FkaW5nKOWmguaenOivt+axgui/lOWbnuW/q+eahOivne+8jOWPr+iDveS8muayoeaciWxvYWRpbmcpXG5cdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHQvLyDmuIXpmaTlrprml7blmajvvIzlpoLmnpzor7fmsYLlm57mnaXkuobvvIzlsLHml6DpnIBsb2FkaW5nXG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLmNvbmZpZy50aW1lcik7XG5cdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0Ly8g5Yik5pat55So5oi35a+55oum5oiq6L+U5Zue5pWw5o2u55qE6KaB5rGC77yM5aaC5p6cb3JpZ2luYWxEYXRh5Li6dHJ1Ze+8jOi/lOWbnuaJgOacieeahOaVsOaNrihyZXNwb25zZSnliLDmi6bmiKrlmajvvIzlkKbliJnlj6rov5Tlm55yZXNwb25zZS5kYXRhXG5cdFx0XHRcdGlmICh0aGlzLmNvbmZpZy5vcmlnaW5hbERhdGEpIHtcblx0XHRcdFx0XHQvLyDliKTmlq3mmK/lkKblrZjlnKjmi6bmiKrlmahcblx0XHRcdFx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSAmJiB0eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UpO1xuXHRcdFx0XHRcdFx0Ly8g5aaC5p6c5oum5oiq5Zmo5LiN6L+U5ZueZmFsc2XvvIzlsLHlsIbmi6bmiKrlmajov5Tlm57nmoTlhoXlrrnnu5l0aGlzLiR1LnBvc3TnmoR0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRpZiAocmVzSW50ZXJjZXB0b3JzICE9PSBmYWxzZSkge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJlc0ludGVyY2VwdG9ycyk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyDlpoLmnpzmi6bmiKrlmajov5Tlm55mYWxzZe+8jOaEj+WRs+edgOaLpuaIquWZqOWumuS5ieiAheiupOS4uui/lOWbnuaciemXrumimO+8jOebtOaOpeaOpeWFpWNhdGNo5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOWmguaenOimgeaxgui/lOWbnuWOn+Wni+aVsOaNru+8jOWwseeul+ayoeacieaLpuaIquWZqO+8jOS5n+i/lOWbnuacgOWOn+Wni+eahOaVsOaNrlxuXHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNwb25zZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgJiYgdHlwZW9mIHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgPT09XG5cdFx0XHRcdFx0XHRcdCdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXNJbnRlcmNlcHRvcnMgIT09IGZhbHNlKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNJbnRlcmNlcHRvcnMpO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZS5kYXRhKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Ly8g5aaC5p6c5LiN5piv6L+U5Zue5Y6f5aeL5pWw5o2uKG9yaWdpbmFsRGF0YT1mYWxzZSnvvIzkuJTmsqHmnInmi6bmiKrlmajnmoTmg4XlhrXkuIvvvIzov5Tlm57nuq/mlbDmja7nu5l0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOS4jei/lOWbnuWOn+Wni+aVsOaNrueahOaDheWGteS4i++8jOacjeWKoeWZqOeKtuaAgeeggeS4jeS4ujIwMO+8jG1vZGFs5by55qGG5o+Q56S6XG5cdFx0XHRcdFx0XHQvLyBpZihyZXNwb25zZS5lcnJNc2cpIHtcblx0XHRcdFx0XHRcdC8vIFx0dW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdFx0XHQvLyBcdFx0dGl0bGU6IHJlc3BvbnNlLmVyck1zZ1xuXHRcdFx0XHRcdFx0Ly8gXHR9KTtcblx0XHRcdFx0XHRcdC8vIH1cblx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDUwMCkge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+acjeWKoeWZqOW8guW4uCcsXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDAsXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PSA0MDEpIHtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfnmbvlvZXlt7LlpLHmlYgnLFxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHRcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZWplY3QocmVzcG9uc2UpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIOWIpOaWreeUqOaIt+S8oOmAkueahFVSTOaYr+WQpi/lvIDlpLQs5aaC5p6c5LiN5pivLOWKoOS4ii/vvIzov5nph4zkvb/nlKjkuoZ1Vmlld+eahHRlc3QuanPpqozor4HlupPnmoR1cmwoKeaWueazlVxuXHRcdFx0b3B0aW9ucy51cmwgPSB2YWxpZGF0ZS51cmwob3B0aW9ucy51cmwpID8gb3B0aW9ucy51cmwgOiAoKG9wdGlvbnMuYmFzZVVybCA/IG9wdGlvbnMuYmFzZVVybCA6XG5cdFx0XHRcdHRoaXNcblx0XHRcdFx0LmNvbmZpZy5iYXNlVXJsKSArIChvcHRpb25zLnVybFxuXHRcdFx0XHQuaW5kZXhPZignLycpID09IDAgP1xuXHRcdFx0XHRvcHRpb25zLnVybCA6ICcvJyArIG9wdGlvbnMudXJsKSk7XG5cblx0XHRcdC8vIOaYr+WQpuaYvuekumxvYWRpbmdcblx0XHRcdC8vIOWKoOS4gOS4quaYr+WQpuW3suaciXRpbWVy5a6a5pe25Zmo55qE5Yik5pat77yM5ZCm5YiZ5pyJ5Lik5Liq5ZCM5pe26K+35rGC55qE5pe25YCZ77yM5ZCO6ICF5Lya5riF6Zmk5YmN6ICF55qE5a6a5pe25ZmoaWRcblx0XHRcdC8vIOiAjOayoeaciea4hemZpOWJjeiAheeahOWumuaXtuWZqO+8jOWvvOiHtOWJjeiAhei2heaXtu+8jOS4gOebtOaYvuekumxvYWRpbmdcblx0XHRcdGlmICh0aGlzLmNvbmZpZy5zaG93TG9hZGluZyAmJiAhdGhpcy5jb25maWcudGltZXIpIHtcblx0XHRcdFx0dGhpcy5jb25maWcudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuY29uZmlnLmxvYWRpbmdUZXh0LFxuXHRcdFx0XHRcdFx0bWFzazogdGhpcy5jb25maWcubG9hZGluZ01hc2tcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0fSwgdGhpcy5jb25maWcubG9hZGluZ1RpbWUpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2FwaS5oZWxwZXItLS0tLWZpbmFsbHkqKipyZXF1ZXN0Jywgb3B0aW9ucylcblx0XHRcdHVuaS5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdH0pXG5cdFx0Ly8gLmNhdGNoKHJlcyA9PiB7XG5cdFx0Ly8gXHQvLyDlpoLmnpzov5Tlm55yZWplY3QoKe+8jOS4jeiuqeWFtui/m+WFpXRoaXMuJHUucG9zdCgpLnRoZW4oKS5jYXRjaCgp5ZCO6Z2i55qEY2F0Y3QoKVxuXHRcdC8vIFx0Ly8g5Zug5Li65b6I5aSa5Lq66YO95Lya5b+Y5LqG5YaZ5ZCO6Z2i55qEY2F0Y2goKe+8jOWvvOiHtOaKpemUmeaNleiOt+S4jeWIsGNhdGNoXG5cdFx0Ly8gXHRyZXR1cm4gbmV3IFByb21pc2UoKCk9Pnt9KTtcblx0XHQvLyB9KVxuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYXNlVXJsOiAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMCcsIC8vIOivt+axgueahOagueWfn+WQjVxuXHRcdFx0Ly8g6buY6K6k55qE6K+35rGC5aS0XG5cdFx0XHRoZWFkZXI6IHt9LFxuXHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHQvLyDorr7nva7kuLpqc29u77yM6L+U5Zue5ZCOdW5pLnJlcXVlc3TkvJrlr7nmlbDmja7ov5vooYzkuIDmrKFKU09OLnBhcnNlXG5cdFx0XHRkYXRhVHlwZTogJ2pzb24nLFxuXHRcdFx0Ly8g5q2k5Y+C5pWw5peg6ZyA5aSE55CG77yM5Zug5Li6NSvlkozmlK/ku5jlrp3lsI/nqIvluo/kuI3mlK/mjIHvvIzpu5jorqTkuLp0ZXh05Y2z5Y+vXG5cdFx0XHRyZXNwb25zZVR5cGU6ICd0ZXh0Jyxcblx0XHRcdHNob3dMb2FkaW5nOiB0cnVlLCAvLyDmmK/lkKbmmL7npLror7fmsYLkuK3nmoRsb2FkaW5nXG5cdFx0XHRsb2FkaW5nVGV4dDogJ+ivt+axguS4rS4uLicsXG5cdFx0XHRsb2FkaW5nVGltZTogODAwLCAvLyDlnKjmraTml7bpl7TlhoXvvIzor7fmsYLov5jmsqHlm57mnaXnmoTor53vvIzlsLHmmL7npLrliqDovb3kuK3liqjnlLvvvIzljZXkvY1tc1xuXHRcdFx0dGltZXI6IG51bGwsIC8vIOWumuaXtuWZqFxuXHRcdFx0c3NsVmVyaWZ5OiBmYWxzZSwgLy8g5a6a5pe25ZmoXG5cdFx0XHRvcmlnaW5hbERhdGE6IGZhbHNlLCAvLyDmmK/lkKblnKjmi6bmiKrlmajkuK3ov5Tlm57mnI3liqHnq6/nmoTljp/lp4vmlbDmja7vvIzop4HmlofmoaPor7TmmI5cblx0XHRcdGxvYWRpbmdNYXNrOiB0cnVlLCAvLyDlsZXnpLpsb2FkaW5n55qE5pe25YCZ77yM5piv5ZCm57uZ5LiA5Liq6YCP5piO55qE6JKZ5bGC77yM6Ziy5q2i6Kem5pG456m/6YCPXG5cdFx0fVxuXG5cdFx0Ly8g5oum5oiq5ZmoXG5cdFx0dGhpcy5pbnRlcmNlcHRvciA9IHtcblx0XHRcdC8vIOivt+axguWJjeeahOaLpuaIqlxuXHRcdFx0cmVxdWVzdDogKGNvbmZpZykgPT4ge1xuXHRcdFx0XHRjb25maWcuaGVhZGVyWydBdXRob3JpemF0aW9uJ10gPSBgQmFzaWMgJHtCYXNlNjQuZW5jb2RlKCd3YW5ncGM6TFpZODg4QEAnKX1gO1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSA9PT0gLVxuXHRcdFx0XHRcdFx0MSAmJlxuXHRcdFx0XHRcdFx0c3RvcmUuc3RhdGUudnVleF90b2tlbikge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmhlYWRlclsnWC1BdXRoLVRva2VuJ10gPSBzdG9yZVxuXHRcdFx0XHRcdFx0XHQuc3RhdGUudnVleF90b2tlblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSAmJiBjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXS5pbmRleE9mKFxuXHRcdFx0XHRcdFx0XHQneC13d3ctZm9ybS11cmxlbmNvZGVkJykgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSA9IFwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOFwiXG5cdFx0XHRcdFx0fVxuXG5cblx0XHRcdFx0XHRpZiAoY29uZmlnLnVybC5pbmRleE9mKCdjcm0tYXBwJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMTAuMC4xMzUuNjEnXG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwJ1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoY29uZmlnLnVybC5pbmRleE9mKCdhZGFwdGVyJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vYXBpLmMwMzMxLmRldi5ndWFueWluZ3l1bi5jb20nXG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL2N5aidcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNvbmZpZy51cmwuaW5kZXhPZignd21kcHdlYnNlcnZpY2VzJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwczovLzEwLjAuMTM0LjE4Mjo5MDAyJ1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMC9zY3p4J1xuXHRcdFx0XHRcdFx0Ly8gY29uZmlnLmJhc2VVcmwgPSAnJ1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL3dseVNhcCdcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZXJyb3InLCBlKVxuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSAhPT0gLTEgJiYgIXN0b3JlLnN0YXRlLnZ1ZXhfdG9rZW4pIHtcblx0XHRcdFx0Ly8gXHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0Ly8gXHRcdHRpdGxlOiAn55m75b2V5bey5aSx5pWIJyxcblx0XHRcdFx0Ly8gXHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHQvLyBcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdC8vIFx0fSk7XG5cdFx0XHRcdC8vIFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHQvLyBcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdC8vIFx0fSlcblx0XHRcdFx0Ly8gfVxuXHRcdFx0XHRjb25zb2xlLmxvZygnaGVscGVyLS1pbnRlcmNlcHRvci0tLXJlcXVlc3QtLS0tLScsIGNvbmZpZylcblx0XHRcdFx0cmV0dXJuIGNvbmZpZztcblx0XHRcdH0sXG5cdFx0XHQvLyDor7fmsYLlkI7nmoTmi6bmiKpcblx0XHRcdHJlc3BvbnNlOiAocmVzKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdoZWxwZXItLWlpbnRlcmNlcHRvci0tLXJlc3BvbnNlLS0tLS0nLCByZXMpXG5cdFx0XHRcdGlmIChyZXMuTVNHVFlQRSA9PT0gJ1MnIHx8IHJlcy5tc2d0eXBlID09PSAnUycgfHwgcmVzLnN0YXR1cyA9PT0gMSB8fCByZXMucmVzdWx0ID09PSBcIlNcIiB8fFxuXHRcdFx0XHRcdHJlcy5TdGF0dXMgPT09XG5cdFx0XHRcdFx0J1N1Y2Nlc3MnKSB7XG5cdFx0XHRcdFx0Ly8g5aaC5p6c5oqKb3JpZ2luYWxEYXRh6K6+572u5Li65LqGdHJ1Ze+8jOi/memHjHJldHVybuWbnuS7gOS5iO+8jHRoaXMuJHUucG9zdOeahHRoZW7lm57osIPkuK3lsLHkvJrlvpfliLDku4DkuYhcblx0XHRcdFx0XHRyZXR1cm4gcmVzO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5NRVNTQUdFIHx8IHJlcy5tc2cgfHwgcmVzLm1lc3NhZ2UgfHwgcmVzLkVyck1zZyxcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZ2V06K+35rGCXG5cdFx0dGhpcy5nZXQgPSAodXJsLCBkYXRhID0ge30sIGhlYWRlciA9IHt9KSA9PiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5yZXF1ZXN0KHtcblx0XHRcdFx0bWV0aG9kOiAnR0VUJyxcblx0XHRcdFx0dXJsLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcG9zdOivt+axglxuXHRcdHRoaXMucG9zdCA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcHV06K+35rGC77yM5LiN5pSv5oyB5pSv5LuY5a6d5bCP56iL5bqPKEhYMi42LjE1KVxuXHRcdHRoaXMucHV0ID0gKHVybCwgZGF0YSA9IHt9LCBoZWFkZXIgPSB7fSkgPT4ge1xuXHRcdFx0cmV0dXJuIHRoaXMucmVxdWVzdCh7XG5cdFx0XHRcdHVybCxcblx0XHRcdFx0bWV0aG9kOiAnUFVUJyxcblx0XHRcdFx0aGVhZGVyLFxuXHRcdFx0XHRkYXRhXG5cdFx0XHR9KVxuXHRcdH1cblxuXHRcdC8vIGRlbGV0Zeivt+axgu+8jOS4jeaUr+aMgeaUr+S7mOWuneWSjOWktOadoeWwj+eoi+W6jyhIWDIuNi4xNSlcblx0XHR0aGlzLmRlbGV0ZSA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ0RFTEVURScsXG5cdFx0XHRcdGhlYWRlcixcblx0XHRcdFx0ZGF0YVxuXHRcdFx0fSlcblx0XHR9XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IG5ldyBSZXF1ZXN0XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///15\n");
/***/ }),
......
......@@ -2068,7 +2068,7 @@ index;exports.default = _default;
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _index = __webpack_require__(/*! @/utils/index.js */ 16);\n\n\nvar _validate = _interopRequireDefault(__webpack_require__(/*! @/utils/validate.js */ 17));\nvar _jsBase = __webpack_require__(/*! js-base64 */ 18);\n\n\nvar _index2 = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 19));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError(\"Cannot call a class as a function\");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}var\n\nRequest = /*#__PURE__*/function () {_createClass(Request, [{ key: \"setConfig\",\n // 设置全局默认配置\n value: function setConfig(customConfig) {\n // 深度合并对象,否则会造成对象深层属性丢失\n this.config = (0, _index.deepMerge)(this.config, customConfig);\n }\n\n // 主要请求部分\n }, { key: \"request\", value: function request() {var _this = this;var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n // 检查请求拦截\n if (this.interceptor.request && typeof this.interceptor.request === 'function') {\n var tmpConfig = {};\n var interceptorRequest = this.interceptor.request(options);\n if (interceptorRequest === false) {\n // 返回一个处于pending状态中的Promise,来取消原promise,避免进入then()回调\n return new Promise(function () {});\n }\n this.options = interceptorRequest;\n }\n\n options.dataType = options.dataType || this.config.dataType;\n options.responseType = options.responseType || this.config.responseType;\n options.url = options.url || '';\n options.params = options.params || {};\n options.header = Object.assign({}, this.config.header, options.header);\n options.method = options.method || this.config.method;\n options.sslVerify = false;\n\n // console.log('api.helper-----request', options, this.options)\n\n return new Promise(function (resolve, reject) {\n options.complete = function (response) {\n __f__(\"log\", 'api.helper---options.complete', response, \" at servers/api.helper.js:43\");\n // 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)\n uni.hideLoading();\n // 清除定时器,如果请求回来了,就无需loading\n clearTimeout(_this.config.timer);\n _this.config.timer = null;\n // 判断用户对拦截返回数据的要求,如果originalData为true,返回所有的数据(response)到拦截器,否则只返回response.data\n if (_this.config.originalData) {\n // 判断是否存在拦截器\n if (_this.interceptor.response && typeof _this.interceptor.response === 'function') {\n var resInterceptors = _this.interceptor.response(response);\n // 如果拦截器不返回false,就将拦截器返回的内容给this.$u.post的then回调\n if (resInterceptors !== false) {\n resolve(resInterceptors);\n } else {\n // 如果拦截器返回false,意味着拦截器定义者认为返回有问题,直接接入catch回调\n reject(response);\n }\n } else {\n // 如果要求返回原始数据,就算没有拦截器,也返回最原始的数据\n resolve(response);\n }\n } else {\n if (response.statusCode == 200) {\n if (_this.interceptor.response && typeof _this.interceptor.response ===\n 'function') {\n var _resInterceptors = _this.interceptor.response(response.data);\n if (_resInterceptors !== false) {\n resolve(_resInterceptors);\n } else {\n reject(response.data);\n }\n } else {\n // 如果不是返回原始数据(originalData=false),且没有拦截器的情况下,返回纯数据给then回调\n resolve(response.data);\n }\n } else {\n // 不返回原始数据的情况下,服务器状态码不为200,modal弹框提示\n // if(response.errMsg) {\n // \tuni.showModal({\n // \t\ttitle: response.errMsg\n // \t});\n // }\n if (response.statusCode == 500) {\n uni.showToast({\n title: '服务器异常',\n duration: 2000,\n icon: 'none' });\n\n }\n if (response.statusCode == 401) {\n uni.showToast({\n title: '登录已失效',\n duration: 2000,\n icon: 'none' });\n\n uni.navigateTo({\n url: \"/pages/login/login\" });\n\n }\n reject(response);\n }\n }\n };\n\n // 判断用户传递的URL是否/开头,如果不是,加上/,这里使用了uView的test.js验证库的url()方法\n options.url = _validate.default.url(options.url) ? options.url : (options.baseUrl ? options.baseUrl :\n _this.\n config.baseUrl) + (options.url.\n indexOf('/') == 0 ?\n options.url : '/' + options.url);\n\n // 是否显示loading\n // 加一个是否已有timer定时器的判断,否则有两个同时请求的时候,后者会清除前者的定时器id\n // 而没有清除前者的定时器,导致前者超时,一直显示loading\n if (_this.config.showLoading && !_this.config.timer) {\n _this.config.timer = setTimeout(function () {\n uni.showLoading({\n title: _this.config.loadingText,\n mask: _this.config.loadingMask });\n\n _this.config.timer = null;\n }, _this.config.loadingTime);\n }\n // console.log('api.helper-----finally***request', options)\n uni.request(options);\n });\n // .catch(res => {\n // \t// 如果返回reject(),不让其进入this.$u.post().then().catch()后面的catct()\n // \t// 因为很多人都会忘了写后面的catch(),导致报错捕获不到catch\n // \treturn new Promise(()=>{});\n // })\n } }]);\n\n function Request() {var _this2 = this;_classCallCheck(this, Request);\n this.config = {\n baseUrl: 'http://221.10.127.60:5000', // 请求的根域名\n // 默认的请求头\n header: {},\n method: 'POST',\n // 设置为json,返回后uni.request会对数据进行一次JSON.parse\n dataType: 'json',\n // 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可\n responseType: 'text',\n showLoading: true, // 是否显示请求中的loading\n loadingText: '请求中...',\n loadingTime: 800, // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms\n timer: null, // 定时器\n sslVerify: false, // 定时器\n originalData: false, // 是否在拦截器中返回服务端的原始数据,见文档说明\n loadingMask: true // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透\n };\n\n // 拦截器\n this.interceptor = {\n // 请求前的拦截\n request: function request(config) {\n config.header['Authorization'] = \"Basic \".concat(_jsBase.Base64.encode('wangpc:LZY888@@'));\n try {\n if (config.url.indexOf('crm-app/login') === -\n 1 &&\n _index2.default.state.vuex_token) {\n config.header['X-Auth-Token'] = _index2.default.\n state.vuex_token;\n }\n\n if (config.header['Content-Type'] && config.header['Content-Type'].indexOf(\n 'x-www-form-urlencoded') === -1) {\n config.header['Content-Type'] = \"application/json; charset=utf-8\";\n }\n\n\n if (config.url.indexOf('crm-app') !== -1) {\n // config.baseUrl = 'http://10.0.135.61'\n config.baseUrl = 'http://221.10.127.60:5000';\n } else if (config.url.indexOf('adapter') !== -1) {\n // config.baseUrl = 'http://api.c0331.dev.guanyingyun.com'\n config.baseUrl = 'http://221.10.127.60:5000/cyj';\n } else if (config.url.indexOf('wmdpwebservices') !== -1) {\n // config.baseUrl = 'https://10.0.134.182:9002'\n config.baseUrl = 'http://221.10.127.60:5000/sczx';\n // config.baseUrl = ''\n } else {\n config.baseUrl = 'http://221.10.127.60:5000/wlySap';\n }\n } catch (e) {\n __f__(\"log\", 'error', e, \" at servers/api.helper.js:189\");\n }\n // if (config.url.indexOf('crm-app/login') !== -1 && !store.state.vuex_token) {\n // \tuni.showToast({\n // \t\ttitle: '登录已失效',\n // \t\tduration: 2000,\n // \t\ticon: 'none'\n // \t});\n // \tuni.navigateTo({\n // \t\turl: \"/pages/login/login\"\n // \t})\n // }\n __f__(\"log\", 'helper--interceptor---request-----', config, \" at servers/api.helper.js:201\");\n return config;\n },\n // 请求后的拦截\n response: function response(res) {\n __f__(\"log\", 'helper--iinterceptor---response-----', res, \" at servers/api.helper.js:206\");\n if (res.MSGTYPE === 'S' || res.msgtype === 'S' || res.status === 1 || res.result === \"S\" ||\n res.Status ===\n 'Success') {\n // 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么\n return res;\n } else {\n uni.showToast({\n title: res.MESSAGE || res.msg || res.message || res.ErrMsg,\n duration: 2000,\n icon: 'none' });\n\n return false;\n };\n } };\n\n\n // get请求\n this.get = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n method: 'GET',\n url: url,\n header: header,\n data: data });\n\n };\n\n // post请求\n this.post = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'POST',\n header: header,\n data: data });\n\n };\n\n // put请求,不支持支付宝小程序(HX2.6.15)\n this.put = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'PUT',\n header: header,\n data: data });\n\n };\n\n // delete请求,不支持支付宝和头条小程序(HX2.6.15)\n this.delete = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'DELETE',\n header: header,\n data: data });\n\n };\n }return Request;}();var _default =\n\nnew Request();exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc2VydmVycy9hcGkuaGVscGVyLmpzIl0sIm5hbWVzIjpbIlJlcXVlc3QiLCJjdXN0b21Db25maWciLCJjb25maWciLCJvcHRpb25zIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0IiwidG1wQ29uZmlnIiwiaW50ZXJjZXB0b3JSZXF1ZXN0IiwiUHJvbWlzZSIsImRhdGFUeXBlIiwicmVzcG9uc2VUeXBlIiwidXJsIiwicGFyYW1zIiwiaGVhZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0aG9kIiwic3NsVmVyaWZ5IiwicmVzb2x2ZSIsInJlamVjdCIsImNvbXBsZXRlIiwicmVzcG9uc2UiLCJ1bmkiLCJoaWRlTG9hZGluZyIsImNsZWFyVGltZW91dCIsInRpbWVyIiwib3JpZ2luYWxEYXRhIiwicmVzSW50ZXJjZXB0b3JzIiwic3RhdHVzQ29kZSIsImRhdGEiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwiaWNvbiIsIm5hdmlnYXRlVG8iLCJ2YWxpZGF0ZSIsImJhc2VVcmwiLCJpbmRleE9mIiwic2hvd0xvYWRpbmciLCJzZXRUaW1lb3V0IiwibG9hZGluZ1RleHQiLCJtYXNrIiwibG9hZGluZ01hc2siLCJsb2FkaW5nVGltZSIsIkJhc2U2NCIsImVuY29kZSIsInN0b3JlIiwic3RhdGUiLCJ2dWV4X3Rva2VuIiwiZSIsInJlcyIsIk1TR1RZUEUiLCJtc2d0eXBlIiwic3RhdHVzIiwicmVzdWx0IiwiU3RhdHVzIiwiTUVTU0FHRSIsIm1zZyIsIm1lc3NhZ2UiLCJFcnJNc2ciLCJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoib0lBQUE7OztBQUdBO0FBQ0E7OztBQUdBLHNGOztBQUVNQSxPO0FBQ0w7OEJBQ1VDLFksRUFBYztBQUN2QjtBQUNBLFdBQUtDLE1BQUwsR0FBYyxzQkFBVSxLQUFLQSxNQUFmLEVBQXVCRCxZQUF2QixDQUFkO0FBQ0E7O0FBRUQ7aURBQ3NCLHNCQUFkRSxPQUFjLHVFQUFKLEVB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QTtBQUNBLFNBQUtnQyxJQUFMLEdBQVksVUFBQ2xELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzVDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxNQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtpQyxHQUFMLEdBQVcsVUFBQ25ELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzNDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxLQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtrQyxNQUFMLEdBQWMsVUFBQ3BELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzlDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxRQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDtBQVFBLEc7O0FBRWEsSUFBSTdCLE9BQUosRSIsImZpbGUiOiIxNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGRlZXBNZXJnZVxufSBmcm9tIFwiQC91dGlscy9pbmRleC5qc1wiO1xuaW1wb3J0IHZhbGlkYXRlIGZyb20gXCJAL3V0aWxzL3ZhbGlkYXRlLmpzXCI7XG5pbXBvcnQge1xuXHRCYXNlNjRcbn0gZnJvbSAnanMtYmFzZTY0J1xuaW1wb3J0IHN0b3JlIGZyb20gJ0Avc3RvcmUvaW5kZXguanMnXG5cbmNsYXNzIFJlcXVlc3Qge1xuXHQvLyDorr7nva7lhajlsYDpu5jorqTphY3nva5cblx0c2V0Q29uZmlnKGN1c3RvbUNvbmZpZykge1xuXHRcdC8vIOa3seW6puWQiOW5tuWvueixoe+8jOWQpuWImeS8mumAoOaIkOWvueixoea3seWxguWxnuaAp+S4ouWksVxuXHRcdHRoaXMuY29uZmlnID0gZGVlcE1lcmdlKHRoaXMuY29uZmlnLCBjdXN0b21Db25maWcpO1xuXHR9XG5cblx0Ly8g5Li76KaB6K+35rGC6YOo5YiGXG5cdHJlcXVlc3Qob3B0aW9ucyA9IHt9KSB7XG5cblx0XHQvLyDmo4Dmn6Xor7fmsYLmi6bmiKpcblx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0ICYmIHR5cGVvZiB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3QgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGxldCB0bXBDb25maWcgPSB7fTtcblx0XHRcdGxldCBpbnRlcmNlcHRvclJlcXVlc3QgPSB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3Qob3B0aW9ucyk7XG5cdFx0XHRpZiAoaW50ZXJjZXB0b3JSZXF1ZXN0ID09PSBmYWxzZSkge1xuXHRcdFx0XHQvLyDov5Tlm57kuIDkuKrlpITkuo5wZW5kaW5n54q25oCB5Lit55qEUHJvbWlzZe+8jOadpeWPlua2iOWOn3Byb21pc2XvvIzpgb/lhY3ov5vlhaV0aGVuKCnlm57osINcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTtcblx0XHRcdH1cblx0XHRcdHRoaXMub3B0aW9ucyA9IGludGVyY2VwdG9yUmVxdWVzdDtcblx0XHR9XG5cblx0XHRvcHRpb25zLmRhdGFUeXBlID0gb3B0aW9ucy5kYXRhVHlwZSB8fCB0aGlzLmNvbmZpZy5kYXRhVHlwZTtcblx0XHRvcHRpb25zLnJlc3BvbnNlVHlwZSA9IG9wdGlvbnMucmVzcG9uc2VUeXBlIHx8IHRoaXMuY29uZmlnLnJlc3BvbnNlVHlwZTtcblx0XHRvcHRpb25zLnVybCA9IG9wdGlvbnMudXJsIHx8ICcnO1xuXHRcdG9wdGlvbnMucGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgfHwge307XG5cdFx0b3B0aW9ucy5oZWFkZXIgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbmZpZy5oZWFkZXIsIG9wdGlvbnMuaGVhZGVyKTtcblx0XHRvcHRpb25zLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kIHx8IHRoaXMuY29uZmlnLm1ldGhvZDtcblx0XHRvcHRpb25zLnNzbFZlcmlmeSA9IGZhbHNlXG5cblx0XHQvLyBjb25zb2xlLmxvZygnYXBpLmhlbHBlci0tLS0tcmVxdWVzdCcsIG9wdGlvbnMsIHRoaXMub3B0aW9ucylcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRvcHRpb25zLmNvbXBsZXRlID0gKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdhcGkuaGVscGVyLS0tb3B0aW9ucy5jb21wbGV0ZScsIHJlc3BvbnNlKVxuXHRcdFx0XHQvLyDor7fmsYLov5Tlm57lkI7vvIzpmpDol49sb2FkaW5nKOWmguaenOivt+axgui/lOWbnuW/q+eahOivne+8jOWPr+iDveS8muayoeaciWxvYWRpbmcpXG5cdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHQvLyDmuIXpmaTlrprml7blmajvvIzlpoLmnpzor7fmsYLlm57mnaXkuobvvIzlsLHml6DpnIBsb2FkaW5nXG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLmNvbmZpZy50aW1lcik7XG5cdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0Ly8g5Yik5pat55So5oi35a+55oum5oiq6L+U5Zue5pWw5o2u55qE6KaB5rGC77yM5aaC5p6cb3JpZ2luYWxEYXRh5Li6dHJ1Ze+8jOi/lOWbnuaJgOacieeahOaVsOaNrihyZXNwb25zZSnliLDmi6bmiKrlmajvvIzlkKbliJnlj6rov5Tlm55yZXNwb25zZS5kYXRhXG5cdFx0XHRcdGlmICh0aGlzLmNvbmZpZy5vcmlnaW5hbERhdGEpIHtcblx0XHRcdFx0XHQvLyDliKTmlq3mmK/lkKblrZjlnKjmi6bmiKrlmahcblx0XHRcdFx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSAmJiB0eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UpO1xuXHRcdFx0XHRcdFx0Ly8g5aaC5p6c5oum5oiq5Zmo5LiN6L+U5ZueZmFsc2XvvIzlsLHlsIbmi6bmiKrlmajov5Tlm57nmoTlhoXlrrnnu5l0aGlzLiR1LnBvc3TnmoR0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRpZiAocmVzSW50ZXJjZXB0b3JzICE9PSBmYWxzZSkge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJlc0ludGVyY2VwdG9ycyk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyDlpoLmnpzmi6bmiKrlmajov5Tlm55mYWxzZe+8jOaEj+WRs+edgOaLpuaIquWZqOWumuS5ieiAheiupOS4uui/lOWbnuaciemXrumimO+8jOebtOaOpeaOpeWFpWNhdGNo5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOWmguaenOimgeaxgui/lOWbnuWOn+Wni+aVsOaNru+8jOWwseeul+ayoeacieaLpuaIquWZqO+8jOS5n+i/lOWbnuacgOWOn+Wni+eahOaVsOaNrlxuXHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNwb25zZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgJiYgdHlwZW9mIHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgPT09XG5cdFx0XHRcdFx0XHRcdCdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXNJbnRlcmNlcHRvcnMgIT09IGZhbHNlKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNJbnRlcmNlcHRvcnMpO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZS5kYXRhKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Ly8g5aaC5p6c5LiN5piv6L+U5Zue5Y6f5aeL5pWw5o2uKG9yaWdpbmFsRGF0YT1mYWxzZSnvvIzkuJTmsqHmnInmi6bmiKrlmajnmoTmg4XlhrXkuIvvvIzov5Tlm57nuq/mlbDmja7nu5l0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOS4jei/lOWbnuWOn+Wni+aVsOaNrueahOaDheWGteS4i++8jOacjeWKoeWZqOeKtuaAgeeggeS4jeS4ujIwMO+8jG1vZGFs5by55qGG5o+Q56S6XG5cdFx0XHRcdFx0XHQvLyBpZihyZXNwb25zZS5lcnJNc2cpIHtcblx0XHRcdFx0XHRcdC8vIFx0dW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdFx0XHQvLyBcdFx0dGl0bGU6IHJlc3BvbnNlLmVyck1zZ1xuXHRcdFx0XHRcdFx0Ly8gXHR9KTtcblx0XHRcdFx0XHRcdC8vIH1cblx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDUwMCkge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+acjeWKoeWZqOW8guW4uCcsXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDAsXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PSA0MDEpIHtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfnmbvlvZXlt7LlpLHmlYgnLFxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHRcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZWplY3QocmVzcG9uc2UpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIOWIpOaWreeUqOaIt+S8oOmAkueahFVSTOaYr+WQpi/lvIDlpLQs5aaC5p6c5LiN5pivLOWKoOS4ii/vvIzov5nph4zkvb/nlKjkuoZ1Vmlld+eahHRlc3QuanPpqozor4HlupPnmoR1cmwoKeaWueazlVxuXHRcdFx0b3B0aW9ucy51cmwgPSB2YWxpZGF0ZS51cmwob3B0aW9ucy51cmwpID8gb3B0aW9ucy51cmwgOiAoKG9wdGlvbnMuYmFzZVVybCA/IG9wdGlvbnMuYmFzZVVybCA6XG5cdFx0XHRcdHRoaXNcblx0XHRcdFx0LmNvbmZpZy5iYXNlVXJsKSArIChvcHRpb25zLnVybFxuXHRcdFx0XHQuaW5kZXhPZignLycpID09IDAgP1xuXHRcdFx0XHRvcHRpb25zLnVybCA6ICcvJyArIG9wdGlvbnMudXJsKSk7XG5cblx0XHRcdC8vIOaYr+WQpuaYvuekumxvYWRpbmdcblx0XHRcdC8vIOWKoOS4gOS4quaYr+WQpuW3suaciXRpbWVy5a6a5pe25Zmo55qE5Yik5pat77yM5ZCm5YiZ5pyJ5Lik5Liq5ZCM5pe26K+35rGC55qE5pe25YCZ77yM5ZCO6ICF5Lya5riF6Zmk5YmN6ICF55qE5a6a5pe25ZmoaWRcblx0XHRcdC8vIOiAjOayoeaciea4hemZpOWJjeiAheeahOWumuaXtuWZqO+8jOWvvOiHtOWJjeiAhei2heaXtu+8jOS4gOebtOaYvuekumxvYWRpbmdcblx0XHRcdGlmICh0aGlzLmNvbmZpZy5zaG93TG9hZGluZyAmJiAhdGhpcy5jb25maWcudGltZXIpIHtcblx0XHRcdFx0dGhpcy5jb25maWcudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuY29uZmlnLmxvYWRpbmdUZXh0LFxuXHRcdFx0XHRcdFx0bWFzazogdGhpcy5jb25maWcubG9hZGluZ01hc2tcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0fSwgdGhpcy5jb25maWcubG9hZGluZ1RpbWUpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2FwaS5oZWxwZXItLS0tLWZpbmFsbHkqKipyZXF1ZXN0Jywgb3B0aW9ucylcblx0XHRcdHVuaS5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdH0pXG5cdFx0Ly8gLmNhdGNoKHJlcyA9PiB7XG5cdFx0Ly8gXHQvLyDlpoLmnpzov5Tlm55yZWplY3QoKe+8jOS4jeiuqeWFtui/m+WFpXRoaXMuJHUucG9zdCgpLnRoZW4oKS5jYXRjaCgp5ZCO6Z2i55qEY2F0Y3QoKVxuXHRcdC8vIFx0Ly8g5Zug5Li65b6I5aSa5Lq66YO95Lya5b+Y5LqG5YaZ5ZCO6Z2i55qEY2F0Y2goKe+8jOWvvOiHtOaKpemUmeaNleiOt+S4jeWIsGNhdGNoXG5cdFx0Ly8gXHRyZXR1cm4gbmV3IFByb21pc2UoKCk9Pnt9KTtcblx0XHQvLyB9KVxuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYXNlVXJsOiAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMCcsIC8vIOivt+axgueahOagueWfn+WQjVxuXHRcdFx0Ly8g6buY6K6k55qE6K+35rGC5aS0XG5cdFx0XHRoZWFkZXI6IHt9LFxuXHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHQvLyDorr7nva7kuLpqc29u77yM6L+U5Zue5ZCOdW5pLnJlcXVlc3TkvJrlr7nmlbDmja7ov5vooYzkuIDmrKFKU09OLnBhcnNlXG5cdFx0XHRkYXRhVHlwZTogJ2pzb24nLFxuXHRcdFx0Ly8g5q2k5Y+C5pWw5peg6ZyA5aSE55CG77yM5Zug5Li6NSvlkozmlK/ku5jlrp3lsI/nqIvluo/kuI3mlK/mjIHvvIzpu5jorqTkuLp0ZXh05Y2z5Y+vXG5cdFx0XHRyZXNwb25zZVR5cGU6ICd0ZXh0Jyxcblx0XHRcdHNob3dMb2FkaW5nOiB0cnVlLCAvLyDmmK/lkKbmmL7npLror7fmsYLkuK3nmoRsb2FkaW5nXG5cdFx0XHRsb2FkaW5nVGV4dDogJ+ivt+axguS4rS4uLicsXG5cdFx0XHRsb2FkaW5nVGltZTogODAwLCAvLyDlnKjmraTml7bpl7TlhoXvvIzor7fmsYLov5jmsqHlm57mnaXnmoTor53vvIzlsLHmmL7npLrliqDovb3kuK3liqjnlLvvvIzljZXkvY1tc1xuXHRcdFx0dGltZXI6IG51bGwsIC8vIOWumuaXtuWZqFxuXHRcdFx0c3NsVmVyaWZ5OiBmYWxzZSwgLy8g5a6a5pe25ZmoXG5cdFx0XHRvcmlnaW5hbERhdGE6IGZhbHNlLCAvLyDmmK/lkKblnKjmi6bmiKrlmajkuK3ov5Tlm57mnI3liqHnq6/nmoTljp/lp4vmlbDmja7vvIzop4HmlofmoaPor7TmmI5cblx0XHRcdGxvYWRpbmdNYXNrOiB0cnVlLCAvLyDlsZXnpLpsb2FkaW5n55qE5pe25YCZ77yM5piv5ZCm57uZ5LiA5Liq6YCP5piO55qE6JKZ5bGC77yM6Ziy5q2i6Kem5pG456m/6YCPXG5cdFx0fVxuXG5cdFx0Ly8g5oum5oiq5ZmoXG5cdFx0dGhpcy5pbnRlcmNlcHRvciA9IHtcblx0XHRcdC8vIOivt+axguWJjeeahOaLpuaIqlxuXHRcdFx0cmVxdWVzdDogKGNvbmZpZykgPT4ge1xuXHRcdFx0XHRjb25maWcuaGVhZGVyWydBdXRob3JpemF0aW9uJ10gPSBgQmFzaWMgJHtCYXNlNjQuZW5jb2RlKCd3YW5ncGM6TFpZODg4QEAnKX1gO1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSA9PT0gLVxuXHRcdFx0XHRcdFx0MSAmJlxuXHRcdFx0XHRcdFx0c3RvcmUuc3RhdGUudnVleF90b2tlbikge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmhlYWRlclsnWC1BdXRoLVRva2VuJ10gPSBzdG9yZVxuXHRcdFx0XHRcdFx0XHQuc3RhdGUudnVleF90b2tlblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSAmJiBjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXS5pbmRleE9mKFxuXHRcdFx0XHRcdFx0XHQneC13d3ctZm9ybS11cmxlbmNvZGVkJykgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSA9IFwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOFwiXG5cdFx0XHRcdFx0fVxuXG5cblx0XHRcdFx0XHRpZiAoY29uZmlnLnVybC5pbmRleE9mKCdjcm0tYXBwJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMTAuMC4xMzUuNjEnXG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwJ1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoY29uZmlnLnVybC5pbmRleE9mKCdhZGFwdGVyJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vYXBpLmMwMzMxLmRldi5ndWFueWluZ3l1bi5jb20nXG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL2N5aidcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNvbmZpZy51cmwuaW5kZXhPZignd21kcHdlYnNlcnZpY2VzJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwczovLzEwLjAuMTM0LjE4Mjo5MDAyJ1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMC9zY3p4J1xuXHRcdFx0XHRcdFx0Ly8gY29uZmlnLmJhc2VVcmwgPSAnJ1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL3dseVNhcCdcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZXJyb3InLCBlKVxuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSAhPT0gLTEgJiYgIXN0b3JlLnN0YXRlLnZ1ZXhfdG9rZW4pIHtcblx0XHRcdFx0Ly8gXHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0Ly8gXHRcdHRpdGxlOiAn55m75b2V5bey5aSx5pWIJyxcblx0XHRcdFx0Ly8gXHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHQvLyBcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdC8vIFx0fSk7XG5cdFx0XHRcdC8vIFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHQvLyBcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdC8vIFx0fSlcblx0XHRcdFx0Ly8gfVxuXHRcdFx0XHRjb25zb2xlLmxvZygnaGVscGVyLS1pbnRlcmNlcHRvci0tLXJlcXVlc3QtLS0tLScsIGNvbmZpZylcblx0XHRcdFx0cmV0dXJuIGNvbmZpZztcblx0XHRcdH0sXG5cdFx0XHQvLyDor7fmsYLlkI7nmoTmi6bmiKpcblx0XHRcdHJlc3BvbnNlOiAocmVzKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdoZWxwZXItLWlpbnRlcmNlcHRvci0tLXJlc3BvbnNlLS0tLS0nLCByZXMpXG5cdFx0XHRcdGlmIChyZXMuTVNHVFlQRSA9PT0gJ1MnIHx8IHJlcy5tc2d0eXBlID09PSAnUycgfHwgcmVzLnN0YXR1cyA9PT0gMSB8fCByZXMucmVzdWx0ID09PSBcIlNcIiB8fFxuXHRcdFx0XHRcdHJlcy5TdGF0dXMgPT09XG5cdFx0XHRcdFx0J1N1Y2Nlc3MnKSB7XG5cdFx0XHRcdFx0Ly8g5aaC5p6c5oqKb3JpZ2luYWxEYXRh6K6+572u5Li65LqGdHJ1Ze+8jOi/memHjHJldHVybuWbnuS7gOS5iO+8jHRoaXMuJHUucG9zdOeahHRoZW7lm57osIPkuK3lsLHkvJrlvpfliLDku4DkuYhcblx0XHRcdFx0XHRyZXR1cm4gcmVzO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5NRVNTQUdFIHx8IHJlcy5tc2cgfHwgcmVzLm1lc3NhZ2UgfHwgcmVzLkVyck1zZyxcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZ2V06K+35rGCXG5cdFx0dGhpcy5nZXQgPSAodXJsLCBkYXRhID0ge30sIGhlYWRlciA9IHt9KSA9PiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5yZXF1ZXN0KHtcblx0XHRcdFx0bWV0aG9kOiAnR0VUJyxcblx0XHRcdFx0dXJsLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcG9zdOivt+axglxuXHRcdHRoaXMucG9zdCA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcHV06K+35rGC77yM5LiN5pSv5oyB5pSv5LuY5a6d5bCP56iL5bqPKEhYMi42LjE1KVxuXHRcdHRoaXMucHV0ID0gKHVybCwgZGF0YSA9IHt9LCBoZWFkZXIgPSB7fSkgPT4ge1xuXHRcdFx0cmV0dXJuIHRoaXMucmVxdWVzdCh7XG5cdFx0XHRcdHVybCxcblx0XHRcdFx0bWV0aG9kOiAnUFVUJyxcblx0XHRcdFx0aGVhZGVyLFxuXHRcdFx0XHRkYXRhXG5cdFx0XHR9KVxuXHRcdH1cblxuXHRcdC8vIGRlbGV0Zeivt+axgu+8jOS4jeaUr+aMgeaUr+S7mOWuneWSjOWktOadoeWwj+eoi+W6jyhIWDIuNi4xNSlcblx0XHR0aGlzLmRlbGV0ZSA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ0RFTEVURScsXG5cdFx0XHRcdGhlYWRlcixcblx0XHRcdFx0ZGF0YVxuXHRcdFx0fSlcblx0XHR9XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IG5ldyBSZXF1ZXN0XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///15\n");
eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _index = __webpack_require__(/*! @/utils/index.js */ 16);\n\n\nvar _validate = _interopRequireDefault(__webpack_require__(/*! @/utils/validate.js */ 17));\nvar _jsBase = __webpack_require__(/*! js-base64 */ 18);\n\n\nvar _index2 = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 19));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError(\"Cannot call a class as a function\");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}var\n\nRequest = /*#__PURE__*/function () {_createClass(Request, [{ key: \"setConfig\",\n // 设置全局默认配置\n value: function setConfig(customConfig) {\n // 深度合并对象,否则会造成对象深层属性丢失\n this.config = (0, _index.deepMerge)(this.config, customConfig);\n }\n\n // 主要请求部分\n }, { key: \"request\", value: function request() {var _this = this;var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n // 检查请求拦截\n if (this.interceptor.request && typeof this.interceptor.request === 'function') {\n var tmpConfig = {};\n var interceptorRequest = this.interceptor.request(options);\n if (interceptorRequest === false) {\n // 返回一个处于pending状态中的Promise,来取消原promise,避免进入then()回调\n return new Promise(function () {});\n }\n this.options = interceptorRequest;\n }\n\n options.dataType = options.dataType || this.config.dataType;\n options.responseType = options.responseType || this.config.responseType;\n options.url = options.url || '';\n options.params = options.params || {};\n options.header = Object.assign({}, this.config.header, options.header);\n options.method = options.method || this.config.method;\n options.sslVerify = false;\n\n // console.log('api.helper-----request', options, this.options)\n\n return new Promise(function (resolve, reject) {\n options.complete = function (response) {\n __f__(\"log\", 'api.helper---options.complete', response, \" at servers/api.helper.js:43\");\n // 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)\n uni.hideLoading();\n // 清除定时器,如果请求回来了,就无需loading\n clearTimeout(_this.config.timer);\n _this.config.timer = null;\n // 判断用户对拦截返回数据的要求,如果originalData为true,返回所有的数据(response)到拦截器,否则只返回response.data\n if (_this.config.originalData) {\n // 判断是否存在拦截器\n if (_this.interceptor.response && typeof _this.interceptor.response === 'function') {\n var resInterceptors = _this.interceptor.response(response);\n // 如果拦截器不返回false,就将拦截器返回的内容给this.$u.post的then回调\n if (resInterceptors !== false) {\n resolve(resInterceptors);\n } else {\n // 如果拦截器返回false,意味着拦截器定义者认为返回有问题,直接接入catch回调\n reject(response);\n }\n } else {\n // 如果要求返回原始数据,就算没有拦截器,也返回最原始的数据\n resolve(response);\n }\n } else {\n if (response.statusCode == 200) {\n if (_this.interceptor.response && typeof _this.interceptor.response ===\n 'function') {\n var _resInterceptors = _this.interceptor.response(response.data);\n if (_resInterceptors !== false) {\n resolve(_resInterceptors);\n } else {\n reject(response.data);\n }\n } else {\n // 如果不是返回原始数据(originalData=false),且没有拦截器的情况下,返回纯数据给then回调\n resolve(response.data);\n }\n } else {\n // 不返回原始数据的情况下,服务器状态码不为200,modal弹框提示\n // if(response.errMsg) {\n // \tuni.showModal({\n // \t\ttitle: response.errMsg\n // \t});\n // }\n if (response.statusCode == 500) {\n uni.showToast({\n title: '服务器异常',\n duration: 2000,\n icon: 'none' });\n\n }\n if (response.statusCode == 401) {\n uni.showToast({\n title: '登录已失效',\n duration: 2000,\n icon: 'none' });\n\n uni.navigateTo({\n url: \"/pages/login/login\" });\n\n }\n reject(response);\n }\n }\n };\n\n // 判断用户传递的URL是否/开头,如果不是,加上/,这里使用了uView的test.js验证库的url()方法\n options.url = _validate.default.url(options.url) ? options.url : (options.baseUrl ? options.baseUrl :\n _this.\n config.baseUrl) + (options.url.\n indexOf('/') == 0 ?\n options.url : '/' + options.url);\n\n // 是否显示loading\n // 加一个是否已有timer定时器的判断,否则有两个同时请求的时候,后者会清除前者的定时器id\n // 而没有清除前者的定时器,导致前者超时,一直显示loading\n if (_this.config.showLoading && !_this.config.timer) {\n _this.config.timer = setTimeout(function () {\n uni.showLoading({\n title: _this.config.loadingText,\n mask: _this.config.loadingMask });\n\n _this.config.timer = null;\n }, _this.config.loadingTime);\n }\n // console.log('api.helper-----finally***request', options)\n uni.request(options);\n });\n // .catch(res => {\n // \t// 如果返回reject(),不让其进入this.$u.post().then().catch()后面的catct()\n // \t// 因为很多人都会忘了写后面的catch(),导致报错捕获不到catch\n // \treturn new Promise(()=>{});\n // })\n } }]);\n\n function Request() {var _this2 = this;_classCallCheck(this, Request);\n this.config = {\n baseUrl: 'http://221.10.127.60:5000', // 请求的根域名\n // 默认的请求头\n header: {},\n method: 'POST',\n // 设置为json,返回后uni.request会对数据进行一次JSON.parse\n dataType: 'json',\n // 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可\n responseType: 'text',\n showLoading: true, // 是否显示请求中的loading\n loadingText: '请求中...',\n loadingTime: 800, // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms\n timer: null, // 定时器\n sslVerify: false, // 定时器\n originalData: false, // 是否在拦截器中返回服务端的原始数据,见文档说明\n loadingMask: true // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透\n };\n\n // 拦截器\n this.interceptor = {\n // 请求前的拦截\n request: function request(config) {\n config.header['Authorization'] = \"Basic \".concat(_jsBase.Base64.encode('wangpc:LZY888@@'));\n try {\n if (config.url.indexOf('crm-app/login') === -\n 1 &&\n _index2.default.state.vuex_token) {\n config.header['X-Auth-Token'] = _index2.default.\n state.vuex_token;\n }\n\n if (config.header['Content-Type'] && config.header['Content-Type'].indexOf(\n 'x-www-form-urlencoded') === -1) {\n config.header['Content-Type'] = \"application/json; charset=utf-8\";\n }\n\n\n if (config.url.indexOf('crm-app') !== -1) {\n // config.baseUrl = 'http://10.0.135.61'\n config.baseUrl = 'http://221.10.127.60:5000';\n } else if (config.url.indexOf('adapter') !== -1) {\n config.baseUrl = 'http://api.c0331.dev.guanyingyun.com';\n // config.baseUrl = 'http://221.10.127.60:5000/cyj'\n } else if (config.url.indexOf('wmdpwebservices') !== -1) {\n // config.baseUrl = 'https://10.0.134.182:9002'\n config.baseUrl = 'http://221.10.127.60:5000/sczx';\n // config.baseUrl = ''\n } else {\n config.baseUrl = 'http://221.10.127.60:5000/wlySap';\n }\n } catch (e) {\n __f__(\"log\", 'error', e, \" at servers/api.helper.js:189\");\n }\n // if (config.url.indexOf('crm-app/login') !== -1 && !store.state.vuex_token) {\n // \tuni.showToast({\n // \t\ttitle: '登录已失效',\n // \t\tduration: 2000,\n // \t\ticon: 'none'\n // \t});\n // \tuni.navigateTo({\n // \t\turl: \"/pages/login/login\"\n // \t})\n // }\n __f__(\"log\", 'helper--interceptor---request-----', config, \" at servers/api.helper.js:201\");\n return config;\n },\n // 请求后的拦截\n response: function response(res) {\n __f__(\"log\", 'helper--iinterceptor---response-----', res, \" at servers/api.helper.js:206\");\n if (res.MSGTYPE === 'S' || res.msgtype === 'S' || res.status === 1 || res.result === \"S\" ||\n res.Status ===\n 'Success') {\n // 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么\n return res;\n } else {\n uni.showToast({\n title: res.MESSAGE || res.msg || res.message || res.ErrMsg,\n duration: 2000,\n icon: 'none' });\n\n return false;\n };\n } };\n\n\n // get请求\n this.get = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n method: 'GET',\n url: url,\n header: header,\n data: data });\n\n };\n\n // post请求\n this.post = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'POST',\n header: header,\n data: data });\n\n };\n\n // put请求,不支持支付宝小程序(HX2.6.15)\n this.put = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'PUT',\n header: header,\n data: data });\n\n };\n\n // delete请求,不支持支付宝和头条小程序(HX2.6.15)\n this.delete = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'DELETE',\n header: header,\n data: data });\n\n };\n }return Request;}();var _default =\n\nnew Request();exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc2VydmVycy9hcGkuaGVscGVyLmpzIl0sIm5hbWVzIjpbIlJlcXVlc3QiLCJjdXN0b21Db25maWciLCJjb25maWciLCJvcHRpb25zIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0IiwidG1wQ29uZmlnIiwiaW50ZXJjZXB0b3JSZXF1ZXN0IiwiUHJvbWlzZSIsImRhdGFUeXBlIiwicmVzcG9uc2VUeXBlIiwidXJsIiwicGFyYW1zIiwiaGVhZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0aG9kIiwic3NsVmVyaWZ5IiwicmVzb2x2ZSIsInJlamVjdCIsImNvbXBsZXRlIiwicmVzcG9uc2UiLCJ1bmkiLCJoaWRlTG9hZGluZyIsImNsZWFyVGltZW91dCIsInRpbWVyIiwib3JpZ2luYWxEYXRhIiwicmVzSW50ZXJjZXB0b3JzIiwic3RhdHVzQ29kZSIsImRhdGEiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwiaWNvbiIsIm5hdmlnYXRlVG8iLCJ2YWxpZGF0ZSIsImJhc2VVcmwiLCJpbmRleE9mIiwic2hvd0xvYWRpbmciLCJzZXRUaW1lb3V0IiwibG9hZGluZ1RleHQiLCJtYXNrIiwibG9hZGluZ01hc2siLCJsb2FkaW5nVGltZSIsIkJhc2U2NCIsImVuY29kZSIsInN0b3JlIiwic3RhdGUiLCJ2dWV4X3Rva2VuIiwiZSIsInJlcyIsIk1TR1RZUEUiLCJtc2d0eXBlIiwic3RhdHVzIiwicmVzdWx0IiwiU3RhdHVzIiwiTUVTU0FHRSIsIm1zZyIsIm1lc3NhZ2UiLCJFcnJNc2ciLCJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoib0lBQUE7OztBQUdBO0FBQ0E7OztBQUdBLHNGOztBQUVNQSxPO0FBQ0w7OEJBQ1VDLFksRUFBYztBQUN2QjtBQUNBLFdBQUtDLE1BQUwsR0FBYyxzQkFBVSxLQUFLQSxNQUFmLEVBQXVCRCxZQUF2QixDQUFkO0FBQ0E7O0FBRUQ7aURBQ3NCLHNCQUFkRSxPQUFjLHVFQUFKLEVB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QTtBQUNBLFNBQUtnQyxJQUFMLEdBQVksVUFBQ2xELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzVDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxNQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtpQyxHQUFMLEdBQVcsVUFBQ25ELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzNDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxLQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtrQyxNQUFMLEdBQWMsVUFBQ3BELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzlDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxRQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDtBQVFBLEc7O0FBRWEsSUFBSTdCLE9BQUosRSIsImZpbGUiOiIxNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGRlZXBNZXJnZVxufSBmcm9tIFwiQC91dGlscy9pbmRleC5qc1wiO1xuaW1wb3J0IHZhbGlkYXRlIGZyb20gXCJAL3V0aWxzL3ZhbGlkYXRlLmpzXCI7XG5pbXBvcnQge1xuXHRCYXNlNjRcbn0gZnJvbSAnanMtYmFzZTY0J1xuaW1wb3J0IHN0b3JlIGZyb20gJ0Avc3RvcmUvaW5kZXguanMnXG5cbmNsYXNzIFJlcXVlc3Qge1xuXHQvLyDorr7nva7lhajlsYDpu5jorqTphY3nva5cblx0c2V0Q29uZmlnKGN1c3RvbUNvbmZpZykge1xuXHRcdC8vIOa3seW6puWQiOW5tuWvueixoe+8jOWQpuWImeS8mumAoOaIkOWvueixoea3seWxguWxnuaAp+S4ouWksVxuXHRcdHRoaXMuY29uZmlnID0gZGVlcE1lcmdlKHRoaXMuY29uZmlnLCBjdXN0b21Db25maWcpO1xuXHR9XG5cblx0Ly8g5Li76KaB6K+35rGC6YOo5YiGXG5cdHJlcXVlc3Qob3B0aW9ucyA9IHt9KSB7XG5cblx0XHQvLyDmo4Dmn6Xor7fmsYLmi6bmiKpcblx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0ICYmIHR5cGVvZiB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3QgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGxldCB0bXBDb25maWcgPSB7fTtcblx0XHRcdGxldCBpbnRlcmNlcHRvclJlcXVlc3QgPSB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3Qob3B0aW9ucyk7XG5cdFx0XHRpZiAoaW50ZXJjZXB0b3JSZXF1ZXN0ID09PSBmYWxzZSkge1xuXHRcdFx0XHQvLyDov5Tlm57kuIDkuKrlpITkuo5wZW5kaW5n54q25oCB5Lit55qEUHJvbWlzZe+8jOadpeWPlua2iOWOn3Byb21pc2XvvIzpgb/lhY3ov5vlhaV0aGVuKCnlm57osINcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTtcblx0XHRcdH1cblx0XHRcdHRoaXMub3B0aW9ucyA9IGludGVyY2VwdG9yUmVxdWVzdDtcblx0XHR9XG5cblx0XHRvcHRpb25zLmRhdGFUeXBlID0gb3B0aW9ucy5kYXRhVHlwZSB8fCB0aGlzLmNvbmZpZy5kYXRhVHlwZTtcblx0XHRvcHRpb25zLnJlc3BvbnNlVHlwZSA9IG9wdGlvbnMucmVzcG9uc2VUeXBlIHx8IHRoaXMuY29uZmlnLnJlc3BvbnNlVHlwZTtcblx0XHRvcHRpb25zLnVybCA9IG9wdGlvbnMudXJsIHx8ICcnO1xuXHRcdG9wdGlvbnMucGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgfHwge307XG5cdFx0b3B0aW9ucy5oZWFkZXIgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbmZpZy5oZWFkZXIsIG9wdGlvbnMuaGVhZGVyKTtcblx0XHRvcHRpb25zLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kIHx8IHRoaXMuY29uZmlnLm1ldGhvZDtcblx0XHRvcHRpb25zLnNzbFZlcmlmeSA9IGZhbHNlXG5cblx0XHQvLyBjb25zb2xlLmxvZygnYXBpLmhlbHBlci0tLS0tcmVxdWVzdCcsIG9wdGlvbnMsIHRoaXMub3B0aW9ucylcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRvcHRpb25zLmNvbXBsZXRlID0gKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdhcGkuaGVscGVyLS0tb3B0aW9ucy5jb21wbGV0ZScsIHJlc3BvbnNlKVxuXHRcdFx0XHQvLyDor7fmsYLov5Tlm57lkI7vvIzpmpDol49sb2FkaW5nKOWmguaenOivt+axgui/lOWbnuW/q+eahOivne+8jOWPr+iDveS8muayoeaciWxvYWRpbmcpXG5cdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHQvLyDmuIXpmaTlrprml7blmajvvIzlpoLmnpzor7fmsYLlm57mnaXkuobvvIzlsLHml6DpnIBsb2FkaW5nXG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLmNvbmZpZy50aW1lcik7XG5cdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0Ly8g5Yik5pat55So5oi35a+55oum5oiq6L+U5Zue5pWw5o2u55qE6KaB5rGC77yM5aaC5p6cb3JpZ2luYWxEYXRh5Li6dHJ1Ze+8jOi/lOWbnuaJgOacieeahOaVsOaNrihyZXNwb25zZSnliLDmi6bmiKrlmajvvIzlkKbliJnlj6rov5Tlm55yZXNwb25zZS5kYXRhXG5cdFx0XHRcdGlmICh0aGlzLmNvbmZpZy5vcmlnaW5hbERhdGEpIHtcblx0XHRcdFx0XHQvLyDliKTmlq3mmK/lkKblrZjlnKjmi6bmiKrlmahcblx0XHRcdFx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSAmJiB0eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UpO1xuXHRcdFx0XHRcdFx0Ly8g5aaC5p6c5oum5oiq5Zmo5LiN6L+U5ZueZmFsc2XvvIzlsLHlsIbmi6bmiKrlmajov5Tlm57nmoTlhoXlrrnnu5l0aGlzLiR1LnBvc3TnmoR0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRpZiAocmVzSW50ZXJjZXB0b3JzICE9PSBmYWxzZSkge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJlc0ludGVyY2VwdG9ycyk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyDlpoLmnpzmi6bmiKrlmajov5Tlm55mYWxzZe+8jOaEj+WRs+edgOaLpuaIquWZqOWumuS5ieiAheiupOS4uui/lOWbnuaciemXrumimO+8jOebtOaOpeaOpeWFpWNhdGNo5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOWmguaenOimgeaxgui/lOWbnuWOn+Wni+aVsOaNru+8jOWwseeul+ayoeacieaLpuaIquWZqO+8jOS5n+i/lOWbnuacgOWOn+Wni+eahOaVsOaNrlxuXHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNwb25zZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgJiYgdHlwZW9mIHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgPT09XG5cdFx0XHRcdFx0XHRcdCdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXNJbnRlcmNlcHRvcnMgIT09IGZhbHNlKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNJbnRlcmNlcHRvcnMpO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZS5kYXRhKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Ly8g5aaC5p6c5LiN5piv6L+U5Zue5Y6f5aeL5pWw5o2uKG9yaWdpbmFsRGF0YT1mYWxzZSnvvIzkuJTmsqHmnInmi6bmiKrlmajnmoTmg4XlhrXkuIvvvIzov5Tlm57nuq/mlbDmja7nu5l0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOS4jei/lOWbnuWOn+Wni+aVsOaNrueahOaDheWGteS4i++8jOacjeWKoeWZqOeKtuaAgeeggeS4jeS4ujIwMO+8jG1vZGFs5by55qGG5o+Q56S6XG5cdFx0XHRcdFx0XHQvLyBpZihyZXNwb25zZS5lcnJNc2cpIHtcblx0XHRcdFx0XHRcdC8vIFx0dW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdFx0XHQvLyBcdFx0dGl0bGU6IHJlc3BvbnNlLmVyck1zZ1xuXHRcdFx0XHRcdFx0Ly8gXHR9KTtcblx0XHRcdFx0XHRcdC8vIH1cblx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDUwMCkge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+acjeWKoeWZqOW8guW4uCcsXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDAsXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PSA0MDEpIHtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfnmbvlvZXlt7LlpLHmlYgnLFxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHRcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZWplY3QocmVzcG9uc2UpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIOWIpOaWreeUqOaIt+S8oOmAkueahFVSTOaYr+WQpi/lvIDlpLQs5aaC5p6c5LiN5pivLOWKoOS4ii/vvIzov5nph4zkvb/nlKjkuoZ1Vmlld+eahHRlc3QuanPpqozor4HlupPnmoR1cmwoKeaWueazlVxuXHRcdFx0b3B0aW9ucy51cmwgPSB2YWxpZGF0ZS51cmwob3B0aW9ucy51cmwpID8gb3B0aW9ucy51cmwgOiAoKG9wdGlvbnMuYmFzZVVybCA/IG9wdGlvbnMuYmFzZVVybCA6XG5cdFx0XHRcdHRoaXNcblx0XHRcdFx0LmNvbmZpZy5iYXNlVXJsKSArIChvcHRpb25zLnVybFxuXHRcdFx0XHQuaW5kZXhPZignLycpID09IDAgP1xuXHRcdFx0XHRvcHRpb25zLnVybCA6ICcvJyArIG9wdGlvbnMudXJsKSk7XG5cblx0XHRcdC8vIOaYr+WQpuaYvuekumxvYWRpbmdcblx0XHRcdC8vIOWKoOS4gOS4quaYr+WQpuW3suaciXRpbWVy5a6a5pe25Zmo55qE5Yik5pat77yM5ZCm5YiZ5pyJ5Lik5Liq5ZCM5pe26K+35rGC55qE5pe25YCZ77yM5ZCO6ICF5Lya5riF6Zmk5YmN6ICF55qE5a6a5pe25ZmoaWRcblx0XHRcdC8vIOiAjOayoeaciea4hemZpOWJjeiAheeahOWumuaXtuWZqO+8jOWvvOiHtOWJjeiAhei2heaXtu+8jOS4gOebtOaYvuekumxvYWRpbmdcblx0XHRcdGlmICh0aGlzLmNvbmZpZy5zaG93TG9hZGluZyAmJiAhdGhpcy5jb25maWcudGltZXIpIHtcblx0XHRcdFx0dGhpcy5jb25maWcudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuY29uZmlnLmxvYWRpbmdUZXh0LFxuXHRcdFx0XHRcdFx0bWFzazogdGhpcy5jb25maWcubG9hZGluZ01hc2tcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0fSwgdGhpcy5jb25maWcubG9hZGluZ1RpbWUpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2FwaS5oZWxwZXItLS0tLWZpbmFsbHkqKipyZXF1ZXN0Jywgb3B0aW9ucylcblx0XHRcdHVuaS5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdH0pXG5cdFx0Ly8gLmNhdGNoKHJlcyA9PiB7XG5cdFx0Ly8gXHQvLyDlpoLmnpzov5Tlm55yZWplY3QoKe+8jOS4jeiuqeWFtui/m+WFpXRoaXMuJHUucG9zdCgpLnRoZW4oKS5jYXRjaCgp5ZCO6Z2i55qEY2F0Y3QoKVxuXHRcdC8vIFx0Ly8g5Zug5Li65b6I5aSa5Lq66YO95Lya5b+Y5LqG5YaZ5ZCO6Z2i55qEY2F0Y2goKe+8jOWvvOiHtOaKpemUmeaNleiOt+S4jeWIsGNhdGNoXG5cdFx0Ly8gXHRyZXR1cm4gbmV3IFByb21pc2UoKCk9Pnt9KTtcblx0XHQvLyB9KVxuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYXNlVXJsOiAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMCcsIC8vIOivt+axgueahOagueWfn+WQjVxuXHRcdFx0Ly8g6buY6K6k55qE6K+35rGC5aS0XG5cdFx0XHRoZWFkZXI6IHt9LFxuXHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHQvLyDorr7nva7kuLpqc29u77yM6L+U5Zue5ZCOdW5pLnJlcXVlc3TkvJrlr7nmlbDmja7ov5vooYzkuIDmrKFKU09OLnBhcnNlXG5cdFx0XHRkYXRhVHlwZTogJ2pzb24nLFxuXHRcdFx0Ly8g5q2k5Y+C5pWw5peg6ZyA5aSE55CG77yM5Zug5Li6NSvlkozmlK/ku5jlrp3lsI/nqIvluo/kuI3mlK/mjIHvvIzpu5jorqTkuLp0ZXh05Y2z5Y+vXG5cdFx0XHRyZXNwb25zZVR5cGU6ICd0ZXh0Jyxcblx0XHRcdHNob3dMb2FkaW5nOiB0cnVlLCAvLyDmmK/lkKbmmL7npLror7fmsYLkuK3nmoRsb2FkaW5nXG5cdFx0XHRsb2FkaW5nVGV4dDogJ+ivt+axguS4rS4uLicsXG5cdFx0XHRsb2FkaW5nVGltZTogODAwLCAvLyDlnKjmraTml7bpl7TlhoXvvIzor7fmsYLov5jmsqHlm57mnaXnmoTor53vvIzlsLHmmL7npLrliqDovb3kuK3liqjnlLvvvIzljZXkvY1tc1xuXHRcdFx0dGltZXI6IG51bGwsIC8vIOWumuaXtuWZqFxuXHRcdFx0c3NsVmVyaWZ5OiBmYWxzZSwgLy8g5a6a5pe25ZmoXG5cdFx0XHRvcmlnaW5hbERhdGE6IGZhbHNlLCAvLyDmmK/lkKblnKjmi6bmiKrlmajkuK3ov5Tlm57mnI3liqHnq6/nmoTljp/lp4vmlbDmja7vvIzop4HmlofmoaPor7TmmI5cblx0XHRcdGxvYWRpbmdNYXNrOiB0cnVlLCAvLyDlsZXnpLpsb2FkaW5n55qE5pe25YCZ77yM5piv5ZCm57uZ5LiA5Liq6YCP5piO55qE6JKZ5bGC77yM6Ziy5q2i6Kem5pG456m/6YCPXG5cdFx0fVxuXG5cdFx0Ly8g5oum5oiq5ZmoXG5cdFx0dGhpcy5pbnRlcmNlcHRvciA9IHtcblx0XHRcdC8vIOivt+axguWJjeeahOaLpuaIqlxuXHRcdFx0cmVxdWVzdDogKGNvbmZpZykgPT4ge1xuXHRcdFx0XHRjb25maWcuaGVhZGVyWydBdXRob3JpemF0aW9uJ10gPSBgQmFzaWMgJHtCYXNlNjQuZW5jb2RlKCd3YW5ncGM6TFpZODg4QEAnKX1gO1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSA9PT0gLVxuXHRcdFx0XHRcdFx0MSAmJlxuXHRcdFx0XHRcdFx0c3RvcmUuc3RhdGUudnVleF90b2tlbikge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmhlYWRlclsnWC1BdXRoLVRva2VuJ10gPSBzdG9yZVxuXHRcdFx0XHRcdFx0XHQuc3RhdGUudnVleF90b2tlblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSAmJiBjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXS5pbmRleE9mKFxuXHRcdFx0XHRcdFx0XHQneC13d3ctZm9ybS11cmxlbmNvZGVkJykgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSA9IFwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOFwiXG5cdFx0XHRcdFx0fVxuXG5cblx0XHRcdFx0XHRpZiAoY29uZmlnLnVybC5pbmRleE9mKCdjcm0tYXBwJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMTAuMC4xMzUuNjEnXG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwJ1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoY29uZmlnLnVybC5pbmRleE9mKCdhZGFwdGVyJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vYXBpLmMwMzMxLmRldi5ndWFueWluZ3l1bi5jb20nXG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL2N5aidcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNvbmZpZy51cmwuaW5kZXhPZignd21kcHdlYnNlcnZpY2VzJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwczovLzEwLjAuMTM0LjE4Mjo5MDAyJ1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMC9zY3p4J1xuXHRcdFx0XHRcdFx0Ly8gY29uZmlnLmJhc2VVcmwgPSAnJ1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL3dseVNhcCdcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZXJyb3InLCBlKVxuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSAhPT0gLTEgJiYgIXN0b3JlLnN0YXRlLnZ1ZXhfdG9rZW4pIHtcblx0XHRcdFx0Ly8gXHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0Ly8gXHRcdHRpdGxlOiAn55m75b2V5bey5aSx5pWIJyxcblx0XHRcdFx0Ly8gXHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHQvLyBcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdC8vIFx0fSk7XG5cdFx0XHRcdC8vIFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHQvLyBcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdC8vIFx0fSlcblx0XHRcdFx0Ly8gfVxuXHRcdFx0XHRjb25zb2xlLmxvZygnaGVscGVyLS1pbnRlcmNlcHRvci0tLXJlcXVlc3QtLS0tLScsIGNvbmZpZylcblx0XHRcdFx0cmV0dXJuIGNvbmZpZztcblx0XHRcdH0sXG5cdFx0XHQvLyDor7fmsYLlkI7nmoTmi6bmiKpcblx0XHRcdHJlc3BvbnNlOiAocmVzKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdoZWxwZXItLWlpbnRlcmNlcHRvci0tLXJlc3BvbnNlLS0tLS0nLCByZXMpXG5cdFx0XHRcdGlmIChyZXMuTVNHVFlQRSA9PT0gJ1MnIHx8IHJlcy5tc2d0eXBlID09PSAnUycgfHwgcmVzLnN0YXR1cyA9PT0gMSB8fCByZXMucmVzdWx0ID09PSBcIlNcIiB8fFxuXHRcdFx0XHRcdHJlcy5TdGF0dXMgPT09XG5cdFx0XHRcdFx0J1N1Y2Nlc3MnKSB7XG5cdFx0XHRcdFx0Ly8g5aaC5p6c5oqKb3JpZ2luYWxEYXRh6K6+572u5Li65LqGdHJ1Ze+8jOi/memHjHJldHVybuWbnuS7gOS5iO+8jHRoaXMuJHUucG9zdOeahHRoZW7lm57osIPkuK3lsLHkvJrlvpfliLDku4DkuYhcblx0XHRcdFx0XHRyZXR1cm4gcmVzO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5NRVNTQUdFIHx8IHJlcy5tc2cgfHwgcmVzLm1lc3NhZ2UgfHwgcmVzLkVyck1zZyxcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZ2V06K+35rGCXG5cdFx0dGhpcy5nZXQgPSAodXJsLCBkYXRhID0ge30sIGhlYWRlciA9IHt9KSA9PiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5yZXF1ZXN0KHtcblx0XHRcdFx0bWV0aG9kOiAnR0VUJyxcblx0XHRcdFx0dXJsLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcG9zdOivt+axglxuXHRcdHRoaXMucG9zdCA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcHV06K+35rGC77yM5LiN5pSv5oyB5pSv5LuY5a6d5bCP56iL5bqPKEhYMi42LjE1KVxuXHRcdHRoaXMucHV0ID0gKHVybCwgZGF0YSA9IHt9LCBoZWFkZXIgPSB7fSkgPT4ge1xuXHRcdFx0cmV0dXJuIHRoaXMucmVxdWVzdCh7XG5cdFx0XHRcdHVybCxcblx0XHRcdFx0bWV0aG9kOiAnUFVUJyxcblx0XHRcdFx0aGVhZGVyLFxuXHRcdFx0XHRkYXRhXG5cdFx0XHR9KVxuXHRcdH1cblxuXHRcdC8vIGRlbGV0Zeivt+axgu+8jOS4jeaUr+aMgeaUr+S7mOWuneWSjOWktOadoeWwj+eoi+W6jyhIWDIuNi4xNSlcblx0XHR0aGlzLmRlbGV0ZSA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ0RFTEVURScsXG5cdFx0XHRcdGhlYWRlcixcblx0XHRcdFx0ZGF0YVxuXHRcdFx0fSlcblx0XHR9XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IG5ldyBSZXF1ZXN0XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///15\n");
/***/ }),
......
......@@ -2068,7 +2068,7 @@ index;exports.default = _default;
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _index = __webpack_require__(/*! @/utils/index.js */ 16);\n\n\nvar _validate = _interopRequireDefault(__webpack_require__(/*! @/utils/validate.js */ 17));\nvar _jsBase = __webpack_require__(/*! js-base64 */ 18);\n\n\nvar _index2 = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 19));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError(\"Cannot call a class as a function\");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}var\n\nRequest = /*#__PURE__*/function () {_createClass(Request, [{ key: \"setConfig\",\n // 设置全局默认配置\n value: function setConfig(customConfig) {\n // 深度合并对象,否则会造成对象深层属性丢失\n this.config = (0, _index.deepMerge)(this.config, customConfig);\n }\n\n // 主要请求部分\n }, { key: \"request\", value: function request() {var _this = this;var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n // 检查请求拦截\n if (this.interceptor.request && typeof this.interceptor.request === 'function') {\n var tmpConfig = {};\n var interceptorRequest = this.interceptor.request(options);\n if (interceptorRequest === false) {\n // 返回一个处于pending状态中的Promise,来取消原promise,避免进入then()回调\n return new Promise(function () {});\n }\n this.options = interceptorRequest;\n }\n\n options.dataType = options.dataType || this.config.dataType;\n options.responseType = options.responseType || this.config.responseType;\n options.url = options.url || '';\n options.params = options.params || {};\n options.header = Object.assign({}, this.config.header, options.header);\n options.method = options.method || this.config.method;\n options.sslVerify = false;\n\n // console.log('api.helper-----request', options, this.options)\n\n return new Promise(function (resolve, reject) {\n options.complete = function (response) {\n __f__(\"log\", 'api.helper---options.complete', response, \" at servers/api.helper.js:43\");\n // 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)\n uni.hideLoading();\n // 清除定时器,如果请求回来了,就无需loading\n clearTimeout(_this.config.timer);\n _this.config.timer = null;\n // 判断用户对拦截返回数据的要求,如果originalData为true,返回所有的数据(response)到拦截器,否则只返回response.data\n if (_this.config.originalData) {\n // 判断是否存在拦截器\n if (_this.interceptor.response && typeof _this.interceptor.response === 'function') {\n var resInterceptors = _this.interceptor.response(response);\n // 如果拦截器不返回false,就将拦截器返回的内容给this.$u.post的then回调\n if (resInterceptors !== false) {\n resolve(resInterceptors);\n } else {\n // 如果拦截器返回false,意味着拦截器定义者认为返回有问题,直接接入catch回调\n reject(response);\n }\n } else {\n // 如果要求返回原始数据,就算没有拦截器,也返回最原始的数据\n resolve(response);\n }\n } else {\n if (response.statusCode == 200) {\n if (_this.interceptor.response && typeof _this.interceptor.response ===\n 'function') {\n var _resInterceptors = _this.interceptor.response(response.data);\n if (_resInterceptors !== false) {\n resolve(_resInterceptors);\n } else {\n reject(response.data);\n }\n } else {\n // 如果不是返回原始数据(originalData=false),且没有拦截器的情况下,返回纯数据给then回调\n resolve(response.data);\n }\n } else {\n // 不返回原始数据的情况下,服务器状态码不为200,modal弹框提示\n // if(response.errMsg) {\n // \tuni.showModal({\n // \t\ttitle: response.errMsg\n // \t});\n // }\n if (response.statusCode == 500) {\n uni.showToast({\n title: '服务器异常',\n duration: 2000,\n icon: 'none' });\n\n }\n if (response.statusCode == 401) {\n uni.showToast({\n title: '登录已失效',\n duration: 2000,\n icon: 'none' });\n\n uni.navigateTo({\n url: \"/pages/login/login\" });\n\n }\n reject(response);\n }\n }\n };\n\n // 判断用户传递的URL是否/开头,如果不是,加上/,这里使用了uView的test.js验证库的url()方法\n options.url = _validate.default.url(options.url) ? options.url : (options.baseUrl ? options.baseUrl :\n _this.\n config.baseUrl) + (options.url.\n indexOf('/') == 0 ?\n options.url : '/' + options.url);\n\n // 是否显示loading\n // 加一个是否已有timer定时器的判断,否则有两个同时请求的时候,后者会清除前者的定时器id\n // 而没有清除前者的定时器,导致前者超时,一直显示loading\n if (_this.config.showLoading && !_this.config.timer) {\n _this.config.timer = setTimeout(function () {\n uni.showLoading({\n title: _this.config.loadingText,\n mask: _this.config.loadingMask });\n\n _this.config.timer = null;\n }, _this.config.loadingTime);\n }\n // console.log('api.helper-----finally***request', options)\n uni.request(options);\n });\n // .catch(res => {\n // \t// 如果返回reject(),不让其进入this.$u.post().then().catch()后面的catct()\n // \t// 因为很多人都会忘了写后面的catch(),导致报错捕获不到catch\n // \treturn new Promise(()=>{});\n // })\n } }]);\n\n function Request() {var _this2 = this;_classCallCheck(this, Request);\n this.config = {\n baseUrl: 'http://221.10.127.60:5000', // 请求的根域名\n // 默认的请求头\n header: {},\n method: 'POST',\n // 设置为json,返回后uni.request会对数据进行一次JSON.parse\n dataType: 'json',\n // 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可\n responseType: 'text',\n showLoading: true, // 是否显示请求中的loading\n loadingText: '请求中...',\n loadingTime: 800, // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms\n timer: null, // 定时器\n sslVerify: false, // 定时器\n originalData: false, // 是否在拦截器中返回服务端的原始数据,见文档说明\n loadingMask: true // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透\n };\n\n // 拦截器\n this.interceptor = {\n // 请求前的拦截\n request: function request(config) {\n config.header['Authorization'] = \"Basic \".concat(_jsBase.Base64.encode('wangpc:LZY888@@'));\n try {\n if (config.url.indexOf('crm-app/login') === -\n 1 &&\n _index2.default.state.vuex_token) {\n config.header['X-Auth-Token'] = _index2.default.\n state.vuex_token;\n }\n\n if (config.header['Content-Type'] && config.header['Content-Type'].indexOf(\n 'x-www-form-urlencoded') === -1) {\n config.header['Content-Type'] = \"application/json; charset=utf-8\";\n }\n\n\n if (config.url.indexOf('crm-app') !== -1) {\n // config.baseUrl = 'http://10.0.135.61'\n config.baseUrl = 'http://221.10.127.60:5000';\n } else if (config.url.indexOf('adapter') !== -1) {\n // config.baseUrl = 'http://api.c0331.dev.guanyingyun.com'\n config.baseUrl = 'http://221.10.127.60:5000/cyj';\n } else if (config.url.indexOf('wmdpwebservices') !== -1) {\n // config.baseUrl = 'https://10.0.134.182:9002'\n config.baseUrl = 'http://221.10.127.60:5000/sczx';\n // config.baseUrl = ''\n } else {\n config.baseUrl = 'http://221.10.127.60:5000/wlySap';\n }\n } catch (e) {\n __f__(\"log\", 'error', e, \" at servers/api.helper.js:189\");\n }\n // if (config.url.indexOf('crm-app/login') !== -1 && !store.state.vuex_token) {\n // \tuni.showToast({\n // \t\ttitle: '登录已失效',\n // \t\tduration: 2000,\n // \t\ticon: 'none'\n // \t});\n // \tuni.navigateTo({\n // \t\turl: \"/pages/login/login\"\n // \t})\n // }\n __f__(\"log\", 'helper--interceptor---request-----', config, \" at servers/api.helper.js:201\");\n return config;\n },\n // 请求后的拦截\n response: function response(res) {\n __f__(\"log\", 'helper--iinterceptor---response-----', res, \" at servers/api.helper.js:206\");\n if (res.MSGTYPE === 'S' || res.msgtype === 'S' || res.status === 1 || res.result === \"S\" ||\n res.Status ===\n 'Success') {\n // 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么\n return res;\n } else {\n uni.showToast({\n title: res.MESSAGE || res.msg || res.message || res.ErrMsg,\n duration: 2000,\n icon: 'none' });\n\n return false;\n };\n } };\n\n\n // get请求\n this.get = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n method: 'GET',\n url: url,\n header: header,\n data: data });\n\n };\n\n // post请求\n this.post = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'POST',\n header: header,\n data: data });\n\n };\n\n // put请求,不支持支付宝小程序(HX2.6.15)\n this.put = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'PUT',\n header: header,\n data: data });\n\n };\n\n // delete请求,不支持支付宝和头条小程序(HX2.6.15)\n this.delete = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'DELETE',\n header: header,\n data: data });\n\n };\n }return Request;}();var _default =\n\nnew Request();exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc2VydmVycy9hcGkuaGVscGVyLmpzIl0sIm5hbWVzIjpbIlJlcXVlc3QiLCJjdXN0b21Db25maWciLCJjb25maWciLCJvcHRpb25zIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0IiwidG1wQ29uZmlnIiwiaW50ZXJjZXB0b3JSZXF1ZXN0IiwiUHJvbWlzZSIsImRhdGFUeXBlIiwicmVzcG9uc2VUeXBlIiwidXJsIiwicGFyYW1zIiwiaGVhZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0aG9kIiwic3NsVmVyaWZ5IiwicmVzb2x2ZSIsInJlamVjdCIsImNvbXBsZXRlIiwicmVzcG9uc2UiLCJ1bmkiLCJoaWRlTG9hZGluZyIsImNsZWFyVGltZW91dCIsInRpbWVyIiwib3JpZ2luYWxEYXRhIiwicmVzSW50ZXJjZXB0b3JzIiwic3RhdHVzQ29kZSIsImRhdGEiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwiaWNvbiIsIm5hdmlnYXRlVG8iLCJ2YWxpZGF0ZSIsImJhc2VVcmwiLCJpbmRleE9mIiwic2hvd0xvYWRpbmciLCJzZXRUaW1lb3V0IiwibG9hZGluZ1RleHQiLCJtYXNrIiwibG9hZGluZ01hc2siLCJsb2FkaW5nVGltZSIsIkJhc2U2NCIsImVuY29kZSIsInN0b3JlIiwic3RhdGUiLCJ2dWV4X3Rva2VuIiwiZSIsInJlcyIsIk1TR1RZUEUiLCJtc2d0eXBlIiwic3RhdHVzIiwicmVzdWx0IiwiU3RhdHVzIiwiTUVTU0FHRSIsIm1zZyIsIm1lc3NhZ2UiLCJFcnJNc2ciLCJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoib0lBQUE7OztBQUdBO0FBQ0E7OztBQUdBLHNGOztBQUVNQSxPO0FBQ0w7OEJBQ1VDLFksRUFBYztBQUN2QjtBQUNBLFdBQUtDLE1BQUwsR0FBYyxzQkFBVSxLQUFLQSxNQUFmLEVBQXVCRCxZQUF2QixDQUFkO0FBQ0E7O0FBRUQ7aURBQ3NCLHNCQUFkRSxPQUFjLHVFQUFKLEVB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QTtBQUNBLFNBQUtnQyxJQUFMLEdBQVksVUFBQ2xELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzVDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxNQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtpQyxHQUFMLEdBQVcsVUFBQ25ELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzNDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxLQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtrQyxNQUFMLEdBQWMsVUFBQ3BELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzlDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxRQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDtBQVFBLEc7O0FBRWEsSUFBSTdCLE9BQUosRSIsImZpbGUiOiIxNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGRlZXBNZXJnZVxufSBmcm9tIFwiQC91dGlscy9pbmRleC5qc1wiO1xuaW1wb3J0IHZhbGlkYXRlIGZyb20gXCJAL3V0aWxzL3ZhbGlkYXRlLmpzXCI7XG5pbXBvcnQge1xuXHRCYXNlNjRcbn0gZnJvbSAnanMtYmFzZTY0J1xuaW1wb3J0IHN0b3JlIGZyb20gJ0Avc3RvcmUvaW5kZXguanMnXG5cbmNsYXNzIFJlcXVlc3Qge1xuXHQvLyDorr7nva7lhajlsYDpu5jorqTphY3nva5cblx0c2V0Q29uZmlnKGN1c3RvbUNvbmZpZykge1xuXHRcdC8vIOa3seW6puWQiOW5tuWvueixoe+8jOWQpuWImeS8mumAoOaIkOWvueixoea3seWxguWxnuaAp+S4ouWksVxuXHRcdHRoaXMuY29uZmlnID0gZGVlcE1lcmdlKHRoaXMuY29uZmlnLCBjdXN0b21Db25maWcpO1xuXHR9XG5cblx0Ly8g5Li76KaB6K+35rGC6YOo5YiGXG5cdHJlcXVlc3Qob3B0aW9ucyA9IHt9KSB7XG5cblx0XHQvLyDmo4Dmn6Xor7fmsYLmi6bmiKpcblx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0ICYmIHR5cGVvZiB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3QgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGxldCB0bXBDb25maWcgPSB7fTtcblx0XHRcdGxldCBpbnRlcmNlcHRvclJlcXVlc3QgPSB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3Qob3B0aW9ucyk7XG5cdFx0XHRpZiAoaW50ZXJjZXB0b3JSZXF1ZXN0ID09PSBmYWxzZSkge1xuXHRcdFx0XHQvLyDov5Tlm57kuIDkuKrlpITkuo5wZW5kaW5n54q25oCB5Lit55qEUHJvbWlzZe+8jOadpeWPlua2iOWOn3Byb21pc2XvvIzpgb/lhY3ov5vlhaV0aGVuKCnlm57osINcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTtcblx0XHRcdH1cblx0XHRcdHRoaXMub3B0aW9ucyA9IGludGVyY2VwdG9yUmVxdWVzdDtcblx0XHR9XG5cblx0XHRvcHRpb25zLmRhdGFUeXBlID0gb3B0aW9ucy5kYXRhVHlwZSB8fCB0aGlzLmNvbmZpZy5kYXRhVHlwZTtcblx0XHRvcHRpb25zLnJlc3BvbnNlVHlwZSA9IG9wdGlvbnMucmVzcG9uc2VUeXBlIHx8IHRoaXMuY29uZmlnLnJlc3BvbnNlVHlwZTtcblx0XHRvcHRpb25zLnVybCA9IG9wdGlvbnMudXJsIHx8ICcnO1xuXHRcdG9wdGlvbnMucGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgfHwge307XG5cdFx0b3B0aW9ucy5oZWFkZXIgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbmZpZy5oZWFkZXIsIG9wdGlvbnMuaGVhZGVyKTtcblx0XHRvcHRpb25zLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kIHx8IHRoaXMuY29uZmlnLm1ldGhvZDtcblx0XHRvcHRpb25zLnNzbFZlcmlmeSA9IGZhbHNlXG5cblx0XHQvLyBjb25zb2xlLmxvZygnYXBpLmhlbHBlci0tLS0tcmVxdWVzdCcsIG9wdGlvbnMsIHRoaXMub3B0aW9ucylcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRvcHRpb25zLmNvbXBsZXRlID0gKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdhcGkuaGVscGVyLS0tb3B0aW9ucy5jb21wbGV0ZScsIHJlc3BvbnNlKVxuXHRcdFx0XHQvLyDor7fmsYLov5Tlm57lkI7vvIzpmpDol49sb2FkaW5nKOWmguaenOivt+axgui/lOWbnuW/q+eahOivne+8jOWPr+iDveS8muayoeaciWxvYWRpbmcpXG5cdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHQvLyDmuIXpmaTlrprml7blmajvvIzlpoLmnpzor7fmsYLlm57mnaXkuobvvIzlsLHml6DpnIBsb2FkaW5nXG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLmNvbmZpZy50aW1lcik7XG5cdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0Ly8g5Yik5pat55So5oi35a+55oum5oiq6L+U5Zue5pWw5o2u55qE6KaB5rGC77yM5aaC5p6cb3JpZ2luYWxEYXRh5Li6dHJ1Ze+8jOi/lOWbnuaJgOacieeahOaVsOaNrihyZXNwb25zZSnliLDmi6bmiKrlmajvvIzlkKbliJnlj6rov5Tlm55yZXNwb25zZS5kYXRhXG5cdFx0XHRcdGlmICh0aGlzLmNvbmZpZy5vcmlnaW5hbERhdGEpIHtcblx0XHRcdFx0XHQvLyDliKTmlq3mmK/lkKblrZjlnKjmi6bmiKrlmahcblx0XHRcdFx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSAmJiB0eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UpO1xuXHRcdFx0XHRcdFx0Ly8g5aaC5p6c5oum5oiq5Zmo5LiN6L+U5ZueZmFsc2XvvIzlsLHlsIbmi6bmiKrlmajov5Tlm57nmoTlhoXlrrnnu5l0aGlzLiR1LnBvc3TnmoR0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRpZiAocmVzSW50ZXJjZXB0b3JzICE9PSBmYWxzZSkge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJlc0ludGVyY2VwdG9ycyk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyDlpoLmnpzmi6bmiKrlmajov5Tlm55mYWxzZe+8jOaEj+WRs+edgOaLpuaIquWZqOWumuS5ieiAheiupOS4uui/lOWbnuaciemXrumimO+8jOebtOaOpeaOpeWFpWNhdGNo5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOWmguaenOimgeaxgui/lOWbnuWOn+Wni+aVsOaNru+8jOWwseeul+ayoeacieaLpuaIquWZqO+8jOS5n+i/lOWbnuacgOWOn+Wni+eahOaVsOaNrlxuXHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNwb25zZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgJiYgdHlwZW9mIHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgPT09XG5cdFx0XHRcdFx0XHRcdCdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXNJbnRlcmNlcHRvcnMgIT09IGZhbHNlKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNJbnRlcmNlcHRvcnMpO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZS5kYXRhKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Ly8g5aaC5p6c5LiN5piv6L+U5Zue5Y6f5aeL5pWw5o2uKG9yaWdpbmFsRGF0YT1mYWxzZSnvvIzkuJTmsqHmnInmi6bmiKrlmajnmoTmg4XlhrXkuIvvvIzov5Tlm57nuq/mlbDmja7nu5l0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOS4jei/lOWbnuWOn+Wni+aVsOaNrueahOaDheWGteS4i++8jOacjeWKoeWZqOeKtuaAgeeggeS4jeS4ujIwMO+8jG1vZGFs5by55qGG5o+Q56S6XG5cdFx0XHRcdFx0XHQvLyBpZihyZXNwb25zZS5lcnJNc2cpIHtcblx0XHRcdFx0XHRcdC8vIFx0dW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdFx0XHQvLyBcdFx0dGl0bGU6IHJlc3BvbnNlLmVyck1zZ1xuXHRcdFx0XHRcdFx0Ly8gXHR9KTtcblx0XHRcdFx0XHRcdC8vIH1cblx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDUwMCkge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+acjeWKoeWZqOW8guW4uCcsXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDAsXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PSA0MDEpIHtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfnmbvlvZXlt7LlpLHmlYgnLFxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHRcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZWplY3QocmVzcG9uc2UpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIOWIpOaWreeUqOaIt+S8oOmAkueahFVSTOaYr+WQpi/lvIDlpLQs5aaC5p6c5LiN5pivLOWKoOS4ii/vvIzov5nph4zkvb/nlKjkuoZ1Vmlld+eahHRlc3QuanPpqozor4HlupPnmoR1cmwoKeaWueazlVxuXHRcdFx0b3B0aW9ucy51cmwgPSB2YWxpZGF0ZS51cmwob3B0aW9ucy51cmwpID8gb3B0aW9ucy51cmwgOiAoKG9wdGlvbnMuYmFzZVVybCA/IG9wdGlvbnMuYmFzZVVybCA6XG5cdFx0XHRcdHRoaXNcblx0XHRcdFx0LmNvbmZpZy5iYXNlVXJsKSArIChvcHRpb25zLnVybFxuXHRcdFx0XHQuaW5kZXhPZignLycpID09IDAgP1xuXHRcdFx0XHRvcHRpb25zLnVybCA6ICcvJyArIG9wdGlvbnMudXJsKSk7XG5cblx0XHRcdC8vIOaYr+WQpuaYvuekumxvYWRpbmdcblx0XHRcdC8vIOWKoOS4gOS4quaYr+WQpuW3suaciXRpbWVy5a6a5pe25Zmo55qE5Yik5pat77yM5ZCm5YiZ5pyJ5Lik5Liq5ZCM5pe26K+35rGC55qE5pe25YCZ77yM5ZCO6ICF5Lya5riF6Zmk5YmN6ICF55qE5a6a5pe25ZmoaWRcblx0XHRcdC8vIOiAjOayoeaciea4hemZpOWJjeiAheeahOWumuaXtuWZqO+8jOWvvOiHtOWJjeiAhei2heaXtu+8jOS4gOebtOaYvuekumxvYWRpbmdcblx0XHRcdGlmICh0aGlzLmNvbmZpZy5zaG93TG9hZGluZyAmJiAhdGhpcy5jb25maWcudGltZXIpIHtcblx0XHRcdFx0dGhpcy5jb25maWcudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuY29uZmlnLmxvYWRpbmdUZXh0LFxuXHRcdFx0XHRcdFx0bWFzazogdGhpcy5jb25maWcubG9hZGluZ01hc2tcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0fSwgdGhpcy5jb25maWcubG9hZGluZ1RpbWUpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2FwaS5oZWxwZXItLS0tLWZpbmFsbHkqKipyZXF1ZXN0Jywgb3B0aW9ucylcblx0XHRcdHVuaS5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdH0pXG5cdFx0Ly8gLmNhdGNoKHJlcyA9PiB7XG5cdFx0Ly8gXHQvLyDlpoLmnpzov5Tlm55yZWplY3QoKe+8jOS4jeiuqeWFtui/m+WFpXRoaXMuJHUucG9zdCgpLnRoZW4oKS5jYXRjaCgp5ZCO6Z2i55qEY2F0Y3QoKVxuXHRcdC8vIFx0Ly8g5Zug5Li65b6I5aSa5Lq66YO95Lya5b+Y5LqG5YaZ5ZCO6Z2i55qEY2F0Y2goKe+8jOWvvOiHtOaKpemUmeaNleiOt+S4jeWIsGNhdGNoXG5cdFx0Ly8gXHRyZXR1cm4gbmV3IFByb21pc2UoKCk9Pnt9KTtcblx0XHQvLyB9KVxuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYXNlVXJsOiAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMCcsIC8vIOivt+axgueahOagueWfn+WQjVxuXHRcdFx0Ly8g6buY6K6k55qE6K+35rGC5aS0XG5cdFx0XHRoZWFkZXI6IHt9LFxuXHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHQvLyDorr7nva7kuLpqc29u77yM6L+U5Zue5ZCOdW5pLnJlcXVlc3TkvJrlr7nmlbDmja7ov5vooYzkuIDmrKFKU09OLnBhcnNlXG5cdFx0XHRkYXRhVHlwZTogJ2pzb24nLFxuXHRcdFx0Ly8g5q2k5Y+C5pWw5peg6ZyA5aSE55CG77yM5Zug5Li6NSvlkozmlK/ku5jlrp3lsI/nqIvluo/kuI3mlK/mjIHvvIzpu5jorqTkuLp0ZXh05Y2z5Y+vXG5cdFx0XHRyZXNwb25zZVR5cGU6ICd0ZXh0Jyxcblx0XHRcdHNob3dMb2FkaW5nOiB0cnVlLCAvLyDmmK/lkKbmmL7npLror7fmsYLkuK3nmoRsb2FkaW5nXG5cdFx0XHRsb2FkaW5nVGV4dDogJ+ivt+axguS4rS4uLicsXG5cdFx0XHRsb2FkaW5nVGltZTogODAwLCAvLyDlnKjmraTml7bpl7TlhoXvvIzor7fmsYLov5jmsqHlm57mnaXnmoTor53vvIzlsLHmmL7npLrliqDovb3kuK3liqjnlLvvvIzljZXkvY1tc1xuXHRcdFx0dGltZXI6IG51bGwsIC8vIOWumuaXtuWZqFxuXHRcdFx0c3NsVmVyaWZ5OiBmYWxzZSwgLy8g5a6a5pe25ZmoXG5cdFx0XHRvcmlnaW5hbERhdGE6IGZhbHNlLCAvLyDmmK/lkKblnKjmi6bmiKrlmajkuK3ov5Tlm57mnI3liqHnq6/nmoTljp/lp4vmlbDmja7vvIzop4HmlofmoaPor7TmmI5cblx0XHRcdGxvYWRpbmdNYXNrOiB0cnVlLCAvLyDlsZXnpLpsb2FkaW5n55qE5pe25YCZ77yM5piv5ZCm57uZ5LiA5Liq6YCP5piO55qE6JKZ5bGC77yM6Ziy5q2i6Kem5pG456m/6YCPXG5cdFx0fVxuXG5cdFx0Ly8g5oum5oiq5ZmoXG5cdFx0dGhpcy5pbnRlcmNlcHRvciA9IHtcblx0XHRcdC8vIOivt+axguWJjeeahOaLpuaIqlxuXHRcdFx0cmVxdWVzdDogKGNvbmZpZykgPT4ge1xuXHRcdFx0XHRjb25maWcuaGVhZGVyWydBdXRob3JpemF0aW9uJ10gPSBgQmFzaWMgJHtCYXNlNjQuZW5jb2RlKCd3YW5ncGM6TFpZODg4QEAnKX1gO1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSA9PT0gLVxuXHRcdFx0XHRcdFx0MSAmJlxuXHRcdFx0XHRcdFx0c3RvcmUuc3RhdGUudnVleF90b2tlbikge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmhlYWRlclsnWC1BdXRoLVRva2VuJ10gPSBzdG9yZVxuXHRcdFx0XHRcdFx0XHQuc3RhdGUudnVleF90b2tlblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSAmJiBjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXS5pbmRleE9mKFxuXHRcdFx0XHRcdFx0XHQneC13d3ctZm9ybS11cmxlbmNvZGVkJykgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSA9IFwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOFwiXG5cdFx0XHRcdFx0fVxuXG5cblx0XHRcdFx0XHRpZiAoY29uZmlnLnVybC5pbmRleE9mKCdjcm0tYXBwJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMTAuMC4xMzUuNjEnXG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwJ1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoY29uZmlnLnVybC5pbmRleE9mKCdhZGFwdGVyJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vYXBpLmMwMzMxLmRldi5ndWFueWluZ3l1bi5jb20nXG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL2N5aidcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNvbmZpZy51cmwuaW5kZXhPZignd21kcHdlYnNlcnZpY2VzJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwczovLzEwLjAuMTM0LjE4Mjo5MDAyJ1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMC9zY3p4J1xuXHRcdFx0XHRcdFx0Ly8gY29uZmlnLmJhc2VVcmwgPSAnJ1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL3dseVNhcCdcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZXJyb3InLCBlKVxuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSAhPT0gLTEgJiYgIXN0b3JlLnN0YXRlLnZ1ZXhfdG9rZW4pIHtcblx0XHRcdFx0Ly8gXHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0Ly8gXHRcdHRpdGxlOiAn55m75b2V5bey5aSx5pWIJyxcblx0XHRcdFx0Ly8gXHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHQvLyBcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdC8vIFx0fSk7XG5cdFx0XHRcdC8vIFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHQvLyBcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdC8vIFx0fSlcblx0XHRcdFx0Ly8gfVxuXHRcdFx0XHRjb25zb2xlLmxvZygnaGVscGVyLS1pbnRlcmNlcHRvci0tLXJlcXVlc3QtLS0tLScsIGNvbmZpZylcblx0XHRcdFx0cmV0dXJuIGNvbmZpZztcblx0XHRcdH0sXG5cdFx0XHQvLyDor7fmsYLlkI7nmoTmi6bmiKpcblx0XHRcdHJlc3BvbnNlOiAocmVzKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdoZWxwZXItLWlpbnRlcmNlcHRvci0tLXJlc3BvbnNlLS0tLS0nLCByZXMpXG5cdFx0XHRcdGlmIChyZXMuTVNHVFlQRSA9PT0gJ1MnIHx8IHJlcy5tc2d0eXBlID09PSAnUycgfHwgcmVzLnN0YXR1cyA9PT0gMSB8fCByZXMucmVzdWx0ID09PSBcIlNcIiB8fFxuXHRcdFx0XHRcdHJlcy5TdGF0dXMgPT09XG5cdFx0XHRcdFx0J1N1Y2Nlc3MnKSB7XG5cdFx0XHRcdFx0Ly8g5aaC5p6c5oqKb3JpZ2luYWxEYXRh6K6+572u5Li65LqGdHJ1Ze+8jOi/memHjHJldHVybuWbnuS7gOS5iO+8jHRoaXMuJHUucG9zdOeahHRoZW7lm57osIPkuK3lsLHkvJrlvpfliLDku4DkuYhcblx0XHRcdFx0XHRyZXR1cm4gcmVzO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5NRVNTQUdFIHx8IHJlcy5tc2cgfHwgcmVzLm1lc3NhZ2UgfHwgcmVzLkVyck1zZyxcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZ2V06K+35rGCXG5cdFx0dGhpcy5nZXQgPSAodXJsLCBkYXRhID0ge30sIGhlYWRlciA9IHt9KSA9PiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5yZXF1ZXN0KHtcblx0XHRcdFx0bWV0aG9kOiAnR0VUJyxcblx0XHRcdFx0dXJsLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcG9zdOivt+axglxuXHRcdHRoaXMucG9zdCA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcHV06K+35rGC77yM5LiN5pSv5oyB5pSv5LuY5a6d5bCP56iL5bqPKEhYMi42LjE1KVxuXHRcdHRoaXMucHV0ID0gKHVybCwgZGF0YSA9IHt9LCBoZWFkZXIgPSB7fSkgPT4ge1xuXHRcdFx0cmV0dXJuIHRoaXMucmVxdWVzdCh7XG5cdFx0XHRcdHVybCxcblx0XHRcdFx0bWV0aG9kOiAnUFVUJyxcblx0XHRcdFx0aGVhZGVyLFxuXHRcdFx0XHRkYXRhXG5cdFx0XHR9KVxuXHRcdH1cblxuXHRcdC8vIGRlbGV0Zeivt+axgu+8jOS4jeaUr+aMgeaUr+S7mOWuneWSjOWktOadoeWwj+eoi+W6jyhIWDIuNi4xNSlcblx0XHR0aGlzLmRlbGV0ZSA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ0RFTEVURScsXG5cdFx0XHRcdGhlYWRlcixcblx0XHRcdFx0ZGF0YVxuXHRcdFx0fSlcblx0XHR9XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IG5ldyBSZXF1ZXN0XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///15\n");
eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _index = __webpack_require__(/*! @/utils/index.js */ 16);\n\n\nvar _validate = _interopRequireDefault(__webpack_require__(/*! @/utils/validate.js */ 17));\nvar _jsBase = __webpack_require__(/*! js-base64 */ 18);\n\n\nvar _index2 = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 19));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError(\"Cannot call a class as a function\");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}var\n\nRequest = /*#__PURE__*/function () {_createClass(Request, [{ key: \"setConfig\",\n // 设置全局默认配置\n value: function setConfig(customConfig) {\n // 深度合并对象,否则会造成对象深层属性丢失\n this.config = (0, _index.deepMerge)(this.config, customConfig);\n }\n\n // 主要请求部分\n }, { key: \"request\", value: function request() {var _this = this;var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n // 检查请求拦截\n if (this.interceptor.request && typeof this.interceptor.request === 'function') {\n var tmpConfig = {};\n var interceptorRequest = this.interceptor.request(options);\n if (interceptorRequest === false) {\n // 返回一个处于pending状态中的Promise,来取消原promise,避免进入then()回调\n return new Promise(function () {});\n }\n this.options = interceptorRequest;\n }\n\n options.dataType = options.dataType || this.config.dataType;\n options.responseType = options.responseType || this.config.responseType;\n options.url = options.url || '';\n options.params = options.params || {};\n options.header = Object.assign({}, this.config.header, options.header);\n options.method = options.method || this.config.method;\n options.sslVerify = false;\n\n // console.log('api.helper-----request', options, this.options)\n\n return new Promise(function (resolve, reject) {\n options.complete = function (response) {\n __f__(\"log\", 'api.helper---options.complete', response, \" at servers/api.helper.js:43\");\n // 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)\n uni.hideLoading();\n // 清除定时器,如果请求回来了,就无需loading\n clearTimeout(_this.config.timer);\n _this.config.timer = null;\n // 判断用户对拦截返回数据的要求,如果originalData为true,返回所有的数据(response)到拦截器,否则只返回response.data\n if (_this.config.originalData) {\n // 判断是否存在拦截器\n if (_this.interceptor.response && typeof _this.interceptor.response === 'function') {\n var resInterceptors = _this.interceptor.response(response);\n // 如果拦截器不返回false,就将拦截器返回的内容给this.$u.post的then回调\n if (resInterceptors !== false) {\n resolve(resInterceptors);\n } else {\n // 如果拦截器返回false,意味着拦截器定义者认为返回有问题,直接接入catch回调\n reject(response);\n }\n } else {\n // 如果要求返回原始数据,就算没有拦截器,也返回最原始的数据\n resolve(response);\n }\n } else {\n if (response.statusCode == 200) {\n if (_this.interceptor.response && typeof _this.interceptor.response ===\n 'function') {\n var _resInterceptors = _this.interceptor.response(response.data);\n if (_resInterceptors !== false) {\n resolve(_resInterceptors);\n } else {\n reject(response.data);\n }\n } else {\n // 如果不是返回原始数据(originalData=false),且没有拦截器的情况下,返回纯数据给then回调\n resolve(response.data);\n }\n } else {\n // 不返回原始数据的情况下,服务器状态码不为200,modal弹框提示\n // if(response.errMsg) {\n // \tuni.showModal({\n // \t\ttitle: response.errMsg\n // \t});\n // }\n if (response.statusCode == 500) {\n uni.showToast({\n title: '服务器异常',\n duration: 2000,\n icon: 'none' });\n\n }\n if (response.statusCode == 401) {\n uni.showToast({\n title: '登录已失效',\n duration: 2000,\n icon: 'none' });\n\n uni.navigateTo({\n url: \"/pages/login/login\" });\n\n }\n reject(response);\n }\n }\n };\n\n // 判断用户传递的URL是否/开头,如果不是,加上/,这里使用了uView的test.js验证库的url()方法\n options.url = _validate.default.url(options.url) ? options.url : (options.baseUrl ? options.baseUrl :\n _this.\n config.baseUrl) + (options.url.\n indexOf('/') == 0 ?\n options.url : '/' + options.url);\n\n // 是否显示loading\n // 加一个是否已有timer定时器的判断,否则有两个同时请求的时候,后者会清除前者的定时器id\n // 而没有清除前者的定时器,导致前者超时,一直显示loading\n if (_this.config.showLoading && !_this.config.timer) {\n _this.config.timer = setTimeout(function () {\n uni.showLoading({\n title: _this.config.loadingText,\n mask: _this.config.loadingMask });\n\n _this.config.timer = null;\n }, _this.config.loadingTime);\n }\n // console.log('api.helper-----finally***request', options)\n uni.request(options);\n });\n // .catch(res => {\n // \t// 如果返回reject(),不让其进入this.$u.post().then().catch()后面的catct()\n // \t// 因为很多人都会忘了写后面的catch(),导致报错捕获不到catch\n // \treturn new Promise(()=>{});\n // })\n } }]);\n\n function Request() {var _this2 = this;_classCallCheck(this, Request);\n this.config = {\n baseUrl: 'http://221.10.127.60:5000', // 请求的根域名\n // 默认的请求头\n header: {},\n method: 'POST',\n // 设置为json,返回后uni.request会对数据进行一次JSON.parse\n dataType: 'json',\n // 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可\n responseType: 'text',\n showLoading: true, // 是否显示请求中的loading\n loadingText: '请求中...',\n loadingTime: 800, // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms\n timer: null, // 定时器\n sslVerify: false, // 定时器\n originalData: false, // 是否在拦截器中返回服务端的原始数据,见文档说明\n loadingMask: true // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透\n };\n\n // 拦截器\n this.interceptor = {\n // 请求前的拦截\n request: function request(config) {\n config.header['Authorization'] = \"Basic \".concat(_jsBase.Base64.encode('wangpc:LZY888@@'));\n try {\n if (config.url.indexOf('crm-app/login') === -\n 1 &&\n _index2.default.state.vuex_token) {\n config.header['X-Auth-Token'] = _index2.default.\n state.vuex_token;\n }\n\n if (config.header['Content-Type'] && config.header['Content-Type'].indexOf(\n 'x-www-form-urlencoded') === -1) {\n config.header['Content-Type'] = \"application/json; charset=utf-8\";\n }\n\n\n if (config.url.indexOf('crm-app') !== -1) {\n // config.baseUrl = 'http://10.0.135.61'\n config.baseUrl = 'http://221.10.127.60:5000';\n } else if (config.url.indexOf('adapter') !== -1) {\n config.baseUrl = 'http://api.c0331.dev.guanyingyun.com';\n // config.baseUrl = 'http://221.10.127.60:5000/cyj'\n } else if (config.url.indexOf('wmdpwebservices') !== -1) {\n // config.baseUrl = 'https://10.0.134.182:9002'\n config.baseUrl = 'http://221.10.127.60:5000/sczx';\n // config.baseUrl = ''\n } else {\n config.baseUrl = 'http://221.10.127.60:5000/wlySap';\n }\n } catch (e) {\n __f__(\"log\", 'error', e, \" at servers/api.helper.js:189\");\n }\n // if (config.url.indexOf('crm-app/login') !== -1 && !store.state.vuex_token) {\n // \tuni.showToast({\n // \t\ttitle: '登录已失效',\n // \t\tduration: 2000,\n // \t\ticon: 'none'\n // \t});\n // \tuni.navigateTo({\n // \t\turl: \"/pages/login/login\"\n // \t})\n // }\n __f__(\"log\", 'helper--interceptor---request-----', config, \" at servers/api.helper.js:201\");\n return config;\n },\n // 请求后的拦截\n response: function response(res) {\n __f__(\"log\", 'helper--iinterceptor---response-----', res, \" at servers/api.helper.js:206\");\n if (res.MSGTYPE === 'S' || res.msgtype === 'S' || res.status === 1 || res.result === \"S\" ||\n res.Status ===\n 'Success') {\n // 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么\n return res;\n } else {\n uni.showToast({\n title: res.MESSAGE || res.msg || res.message || res.ErrMsg,\n duration: 2000,\n icon: 'none' });\n\n return false;\n };\n } };\n\n\n // get请求\n this.get = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n method: 'GET',\n url: url,\n header: header,\n data: data });\n\n };\n\n // post请求\n this.post = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'POST',\n header: header,\n data: data });\n\n };\n\n // put请求,不支持支付宝小程序(HX2.6.15)\n this.put = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'PUT',\n header: header,\n data: data });\n\n };\n\n // delete请求,不支持支付宝和头条小程序(HX2.6.15)\n this.delete = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _this2.request({\n url: url,\n method: 'DELETE',\n header: header,\n data: data });\n\n };\n }return Request;}();var _default =\n\nnew Request();exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc2VydmVycy9hcGkuaGVscGVyLmpzIl0sIm5hbWVzIjpbIlJlcXVlc3QiLCJjdXN0b21Db25maWciLCJjb25maWciLCJvcHRpb25zIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0IiwidG1wQ29uZmlnIiwiaW50ZXJjZXB0b3JSZXF1ZXN0IiwiUHJvbWlzZSIsImRhdGFUeXBlIiwicmVzcG9uc2VUeXBlIiwidXJsIiwicGFyYW1zIiwiaGVhZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0aG9kIiwic3NsVmVyaWZ5IiwicmVzb2x2ZSIsInJlamVjdCIsImNvbXBsZXRlIiwicmVzcG9uc2UiLCJ1bmkiLCJoaWRlTG9hZGluZyIsImNsZWFyVGltZW91dCIsInRpbWVyIiwib3JpZ2luYWxEYXRhIiwicmVzSW50ZXJjZXB0b3JzIiwic3RhdHVzQ29kZSIsImRhdGEiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwiaWNvbiIsIm5hdmlnYXRlVG8iLCJ2YWxpZGF0ZSIsImJhc2VVcmwiLCJpbmRleE9mIiwic2hvd0xvYWRpbmciLCJzZXRUaW1lb3V0IiwibG9hZGluZ1RleHQiLCJtYXNrIiwibG9hZGluZ01hc2siLCJsb2FkaW5nVGltZSIsIkJhc2U2NCIsImVuY29kZSIsInN0b3JlIiwic3RhdGUiLCJ2dWV4X3Rva2VuIiwiZSIsInJlcyIsIk1TR1RZUEUiLCJtc2d0eXBlIiwic3RhdHVzIiwicmVzdWx0IiwiU3RhdHVzIiwiTUVTU0FHRSIsIm1zZyIsIm1lc3NhZ2UiLCJFcnJNc2ciLCJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoib0lBQUE7OztBQUdBO0FBQ0E7OztBQUdBLHNGOztBQUVNQSxPO0FBQ0w7OEJBQ1VDLFksRUFBYztBQUN2QjtBQUNBLFdBQUtDLE1BQUwsR0FBYyxzQkFBVSxLQUFLQSxNQUFmLEVBQXVCRCxZQUF2QixDQUFkO0FBQ0E7O0FBRUQ7aURBQ3NCLHNCQUFkRSxPQUFjLHVFQUFKLEVB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QTtBQUNBLFNBQUtnQyxJQUFMLEdBQVksVUFBQ2xELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzVDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxNQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtpQyxHQUFMLEdBQVcsVUFBQ25ELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzNDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxLQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtrQyxNQUFMLEdBQWMsVUFBQ3BELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzlDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxRQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDtBQVFBLEc7O0FBRWEsSUFBSTdCLE9BQUosRSIsImZpbGUiOiIxNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGRlZXBNZXJnZVxufSBmcm9tIFwiQC91dGlscy9pbmRleC5qc1wiO1xuaW1wb3J0IHZhbGlkYXRlIGZyb20gXCJAL3V0aWxzL3ZhbGlkYXRlLmpzXCI7XG5pbXBvcnQge1xuXHRCYXNlNjRcbn0gZnJvbSAnanMtYmFzZTY0J1xuaW1wb3J0IHN0b3JlIGZyb20gJ0Avc3RvcmUvaW5kZXguanMnXG5cbmNsYXNzIFJlcXVlc3Qge1xuXHQvLyDorr7nva7lhajlsYDpu5jorqTphY3nva5cblx0c2V0Q29uZmlnKGN1c3RvbUNvbmZpZykge1xuXHRcdC8vIOa3seW6puWQiOW5tuWvueixoe+8jOWQpuWImeS8mumAoOaIkOWvueixoea3seWxguWxnuaAp+S4ouWksVxuXHRcdHRoaXMuY29uZmlnID0gZGVlcE1lcmdlKHRoaXMuY29uZmlnLCBjdXN0b21Db25maWcpO1xuXHR9XG5cblx0Ly8g5Li76KaB6K+35rGC6YOo5YiGXG5cdHJlcXVlc3Qob3B0aW9ucyA9IHt9KSB7XG5cblx0XHQvLyDmo4Dmn6Xor7fmsYLmi6bmiKpcblx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0ICYmIHR5cGVvZiB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3QgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGxldCB0bXBDb25maWcgPSB7fTtcblx0XHRcdGxldCBpbnRlcmNlcHRvclJlcXVlc3QgPSB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3Qob3B0aW9ucyk7XG5cdFx0XHRpZiAoaW50ZXJjZXB0b3JSZXF1ZXN0ID09PSBmYWxzZSkge1xuXHRcdFx0XHQvLyDov5Tlm57kuIDkuKrlpITkuo5wZW5kaW5n54q25oCB5Lit55qEUHJvbWlzZe+8jOadpeWPlua2iOWOn3Byb21pc2XvvIzpgb/lhY3ov5vlhaV0aGVuKCnlm57osINcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTtcblx0XHRcdH1cblx0XHRcdHRoaXMub3B0aW9ucyA9IGludGVyY2VwdG9yUmVxdWVzdDtcblx0XHR9XG5cblx0XHRvcHRpb25zLmRhdGFUeXBlID0gb3B0aW9ucy5kYXRhVHlwZSB8fCB0aGlzLmNvbmZpZy5kYXRhVHlwZTtcblx0XHRvcHRpb25zLnJlc3BvbnNlVHlwZSA9IG9wdGlvbnMucmVzcG9uc2VUeXBlIHx8IHRoaXMuY29uZmlnLnJlc3BvbnNlVHlwZTtcblx0XHRvcHRpb25zLnVybCA9IG9wdGlvbnMudXJsIHx8ICcnO1xuXHRcdG9wdGlvbnMucGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgfHwge307XG5cdFx0b3B0aW9ucy5oZWFkZXIgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbmZpZy5oZWFkZXIsIG9wdGlvbnMuaGVhZGVyKTtcblx0XHRvcHRpb25zLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kIHx8IHRoaXMuY29uZmlnLm1ldGhvZDtcblx0XHRvcHRpb25zLnNzbFZlcmlmeSA9IGZhbHNlXG5cblx0XHQvLyBjb25zb2xlLmxvZygnYXBpLmhlbHBlci0tLS0tcmVxdWVzdCcsIG9wdGlvbnMsIHRoaXMub3B0aW9ucylcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRvcHRpb25zLmNvbXBsZXRlID0gKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdhcGkuaGVscGVyLS0tb3B0aW9ucy5jb21wbGV0ZScsIHJlc3BvbnNlKVxuXHRcdFx0XHQvLyDor7fmsYLov5Tlm57lkI7vvIzpmpDol49sb2FkaW5nKOWmguaenOivt+axgui/lOWbnuW/q+eahOivne+8jOWPr+iDveS8muayoeaciWxvYWRpbmcpXG5cdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHQvLyDmuIXpmaTlrprml7blmajvvIzlpoLmnpzor7fmsYLlm57mnaXkuobvvIzlsLHml6DpnIBsb2FkaW5nXG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLmNvbmZpZy50aW1lcik7XG5cdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0Ly8g5Yik5pat55So5oi35a+55oum5oiq6L+U5Zue5pWw5o2u55qE6KaB5rGC77yM5aaC5p6cb3JpZ2luYWxEYXRh5Li6dHJ1Ze+8jOi/lOWbnuaJgOacieeahOaVsOaNrihyZXNwb25zZSnliLDmi6bmiKrlmajvvIzlkKbliJnlj6rov5Tlm55yZXNwb25zZS5kYXRhXG5cdFx0XHRcdGlmICh0aGlzLmNvbmZpZy5vcmlnaW5hbERhdGEpIHtcblx0XHRcdFx0XHQvLyDliKTmlq3mmK/lkKblrZjlnKjmi6bmiKrlmahcblx0XHRcdFx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSAmJiB0eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UpO1xuXHRcdFx0XHRcdFx0Ly8g5aaC5p6c5oum5oiq5Zmo5LiN6L+U5ZueZmFsc2XvvIzlsLHlsIbmi6bmiKrlmajov5Tlm57nmoTlhoXlrrnnu5l0aGlzLiR1LnBvc3TnmoR0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRpZiAocmVzSW50ZXJjZXB0b3JzICE9PSBmYWxzZSkge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJlc0ludGVyY2VwdG9ycyk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyDlpoLmnpzmi6bmiKrlmajov5Tlm55mYWxzZe+8jOaEj+WRs+edgOaLpuaIquWZqOWumuS5ieiAheiupOS4uui/lOWbnuaciemXrumimO+8jOebtOaOpeaOpeWFpWNhdGNo5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOWmguaenOimgeaxgui/lOWbnuWOn+Wni+aVsOaNru+8jOWwseeul+ayoeacieaLpuaIquWZqO+8jOS5n+i/lOWbnuacgOWOn+Wni+eahOaVsOaNrlxuXHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNwb25zZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgJiYgdHlwZW9mIHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgPT09XG5cdFx0XHRcdFx0XHRcdCdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXNJbnRlcmNlcHRvcnMgIT09IGZhbHNlKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNJbnRlcmNlcHRvcnMpO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZS5kYXRhKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Ly8g5aaC5p6c5LiN5piv6L+U5Zue5Y6f5aeL5pWw5o2uKG9yaWdpbmFsRGF0YT1mYWxzZSnvvIzkuJTmsqHmnInmi6bmiKrlmajnmoTmg4XlhrXkuIvvvIzov5Tlm57nuq/mlbDmja7nu5l0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOS4jei/lOWbnuWOn+Wni+aVsOaNrueahOaDheWGteS4i++8jOacjeWKoeWZqOeKtuaAgeeggeS4jeS4ujIwMO+8jG1vZGFs5by55qGG5o+Q56S6XG5cdFx0XHRcdFx0XHQvLyBpZihyZXNwb25zZS5lcnJNc2cpIHtcblx0XHRcdFx0XHRcdC8vIFx0dW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdFx0XHQvLyBcdFx0dGl0bGU6IHJlc3BvbnNlLmVyck1zZ1xuXHRcdFx0XHRcdFx0Ly8gXHR9KTtcblx0XHRcdFx0XHRcdC8vIH1cblx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDUwMCkge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+acjeWKoeWZqOW8guW4uCcsXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDAsXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PSA0MDEpIHtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfnmbvlvZXlt7LlpLHmlYgnLFxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHRcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZWplY3QocmVzcG9uc2UpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIOWIpOaWreeUqOaIt+S8oOmAkueahFVSTOaYr+WQpi/lvIDlpLQs5aaC5p6c5LiN5pivLOWKoOS4ii/vvIzov5nph4zkvb/nlKjkuoZ1Vmlld+eahHRlc3QuanPpqozor4HlupPnmoR1cmwoKeaWueazlVxuXHRcdFx0b3B0aW9ucy51cmwgPSB2YWxpZGF0ZS51cmwob3B0aW9ucy51cmwpID8gb3B0aW9ucy51cmwgOiAoKG9wdGlvbnMuYmFzZVVybCA/IG9wdGlvbnMuYmFzZVVybCA6XG5cdFx0XHRcdHRoaXNcblx0XHRcdFx0LmNvbmZpZy5iYXNlVXJsKSArIChvcHRpb25zLnVybFxuXHRcdFx0XHQuaW5kZXhPZignLycpID09IDAgP1xuXHRcdFx0XHRvcHRpb25zLnVybCA6ICcvJyArIG9wdGlvbnMudXJsKSk7XG5cblx0XHRcdC8vIOaYr+WQpuaYvuekumxvYWRpbmdcblx0XHRcdC8vIOWKoOS4gOS4quaYr+WQpuW3suaciXRpbWVy5a6a5pe25Zmo55qE5Yik5pat77yM5ZCm5YiZ5pyJ5Lik5Liq5ZCM5pe26K+35rGC55qE5pe25YCZ77yM5ZCO6ICF5Lya5riF6Zmk5YmN6ICF55qE5a6a5pe25ZmoaWRcblx0XHRcdC8vIOiAjOayoeaciea4hemZpOWJjeiAheeahOWumuaXtuWZqO+8jOWvvOiHtOWJjeiAhei2heaXtu+8jOS4gOebtOaYvuekumxvYWRpbmdcblx0XHRcdGlmICh0aGlzLmNvbmZpZy5zaG93TG9hZGluZyAmJiAhdGhpcy5jb25maWcudGltZXIpIHtcblx0XHRcdFx0dGhpcy5jb25maWcudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuY29uZmlnLmxvYWRpbmdUZXh0LFxuXHRcdFx0XHRcdFx0bWFzazogdGhpcy5jb25maWcubG9hZGluZ01hc2tcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0fSwgdGhpcy5jb25maWcubG9hZGluZ1RpbWUpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2FwaS5oZWxwZXItLS0tLWZpbmFsbHkqKipyZXF1ZXN0Jywgb3B0aW9ucylcblx0XHRcdHVuaS5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdH0pXG5cdFx0Ly8gLmNhdGNoKHJlcyA9PiB7XG5cdFx0Ly8gXHQvLyDlpoLmnpzov5Tlm55yZWplY3QoKe+8jOS4jeiuqeWFtui/m+WFpXRoaXMuJHUucG9zdCgpLnRoZW4oKS5jYXRjaCgp5ZCO6Z2i55qEY2F0Y3QoKVxuXHRcdC8vIFx0Ly8g5Zug5Li65b6I5aSa5Lq66YO95Lya5b+Y5LqG5YaZ5ZCO6Z2i55qEY2F0Y2goKe+8jOWvvOiHtOaKpemUmeaNleiOt+S4jeWIsGNhdGNoXG5cdFx0Ly8gXHRyZXR1cm4gbmV3IFByb21pc2UoKCk9Pnt9KTtcblx0XHQvLyB9KVxuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYXNlVXJsOiAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMCcsIC8vIOivt+axgueahOagueWfn+WQjVxuXHRcdFx0Ly8g6buY6K6k55qE6K+35rGC5aS0XG5cdFx0XHRoZWFkZXI6IHt9LFxuXHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHQvLyDorr7nva7kuLpqc29u77yM6L+U5Zue5ZCOdW5pLnJlcXVlc3TkvJrlr7nmlbDmja7ov5vooYzkuIDmrKFKU09OLnBhcnNlXG5cdFx0XHRkYXRhVHlwZTogJ2pzb24nLFxuXHRcdFx0Ly8g5q2k5Y+C5pWw5peg6ZyA5aSE55CG77yM5Zug5Li6NSvlkozmlK/ku5jlrp3lsI/nqIvluo/kuI3mlK/mjIHvvIzpu5jorqTkuLp0ZXh05Y2z5Y+vXG5cdFx0XHRyZXNwb25zZVR5cGU6ICd0ZXh0Jyxcblx0XHRcdHNob3dMb2FkaW5nOiB0cnVlLCAvLyDmmK/lkKbmmL7npLror7fmsYLkuK3nmoRsb2FkaW5nXG5cdFx0XHRsb2FkaW5nVGV4dDogJ+ivt+axguS4rS4uLicsXG5cdFx0XHRsb2FkaW5nVGltZTogODAwLCAvLyDlnKjmraTml7bpl7TlhoXvvIzor7fmsYLov5jmsqHlm57mnaXnmoTor53vvIzlsLHmmL7npLrliqDovb3kuK3liqjnlLvvvIzljZXkvY1tc1xuXHRcdFx0dGltZXI6IG51bGwsIC8vIOWumuaXtuWZqFxuXHRcdFx0c3NsVmVyaWZ5OiBmYWxzZSwgLy8g5a6a5pe25ZmoXG5cdFx0XHRvcmlnaW5hbERhdGE6IGZhbHNlLCAvLyDmmK/lkKblnKjmi6bmiKrlmajkuK3ov5Tlm57mnI3liqHnq6/nmoTljp/lp4vmlbDmja7vvIzop4HmlofmoaPor7TmmI5cblx0XHRcdGxvYWRpbmdNYXNrOiB0cnVlLCAvLyDlsZXnpLpsb2FkaW5n55qE5pe25YCZ77yM5piv5ZCm57uZ5LiA5Liq6YCP5piO55qE6JKZ5bGC77yM6Ziy5q2i6Kem5pG456m/6YCPXG5cdFx0fVxuXG5cdFx0Ly8g5oum5oiq5ZmoXG5cdFx0dGhpcy5pbnRlcmNlcHRvciA9IHtcblx0XHRcdC8vIOivt+axguWJjeeahOaLpuaIqlxuXHRcdFx0cmVxdWVzdDogKGNvbmZpZykgPT4ge1xuXHRcdFx0XHRjb25maWcuaGVhZGVyWydBdXRob3JpemF0aW9uJ10gPSBgQmFzaWMgJHtCYXNlNjQuZW5jb2RlKCd3YW5ncGM6TFpZODg4QEAnKX1gO1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSA9PT0gLVxuXHRcdFx0XHRcdFx0MSAmJlxuXHRcdFx0XHRcdFx0c3RvcmUuc3RhdGUudnVleF90b2tlbikge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmhlYWRlclsnWC1BdXRoLVRva2VuJ10gPSBzdG9yZVxuXHRcdFx0XHRcdFx0XHQuc3RhdGUudnVleF90b2tlblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSAmJiBjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXS5pbmRleE9mKFxuXHRcdFx0XHRcdFx0XHQneC13d3ctZm9ybS11cmxlbmNvZGVkJykgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSA9IFwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOFwiXG5cdFx0XHRcdFx0fVxuXG5cblx0XHRcdFx0XHRpZiAoY29uZmlnLnVybC5pbmRleE9mKCdjcm0tYXBwJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMTAuMC4xMzUuNjEnXG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwJ1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoY29uZmlnLnVybC5pbmRleE9mKCdhZGFwdGVyJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vYXBpLmMwMzMxLmRldi5ndWFueWluZ3l1bi5jb20nXG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL2N5aidcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNvbmZpZy51cmwuaW5kZXhPZignd21kcHdlYnNlcnZpY2VzJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwczovLzEwLjAuMTM0LjE4Mjo5MDAyJ1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMC9zY3p4J1xuXHRcdFx0XHRcdFx0Ly8gY29uZmlnLmJhc2VVcmwgPSAnJ1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL3dseVNhcCdcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZXJyb3InLCBlKVxuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSAhPT0gLTEgJiYgIXN0b3JlLnN0YXRlLnZ1ZXhfdG9rZW4pIHtcblx0XHRcdFx0Ly8gXHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0Ly8gXHRcdHRpdGxlOiAn55m75b2V5bey5aSx5pWIJyxcblx0XHRcdFx0Ly8gXHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHQvLyBcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdC8vIFx0fSk7XG5cdFx0XHRcdC8vIFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHQvLyBcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdC8vIFx0fSlcblx0XHRcdFx0Ly8gfVxuXHRcdFx0XHRjb25zb2xlLmxvZygnaGVscGVyLS1pbnRlcmNlcHRvci0tLXJlcXVlc3QtLS0tLScsIGNvbmZpZylcblx0XHRcdFx0cmV0dXJuIGNvbmZpZztcblx0XHRcdH0sXG5cdFx0XHQvLyDor7fmsYLlkI7nmoTmi6bmiKpcblx0XHRcdHJlc3BvbnNlOiAocmVzKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdoZWxwZXItLWlpbnRlcmNlcHRvci0tLXJlc3BvbnNlLS0tLS0nLCByZXMpXG5cdFx0XHRcdGlmIChyZXMuTVNHVFlQRSA9PT0gJ1MnIHx8IHJlcy5tc2d0eXBlID09PSAnUycgfHwgcmVzLnN0YXR1cyA9PT0gMSB8fCByZXMucmVzdWx0ID09PSBcIlNcIiB8fFxuXHRcdFx0XHRcdHJlcy5TdGF0dXMgPT09XG5cdFx0XHRcdFx0J1N1Y2Nlc3MnKSB7XG5cdFx0XHRcdFx0Ly8g5aaC5p6c5oqKb3JpZ2luYWxEYXRh6K6+572u5Li65LqGdHJ1Ze+8jOi/memHjHJldHVybuWbnuS7gOS5iO+8jHRoaXMuJHUucG9zdOeahHRoZW7lm57osIPkuK3lsLHkvJrlvpfliLDku4DkuYhcblx0XHRcdFx0XHRyZXR1cm4gcmVzO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5NRVNTQUdFIHx8IHJlcy5tc2cgfHwgcmVzLm1lc3NhZ2UgfHwgcmVzLkVyck1zZyxcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZ2V06K+35rGCXG5cdFx0dGhpcy5nZXQgPSAodXJsLCBkYXRhID0ge30sIGhlYWRlciA9IHt9KSA9PiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5yZXF1ZXN0KHtcblx0XHRcdFx0bWV0aG9kOiAnR0VUJyxcblx0XHRcdFx0dXJsLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcG9zdOivt+axglxuXHRcdHRoaXMucG9zdCA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcHV06K+35rGC77yM5LiN5pSv5oyB5pSv5LuY5a6d5bCP56iL5bqPKEhYMi42LjE1KVxuXHRcdHRoaXMucHV0ID0gKHVybCwgZGF0YSA9IHt9LCBoZWFkZXIgPSB7fSkgPT4ge1xuXHRcdFx0cmV0dXJuIHRoaXMucmVxdWVzdCh7XG5cdFx0XHRcdHVybCxcblx0XHRcdFx0bWV0aG9kOiAnUFVUJyxcblx0XHRcdFx0aGVhZGVyLFxuXHRcdFx0XHRkYXRhXG5cdFx0XHR9KVxuXHRcdH1cblxuXHRcdC8vIGRlbGV0Zeivt+axgu+8jOS4jeaUr+aMgeaUr+S7mOWuneWSjOWktOadoeWwj+eoi+W6jyhIWDIuNi4xNSlcblx0XHR0aGlzLmRlbGV0ZSA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ0RFTEVURScsXG5cdFx0XHRcdGhlYWRlcixcblx0XHRcdFx0ZGF0YVxuXHRcdFx0fSlcblx0XHR9XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IG5ldyBSZXF1ZXN0XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///15\n");
/***/ }),
......
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