Commit 6f678f58 authored by chuan.liu's avatar chuan.liu

消息列表新增

parent 6bf871b8
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</div> </div>
</uni-refresh> </uni-refresh>
<uni-cell v-for="(item, index) in dataList" :key="item.id"> <uni-cell v-for="(item, index) in dataList" :key="item.id">
<message-list :newsItem="item" @click="goDetail(item)"></message-list> <message-list :newsItem="item" :index='index' @click.native="goDetail(item)"></message-list>
</uni-cell> </uni-cell>
<uni-cell v-if="isLoading || dataList.length > 4"> <uni-cell v-if="isLoading || dataList.length > 4">
<view class="loading-more"> <view class="loading-more">
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
</view> </view>
</uni-cell> </uni-cell>
</uni-list> </uni-list>
<!-- <no-data class="no-data" v-if="isNoData" @retry="loadMore"></no-data> --> <no-data class="no-data" v-if="isNoData" @retry="loadMore"></no-data>
</view> </view>
</template> </template>
...@@ -32,6 +32,15 @@ ...@@ -32,6 +32,15 @@
import noData from '@/components/nodata.nvue'; import noData from '@/components/nodata.nvue';
import messageList from './message-list.nvue'; import messageList from './message-list.nvue';
import {
mapState
} from 'vuex'
import {
apiFindUnreadMsg,
apiEditStatus
} from '@/servers/message.js'
export default { export default {
components: { components: {
uniList, uniList,
...@@ -41,23 +50,9 @@ ...@@ -41,23 +50,9 @@
noData, noData,
messageList messageList
}, },
props: {
nid: {
type: [Number, String],
default: '0'
}
},
data() { data() {
return { return {
dataList: [{ dataList: [],
id: "tab01",
name: '最新',
newsid: 0
}, {
id: "tab02",
name: '大公司',
newsid: 23
}],
navigateFlag: false, navigateFlag: false,
pulling: false, pulling: false,
refreshing: false, refreshing: false,
...@@ -73,17 +68,29 @@ ...@@ -73,17 +68,29 @@
contentrefresh: '', contentrefresh: '',
contentnomore: '' contentnomore: ''
}, },
refreshIcon: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAB5QTFRFcHBw3Nzct7e39vb2ycnJioqK7e3tpqam29vb////D8oK7wAAAAp0Uk5T////////////ALLMLM8AAABxSURBVHja7JVBDoAgDASrjqj//7CJBi90iyYeOHTPMwmFZrHjYyyFYYUy1bwUZqtJIYVxhf1a6u0R7iUvWsCcrEtwJHp8MwMdvh2amHduiZD3rpWId9+BgPd7Cc2LIkPyqvlQvKxKBJ//Qwq/CacAAwDUv0a0YuKhzgAAAABJRU5ErkJggg==" refreshIcon: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAB5QTFRFcHBw3Nzct7e39vb2ycnJioqK7e3tpqam29vb////D8oK7wAAAAp0Uk5T////////////ALLMLM8AAABxSURBVHja7JVBDoAgDASrjqj//7CJBi90iyYeOHTPMwmFZrHjYyyFYYUy1bwUZqtJIYVxhf1a6u0R7iUvWsCcrEtwJHp8MwMdvh2amHduiZD3rpWId9+BgPd7Cc2LIkPyqvlQvKxKBJ//Qwq/CacAAwDUv0a0YuKhzgAAAABJRU5ErkJggg==",
page: {
"PAGE": "1",
"PAGESIZE": "10",
},
loadParams: {
total: 0,
totalPage: 1,
isDone: false,
isRefresh: false
},
messageType: 0
} }
}, },
computed: {
...mapState(['userInfo'])
},
onLoad(option) {
this.messageType = option.messageType
this.loadData(true)
},
created() { created() {
this.pullTimer = null; this.pullTimer = null;
this.requestParams = {
columnId: this.nid,
minId: 0,
pageSize: 10,
column: 'id,post_id,title,author_name,cover,published_at,comments_count'
};
this._isWidescreen = false; this._isWidescreen = false;
// #ifdef H5 // #ifdef H5
...@@ -103,50 +110,41 @@ ...@@ -103,50 +110,41 @@
this.isLoading = true; this.isLoading = true;
this.isNoData = false; this.isNoData = false;
this.requestParams.time = new Date().getTime() + '';
var startTime = new Date(); const params = {
uni.request({ customer: this.userInfo.code,
// url: this.$host + 'api/news', msgType: 'app',
url: 'https://unidemo.dcloud.net.cn/api/news', msgStatus: this.messageType,
data: this.requestParams, ...this.page
success: (result) => { }
var endTime = new Date();
const data = result.data;
this.isNoData = (data.length <= 0);
const data_list = data.map((news) => { apiFindUnreadMsg(params).then((res) => {
return { const {
id: this.newGuid() + news.id, Rows,
newsid: news.id, page,
article_type: 1, Total
datetime: (new Date(news.published_at.replace(/\-/g, '/')).getTime()), } = res.data
title: news.title, const data_list = Rows;
image_url: news.cover, this.page.PAGE = page
source: news.author_name, this.loadParams.total = Total
comment_count: news.comments_count, this.loadParams.totalPage = Math.ceil(Total * 1 / this.page.PAGESIZE * 1)
post_id: news.post_id
}; this.isNoData = (data_list.length <= 0);
});
if (refresh) { if (refresh) {
this.dataList = data_list; this.dataList = data_list;
this.requestParams.minId = 0;
} else { } else {
this.dataList = this.dataList.concat(data_list); this.dataList = this.dataList.concat(data_list);
this.requestParams.minId = data[data.length - 1].id;
} }
if (this.dataList.length > 0 && this._isWidescreen && this.dataList.length <= 10) { if (this.dataList.length > 0 && this._isWidescreen && this.dataList.length <= 10) {
this.goDetail(this.dataList[0]); // this.goDetail(this.dataList[0]);
} }
}, }).catch(() => {
fail: (err) => {
if (this.dataList.length == 0) { if (this.dataList.length == 0) {
this.isNoData = true; this.isNoData = true;
} }
}, }).finally(() => {
complete: (e) => {
this.isLoading = false; this.isLoading = false;
if (refresh) { if (refresh) {
this.refreshing = false; this.refreshing = false;
...@@ -159,18 +157,38 @@ ...@@ -159,18 +157,38 @@
this.pulling = false; this.pulling = false;
}, 1000); }, 1000);
} }
} })
});
}, },
loadMore(e) { loadMore(e) {
console.log('loadMore')
if (this.page.PAGE < this.loadParams.totalPage) {
this.page.PAGE++
this.loadData(); this.loadData();
} else {
this.loadingText = '-- 到底了 --'
}
}, },
clear() { clear() {
this.dataList.length = 0; this.dataList.length = 0;
this.requestParams.minId = 0; this.requestParams.minId = 0;
}, },
goDetail(detail) { async goDetail(item) {
const params = {
id: item.id
}
uni.showLoading({
title: '加载中'
});
setTimeout(function() {
uni.hideLoading();
}, 2000);
let res = await apiEditStatus(params)
uni.hideLoading();
if (res.status === 1) {
this.loadData(true);
}
}, },
refreshData() { refreshData() {
if (this.isLoading) { if (this.isLoading) {
...@@ -179,6 +197,14 @@ ...@@ -179,6 +197,14 @@
this.pulling = true; this.pulling = true;
this.refreshing = true; this.refreshing = true;
this.refreshText = "正在刷新..."; this.refreshText = "正在刷新...";
this.loadingText = '加载中...'
this.loadParams = {
total: 0,
totalPage: 1,
isDone: false,
isRefresh: false
}
this.page.PAGE = 1
this.loadData(true); this.loadData(true);
}, },
onrefresh(e) { onrefresh(e) {
...@@ -207,13 +233,6 @@ ...@@ -207,13 +233,6 @@
this.refreshText = "下拉可以刷新"; this.refreshText = "下拉可以刷新";
} }
}, },
newGuid() {
let s4 = function() {
return (65536 * (1 + Math.random()) | 0).toString(16).substring(1);
}
return (s4() + s4() + "-" + s4() + "-4" + s4().substr(0, 3) + "-" + s4() + "-" + s4() + s4() + s4())
.toUpperCase();
}
} }
} }
</script> </script>
...@@ -298,6 +317,7 @@ ...@@ -298,6 +317,7 @@
} }
.loading-more { .loading-more {
flex: 1;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding-top: 14px; padding-top: 14px;
......
<template> <template>
<view class="order view"> <view class="order view">
<view class="status_bar" :style="navHeight"></view> <view class="status_bar" v-if="index===0" :style="navHeight"></view>
<view class="listview"> <view class="listview">
<view class="cell-list"> <view class="cell-list">
<text class="date">10:18</text> <text class="date">{{newsItem.CREATEDATE}}</text>
<view class="cell-list-block"> <view class="cell-list-block">
<view class="list-block-title"> <view class="list-block-title">
<image class="icon-address" src="@/static/image/message_notice@3x.png" mode="aspectFit"></image> <image class="icon-address" src="@/static/image/message_notice@3x.png" mode="aspectFit"></image>
<text class="list-block-title__text">最新消息</text> <text class="list-block-title__text">{{newsItem.MSGTITLE}}</text>
</view> </view>
<view class="cell-list-block__content"> <view class="cell-list-block__content">
<text class="cell-list-block__title">新川商贸要货审批,请尽快审批。新川商贸要货审批,请尽快审批。</text> <text class="cell-list-block__title">{{newsItem.MSGCONTENT}}</text>
</view>
</view>
<view class="cell-list-block">
<view class="list-block-title">
<image class="icon-address" src="@/static/image/message_notice@3x.png" mode="aspectFit"></image>
<text class="list-block-title__text">最新消息</text>
</view>
<view class="cell-list-block__content">
<text
class="cell-list-block__title">新川商贸要货审批,请尽快审批。新川商贸要货审批,请尽快审批。新川商贸要货审批,请尽快审批。新川商贸要货审批,请尽快审批。</text>
</view> </view>
</view> </view>
</view> </view>
...@@ -38,9 +28,17 @@ ...@@ -38,9 +28,17 @@
props: { props: {
newsItem: { newsItem: {
type: Object, type: Object,
default: function(e) { default: () => {
return {} return {
CREATEDATE: '',
MSGCONTENT: '',
MSGTITLE: '',
}
} }
},
index: {
type: Number,
default: 0
} }
}, },
data() { data() {
...@@ -48,27 +46,8 @@ ...@@ -48,27 +46,8 @@
} }
}, },
created() { created() {},
this.getMessageList(0)
this.getMessageList(1)
},
computed: { computed: {
async getMessageList(type) {
let params = {
customer: this.userInfo.code,
msgType: 'app',
page: 1,
pagesize: 1,
msgStatus: type
}
let res = await apiFindUnreadMsg(params)
if (type === 0) {
this.unreadList = res.data.list
this.unreadCount = res.data.total
} else {
this.readList = res.data
}
},
navHeight() { navHeight() {
return { return {
'height': `${this.sysinfo.safeArea.top + 44}px` 'height': `${this.sysinfo.safeArea.top + 44}px`
...@@ -104,7 +83,6 @@ ...@@ -104,7 +83,6 @@
.order { .order {
flex: 1; flex: 1;
background: #f0f4f5; background: #f0f4f5;
overflow-y: scroll;
padding: 24rpx; padding: 24rpx;
} }
...@@ -153,7 +131,7 @@ ...@@ -153,7 +131,7 @@
background: #fff; background: #fff;
padding: 20rpx 24rpx; padding: 20rpx 24rpx;
border-radius: 20rpx; border-radius: 20rpx;
margin-bottom: 56rpx; // margin-bottom: 56rpx;
} }
.list-block-title { .list-block-title {
......
...@@ -3,21 +3,21 @@ ...@@ -3,21 +3,21 @@
<view class="status_bar" :style="navHeight"></view> <view class="status_bar" :style="navHeight"></view>
<view class="listview"> <view class="listview">
<view class="cell-list"> <view class="cell-list">
<view class="cell-list-block" @click="goMessageList('unread')"> <view class="cell-list-block" @click="goMessageList('0')">
<image class="icon-address" src="@/static/image/message_unread@3x.png" mode="aspectFit"></image> <image class="icon-address" src="@/static/image/message_unread@3x.png" mode="aspectFit"></image>
<view class="cell-list-block__content"> <view class="cell-list-block__content">
<text class="cell-list-block__title">未读消息</text> <text class="cell-list-block__title">未读消息</text>
<text class="cell-list-block__desc">最新消息:新川商贸要货审批</text> <text class="cell-list-block__desc">最新消息:{{unreadList[0].MSGTITLE}}</text>
</view> </view>
<text class="dot">2</text> <text class="dot" v-if="unreadCount>0">{{unreadCount}}</text>
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode="aspectFit"></image> <image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode="aspectFit"></image>
<view class="line"></view> <view class="line"></view>
</view> </view>
<view class="cell-list-block" @click="goMessageList('read')"> <view class="cell-list-block" @click="goMessageList('1')">
<image class="icon-address" src="@/static/image/message_read@3x.png" mode="aspectFit"></image> <image class="icon-address" src="@/static/image/message_read@3x.png" mode="aspectFit"></image>
<view class="cell-list-block__content"> <view class="cell-list-block__content">
<text class="cell-list-block__title">已读消息</text> <text class="cell-list-block__title">已读消息</text>
<text class="cell-list-block__desc">暂无内容</text> <text class="cell-list-block__desc">{{readList[0].MSGTITLE}}</text>
</view> </view>
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode="aspectFit"></image> <image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode="aspectFit"></image>
</view> </view>
...@@ -35,16 +35,15 @@ ...@@ -35,16 +35,15 @@
apiFindUnreadMsg apiFindUnreadMsg
} from '@/servers/message.js' } from '@/servers/message.js'
import {
apiGetBpPrice
} from '@/servers/common.js'
export default { export default {
data() { data() {
return { return {
readList: [], readList: [{
unreadList: [], MSGTITLE: '暂无内容'
}],
unreadList: [{
MSGTITLE: '暂无内容'
}],
unreadCount: 0 unreadCount: 0
} }
}, },
...@@ -58,15 +57,9 @@ ...@@ -58,15 +57,9 @@
}, },
onShow() { onShow() {
this.getMessageList(0) this.getMessageList(0)
// this.getMessageList(1) this.getMessageList(1)
// this.getBpPrice()
}, },
methods: { methods: {
async getBpPrice() {
const res = await apiGetBpPrice({
PARTNER: this.userInfo.code
})
},
async getMessageList(type) { async getMessageList(type) {
console.log(1) console.log(1)
let params = { let params = {
...@@ -77,16 +70,19 @@ ...@@ -77,16 +70,19 @@
msgStatus: type msgStatus: type
} }
let res = await apiFindUnreadMsg(params) let res = await apiFindUnreadMsg(params)
if (res.status === 1 && res.data.Rows.length > 0) {
if (type === 0) { if (type === 0) {
this.unreadList = res.data.list this.unreadList = res.data.Rows
this.unreadCount = res.data.total this.unreadCount = res.data.Total
} else { } else {
this.readList = res.data this.readList = res.data.Rows
}
} }
}, },
goMessageList(type) { goMessageList(type) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/message-list/message-list-page` url: `/pages/message-list/message-list-page?messageType=${type}`
}); });
} }
} }
......
...@@ -112,7 +112,7 @@ ...@@ -112,7 +112,7 @@
} }
}, },
computed: { computed: {
...mapState(['sysinfo', 'userInfo']) ...mapState(['userInfo'])
}, },
created() { created() {
this.pullTimer = null; this.pullTimer = null;
......
...@@ -39,7 +39,7 @@ class Request { ...@@ -39,7 +39,7 @@ class Request {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
options.complete = (response) => { options.complete = (response) => {
console.log('api.helper---options.complete', response) // console.log('api.helper---options.complete', response)
// 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading) // 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)
uni.hideLoading(); uni.hideLoading();
// 清除定时器,如果请求回来了,就无需loading // 清除定时器,如果请求回来了,就无需loading
...@@ -123,7 +123,7 @@ class Request { ...@@ -123,7 +123,7 @@ class Request {
this.config.timer = null; this.config.timer = null;
}, this.config.loadingTime); }, this.config.loadingTime);
} }
console.log('api.helper-----finally***request', options) // console.log('api.helper-----finally***request', options)
uni.request(options); uni.request(options);
}) })
// .catch(res => { // .catch(res => {
......
...@@ -16,7 +16,9 @@ export async function apiFindUnreadMsg(params) { ...@@ -16,7 +16,9 @@ export async function apiFindUnreadMsg(params) {
* @returns {Promise<AxiosResponse<T>>} * @returns {Promise<AxiosResponse<T>>}
*/ */
export async function apiEditStatus(params) { export async function apiEditStatus(params) {
const res = await apiHelper.post('/crm-app//message/editStatus', params) const res = await apiHelper.post('/crm-app//message/editStatus', params, {
'content-type': "application/x-www-form-urlencoded"
})
return res return res
} }
......
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; ...@@ -2068,7 +2068,7 @@ index;exports.default = _default;
/***/ (function(module, exports, __webpack_require__) { /***/ (function(module, exports, __webpack_require__) {
"use strict"; "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\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:42\");\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 __f__(\"log\", 'api.helper-----finally***request', options, \" at servers/api.helper.js:126\");\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://10.0.134.45:8000', // 请求的根域名\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 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') !== -1 && config.url.indexOf('crm-app/login') === -\n 1 &&\n _index2.default.state.vuex_token) {\n config.header['X-Auth-Token'] = _index2.default.state.vuex_token;\n }\n\n if (config.url.indexOf('crm-app') !== -1) {\n config.baseUrl = 'http://10.0.135.139';\n } else {\n config.baseUrl = 'http://10.0.134.45:8000';\n }\n } catch (e) {\n __f__(\"log\", 'error', e, \" at servers/api.helper.js:172\");\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:184\");\n return config;\n },\n // 请求后的拦截\n response: function response(res) {\n __f__(\"log\", 'helper--iinterceptor---response-----', res, \" at servers/api.helper.js:189\");\n if (res.MSGTYPE === 'S' || res.msgtype === 'S' || res.status === 1) {\n // 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么\n return res;\n } else {\n uni.showToast({\n title: res.MESSAGE || res.msg || res.message,\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc2VydmVycy9hcGkuaGVscGVyLmpzIl0sIm5hbWVzIjpbIlJlcXVlc3QiLCJjdXN0b21Db25maWciLCJjb25maWciLCJvcHRpb25zIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0IiwidG1wQ29uZmlnIiwiaW50ZXJjZXB0b3JSZXF1ZXN0IiwiUHJvbWlzZSIsImRhdGFUeXBlIiwicmVzcG9uc2VUeXBlIiwidXJsIiwicGFyYW1zIiwiaGVhZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0aG9kIiwicmVzb2x2ZSIsInJlamVjdCIsImNvbXBsZXRlIiwicmVzcG9uc2UiLCJ1bmkiLCJoaWRlTG9hZGluZyIsImNsZWFyVGltZW91dCIsInRpbWVyIiwib3JpZ2luYWxEYXRhIiwicmVzSW50ZXJjZXB0b3JzIiwic3RhdHVzQ29kZSIsImRhdGEiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwiaWNvbiIsIm5hdmlnYXRlVG8iLCJ2YWxpZGF0ZSIsImJhc2VVcmwiLCJpbmRleE9mIiwic2hvd0xvYWRpbmciLCJzZXRUaW1lb3V0IiwibG9hZGluZ1RleHQiLCJtYXNrIiwibG9hZGluZ01hc2siLCJsb2FkaW5nVGltZSIsIkJhc2U2NCIsImVuY29kZSIsInN0b3JlIiwic3RhdGUiLCJ2dWV4X3Rva2VuIiwiZSIsInJlcyIsIk1TR1RZUEUiLCJtc2d0eXBlIiwic3RhdHVzIiwiTUVTU0FHRSIsIm1zZyIsIm1lc3NhZ2UiLCJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoib0lBQUE7OztBQUdBO0FBQ0E7OztBQUdBLHNGOztBQUVNQSxPO0FBQ0w7OEJBQ1VDLFksRUFBYztBQUN2QjtBQUNBLFdBQUtDLE1BQUwsR0FBYyxzQkFBVSxLQUFLQSxNQUFmLEVBQXVCRCxZQUF2QixDQUFkO0FBQ0E7O0FBRUQ7aURBQ3NCLHNCQUFkRSxPQUFjLHVFQUFKLEVBQUk7O0FBRXJCO0FBQ0EsVUFBSSxLQUFLQyxXQUFMLENBQWlCQyxP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cEIsRUFBb0IsS0FBaEJmLE1BQWdCLHVFQUFQLEVBQU87QUFDOUMsYUFBTyxNQUFJLENBQUNSLE9BQUwsQ0FBYTtBQUNuQk0sV0FBRyxFQUFIQSxHQURtQjtBQUVuQkssY0FBTSxFQUFFLFFBRlc7QUFHbkJILGNBQU0sRUFBTkEsTUFIbUI7QUFJbkJlLFlBQUksRUFBSkEsSUFKbUIsRUFBYixDQUFQOztBQU1BLEtBUEQ7QUFRQSxHOztBQUVhLElBQUk1QixPQUFKLEUiLCJmaWxlIjoiMTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRkZWVwTWVyZ2Vcbn0gZnJvbSBcIkAvdXRpbHMvaW5kZXguanNcIjtcbmltcG9ydCB2YWxpZGF0ZSBmcm9tIFwiQC91dGlscy92YWxpZGF0ZS5qc1wiO1xuaW1wb3J0IHtcblx0QmFzZTY0XG59IGZyb20gJ2pzLWJhc2U2NCdcbmltcG9ydCBzdG9yZSBmcm9tICdAL3N0b3JlL2luZGV4LmpzJ1xuXG5jbGFzcyBSZXF1ZXN0IHtcblx0Ly8g6K6+572u5YWo5bGA6buY6K6k6YWN572uXG5cdHNldENvbmZpZyhjdXN0b21Db25maWcpIHtcblx0XHQvLyDmt7HluqblkIjlubblr7nosaHvvIzlkKbliJnkvJrpgKDmiJDlr7nosaHmt7HlsYLlsZ7mgKfkuKLlpLFcblx0XHR0aGlzLmNvbmZpZyA9IGRlZXBNZXJnZSh0aGlzLmNvbmZpZywgY3VzdG9tQ29uZmlnKTtcblx0fVxuXG5cdC8vIOS4u+imgeivt+axgumDqOWIhlxuXHRyZXF1ZXN0KG9wdGlvbnMgPSB7fSkge1xuXG5cdFx0Ly8g5qOA5p+l6K+35rGC5oum5oiqXG5cdFx0aWYgKHRoaXMuaW50ZXJjZXB0b3IucmVxdWVzdCAmJiB0eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0ID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRsZXQgdG1wQ29uZmlnID0ge307XG5cdFx0XHRsZXQgaW50ZXJjZXB0b3JSZXF1ZXN0ID0gdGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdFx0aWYgKGludGVyY2VwdG9yUmVxdWVzdCA9PT0gZmFsc2UpIHtcblx0XHRcdFx0Ly8g6L+U5Zue5LiA5Liq5aSE5LqOcGVuZGluZ+eKtuaAgeS4reeahFByb21pc2XvvIzmnaXlj5bmtojljp9wcm9taXNl77yM6YG/5YWN6L+b5YWldGhlbigp5Zue6LCDXG5cdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgoKSA9PiB7fSk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLm9wdGlvbnMgPSBpbnRlcmNlcHRvclJlcXVlc3Q7XG5cdFx0fVxuXG5cdFx0b3B0aW9ucy5kYXRhVHlwZSA9IG9wdGlvbnMuZGF0YVR5cGUgfHwgdGhpcy5jb25maWcuZGF0YVR5cGU7XG5cdFx0b3B0aW9ucy5yZXNwb25zZVR5cGUgPSBvcHRpb25zLnJlc3BvbnNlVHlwZSB8fCB0aGlzLmNvbmZpZy5yZXNwb25zZVR5cGU7XG5cdFx0b3B0aW9ucy51cmwgPSBvcHRpb25zLnVybCB8fCAnJztcblx0XHRvcHRpb25zLnBhcmFtcyA9IG9wdGlvbnMucGFyYW1zIHx8IHt9O1xuXHRcdG9wdGlvbnMuaGVhZGVyID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb25maWcuaGVhZGVyLCBvcHRpb25zLmhlYWRlcik7XG5cdFx0b3B0aW9ucy5tZXRob2QgPSBvcHRpb25zLm1ldGhvZCB8fCB0aGlzLmNvbmZpZy5tZXRob2Q7XG5cblx0XHQvLyBjb25zb2xlLmxvZygnYXBpLmhlbHBlci0tLS0tcmVxdWVzdCcsIG9wdGlvbnMsIHRoaXMub3B0aW9ucylcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRvcHRpb25zLmNvbXBsZXRlID0gKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdhcGkuaGVscGVyLS0tb3B0aW9ucy5jb21wbGV0ZScsIHJlc3BvbnNlKVxuXHRcdFx0XHQvLyDor7fmsYLov5Tlm57lkI7vvIzpmpDol49sb2FkaW5nKOWmguaenOivt+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+IHtcblx0XHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuY29uZmlnLmxvYWRpbmdUZXh0LFxuXHRcdFx0XHRcdFx0bWFzazogdGhpcy5jb25maWcubG9hZGluZ01hc2tcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0fSwgdGhpcy5jb25maWcubG9hZGluZ1RpbWUpO1xuXHRcdFx0fVxuXHRcdFx0Y29uc29sZS5sb2coJ2FwaS5oZWxwZXItLS0tLWZpbmFsbHkqKipyZXF1ZXN0Jywgb3B0aW9ucylcblx0XHRcdHVuaS5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdH0pXG5cdFx0Ly8gLmNhdGNoKHJlcyA9PiB7XG5cdFx0Ly8gXHQvLyDlpoLmnpzov5Tlm55yZWplY3QoKe+8jOS4jeiuqeWFtui/m+WFpXRoaXMuJHUucG9zdCgpLnRoZW4oKS5jYXRjaCgp5ZCO6Z2i55qEY2F0Y3QoKVxuXHRcdC8vIFx0Ly8g5Zug5Li65b6I5aSa5Lq66YO95Lya5b+Y5LqG5YaZ5ZCO6Z2i55qEY2F0Y2goKe+8jOWvvOiHtOaKpemUmeaNleiOt+S4jeWIsGNhdGNoXG5cdFx0Ly8gXHRyZXR1cm4gbmV3IFByb21pc2UoKCk9Pnt9KTtcblx0XHQvLyB9KVxuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYXNlVXJsOiAnaHR0cDovLzEwLjAuMTM0LjQ1OjgwMDAnLCAvLyDor7fmsYLnmoTmoLnln5/lkI1cblx0XHRcdC8vIOm7mOiupOeahOivt+axguWktFxuXHRcdFx0aGVhZGVyOiB7fSxcblx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0Ly8g6K6+572u5Li6anNvbu+8jOi/lOWbnuWQjnVuaS5yZXF1ZXN05Lya5a+55pWw5o2u6L+b6KGM5LiA5qyhSlNPTi5wYXJzZVxuXHRcdFx0ZGF0YVR5cGU6ICdqc29uJyxcblx0XHRcdC8vIOatpOWPguaVsOaXoOmcgOWkhOeQhu+8jOWboOS4ujUr5ZKM5pSv5LuY5a6d5bCP56iL5bqP5LiN5pSv5oyB77yM6buY6K6k5Li6dGV4dOWNs+WPr1xuXHRcdFx0cmVzcG9uc2VUeXBlOiAndGV4dCcsXG5cdFx0XHRzaG93TG9hZGluZzogdHJ1ZSwgLy8g5piv5ZCm5pi+56S66K+35rGC5Lit55qEbG9hZGluZ1xuXHRcdFx0bG9hZGluZ1RleHQ6ICfor7fmsYLkuK0uLi4nLFxuXHRcdFx0bG9hZGluZ1RpbWU6IDgwMCwgLy8g5Zyo5q2k5pe26Ze05YaF77yM6K+35rGC6L+Y5rKh5Zue5p2l55qE6K+d77yM5bCx5pi+56S65Yqg6L295Lit5Yqo55S777yM5Y2V5L2NbXNcblx0XHRcdHRpbWVyOiBudWxsLCAvLyDlrprml7blmahcblx0XHRcdG9yaWdpbmFsRGF0YTogZmFsc2UsIC8vIOaYr+WQpuWcqOaLpuaIquWZqOS4rei/lOWbnuacjeWKoeerr+eahOWOn+Wni+aVsOaNru+8jOingeaWh+aho+ivtOaYjlxuXHRcdFx0bG9hZGluZ01hc2s6IHRydWUsIC8vIOWxleekumxvYWRpbmfnmoTml7blgJnvvIzmmK/lkKbnu5nkuIDkuKrpgI/mmI7nmoTokpnlsYLvvIzpmLLmraLop6bmkbjnqb/pgI9cblx0XHR9XG5cblx0XHQvLyDmi6bmiKrlmahcblx0XHR0aGlzLmludGVyY2VwdG9yID0ge1xuXHRcdFx0Ly8g6K+35rGC5YmN55qE5oum5oiqXG5cdFx0XHRyZXF1ZXN0OiAoY29uZmlnKSA9PiB7XG5cdFx0XHRcdGNvbmZpZy5oZWFkZXJbJ0F1dGhvcml6YXRpb24nXSA9IGBCYXNpYyAke0Jhc2U2NC5lbmNvZGUoJ3dhbmdwYzpMWlk4ODhAQCcpfWA7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0aWYgKGNvbmZpZy51cmwuaW5kZXhPZignY3JtLWFwcCcpICE9PSAtMSAmJiBjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSA9PT0gLVxuXHRcdFx0XHRcdFx0MSAmJlxuXHRcdFx0XHRcdFx0c3RvcmUuc3RhdGUudnVleF90b2tlbikge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmhlYWRlclsnWC1BdXRoLVRva2VuJ10gPSBzdG9yZS5zdGF0ZS52dWV4X3Rva2VuXG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKGNvbmZpZy51cmwuaW5kZXhPZignY3JtLWFwcCcpICE9PSAtMSkge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzEwLjAuMTM1LjEzOSdcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzEwLjAuMTM0LjQ1OjgwMDAnXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ2Vycm9yJywgZSlcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBpZiAoY29uZmlnLnVybC5pbmRleE9mKCdjcm0tYXBwL2xvZ2luJykgIT09IC0xICYmICFzdG9yZS5zdGF0ZS52dWV4X3Rva2VuKSB7XG5cdFx0XHRcdC8vIFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdC8vIFx0XHR0aXRsZTogJ+eZu+W9leW3suWkseaViCcsXG5cdFx0XHRcdC8vIFx0XHRkdXJhdGlvbjogMjAwMCxcblx0XHRcdFx0Ly8gXHRcdGljb246ICdub25lJ1xuXHRcdFx0XHQvLyBcdH0pO1xuXHRcdFx0XHQvLyBcdHVuaS5uYXZpZ2F0ZVRvKHtcblx0XHRcdFx0Ly8gXHRcdHVybDogXCIvcGFnZXMvbG9naW4vbG9naW5cIlxuXHRcdFx0XHQvLyBcdH0pXG5cdFx0XHRcdC8vIH1cblx0XHRcdFx0Y29uc29sZS5sb2coJ2hlbHBlci0taW50ZXJjZXB0b3ItLS1yZXF1ZXN0LS0tLS0nLCBjb25maWcpXG5cdFx0XHRcdHJldHVybiBjb25maWc7XG5cdFx0XHR9LFxuXHRcdFx0Ly8g6K+35rGC5ZCO55qE5oum5oiqXG5cdFx0XHRyZXNwb25zZTogKHJlcykgPT4ge1xuXHRcdFx0XHRjb25zb2xlLmxvZygnaGVscGVyLS1paW50ZXJjZXB0b3ItLS1yZXNwb25zZS0tLS0tJywgcmVzKVxuXHRcdFx0XHRpZiAocmVzLk1TR1RZUEUgPT09ICdTJyB8fCByZXMubXNndHlwZSA9PT0gJ1MnIHx8IHJlcy5zdGF0dXMgPT09IDEpIHtcblx0XHRcdFx0XHQvLyDlpoLmnpzmiopvcmlnaW5hbERhdGHorr7nva7kuLrkuoZ0cnVl77yM6L+Z6YeMcmV0dXJu5Zue5LuA5LmI77yMdGhpcy4kdS5wb3N055qEdGhlbuWbnuiwg+S4reWwseS8muW+l+WIsOS7gOS5iFxuXHRcdFx0XHRcdHJldHVybiByZXM7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHR0aXRsZTogcmVzLk1FU1NBR0UgfHwgcmVzLm1zZyB8fCByZXMubWVzc2FnZSxcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZ2V06K+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\n // console.log('api.helper-----request', options, this.options)\n\n return new Promise(function (resolve, reject) {\n options.complete = function (response) {\n // console.log('api.helper---options.complete', response)\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://10.0.134.45:8000', // 请求的根域名\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 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') !== -1 && config.url.indexOf('crm-app/login') === -\n 1 &&\n _index2.default.state.vuex_token) {\n config.header['X-Auth-Token'] = _index2.default.state.vuex_token;\n }\n\n if (config.url.indexOf('crm-app') !== -1) {\n config.baseUrl = 'http://10.0.135.139';\n } else {\n config.baseUrl = 'http://10.0.134.45:8000';\n }\n } catch (e) {\n __f__(\"log\", 'error', e, \" at servers/api.helper.js:172\");\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:184\");\n return config;\n },\n // 请求后的拦截\n response: function response(res) {\n __f__(\"log\", 'helper--iinterceptor---response-----', res, \" at servers/api.helper.js:189\");\n if (res.MSGTYPE === 'S' || res.msgtype === 'S' || res.status === 1) {\n // 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么\n return res;\n } else {\n uni.showToast({\n title: res.MESSAGE || res.msg || res.message,\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc2VydmVycy9hcGkuaGVscGVyLmpzIl0sIm5hbWVzIjpbIlJlcXVlc3QiLCJjdXN0b21Db25maWciLCJjb25maWciLCJvcHRpb25zIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0IiwidG1wQ29uZmlnIiwiaW50ZXJjZXB0b3JSZXF1ZXN0IiwiUHJvbWlzZSIsImRhdGFUeXBlIiwicmVzcG9uc2VUeXBlIiwidXJsIiwicGFyYW1zIiwiaGVhZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0aG9kIiwicmVzb2x2ZSIsInJlamVjdCIsImNvbXBsZXRlIiwicmVzcG9uc2UiLCJ1bmkiLCJoaWRlTG9hZGluZyIsImNsZWFyVGltZW91dCIsInRpbWVyIiwib3JpZ2luYWxEYXRhIiwicmVzSW50ZXJjZXB0b3JzIiwic3RhdHVzQ29kZSIsImRhdGEiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwiaWNvbiIsIm5hdmlnYXRlVG8iLCJ2YWxpZGF0ZSIsImJhc2VVcmwiLCJpbmRleE9mIiwic2hvd0xvYWRpbmciLCJzZXRUaW1lb3V0IiwibG9hZGluZ1RleHQiLCJtYXNrIiwibG9hZGluZ01hc2siLCJsb2FkaW5nVGltZSIsIkJhc2U2NCIsImVuY29kZSIsInN0b3JlIiwic3RhdGUiLCJ2dWV4X3Rva2VuIiwiZSIsInJlcyIsIk1TR1RZUEUiLCJtc2d0eXBlIiwic3RhdHVzIiwiTUVTU0FHRSIsIm1zZyIsIm1lc3NhZ2UiLCJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoib0lBQUE7OztBQUdBO0FBQ0E7OztBQUdBLHNGOztBQUVNQSxPO0FBQ0w7OEJBQ1VDLFksRUFBYztBQUN2QjtBQUNBLFdBQUtDLE1BQUwsR0FBYyxzQkFBVSxLQUFLQSxNQUFmLEVBQXVCRCxZQUF2QixDQUFkO0FBQ0E7O0FBRUQ7aURBQ3NCLHNCQUFkRSxPQUFjLHVFQUFKLEVBQUk7O0FBRXJCO0FBQ0EsVUFBSSxLQUFLQyxXQUFMLENBQWlCQyxP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QUNSLE9BQUwsQ0FBYTtBQUNuQk0sV0FBRyxFQUFIQSxHQURtQjtBQUVuQkssY0FBTSxFQUFFLFFBRlc7QUFHbkJILGNBQU0sRUFBTkEsTUFIbUI7QUFJbkJlLFlBQUksRUFBSkEsSUFKbUIsRUFBYixDQUFQOztBQU1BLEtBUEQ7QUFRQSxHOztBQUVhLElBQUk1QixPQUFKLEUiLCJmaWxlIjoiMTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRkZWVwTWVyZ2Vcbn0gZnJvbSBcIkAvdXRpbHMvaW5kZXguanNcIjtcbmltcG9ydCB2YWxpZGF0ZSBmcm9tIFwiQC91dGlscy92YWxpZGF0ZS5qc1wiO1xuaW1wb3J0IHtcblx0QmFzZTY0XG59IGZyb20gJ2pzLWJhc2U2NCdcbmltcG9ydCBzdG9yZSBmcm9tICdAL3N0b3JlL2luZGV4LmpzJ1xuXG5jbGFzcyBSZXF1ZXN0IHtcblx0Ly8g6K6+572u5YWo5bGA6buY6K6k6YWN572uXG5cdHNldENvbmZpZyhjdXN0b21Db25maWcpIHtcblx0XHQvLyDmt7HluqblkIjlubblr7nosaHvvIzlkKbliJnkvJrpgKDmiJDlr7nosaHmt7HlsYLlsZ7mgKfkuKLlpLFcblx0XHR0aGlzLmNvbmZpZyA9IGRlZXBNZXJnZSh0aGlzLmNvbmZpZywgY3VzdG9tQ29uZmlnKTtcblx0fVxuXG5cdC8vIOS4u+imgeivt+axgumDqOWIhlxuXHRyZXF1ZXN0KG9wdGlvbnMgPSB7fSkge1xuXG5cdFx0Ly8g5qOA5p+l6K+35rGC5oum5oiqXG5cdFx0aWYgKHRoaXMuaW50ZXJjZXB0b3IucmVxdWVzdCAmJiB0eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0ID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRsZXQgdG1wQ29uZmlnID0ge307XG5cdFx0XHRsZXQgaW50ZXJjZXB0b3JSZXF1ZXN0ID0gdGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdFx0aWYgKGludGVyY2VwdG9yUmVxdWVzdCA9PT0gZmFsc2UpIHtcblx0XHRcdFx0Ly8g6L+U5Zue5LiA5Liq5aSE5LqOcGVuZGluZ+eKtuaAgeS4reeahFByb21pc2XvvIzmnaXlj5bmtojljp9wcm9taXNl77yM6YG/5YWN6L+b5YWldGhlbigp5Zue6LCDXG5cdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgoKSA9PiB7fSk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLm9wdGlvbnMgPSBpbnRlcmNlcHRvclJlcXVlc3Q7XG5cdFx0fVxuXG5cdFx0b3B0aW9ucy5kYXRhVHlwZSA9IG9wdGlvbnMuZGF0YVR5cGUgfHwgdGhpcy5jb25maWcuZGF0YVR5cGU7XG5cdFx0b3B0aW9ucy5yZXNwb25zZVR5cGUgPSBvcHRpb25zLnJlc3BvbnNlVHlwZSB8fCB0aGlzLmNvbmZpZy5yZXNwb25zZVR5cGU7XG5cdFx0b3B0aW9ucy51cmwgPSBvcHRpb25zLnVybCB8fCAnJztcblx0XHRvcHRpb25zLnBhcmFtcyA9IG9wdGlvbnMucGFyYW1zIHx8IHt9O1xuXHRcdG9wdGlvbnMuaGVhZGVyID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb25maWcuaGVhZGVyLCBvcHRpb25zLmhlYWRlcik7XG5cdFx0b3B0aW9ucy5tZXRob2QgPSBvcHRpb25zLm1ldGhvZCB8fCB0aGlzLmNvbmZpZy5tZXRob2Q7XG5cblx0XHQvLyBjb25zb2xlLmxvZygnYXBpLmhlbHBlci0tLS0tcmVxdWVzdCcsIG9wdGlvbnMsIHRoaXMub3B0aW9ucylcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRvcHRpb25zLmNvbXBsZXRlID0gKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdhcGkuaGVscGVyLS0tb3B0aW9ucy5jb21wbGV0ZScsIHJlc3BvbnNlKVxuXHRcdFx0XHQvLyDor7fmsYLov5Tlm57lkI7vvIzpmpDol49sb2FkaW5nKOWmguaenOivt+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+S4jeWIsGNhdGNoXG5cdFx0Ly8gXHRyZXR1cm4gbmV3IFByb21pc2UoKCk9Pnt9KTtcblx0XHQvLyB9KVxuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYXNlVXJsOiAnaHR0cDovLzEwLjAuMTM0LjQ1OjgwMDAnLCAvLyDor7fmsYLnmoTmoLnln5/lkI1cblx0XHRcdC8vIOm7mOiupOeahOivt+axguWktFxuXHRcdFx0aGVhZGVyOiB7fSxcblx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0Ly8g6K6+572u5Li6anNvbu+8jOi/lOWbnuWQjnVuaS5yZXF1ZXN05Lya5a+55pWw5o2u6L+b6KGM5LiA5qyhSlNPTi5wYXJzZVxuXHRcdFx0ZGF0YVR5cGU6ICdqc29uJyxcblx0XHRcdC8vIOatpOWPguaVsOaXoOmcgOWkhOeQhu+8jOWboOS4ujUr5ZKM5pSv5LuY5a6d5bCP56iL5bqP5LiN5pSv5oyB77yM6buY6K6k5Li6dGV4dOWNs+WPr1xuXHRcdFx0cmVzcG9uc2VUeXBlOiAndGV4dCcsXG5cdFx0XHRzaG93TG9hZGluZzogdHJ1ZSwgLy8g5piv5ZCm5pi+56S66K+35rGC5Lit55qEbG9hZGluZ1xuXHRcdFx0bG9hZGluZ1RleHQ6ICfor7fmsYLkuK0uLi4nLFxuXHRcdFx0bG9hZGluZ1RpbWU6IDgwMCwgLy8g5Zyo5q2k5pe26Ze05YaF77yM6K+35rGC6L+Y5rKh5Zue5p2l55qE6K+d77yM5bCx5pi+56S65Yqg6L295Lit5Yqo55S777yM5Y2V5L2NbXNcblx0XHRcdHRpbWVyOiBudWxsLCAvLyDlrprml7blmahcblx0XHRcdG9yaWdpbmFsRGF0YTogZmFsc2UsIC8vIOaYr+WQpuWcqOaLpuaIquWZqOS4rei/lOWbnuacjeWKoeerr+eahOWOn+Wni+aVsOaNru+8jOingeaWh+aho+ivtOaYjlxuXHRcdFx0bG9hZGluZ01hc2s6IHRydWUsIC8vIOWxleekumxvYWRpbmfnmoTml7blgJnvvIzmmK/lkKbnu5nkuIDkuKrpgI/mmI7nmoTokpnlsYLvvIzpmLLmraLop6bmkbjnqb/pgI9cblx0XHR9XG5cblx0XHQvLyDmi6bmiKrlmahcblx0XHR0aGlzLmludGVyY2VwdG9yID0ge1xuXHRcdFx0Ly8g6K+35rGC5YmN55qE5oum5oiqXG5cdFx0XHRyZXF1ZXN0OiAoY29uZmlnKSA9PiB7XG5cdFx0XHRcdGNvbmZpZy5oZWFkZXJbJ0F1dGhvcml6YXRpb24nXSA9IGBCYXNpYyAke0Jhc2U2NC5lbmNvZGUoJ3dhbmdwYzpMWlk4ODhAQCcpfWA7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0aWYgKGNvbmZpZy51cmwuaW5kZXhPZignY3JtLWFwcCcpICE9PSAtMSAmJiBjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSA9PT0gLVxuXHRcdFx0XHRcdFx0MSAmJlxuXHRcdFx0XHRcdFx0c3RvcmUuc3RhdGUudnVleF90b2tlbikge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmhlYWRlclsnWC1BdXRoLVRva2VuJ10gPSBzdG9yZS5zdGF0ZS52dWV4X3Rva2VuXG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKGNvbmZpZy51cmwuaW5kZXhPZignY3JtLWFwcCcpICE9PSAtMSkge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzEwLjAuMTM1LjEzOSdcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzEwLjAuMTM0LjQ1OjgwMDAnXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ2Vycm9yJywgZSlcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBpZiAoY29uZmlnLnVybC5pbmRleE9mKCdjcm0tYXBwL2xvZ2luJykgIT09IC0xICYmICFzdG9yZS5zdGF0ZS52dWV4X3Rva2VuKSB7XG5cdFx0XHRcdC8vIFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdC8vIFx0XHR0aXRsZTogJ+eZu+W9leW3suWkseaViCcsXG5cdFx0XHRcdC8vIFx0XHRkdXJhdGlvbjogMjAwMCxcblx0XHRcdFx0Ly8gXHRcdGljb246ICdub25lJ1xuXHRcdFx0XHQvLyBcdH0pO1xuXHRcdFx0XHQvLyBcdHVuaS5uYXZpZ2F0ZVRvKHtcblx0XHRcdFx0Ly8gXHRcdHVybDogXCIvcGFnZXMvbG9naW4vbG9naW5cIlxuXHRcdFx0XHQvLyBcdH0pXG5cdFx0XHRcdC8vIH1cblx0XHRcdFx0Y29uc29sZS5sb2coJ2hlbHBlci0taW50ZXJjZXB0b3ItLS1yZXF1ZXN0LS0tLS0nLCBjb25maWcpXG5cdFx0XHRcdHJldHVybiBjb25maWc7XG5cdFx0XHR9LFxuXHRcdFx0Ly8g6K+35rGC5ZCO55qE5oum5oiqXG5cdFx0XHRyZXNwb25zZTogKHJlcykgPT4ge1xuXHRcdFx0XHRjb25zb2xlLmxvZygnaGVscGVyLS1paW50ZXJjZXB0b3ItLS1yZXNwb25zZS0tLS0tJywgcmVzKVxuXHRcdFx0XHRpZiAocmVzLk1TR1RZUEUgPT09ICdTJyB8fCByZXMubXNndHlwZSA9PT0gJ1MnIHx8IHJlcy5zdGF0dXMgPT09IDEpIHtcblx0XHRcdFx0XHQvLyDlpoLmnpzmiopvcmlnaW5hbERhdGHorr7nva7kuLrkuoZ0cnVl77yM6L+Z6YeMcmV0dXJu5Zue5LuA5LmI77yMdGhpcy4kdS5wb3N055qEdGhlbuWbnuiwg+S4reWwseS8muW+l+WIsOS7gOS5iFxuXHRcdFx0XHRcdHJldHVybiByZXM7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHR0aXRsZTogcmVzLk1FU1NBR0UgfHwgcmVzLm1zZyB8fCByZXMubWVzc2FnZSxcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZ2V06K+35rGCXG5cdFx0dGhpcy5nZXQgPSAodXJsLCBkYXRhID0ge30sIGhlYWRlciA9IHt9KSA9PiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5yZXF1ZXN0KHtcblx0XHRcdFx0bWV0aG9kOiAnR0VUJyxcblx0XHRcdFx0dXJsLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcG9zdOivt+axglxuXHRcdHRoaXMucG9zdCA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcHV06K+35rGC77yM5LiN5pSv5oyB5pSv5LuY5a6d5bCP56iL5bqPKEhYMi42LjE1KVxuXHRcdHRoaXMucHV0ID0gKHVybCwgZGF0YSA9IHt9LCBoZWFkZXIgPSB7fSkgPT4ge1xuXHRcdFx0cmV0dXJuIHRoaXMucmVxdWVzdCh7XG5cdFx0XHRcdHVybCxcblx0XHRcdFx0bWV0aG9kOiAnUFVUJyxcblx0XHRcdFx0aGVhZGVyLFxuXHRcdFx0XHRkYXRhXG5cdFx0XHR9KVxuXHRcdH1cblxuXHRcdC8vIGRlbGV0Zeivt+axgu+8jOS4jeaUr+aMgeaUr+S7mOWuneWSjOWktOadoeWwj+eoi+W6jyhIWDIuNi4xNSlcblx0XHR0aGlzLmRlbGV0ZSA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ0RFTEVURScsXG5cdFx0XHRcdGhlYWRlcixcblx0XHRcdFx0ZGF0YVxuXHRcdFx0fSlcblx0XHR9XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IG5ldyBSZXF1ZXN0XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///15\n");
/***/ }), /***/ }),
......
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; ...@@ -2068,7 +2068,7 @@ index;exports.default = _default;
/***/ (function(module, exports, __webpack_require__) { /***/ (function(module, exports, __webpack_require__) {
"use strict"; "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\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:42\");\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 __f__(\"log\", 'api.helper-----finally***request', options, \" at servers/api.helper.js:126\");\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://10.0.134.45:8000', // 请求的根域名\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 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') !== -1 && config.url.indexOf('crm-app/login') === -\n 1 &&\n _index2.default.state.vuex_token) {\n config.header['X-Auth-Token'] = _index2.default.state.vuex_token;\n }\n\n if (config.url.indexOf('crm-app') !== -1) {\n config.baseUrl = 'http://10.0.135.139';\n } else {\n config.baseUrl = 'http://10.0.134.45:8000';\n }\n } catch (e) {\n __f__(\"log\", 'error', e, \" at servers/api.helper.js:172\");\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:184\");\n return config;\n },\n // 请求后的拦截\n response: function response(res) {\n __f__(\"log\", 'helper--iinterceptor---response-----', res, \" at servers/api.helper.js:189\");\n if (res.MSGTYPE === 'S' || res.msgtype === 'S' || res.status === 1) {\n // 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么\n return res;\n } else {\n uni.showToast({\n title: res.MESSAGE || res.msg || res.message,\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc2VydmVycy9hcGkuaGVscGVyLmpzIl0sIm5hbWVzIjpbIlJlcXVlc3QiLCJjdXN0b21Db25maWciLCJjb25maWciLCJvcHRpb25zIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0IiwidG1wQ29uZmlnIiwiaW50ZXJjZXB0b3JSZXF1ZXN0IiwiUHJvbWlzZSIsImRhdGFUeXBlIiwicmVzcG9uc2VUeXBlIiwidXJsIiwicGFyYW1zIiwiaGVhZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0aG9kIiwicmVzb2x2ZSIsInJlamVjdCIsImNvbXBsZXRlIiwicmVzcG9uc2UiLCJ1bmkiLCJoaWRlTG9hZGluZyIsImNsZWFyVGltZW91dCIsInRpbWVyIiwib3JpZ2luYWxEYXRhIiwicmVzSW50ZXJjZXB0b3JzIiwic3RhdHVzQ29kZSIsImRhdGEiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwiaWNvbiIsIm5hdmlnYXRlVG8iLCJ2YWxpZGF0ZSIsImJhc2VVcmwiLCJpbmRleE9mIiwic2hvd0xvYWRpbmciLCJzZXRUaW1lb3V0IiwibG9hZGluZ1RleHQiLCJtYXNrIiwibG9hZGluZ01hc2siLCJsb2FkaW5nVGltZSIsIkJhc2U2NCIsImVuY29kZSIsInN0b3JlIiwic3RhdGUiLCJ2dWV4X3Rva2VuIiwiZSIsInJlcyIsIk1TR1RZUEUiLCJtc2d0eXBlIiwic3RhdHVzIiwiTUVTU0FHRSIsIm1zZyIsIm1lc3NhZ2UiLCJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoib0lBQUE7OztBQUdBO0FBQ0E7OztBQUdBLHNGOztBQUVNQSxPO0FBQ0w7OEJBQ1VDLFksRUFBYztBQUN2QjtBQUNBLFdBQUtDLE1BQUwsR0FBYyxzQkFBVSxLQUFLQSxNQUFmLEVBQXVCRCxZQUF2QixDQUFkO0FBQ0E7O0FBRUQ7aURBQ3NCLHNCQUFkRSxPQUFjLHVFQUFKLEVBQUk7O0FBRXJCO0FBQ0EsVUFBSSxLQUFLQyxXQUFMLENBQWlCQyxP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cEIsRUFBb0IsS0FBaEJmLE1BQWdCLHVFQUFQLEVBQU87QUFDOUMsYUFBTyxNQUFJLENBQUNSLE9BQUwsQ0FBYTtBQUNuQk0sV0FBRyxFQUFIQSxHQURtQjtBQUVuQkssY0FBTSxFQUFFLFFBRlc7QUFHbkJILGNBQU0sRUFBTkEsTUFIbUI7QUFJbkJlLFlBQUksRUFBSkEsSUFKbUIsRUFBYixDQUFQOztBQU1BLEtBUEQ7QUFRQSxHOztBQUVhLElBQUk1QixPQUFKLEUiLCJmaWxlIjoiMTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRkZWVwTWVyZ2Vcbn0gZnJvbSBcIkAvdXRpbHMvaW5kZXguanNcIjtcbmltcG9ydCB2YWxpZGF0ZSBmcm9tIFwiQC91dGlscy92YWxpZGF0ZS5qc1wiO1xuaW1wb3J0IHtcblx0QmFzZTY0XG59IGZyb20gJ2pzLWJhc2U2NCdcbmltcG9ydCBzdG9yZSBmcm9tICdAL3N0b3JlL2luZGV4LmpzJ1xuXG5jbGFzcyBSZXF1ZXN0IHtcblx0Ly8g6K6+572u5YWo5bGA6buY6K6k6YWN572uXG5cdHNldENvbmZpZyhjdXN0b21Db25maWcpIHtcblx0XHQvLyDmt7HluqblkIjlubblr7nosaHvvIzlkKbliJnkvJrpgKDmiJDlr7nosaHmt7HlsYLlsZ7mgKfkuKLlpLFcblx0XHR0aGlzLmNvbmZpZyA9IGRlZXBNZXJnZSh0aGlzLmNvbmZpZywgY3VzdG9tQ29uZmlnKTtcblx0fVxuXG5cdC8vIOS4u+imgeivt+axgumDqOWIhlxuXHRyZXF1ZXN0KG9wdGlvbnMgPSB7fSkge1xuXG5cdFx0Ly8g5qOA5p+l6K+35rGC5oum5oiqXG5cdFx0aWYgKHRoaXMuaW50ZXJjZXB0b3IucmVxdWVzdCAmJiB0eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0ID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRsZXQgdG1wQ29uZmlnID0ge307XG5cdFx0XHRsZXQgaW50ZXJjZXB0b3JSZXF1ZXN0ID0gdGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdFx0aWYgKGludGVyY2VwdG9yUmVxdWVzdCA9PT0gZmFsc2UpIHtcblx0XHRcdFx0Ly8g6L+U5Zue5LiA5Liq5aSE5LqOcGVuZGluZ+eKtuaAgeS4reeahFByb21pc2XvvIzmnaXlj5bmtojljp9wcm9taXNl77yM6YG/5YWN6L+b5YWldGhlbigp5Zue6LCDXG5cdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgoKSA9PiB7fSk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLm9wdGlvbnMgPSBpbnRlcmNlcHRvclJlcXVlc3Q7XG5cdFx0fVxuXG5cdFx0b3B0aW9ucy5kYXRhVHlwZSA9IG9wdGlvbnMuZGF0YVR5cGUgfHwgdGhpcy5jb25maWcuZGF0YVR5cGU7XG5cdFx0b3B0aW9ucy5yZXNwb25zZVR5cGUgPSBvcHRpb25zLnJlc3BvbnNlVHlwZSB8fCB0aGlzLmNvbmZpZy5yZXNwb25zZVR5cGU7XG5cdFx0b3B0aW9ucy51cmwgPSBvcHRpb25zLnVybCB8fCAnJztcblx0XHRvcHRpb25zLnBhcmFtcyA9IG9wdGlvbnMucGFyYW1zIHx8IHt9O1xuXHRcdG9wdGlvbnMuaGVhZGVyID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb25maWcuaGVhZGVyLCBvcHRpb25zLmhlYWRlcik7XG5cdFx0b3B0aW9ucy5tZXRob2QgPSBvcHRpb25zLm1ldGhvZCB8fCB0aGlzLmNvbmZpZy5tZXRob2Q7XG5cblx0XHQvLyBjb25zb2xlLmxvZygnYXBpLmhlbHBlci0tLS0tcmVxdWVzdCcsIG9wdGlvbnMsIHRoaXMub3B0aW9ucylcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRvcHRpb25zLmNvbXBsZXRlID0gKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdhcGkuaGVscGVyLS0tb3B0aW9ucy5jb21wbGV0ZScsIHJlc3BvbnNlKVxuXHRcdFx0XHQvLyDor7fmsYLov5Tlm57lkI7vvIzpmpDol49sb2FkaW5nKOWmguaenOivt+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+IHtcblx0XHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuY29uZmlnLmxvYWRpbmdUZXh0LFxuXHRcdFx0XHRcdFx0bWFzazogdGhpcy5jb25maWcubG9hZGluZ01hc2tcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0fSwgdGhpcy5jb25maWcubG9hZGluZ1RpbWUpO1xuXHRcdFx0fVxuXHRcdFx0Y29uc29sZS5sb2coJ2FwaS5oZWxwZXItLS0tLWZpbmFsbHkqKipyZXF1ZXN0Jywgb3B0aW9ucylcblx0XHRcdHVuaS5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdH0pXG5cdFx0Ly8gLmNhdGNoKHJlcyA9PiB7XG5cdFx0Ly8gXHQvLyDlpoLmnpzov5Tlm55yZWplY3QoKe+8jOS4jeiuqeWFtui/m+WFpXRoaXMuJHUucG9zdCgpLnRoZW4oKS5jYXRjaCgp5ZCO6Z2i55qEY2F0Y3QoKVxuXHRcdC8vIFx0Ly8g5Zug5Li65b6I5aSa5Lq66YO95Lya5b+Y5LqG5YaZ5ZCO6Z2i55qEY2F0Y2goKe+8jOWvvOiHtOaKpemUmeaNleiOt+S4jeWIsGNhdGNoXG5cdFx0Ly8gXHRyZXR1cm4gbmV3IFByb21pc2UoKCk9Pnt9KTtcblx0XHQvLyB9KVxuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYXNlVXJsOiAnaHR0cDovLzEwLjAuMTM0LjQ1OjgwMDAnLCAvLyDor7fmsYLnmoTmoLnln5/lkI1cblx0XHRcdC8vIOm7mOiupOeahOivt+axguWktFxuXHRcdFx0aGVhZGVyOiB7fSxcblx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0Ly8g6K6+572u5Li6anNvbu+8jOi/lOWbnuWQjnVuaS5yZXF1ZXN05Lya5a+55pWw5o2u6L+b6KGM5LiA5qyhSlNPTi5wYXJzZVxuXHRcdFx0ZGF0YVR5cGU6ICdqc29uJyxcblx0XHRcdC8vIOatpOWPguaVsOaXoOmcgOWkhOeQhu+8jOWboOS4ujUr5ZKM5pSv5LuY5a6d5bCP56iL5bqP5LiN5pSv5oyB77yM6buY6K6k5Li6dGV4dOWNs+WPr1xuXHRcdFx0cmVzcG9uc2VUeXBlOiAndGV4dCcsXG5cdFx0XHRzaG93TG9hZGluZzogdHJ1ZSwgLy8g5piv5ZCm5pi+56S66K+35rGC5Lit55qEbG9hZGluZ1xuXHRcdFx0bG9hZGluZ1RleHQ6ICfor7fmsYLkuK0uLi4nLFxuXHRcdFx0bG9hZGluZ1RpbWU6IDgwMCwgLy8g5Zyo5q2k5pe26Ze05YaF77yM6K+35rGC6L+Y5rKh5Zue5p2l55qE6K+d77yM5bCx5pi+56S65Yqg6L295Lit5Yqo55S777yM5Y2V5L2NbXNcblx0XHRcdHRpbWVyOiBudWxsLCAvLyDlrprml7blmahcblx0XHRcdG9yaWdpbmFsRGF0YTogZmFsc2UsIC8vIOaYr+WQpuWcqOaLpuaIquWZqOS4rei/lOWbnuacjeWKoeerr+eahOWOn+Wni+aVsOaNru+8jOingeaWh+aho+ivtOaYjlxuXHRcdFx0bG9hZGluZ01hc2s6IHRydWUsIC8vIOWxleekumxvYWRpbmfnmoTml7blgJnvvIzmmK/lkKbnu5nkuIDkuKrpgI/mmI7nmoTokpnlsYLvvIzpmLLmraLop6bmkbjnqb/pgI9cblx0XHR9XG5cblx0XHQvLyDmi6bmiKrlmahcblx0XHR0aGlzLmludGVyY2VwdG9yID0ge1xuXHRcdFx0Ly8g6K+35rGC5YmN55qE5oum5oiqXG5cdFx0XHRyZXF1ZXN0OiAoY29uZmlnKSA9PiB7XG5cdFx0XHRcdGNvbmZpZy5oZWFkZXJbJ0F1dGhvcml6YXRpb24nXSA9IGBCYXNpYyAke0Jhc2U2NC5lbmNvZGUoJ3dhbmdwYzpMWlk4ODhAQCcpfWA7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0aWYgKGNvbmZpZy51cmwuaW5kZXhPZignY3JtLWFwcCcpICE9PSAtMSAmJiBjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSA9PT0gLVxuXHRcdFx0XHRcdFx0MSAmJlxuXHRcdFx0XHRcdFx0c3RvcmUuc3RhdGUudnVleF90b2tlbikge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmhlYWRlclsnWC1BdXRoLVRva2VuJ10gPSBzdG9yZS5zdGF0ZS52dWV4X3Rva2VuXG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKGNvbmZpZy51cmwuaW5kZXhPZignY3JtLWFwcCcpICE9PSAtMSkge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzEwLjAuMTM1LjEzOSdcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzEwLjAuMTM0LjQ1OjgwMDAnXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ2Vycm9yJywgZSlcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBpZiAoY29uZmlnLnVybC5pbmRleE9mKCdjcm0tYXBwL2xvZ2luJykgIT09IC0xICYmICFzdG9yZS5zdGF0ZS52dWV4X3Rva2VuKSB7XG5cdFx0XHRcdC8vIFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdC8vIFx0XHR0aXRsZTogJ+eZu+W9leW3suWkseaViCcsXG5cdFx0XHRcdC8vIFx0XHRkdXJhdGlvbjogMjAwMCxcblx0XHRcdFx0Ly8gXHRcdGljb246ICdub25lJ1xuXHRcdFx0XHQvLyBcdH0pO1xuXHRcdFx0XHQvLyBcdHVuaS5uYXZpZ2F0ZVRvKHtcblx0XHRcdFx0Ly8gXHRcdHVybDogXCIvcGFnZXMvbG9naW4vbG9naW5cIlxuXHRcdFx0XHQvLyBcdH0pXG5cdFx0XHRcdC8vIH1cblx0XHRcdFx0Y29uc29sZS5sb2coJ2hlbHBlci0taW50ZXJjZXB0b3ItLS1yZXF1ZXN0LS0tLS0nLCBjb25maWcpXG5cdFx0XHRcdHJldHVybiBjb25maWc7XG5cdFx0XHR9LFxuXHRcdFx0Ly8g6K+35rGC5ZCO55qE5oum5oiqXG5cdFx0XHRyZXNwb25zZTogKHJlcykgPT4ge1xuXHRcdFx0XHRjb25zb2xlLmxvZygnaGVscGVyLS1paW50ZXJjZXB0b3ItLS1yZXNwb25zZS0tLS0tJywgcmVzKVxuXHRcdFx0XHRpZiAocmVzLk1TR1RZUEUgPT09ICdTJyB8fCByZXMubXNndHlwZSA9PT0gJ1MnIHx8IHJlcy5zdGF0dXMgPT09IDEpIHtcblx0XHRcdFx0XHQvLyDlpoLmnpzmiopvcmlnaW5hbERhdGHorr7nva7kuLrkuoZ0cnVl77yM6L+Z6YeMcmV0dXJu5Zue5LuA5LmI77yMdGhpcy4kdS5wb3N055qEdGhlbuWbnuiwg+S4reWwseS8muW+l+WIsOS7gOS5iFxuXHRcdFx0XHRcdHJldHVybiByZXM7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHR0aXRsZTogcmVzLk1FU1NBR0UgfHwgcmVzLm1zZyB8fCByZXMubWVzc2FnZSxcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZ2V06K+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\n // console.log('api.helper-----request', options, this.options)\n\n return new Promise(function (resolve, reject) {\n options.complete = function (response) {\n // console.log('api.helper---options.complete', response)\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://10.0.134.45:8000', // 请求的根域名\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 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') !== -1 && config.url.indexOf('crm-app/login') === -\n 1 &&\n _index2.default.state.vuex_token) {\n config.header['X-Auth-Token'] = _index2.default.state.vuex_token;\n }\n\n if (config.url.indexOf('crm-app') !== -1) {\n config.baseUrl = 'http://10.0.135.139';\n } else {\n config.baseUrl = 'http://10.0.134.45:8000';\n }\n } catch (e) {\n __f__(\"log\", 'error', e, \" at servers/api.helper.js:172\");\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:184\");\n return config;\n },\n // 请求后的拦截\n response: function response(res) {\n __f__(\"log\", 'helper--iinterceptor---response-----', res, \" at servers/api.helper.js:189\");\n if (res.MSGTYPE === 'S' || res.msgtype === 'S' || res.status === 1) {\n // 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么\n return res;\n } else {\n uni.showToast({\n title: res.MESSAGE || res.msg || res.message,\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc2VydmVycy9hcGkuaGVscGVyLmpzIl0sIm5hbWVzIjpbIlJlcXVlc3QiLCJjdXN0b21Db25maWciLCJjb25maWciLCJvcHRpb25zIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0IiwidG1wQ29uZmlnIiwiaW50ZXJjZXB0b3JSZXF1ZXN0IiwiUHJvbWlzZSIsImRhdGFUeXBlIiwicmVzcG9uc2VUeXBlIiwidXJsIiwicGFyYW1zIiwiaGVhZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0aG9kIiwicmVzb2x2ZSIsInJlamVjdCIsImNvbXBsZXRlIiwicmVzcG9uc2UiLCJ1bmkiLCJoaWRlTG9hZGluZyIsImNsZWFyVGltZW91dCIsInRpbWVyIiwib3JpZ2luYWxEYXRhIiwicmVzSW50ZXJjZXB0b3JzIiwic3RhdHVzQ29kZSIsImRhdGEiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwiaWNvbiIsIm5hdmlnYXRlVG8iLCJ2YWxpZGF0ZSIsImJhc2VVcmwiLCJpbmRleE9mIiwic2hvd0xvYWRpbmciLCJzZXRUaW1lb3V0IiwibG9hZGluZ1RleHQiLCJtYXNrIiwibG9hZGluZ01hc2siLCJsb2FkaW5nVGltZSIsIkJhc2U2NCIsImVuY29kZSIsInN0b3JlIiwic3RhdGUiLCJ2dWV4X3Rva2VuIiwiZSIsInJlcyIsIk1TR1RZUEUiLCJtc2d0eXBlIiwic3RhdHVzIiwiTUVTU0FHRSIsIm1zZyIsIm1lc3NhZ2UiLCJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoib0lBQUE7OztBQUdBO0FBQ0E7OztBQUdBLHNGOztBQUVNQSxPO0FBQ0w7OEJBQ1VDLFksRUFBYztBQUN2QjtBQUNBLFdBQUtDLE1BQUwsR0FBYyxzQkFBVSxLQUFLQSxNQUFmLEVBQXVCRCxZQUF2QixDQUFkO0FBQ0E7O0FBRUQ7aURBQ3NCLHNCQUFkRSxPQUFjLHVFQUFKLEVBQUk7O0FBRXJCO0FBQ0EsVUFBSSxLQUFLQyxXQUFMLENBQWlCQyxPQUFqQixJQUE0QixPQUFPLEtBQUtELFdBQUwsQ0FBaUJDLE9BQXhCLEtBQW9DLFVBQXBFLEVBQWdGO0FBQy9FLFlBQUlDLFNBQVMsR0FBRyxFQUFoQjtBQUNBLFlBQUlDLGtCQUFrQixHQUFHLEtBQUtILFdBQUwsQ0FBaUJDLE9BQWpCLENBQXlCRixPQUF6QixDQUF6QjtBQUNBLFlBQUlJLGtCQUFrQixLQUFLLEtBQTNCLEVBQWtDO0FBQ2pDO0FBQ0EsaUJBQU8sSUFBSUMsT0FBSixDQUFZLFlBQU0sQ0FBRSxDQUFwQixDQUFQO0FBQ0E7QUFDRCxhQUFLTCxPQUFMLEdBQWVJLGtCQUFmO0FBQ0E7O0FBRURKLGFBQU8sQ0FBQ00sUUFBUixHQUFtQk4sT0FBTyxDQUFDTSxRQUFSLElBQW9CLEtBQUtQLE1BQUwsQ0FBWU8sUUFBbkQ7QUFDQU4sYUFBTyxDQUFDTyxZQUFSLEdBQXVCUCxPQUFPLENBQUNPLFlBQVIsSUFBd0IsS0FBS1IsTUFBTCxDQUFZUSxZQUEzRDtBQUNBUCxhQUFPLENBQUNRLEdBQVIsR0FBY1IsT0FBTyxDQUFDUSxHQUFSLElBQWUsRUFBN0I7QUFDQVIsYUFBTyxDQUFDUyxNQUFSLEdBQWlCVCxPQUFPLENBQUNTLE1BQVIsSUFBa0IsRUFBbkM7QUFDQVQsYUFBTyxDQUFDVSxNQUFSLEdBQWlCQyxNQUFNLENBQUNDLE1BQVAsQ0FBYyxFQUFkLEVBQWtCLEtBQUtiLE1BQUwsQ0FBWVcsTUFBOUIsRUFBc0NWLE9BQU8sQ0FBQ1UsTUFBOUMsQ0FBakI7QUFDQVYsYUFBTyxDQUFDYSxNQUFSLEdBQWlCYixPQUFPLENBQUNhLE1BQVIsSUFBa0IsS0FBS2QsTUFBTCxDQUFZYyxNQUEvQzs7QUFFQTs7QUFFQSxhQUFPLElBQUlSLE9BQUosQ0FBWSxVQUFDUyxPQUFELEVBQVVDLE1BQVYsRUFBcUI7QUFDdkNmLGVBQU8sQ0FBQ2dCLFFBQVIsR0FBbUIsVUFBQ0MsUUFBRCxFQUFjO0FBQ2hDO0FBQ0E7QUFDQUMsYUFBRyxDQUFDQyxXQUFKO0FBQ0E7QUFDQUMsc0JBQVksQ0FBQyxLQUFJLENBQUNyQixNQUFMLENBQVlzQixLQUFiLENBQVo7QUFDQSxlQUFJLENBQUN0QixNQUFMLENBQVlzQixLQUFaLEdBQW9CLElBQXBCO0FBQ0E7QUFDQSxjQUFJLEtBQUksQ0FBQ3RCLE1BQUwsQ0FBWXVCLFlBQWhCLEVBQThCO0FBQzdCO0FBQ0EsZ0JBQUksS0FBSSxDQUFDckIsV0FBTCxDQUFpQmdCLFFBQWpCLElBQTZCLE9BQU8sS0FBSSxDQUFDaEIsV0FBTCxDQUFpQmdCLFFBQXhCLEtBQXFDLFVBQXRFLEVBQWtGO0FBQ2pGLGtCQUFJTSxlQUFlLEdBQUcsS0FBSSxDQUFDdEIsV0FBTCxDQUFpQmdCLFFBQWpCLENBQTBCQSxRQUExQixDQUF0QjtBQUNBO0FBQ0Esa0JBQUlNLGVBQWUsS0FBSyxLQUF4QixFQUErQjtBQUM5QlQsdUJBQU8sQ0FBQ1MsZUFBRCxDQUFQO0FBQ0EsZUFGRCxNQUVPO0FBQ047QUFDQVIsc0JBQU0sQ0FBQ0UsUUFBRCxDQUFOO0FBQ0E7QUFDRCxhQVRELE1BU087QUFDTjtBQUNBSCxxQkFBTyxDQUFDRyxRQUFELENBQVA7QUFDQTtBQUNELFdBZkQsTUFlTztBQUNOLGdCQUFJQSxRQUFRLENBQUNPLFVBQVQsSUFBdUIsR0FBM0IsRUFBZ0M7QUFDL0Isa0JBQUksS0FBSSxDQUFDdkIsV0FBTCxDQUFpQmdCLFFBQWpCLElBQTZCLE9BQU8sS0FBSSxDQUFDaEIsV0FBTCxDQUFpQmdCLFFBQXhCO0FBQ2hDLHdCQURELEVBQ2E7QUFDWixvQkFBSU0sZ0JBQWUsR0FBRyxLQUFJLENBQUN0QixXQUFMLENBQWlCZ0IsUUFBakIsQ0FBMEJBLFFBQVEsQ0FBQ1EsSUFBbkMsQ0FBdEI7QUFDQSxvQkFBSUYsZ0JBQWUsS0FBSyxLQUF4QixFQUErQjtBQUM5QlQseUJBQU8sQ0FBQ1MsZ0JBQUQsQ0FBUDtBQUNBLGlCQUZELE1BRU87QUFDTlIsd0JBQU0sQ0FBQ0UsUUFBUSxDQUFDUSxJQUFWLENBQU47QUFDQTtBQUNELGVBUkQsTUFRTztBQUNOO0FBQ0FYLHVCQUFPLENBQUNHLFFBQVEsQ0FBQ1EsSUFBVixDQUFQO0FBQ0E7QUFDRCxhQWJELE1BYU87QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBSVIsUUFBUSxDQUFDTyxVQUFULElBQXVCLEdBQTNCLEVBQWdDO0FBQy9CTixtQkFBRyxDQUFDUSxTQUFKLENBQWM7QUFDYkMsdUJBQUssRUFBRSxPQURNO0FBRWJDLDBCQUFRLEVBQUUsSUFGRztBQUdiQyxzQkFBSSxFQUFFLE1BSE8sRUFBZDs7QUFLQTtBQUNELGtCQUFJWixRQUFRLENBQUNPLFVBQVQsSUFBdUIsR0FBM0IsRUFBZ0M7QUFDL0JOLG1CQUFHLENBQUNRLFNBQUosQ0FBYztBQUNiQyx1QkFBSyxFQUFFLE9BRE07QUFFYkMsMEJBQVEsRUFBRSxJQUZHO0FBR2JDLHNCQUFJLEVBQUUsTUFITyxFQUFkOztBQUtBWCxtQkFBRyxDQUFDWSxVQUFKLENBQWU7QUFDZHRCLHFCQUFHLEVBQUUsb0JBRFMsRUFBZjs7QUFHQTtBQUNETyxvQkFBTSxDQUFDRSxRQUFELENBQU47QUFDQTtBQUNEO0FBQ0QsU0FoRUQ7O0FBa0VBO0FBQ0FqQixlQUFPLENBQUNRLEdBQVIsR0FBY3VCLGtCQUFTdkIsR0FBVCxDQUFhUixPQUFPLENBQUNRLEdBQXJCLElBQTRCUixPQUFPLENBQUNRLEdBQXBDLEdBQTJDLENBQUNSLE9BQU8sQ0FBQ2dDLE9BQVIsR0FBa0JoQyxPQUFPLENBQUNnQyxPQUExQjtBQUN6RCxhQUFJO0FBQ0hqQyxjQURELENBQ1FpQyxPQUZnRCxLQUVwQ2hDLE9BQU8sQ0FBQ1EsR0FBUjtBQUNuQnlCLGVBRG1CLENBQ1gsR0FEVyxLQUNILENBREc7QUFFcEJqQyxlQUFPLENBQUNRLEdBRlksR0FFTixNQUFNUixPQUFPLENBQUNRLEdBSjRCLENBQXpEOztBQU1BO0FBQ0E7QUFDQTtBQUNBLFlBQUksS0FBSSxDQUFDVCxNQUFMLENBQVltQyxXQUFaLElBQTJCLENBQUMsS0FBSSxDQUFDbkMsTUFBTCxDQUFZc0IsS0FBNUMsRUFBbUQ7QUFDbEQsZUFBSSxDQUFDdEIsTUFBTCxDQUFZc0IsS0FBWixHQUFvQmMsVUFBVSxDQUFDLFlBQU07QUFDcENqQixlQUFHLENBQUNnQixXQUFKLENBQWdCO0FBQ2ZQLG1CQUFLLEVBQUUsS0FBSSxDQUFDNUIsTUFBTCxDQUFZcUMsV0FESjtBQUVmQyxrQkFBSSxFQUFFLEtBQUksQ0FBQ3RDLE1BQUwsQ0FBWXVDLFdBRkgsRUFBaEI7O0FBSUEsaUJBQUksQ0FBQ3ZDLE1BQUwsQ0FBWXNCLEtBQVosR0FBb0IsSUFBcEI7QUFDQSxXQU42QixFQU0zQixLQUFJLENBQUN0QixNQUFMLENBQVl3QyxXQU5lLENBQTlCO0FBT0E7QUFDRDtBQUNBckIsV0FBRyxDQUFDaEIsT0FBSixDQUFZRixPQUFaO0FBQ0EsT0F4Rk0sQ0FBUDtBQXlGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSzs7QUFFRCxxQkFBYztBQUNiLFNBQUtELE1BQUwsR0FBYztBQUNiaUMsYUFBTyxFQUFFLHlCQURJLEVBQ3VCO0FBQ3BDO0FBQ0F0QixZQUFNLEVBQUUsRUFISztBQUliRyxZQUFNLEVBQUUsTUFKSztBQUtiO0FBQ0FQLGNBQVEsRUFBRSxNQU5HO0FBT2I7QUFDQUMsa0JBQVksRUFBRSxNQVJEO0FBU2IyQixpQkFBVyxFQUFFLElBVEEsRUFTTTtBQUNuQkUsaUJBQVcsRUFBRSxRQVZBO0FBV2JHLGlCQUFXLEVBQUUsR0FYQSxFQVdLO0FBQ2xCbEIsV0FBSyxFQUFFLElBWk0sRUFZQTtBQUNiQyxrQkFBWSxFQUFFLEtBYkQsRUFhUTtBQUNyQmdCLGlCQUFXLEVBQUUsSUFkQSxDQWNNO0FBZE4sS0FBZDs7QUFpQkE7QUFDQSxTQUFLckMsV0FBTCxHQUFtQjtBQUNsQjtBQUNBQyxhQUFPLEVBQUUsaUJBQUNILE1BQUQsRUFBWTtBQUNwQkEsY0FBTSxDQUFDVyxNQUFQLENBQWMsZUFBZCxvQkFBMEM4QixlQUFPQyxNQUFQLENBQWMsaUJBQWQsQ0FBMUM7QUFDQSxZQUFJO0FBQ0gsY0FBSTFDLE1BQU0sQ0FBQ1MsR0FBUCxDQUFXeUIsT0FBWCxDQUFtQixTQUFuQixNQUFrQyxDQUFDLENBQW5DLElBQXdDbEMsTUFBTSxDQUFDUyxHQUFQLENBQVd5QixPQUFYLENBQW1CLGVBQW5CLE1BQXdDO0FBQ25GLFdBREc7QUFFSFMsMEJBQU1DLEtBQU4sQ0FBWUMsVUFGYixFQUV5QjtBQUN4QjdDLGtCQUFNLENBQUNXLE1BQVAsQ0FBYyxjQUFkLElBQWdDZ0MsZ0JBQU1DLEtBQU4sQ0FBWUMsVUFBNUM7QUFDQTs7QUFFRCxjQUFJN0MsTUFBTSxDQUFDUyxHQUFQLENBQVd5QixPQUFYLENBQW1CLFNBQW5CLE1BQWtDLENBQUMsQ0FBdkMsRUFBMEM7QUFDekNsQyxrQkFBTSxDQUFDaUMsT0FBUCxHQUFpQixxQkFBakI7QUFDQSxXQUZELE1BRU87QUFDTmpDLGtCQUFNLENBQUNpQyxPQUFQLEdBQWlCLHlCQUFqQjtBQUNBO0FBQ0QsU0FaRCxDQVlFLE9BQU9hLENBQVAsRUFBVTtBQUNYLHVCQUFZLE9BQVosRUFBcUJBLENBQXJCO0FBQ0E7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFZLG9DQUFaLEVBQWtEOUMsTUFBbEQ7QUFDQSxlQUFPQSxNQUFQO0FBQ0EsT0EvQmlCO0FBZ0NsQjtBQUNBa0IsY0FBUSxFQUFFLGtCQUFDNkIsR0FBRCxFQUFTO0FBQ2xCLHFCQUFZLHNDQUFaLEVBQW9EQSxHQUFwRDtBQUNBLFlBQUlBLEdBQUcsQ0FBQ0MsT0FBSixLQUFnQixHQUFoQixJQUF1QkQsR0FBRyxDQUFDRSxPQUFKLEtBQWdCLEdBQXZDLElBQThDRixHQUFHLENBQUNHLE1BQUosS0FBZSxDQUFqRSxFQUFvRTtBQUNuRTtBQUNBLGlCQUFPSCxHQUFQO0FBQ0EsU0FIRCxNQUdPO0FBQ041QixhQUFHLENBQUNRLFNBQUosQ0FBYztBQUNiQyxpQkFBSyxFQUFFbUIsR0FBRyxDQUFDSSxPQUFKLElBQWVKLEdBQUcsQ0FBQ0ssR0FBbkIsSUFBMEJMLEdBQUcsQ0FBQ00sT0FEeEI7QUFFYnhCLG9CQUFRLEVBQUUsSUFGRztBQUdiQyxnQkFBSSxFQUFFLE1BSE8sRUFBZDs7QUFLQSxpQkFBTyxLQUFQO0FBQ0E7QUFDRCxPQTlDaUIsRUFBbkI7OztBQWlEQTtBQUNBLFNBQUt3QixHQUFMLEdBQVcsVUFBQzdDLEdBQUQsRUFBaUMsS0FBM0JpQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJmLE1BQWdCLHVFQUFQLEVBQU87QUFDM0MsYUFBTyxNQUFJLENBQUNSLE9BQUwsQ0FBYTtBQUNuQlcsY0FBTSxFQUFFLEtBRFc7QUFFbkJMLFdBQUcsRUFBSEEsR0FGbUI7QUFHbkJFLGNBQU0sRUFBTkEsTUFIbUI7QUFJbkJlLFlBQUksRUFBSkEsSUFKbUIsRUFBYixDQUFQOztBQU1BLEtBUEQ7O0FBU0E7QUFDQSxTQUFLNkIsSUFBTCxHQUFZLFVBQUM5QyxHQUFELEVBQWlDLEtBQTNCaUIsSUFBMkIsdUVBQXBCLEVBQW9CLEtBQWhCZixNQUFnQix1RUFBUCxFQUFPO0FBQzVDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxNQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZSxZQUFJLEVBQUpBLElBSm1CLEVBQWIsQ0FBUDs7QUFNQSxLQVBEOztBQVNBO0FBQ0EsU0FBSzhCLEdBQUwsR0FBVyxVQUFDL0MsR0FBRCxFQUFpQyxLQUEzQmlCLElBQTJCLHVFQUFwQixFQUFvQixLQUFoQmYsTUFBZ0IsdUVBQVAsRUFBTztBQUMzQyxhQUFPLE1BQUksQ0FBQ1IsT0FBTCxDQUFhO0FBQ25CTSxXQUFHLEVBQUhBLEdBRG1CO0FBRW5CSyxjQUFNLEVBQUUsS0FGVztBQUduQkgsY0FBTSxFQUFOQSxNQUhtQjtBQUluQmUsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUsrQixNQUFMLEdBQWMsVUFBQ2hELEdBQUQsRUFBaUMsS0FBM0JpQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJmLE1BQWdCLHVFQUFQLEVBQU87QUFDOUMsYUFBTyxNQUFJLENBQUNSLE9BQUwsQ0FBYTtBQUNuQk0sV0FBRyxFQUFIQSxHQURtQjtBQUVuQkssY0FBTSxFQUFFLFFBRlc7QUFHbkJILGNBQU0sRUFBTkEsTUFIbUI7QUFJbkJlLFlBQUksRUFBSkEsSUFKbUIsRUFBYixDQUFQOztBQU1BLEtBUEQ7QUFRQSxHOztBQUVhLElBQUk1QixPQUFKLEUiLCJmaWxlIjoiMTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRkZWVwTWVyZ2Vcbn0gZnJvbSBcIkAvdXRpbHMvaW5kZXguanNcIjtcbmltcG9ydCB2YWxpZGF0ZSBmcm9tIFwiQC91dGlscy92YWxpZGF0ZS5qc1wiO1xuaW1wb3J0IHtcblx0QmFzZTY0XG59IGZyb20gJ2pzLWJhc2U2NCdcbmltcG9ydCBzdG9yZSBmcm9tICdAL3N0b3JlL2luZGV4LmpzJ1xuXG5jbGFzcyBSZXF1ZXN0IHtcblx0Ly8g6K6+572u5YWo5bGA6buY6K6k6YWN572uXG5cdHNldENvbmZpZyhjdXN0b21Db25maWcpIHtcblx0XHQvLyDmt7HluqblkIjlubblr7nosaHvvIzlkKbliJnkvJrpgKDmiJDlr7nosaHmt7HlsYLlsZ7mgKfkuKLlpLFcblx0XHR0aGlzLmNvbmZpZyA9IGRlZXBNZXJnZSh0aGlzLmNvbmZpZywgY3VzdG9tQ29uZmlnKTtcblx0fVxuXG5cdC8vIOS4u+imgeivt+axgumDqOWIhlxuXHRyZXF1ZXN0KG9wdGlvbnMgPSB7fSkge1xuXG5cdFx0Ly8g5qOA5p+l6K+35rGC5oum5oiqXG5cdFx0aWYgKHRoaXMuaW50ZXJjZXB0b3IucmVxdWVzdCAmJiB0eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0ID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRsZXQgdG1wQ29uZmlnID0ge307XG5cdFx0XHRsZXQgaW50ZXJjZXB0b3JSZXF1ZXN0ID0gdGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdFx0aWYgKGludGVyY2VwdG9yUmVxdWVzdCA9PT0gZmFsc2UpIHtcblx0XHRcdFx0Ly8g6L+U5Zue5LiA5Liq5aSE5LqOcGVuZGluZ+eKtuaAgeS4reeahFByb21pc2XvvIzmnaXlj5bmtojljp9wcm9taXNl77yM6YG/5YWN6L+b5YWldGhlbigp5Zue6LCDXG5cdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgoKSA9PiB7fSk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLm9wdGlvbnMgPSBpbnRlcmNlcHRvclJlcXVlc3Q7XG5cdFx0fVxuXG5cdFx0b3B0aW9ucy5kYXRhVHlwZSA9IG9wdGlvbnMuZGF0YVR5cGUgfHwgdGhpcy5jb25maWcuZGF0YVR5cGU7XG5cdFx0b3B0aW9ucy5yZXNwb25zZVR5cGUgPSBvcHRpb25zLnJlc3BvbnNlVHlwZSB8fCB0aGlzLmNvbmZpZy5yZXNwb25zZVR5cGU7XG5cdFx0b3B0aW9ucy51cmwgPSBvcHRpb25zLnVybCB8fCAnJztcblx0XHRvcHRpb25zLnBhcmFtcyA9IG9wdGlvbnMucGFyYW1zIHx8IHt9O1xuXHRcdG9wdGlvbnMuaGVhZGVyID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb25maWcuaGVhZGVyLCBvcHRpb25zLmhlYWRlcik7XG5cdFx0b3B0aW9ucy5tZXRob2QgPSBvcHRpb25zLm1ldGhvZCB8fCB0aGlzLmNvbmZpZy5tZXRob2Q7XG5cblx0XHQvLyBjb25zb2xlLmxvZygnYXBpLmhlbHBlci0tLS0tcmVxdWVzdCcsIG9wdGlvbnMsIHRoaXMub3B0aW9ucylcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRvcHRpb25zLmNvbXBsZXRlID0gKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdhcGkuaGVscGVyLS0tb3B0aW9ucy5jb21wbGV0ZScsIHJlc3BvbnNlKVxuXHRcdFx0XHQvLyDor7fmsYLov5Tlm57lkI7vvIzpmpDol49sb2FkaW5nKOWmguaenOivt+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+S4jeWIsGNhdGNoXG5cdFx0Ly8gXHRyZXR1cm4gbmV3IFByb21pc2UoKCk9Pnt9KTtcblx0XHQvLyB9KVxuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYXNlVXJsOiAnaHR0cDovLzEwLjAuMTM0LjQ1OjgwMDAnLCAvLyDor7fmsYLnmoTmoLnln5/lkI1cblx0XHRcdC8vIOm7mOiupOeahOivt+axguWktFxuXHRcdFx0aGVhZGVyOiB7fSxcblx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0Ly8g6K6+572u5Li6anNvbu+8jOi/lOWbnuWQjnVuaS5yZXF1ZXN05Lya5a+55pWw5o2u6L+b6KGM5LiA5qyhSlNPTi5wYXJzZVxuXHRcdFx0ZGF0YVR5cGU6ICdqc29uJyxcblx0XHRcdC8vIOatpOWPguaVsOaXoOmcgOWkhOeQhu+8jOWboOS4ujUr5ZKM5pSv5LuY5a6d5bCP56iL5bqP5LiN5pSv5oyB77yM6buY6K6k5Li6dGV4dOWNs+WPr1xuXHRcdFx0cmVzcG9uc2VUeXBlOiAndGV4dCcsXG5cdFx0XHRzaG93TG9hZGluZzogdHJ1ZSwgLy8g5piv5ZCm5pi+56S66K+35rGC5Lit55qEbG9hZGluZ1xuXHRcdFx0bG9hZGluZ1RleHQ6ICfor7fmsYLkuK0uLi4nLFxuXHRcdFx0bG9hZGluZ1RpbWU6IDgwMCwgLy8g5Zyo5q2k5pe26Ze05YaF77yM6K+35rGC6L+Y5rKh5Zue5p2l55qE6K+d77yM5bCx5pi+56S65Yqg6L295Lit5Yqo55S777yM5Y2V5L2NbXNcblx0XHRcdHRpbWVyOiBudWxsLCAvLyDlrprml7blmahcblx0XHRcdG9yaWdpbmFsRGF0YTogZmFsc2UsIC8vIOaYr+WQpuWcqOaLpuaIquWZqOS4rei/lOWbnuacjeWKoeerr+eahOWOn+Wni+aVsOaNru+8jOingeaWh+aho+ivtOaYjlxuXHRcdFx0bG9hZGluZ01hc2s6IHRydWUsIC8vIOWxleekumxvYWRpbmfnmoTml7blgJnvvIzmmK/lkKbnu5nkuIDkuKrpgI/mmI7nmoTokpnlsYLvvIzpmLLmraLop6bmkbjnqb/pgI9cblx0XHR9XG5cblx0XHQvLyDmi6bmiKrlmahcblx0XHR0aGlzLmludGVyY2VwdG9yID0ge1xuXHRcdFx0Ly8g6K+35rGC5YmN55qE5oum5oiqXG5cdFx0XHRyZXF1ZXN0OiAoY29uZmlnKSA9PiB7XG5cdFx0XHRcdGNvbmZpZy5oZWFkZXJbJ0F1dGhvcml6YXRpb24nXSA9IGBCYXNpYyAke0Jhc2U2NC5lbmNvZGUoJ3dhbmdwYzpMWlk4ODhAQCcpfWA7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0aWYgKGNvbmZpZy51cmwuaW5kZXhPZignY3JtLWFwcCcpICE9PSAtMSAmJiBjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSA9PT0gLVxuXHRcdFx0XHRcdFx0MSAmJlxuXHRcdFx0XHRcdFx0c3RvcmUuc3RhdGUudnVleF90b2tlbikge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmhlYWRlclsnWC1BdXRoLVRva2VuJ10gPSBzdG9yZS5zdGF0ZS52dWV4X3Rva2VuXG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKGNvbmZpZy51cmwuaW5kZXhPZignY3JtLWFwcCcpICE9PSAtMSkge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzEwLjAuMTM1LjEzOSdcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzEwLjAuMTM0LjQ1OjgwMDAnXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ2Vycm9yJywgZSlcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBpZiAoY29uZmlnLnVybC5pbmRleE9mKCdjcm0tYXBwL2xvZ2luJykgIT09IC0xICYmICFzdG9yZS5zdGF0ZS52dWV4X3Rva2VuKSB7XG5cdFx0XHRcdC8vIFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdC8vIFx0XHR0aXRsZTogJ+eZu+W9leW3suWkseaViCcsXG5cdFx0XHRcdC8vIFx0XHRkdXJhdGlvbjogMjAwMCxcblx0XHRcdFx0Ly8gXHRcdGljb246ICdub25lJ1xuXHRcdFx0XHQvLyBcdH0pO1xuXHRcdFx0XHQvLyBcdHVuaS5uYXZpZ2F0ZVRvKHtcblx0XHRcdFx0Ly8gXHRcdHVybDogXCIvcGFnZXMvbG9naW4vbG9naW5cIlxuXHRcdFx0XHQvLyBcdH0pXG5cdFx0XHRcdC8vIH1cblx0XHRcdFx0Y29uc29sZS5sb2coJ2hlbHBlci0taW50ZXJjZXB0b3ItLS1yZXF1ZXN0LS0tLS0nLCBjb25maWcpXG5cdFx0XHRcdHJldHVybiBjb25maWc7XG5cdFx0XHR9LFxuXHRcdFx0Ly8g6K+35rGC5ZCO55qE5oum5oiqXG5cdFx0XHRyZXNwb25zZTogKHJlcykgPT4ge1xuXHRcdFx0XHRjb25zb2xlLmxvZygnaGVscGVyLS1paW50ZXJjZXB0b3ItLS1yZXNwb25zZS0tLS0tJywgcmVzKVxuXHRcdFx0XHRpZiAocmVzLk1TR1RZUEUgPT09ICdTJyB8fCByZXMubXNndHlwZSA9PT0gJ1MnIHx8IHJlcy5zdGF0dXMgPT09IDEpIHtcblx0XHRcdFx0XHQvLyDlpoLmnpzmiopvcmlnaW5hbERhdGHorr7nva7kuLrkuoZ0cnVl77yM6L+Z6YeMcmV0dXJu5Zue5LuA5LmI77yMdGhpcy4kdS5wb3N055qEdGhlbuWbnuiwg+S4reWwseS8muW+l+WIsOS7gOS5iFxuXHRcdFx0XHRcdHJldHVybiByZXM7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHR0aXRsZTogcmVzLk1FU1NBR0UgfHwgcmVzLm1zZyB8fCByZXMubWVzc2FnZSxcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZ2V06K+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