@10yun/cv-mobile-ui 0.5.36 → 0.5.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +2 -2
- package/plugins/luch-request/utils/clone.js +28 -32
- package/ui-cv/components/cv-code-sms/cv-code-sms.vue +9 -0
- package/uview-plus/libs/ctocode/date.js +1 -1
- package/uview-plus/libs/luch-request/adapters/index.js +113 -79
- package/uview-plus/libs/luch-request/core/InterceptorManager.js +19 -19
- package/uview-plus/libs/luch-request/core/Request.js +146 -146
- package/uview-plus/libs/luch-request/core/buildFullPath.js +7 -7
- package/uview-plus/libs/luch-request/core/defaults.js +27 -24
- package/uview-plus/libs/luch-request/core/dispatchRequest.js +4 -2
- package/uview-plus/libs/luch-request/core/mergeConfig.js +106 -84
- package/uview-plus/libs/luch-request/core/settle.js +7 -7
- package/uview-plus/libs/luch-request/helpers/buildURL.js +50 -48
- package/uview-plus/libs/luch-request/helpers/combineURLs.js +2 -4
- package/uview-plus/libs/luch-request/helpers/isAbsoluteURL.js +5 -5
- package/uview-plus/libs/luch-request/index.d.ts +184 -103
- package/uview-plus/libs/luch-request/index.js +2 -3
- package/uview-plus/libs/luch-request/readme.md +3 -0
- package/uview-plus/libs/luch-request/utils/clone.js +28 -32
- package/uview-plus/libs/luch-request/utils.js +41 -41
- package/plugins/request.js +0 -571
package/plugins/request.js
DELETED
|
@@ -1,571 +0,0 @@
|
|
|
1
|
-
// console.log(plus.device.getInfo);
|
|
2
|
-
function requestDownloadFile(apiUrl, paramData) {
|
|
3
|
-
return requestApi('download', apiUrl, paramData);
|
|
4
|
-
}
|
|
5
|
-
function _baseResponse() {}
|
|
6
|
-
function confirmEnding(str, target) {
|
|
7
|
-
// 请把你的代码写在这里
|
|
8
|
-
var start = str.length - target.length;
|
|
9
|
-
var arr = str.substr(start, target.length);
|
|
10
|
-
if (arr == target) {
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
return false;
|
|
14
|
-
}
|
|
15
|
-
function _hideUniapp() {
|
|
16
|
-
try {
|
|
17
|
-
uni.hideToast();
|
|
18
|
-
uni.hideLoading();
|
|
19
|
-
uni.hideNavigationBarLoading();
|
|
20
|
-
uni.stopPullDownRefresh();
|
|
21
|
-
} catch (e) {}
|
|
22
|
-
}
|
|
23
|
-
function showErrorMsg(msg) {
|
|
24
|
-
uni.hideToast();
|
|
25
|
-
uni.hideLoading();
|
|
26
|
-
uni.showToast({
|
|
27
|
-
icon: 'none',
|
|
28
|
-
duration: 2000,
|
|
29
|
-
title: msg || ''
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
/*
|
|
33
|
-
* 收集错误信息
|
|
34
|
-
*/
|
|
35
|
-
const EnumStatusToTitle = {
|
|
36
|
-
400: '请求错误',
|
|
37
|
-
400: '无效请求',
|
|
38
|
-
401: '未经授权',
|
|
39
|
-
403: '拒绝访问',
|
|
40
|
-
404: '请求出错',
|
|
41
|
-
408: '请求超时',
|
|
42
|
-
422: '请求参数错误',
|
|
43
|
-
500: '服务器错误',
|
|
44
|
-
501: '服务未实现',
|
|
45
|
-
502: '网络错误',
|
|
46
|
-
503: '服务不可用',
|
|
47
|
-
504: '网络超时',
|
|
48
|
-
505: 'HTTP版本不受支持',
|
|
49
|
-
10001: '未登录',
|
|
50
|
-
10002: 'token过期',
|
|
51
|
-
10009: '退出登录'
|
|
52
|
-
};
|
|
53
|
-
const EnumStatusToMsg = {
|
|
54
|
-
401: '没有权限,请重新登录'
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
class RequestClass {
|
|
58
|
-
constructor(options = {}) {
|
|
59
|
-
this.flagMap = options.flagMap || {};
|
|
60
|
-
this.flagAuth = options.flagAuth || {};
|
|
61
|
-
this.flagFunc = options.flagFunc;
|
|
62
|
-
this.baseURL = options.baseURL || '';
|
|
63
|
-
this.requests = Object.assign({}, options.requests || {});
|
|
64
|
-
/**
|
|
65
|
-
* 内置的,支持的 methods
|
|
66
|
-
* 处理,需要转换的 methods
|
|
67
|
-
*/
|
|
68
|
-
let inlayMehtod = ['PUT', 'PATCH', 'DELETE'];
|
|
69
|
-
let supportMethod = options.needMethods || [];
|
|
70
|
-
let needMethods = [];
|
|
71
|
-
for (var i = 0; i < supportMethod.length; i++) {
|
|
72
|
-
let daxieItem = supportMethod[i].toUpperCase();
|
|
73
|
-
if (inlayMehtod.indexOf(daxieItem) !== -1) {
|
|
74
|
-
needMethods.push(daxieItem);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
this.needMethods = needMethods;
|
|
78
|
-
|
|
79
|
-
// 如果你想重新规定返回的数据格式,那么可以借助 response 参数,如:
|
|
80
|
-
let response = {
|
|
81
|
-
statusName: 'status', // 规定数据状态的字段名称,默认:code
|
|
82
|
-
statusCode: 200, // 规定成功的状态码,默认:0
|
|
83
|
-
msgName: 'msg', // 规定状态信息的字段名称,默认:msg
|
|
84
|
-
countName: 'total', // 规定数据总数的字段名称,默认:count
|
|
85
|
-
dataName: 'data' // 规定数据列表的字段名称,默认:data
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
this.headers = Object.assign({}, {}, options.headers || {});
|
|
89
|
-
// 需要加密的url
|
|
90
|
-
this.encryptURL = options.encryptURL || [];
|
|
91
|
-
this.encryptFlag = false;
|
|
92
|
-
this.canshuOpt = {};
|
|
93
|
-
this.retries = 3;
|
|
94
|
-
this.debugState = options.debug || false;
|
|
95
|
-
this.requestHandle = null;
|
|
96
|
-
/* 新创建 axios 实例配置 */
|
|
97
|
-
this.creSett = Object.assign(
|
|
98
|
-
{},
|
|
99
|
-
{
|
|
100
|
-
timeout: options.timeout || 5000, // request timeout
|
|
101
|
-
// 表示跨域请求时是否需要使用凭证;
|
|
102
|
-
// 开启withCredentials后,服务器才能拿到你的cookie
|
|
103
|
-
// 当然后端服务器也要设置允许你获取你开启了才有用
|
|
104
|
-
// withCredentials: true, // 开启跨域身份凭证
|
|
105
|
-
retry: 2
|
|
106
|
-
},
|
|
107
|
-
{}
|
|
108
|
-
);
|
|
109
|
-
this._initReqHandle();
|
|
110
|
-
}
|
|
111
|
-
debugLog() {
|
|
112
|
-
if (this.debugState) {
|
|
113
|
-
console.log('[调试]', ...arguments);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
/* 初始化 request 句柄 */
|
|
117
|
-
_initReqHandle() {
|
|
118
|
-
let _this = this;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* 设置API
|
|
123
|
-
*/
|
|
124
|
-
setApiFlag(options) {
|
|
125
|
-
this.flagMap = options || {};
|
|
126
|
-
return this;
|
|
127
|
-
}
|
|
128
|
-
appendApiFlag(options) {
|
|
129
|
-
this.flagMap = Object.assign({}, this.flagMap, options || {});
|
|
130
|
-
return this;
|
|
131
|
-
}
|
|
132
|
-
setApiAuth(options) {
|
|
133
|
-
this.flagAuth = options || {};
|
|
134
|
-
return this;
|
|
135
|
-
}
|
|
136
|
-
appendApiAuth(options) {
|
|
137
|
-
this.flagAuth = Object.assign({}, this.flagAuth, options || {});
|
|
138
|
-
return this;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* 设置header参数
|
|
142
|
-
* @param {Object} options
|
|
143
|
-
* @returns {Class} this
|
|
144
|
-
*/
|
|
145
|
-
setDefHeaders(options) {
|
|
146
|
-
this.headers = Object.assign({}, this.headers, options || {});
|
|
147
|
-
// this.requestHandle.defaults.headers = this.headers;
|
|
148
|
-
return this;
|
|
149
|
-
}
|
|
150
|
-
setHeaders(options) {
|
|
151
|
-
this.headers = Object.assign({}, this.headers, options || {});
|
|
152
|
-
return this;
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* 设置requests参数
|
|
156
|
-
* @param {Object} options
|
|
157
|
-
* @returns {Class} this
|
|
158
|
-
*/
|
|
159
|
-
setDefRequests(options) {
|
|
160
|
-
this.requests = Object.assign({}, this.requests, options || {});
|
|
161
|
-
// this.requestHandle.defaults.requests = this.requests;
|
|
162
|
-
return this;
|
|
163
|
-
}
|
|
164
|
-
setRequests(options) {
|
|
165
|
-
this.requests = Object.assign({}, this.requests, options || {});
|
|
166
|
-
return this;
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* 设置body 参数
|
|
170
|
-
* 设置 额外参数
|
|
171
|
-
* @param {Object} options
|
|
172
|
-
* @returns {Class} this
|
|
173
|
-
*/
|
|
174
|
-
setOptions(options = {}) {
|
|
175
|
-
this.canshuOpt = Object.assign({}, this.canshuOpt, options || {});
|
|
176
|
-
return this;
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* 设置 signal
|
|
180
|
-
*/
|
|
181
|
-
setSignal(signal) {}
|
|
182
|
-
/**
|
|
183
|
-
* 请求前置
|
|
184
|
-
* 请求后置
|
|
185
|
-
*/
|
|
186
|
-
requestBefore(callFunc) {
|
|
187
|
-
this.requestBeforeCall = callFunc;
|
|
188
|
-
}
|
|
189
|
-
requestAfter(callFunc) {
|
|
190
|
-
this.requestAfterCall = callFunc;
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* 加密
|
|
194
|
-
*/
|
|
195
|
-
encrypt() {
|
|
196
|
-
this.encryptFlag = true;
|
|
197
|
-
return this;
|
|
198
|
-
}
|
|
199
|
-
/***
|
|
200
|
-
* ================== ================== ================== ==================
|
|
201
|
-
* 允许重写
|
|
202
|
-
* ================== ================== ================== ==================
|
|
203
|
-
*/
|
|
204
|
-
/**
|
|
205
|
-
* 设置错误时响应
|
|
206
|
-
*/
|
|
207
|
-
resetNetError(error) {
|
|
208
|
-
showErrorMsg(error.message || '');
|
|
209
|
-
console.log(error.message || '');
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* 设置网络请求响应
|
|
213
|
-
* 设置自定义业务响应
|
|
214
|
-
*/
|
|
215
|
-
resetNetResponse(apiResData) {
|
|
216
|
-
// 修改请求状态
|
|
217
|
-
_hideUniapp();
|
|
218
|
-
|
|
219
|
-
let apiResStatus = apiResData.status || apiResData.code || -1;
|
|
220
|
-
let apiResMessage = apiResData.msg || apiResData.message || '操作失败';
|
|
221
|
-
apiResStatus = parseInt(apiResStatus);
|
|
222
|
-
// 这里根据后端提供的数据进行对应的处理
|
|
223
|
-
switch (apiResStatus) {
|
|
224
|
-
// 没有凭证,请登录
|
|
225
|
-
case 100101:
|
|
226
|
-
// 【退出登录操作】
|
|
227
|
-
this.resetNetError({ type: 'error', message: apiResMessage });
|
|
228
|
-
break;
|
|
229
|
-
// 无效凭证,请重新登录
|
|
230
|
-
case 100102:
|
|
231
|
-
// 【退出登录操作】
|
|
232
|
-
let errorData = Object.assign(apiResData, { type: 'error', message: apiResMessage });
|
|
233
|
-
this.resetNetError(errorData);
|
|
234
|
-
break;
|
|
235
|
-
// 凭证过期,请重新登录
|
|
236
|
-
case 100103:
|
|
237
|
-
// 【退出登录操作】
|
|
238
|
-
return;
|
|
239
|
-
break;
|
|
240
|
-
// syOpenAppToken 错误
|
|
241
|
-
case 100109:
|
|
242
|
-
break;
|
|
243
|
-
case 422:
|
|
244
|
-
case 100422:
|
|
245
|
-
let msg422 = apiResMessage || '操作失败';
|
|
246
|
-
this.resetNetError({ type: 'error', message: `${msg422}` });
|
|
247
|
-
return Promise.reject(apiResData);
|
|
248
|
-
break;
|
|
249
|
-
case 404:
|
|
250
|
-
case 100404:
|
|
251
|
-
let msg404 = apiResMessage || '操作失败';
|
|
252
|
-
this.resetNetError({ type: 'error', message: `${msg404}` });
|
|
253
|
-
return Promise.reject(apiResData);
|
|
254
|
-
// return new Promise((resolve, reject) => {});
|
|
255
|
-
case '8002':
|
|
256
|
-
case 8002: // uni.login 微信注册
|
|
257
|
-
//
|
|
258
|
-
break;
|
|
259
|
-
case '13001':
|
|
260
|
-
case 13001:
|
|
261
|
-
// eid 实名认证
|
|
262
|
-
uni.showModal({
|
|
263
|
-
title: '提示',
|
|
264
|
-
content: apiResData.msg,
|
|
265
|
-
showCancel: true,
|
|
266
|
-
success: function (res) {
|
|
267
|
-
if (res.confirm) {
|
|
268
|
-
} else {
|
|
269
|
-
console.log('用户点击取消');
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
});
|
|
273
|
-
break;
|
|
274
|
-
// 处理成功
|
|
275
|
-
case 200:
|
|
276
|
-
// this.requestAfterCall?.();
|
|
277
|
-
return apiResData;
|
|
278
|
-
return Promise.resolve(apiResData);
|
|
279
|
-
break;
|
|
280
|
-
// 调试
|
|
281
|
-
case -1:
|
|
282
|
-
return Promise.reject({ message: 'error' });
|
|
283
|
-
break;
|
|
284
|
-
default:
|
|
285
|
-
return apiResData;
|
|
286
|
-
break;
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
/**
|
|
290
|
-
* 调用 API 统一 请求 方法
|
|
291
|
-
*
|
|
292
|
-
* @author ctocode-zhw
|
|
293
|
-
* @version 2018-12-20
|
|
294
|
-
* @param apiUrl 不需要域名,域名统一拼接,只填写相关请求接口 【必须】
|
|
295
|
-
* @param reqData 提交参数
|
|
296
|
-
* @return
|
|
297
|
-
*
|
|
298
|
-
*/
|
|
299
|
-
apiAll(type, apiUrl, reqData) {
|
|
300
|
-
let request_url = this.baseURL + apiUrl;
|
|
301
|
-
// if (apiUrl.indexOf('http://') != -1 || apiUrl.indexOf('https://') != -1) {
|
|
302
|
-
if (apiUrl.includes('http://') || apiUrl.includes('https://')) {
|
|
303
|
-
request_url = apiUrl;
|
|
304
|
-
}
|
|
305
|
-
/**
|
|
306
|
-
* TODO 过滤除了 https:// 和 http:// 以外的 // 和 ///,但保留 ? 后面的内容
|
|
307
|
-
* request_url = request_url.replace(/^(https?:\/\/[^/]+)\/+/g, '$1/');
|
|
308
|
-
*/
|
|
309
|
-
/**
|
|
310
|
-
* 使用正则表达式进行过滤
|
|
311
|
-
* 过滤除了 https:// 和 http:// 以外的 // 和 ///
|
|
312
|
-
*/
|
|
313
|
-
request_url = request_url.replace(/([^:]\/)\/+/g, '$1');
|
|
314
|
-
|
|
315
|
-
var _this = this;
|
|
316
|
-
|
|
317
|
-
reqData = reqData || {};
|
|
318
|
-
reqData = Object.assign({}, this.requests, reqData);
|
|
319
|
-
/*
|
|
320
|
-
* 全局 uni.request 配置过滤不需要登录的页面
|
|
321
|
-
*/
|
|
322
|
-
// uni.showNavigationBarLoading(); // 顶部加载动画
|
|
323
|
-
|
|
324
|
-
// 初始化句柄
|
|
325
|
-
let $requestHandle = null;
|
|
326
|
-
/**
|
|
327
|
-
* 判断是否加密
|
|
328
|
-
*/
|
|
329
|
-
let encryptFlag = this.__encryp_parse(apiUrl);
|
|
330
|
-
/**
|
|
331
|
-
* 最后 type
|
|
332
|
-
*/
|
|
333
|
-
let last_type = this.__parse_method_type(type);
|
|
334
|
-
|
|
335
|
-
// if (last_type == 'POST') {
|
|
336
|
-
// } else
|
|
337
|
-
if (last_type == 'UPLOAD') {
|
|
338
|
-
/* 文件上传 */
|
|
339
|
-
// 一定要删除这个,让uni.uploadFile自己携带
|
|
340
|
-
delete this.headers['Content-Type'];
|
|
341
|
-
$requestHandle = uni.uploadFile({
|
|
342
|
-
url: request_url,
|
|
343
|
-
header: this.headers,
|
|
344
|
-
// data: reqData,
|
|
345
|
-
...reqData
|
|
346
|
-
});
|
|
347
|
-
} else if (last_type == 'DOWNLOAD') {
|
|
348
|
-
/* 文件下载 */
|
|
349
|
-
} else {
|
|
350
|
-
/* request */
|
|
351
|
-
|
|
352
|
-
this.headers['Content-Type'] = 'application/json';
|
|
353
|
-
// this.headers['Content-Type'] = 'application/x-www-form-urlencoded';
|
|
354
|
-
// this.headers['connection'] = 'close';
|
|
355
|
-
|
|
356
|
-
$requestHandle = uni.request({
|
|
357
|
-
// header: {
|
|
358
|
-
// ...this.headers
|
|
359
|
-
// },
|
|
360
|
-
// data: {
|
|
361
|
-
// ...this.requests,
|
|
362
|
-
// reqData,
|
|
363
|
-
// },
|
|
364
|
-
url: request_url,
|
|
365
|
-
header: this.headers,
|
|
366
|
-
method: last_type,
|
|
367
|
-
data: reqData
|
|
368
|
-
});
|
|
369
|
-
}
|
|
370
|
-
return $requestHandle.then((uniRes) => {
|
|
371
|
-
_hideUniapp();
|
|
372
|
-
// console.log('----开始请求啊 ------', uniRes);
|
|
373
|
-
let apiResData = uniRes.data || {};
|
|
374
|
-
// uniRes 为微信返回 + 接口返回 拼接的数据
|
|
375
|
-
if (uniRes.statusCode == 200) {
|
|
376
|
-
// uni.hideNavigationBarLoading();
|
|
377
|
-
|
|
378
|
-
// apiResData 为 接口返回 拼接的数据,一般 success 成功,开发者只需要 apiResData
|
|
379
|
-
// let apiResData = JSON.parse(uniRes.data, true);
|
|
380
|
-
|
|
381
|
-
// upload 需要json转数组
|
|
382
|
-
if (type == 'UPLOAD') {
|
|
383
|
-
apiResData = JSON.parse(apiResData, true);
|
|
384
|
-
}
|
|
385
|
-
return _this.resetNetResponse(apiResData);
|
|
386
|
-
} else if (uniRes.statusCode == 502) {
|
|
387
|
-
} else {
|
|
388
|
-
return _this.resetNetResponse(apiResData);
|
|
389
|
-
}
|
|
390
|
-
});
|
|
391
|
-
// .catch((uniRes) => {
|
|
392
|
-
// console.log('--request-catch--', uniRes);
|
|
393
|
-
// return Promise.reject(uniRes);
|
|
394
|
-
// });
|
|
395
|
-
}
|
|
396
|
-
__encryp_parse(url) {
|
|
397
|
-
//
|
|
398
|
-
}
|
|
399
|
-
__parse_method_type(type) {
|
|
400
|
-
let last_type = type;
|
|
401
|
-
let MetSupport = this.needMethods || [];
|
|
402
|
-
if (MetSupport.length > 0) {
|
|
403
|
-
// 转大写
|
|
404
|
-
let typeDaxie = last_type.toUpperCase();
|
|
405
|
-
// console.log(MetSupport, last_type, MetSupport.indexOf(typeDaxie));
|
|
406
|
-
if (MetSupport.indexOf(typeDaxie) !== -1) {
|
|
407
|
-
last_type = 'POST';
|
|
408
|
-
this.headers['X-HTTP-Method-Override'] = typeDaxie;
|
|
409
|
-
} else {
|
|
410
|
-
delete this.headers['X-HTTP-Method-Override'];
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
return last_type;
|
|
414
|
-
}
|
|
415
|
-
/**
|
|
416
|
-
* GET 请求
|
|
417
|
-
*/
|
|
418
|
-
flagGet() {
|
|
419
|
-
const argumentsArr = arguments;
|
|
420
|
-
return this.unifyApi('flag', 'GET', argumentsArr);
|
|
421
|
-
}
|
|
422
|
-
urlGet() {
|
|
423
|
-
const argumentsArr = arguments;
|
|
424
|
-
return this.unifyApi('url', 'GET', argumentsArr);
|
|
425
|
-
}
|
|
426
|
-
/**
|
|
427
|
-
* POST 请求
|
|
428
|
-
*/
|
|
429
|
-
flagPost() {
|
|
430
|
-
const argumentsArr = arguments;
|
|
431
|
-
return this.unifyApi('flag', 'POST', argumentsArr);
|
|
432
|
-
}
|
|
433
|
-
urlPost() {
|
|
434
|
-
const argumentsArr = arguments;
|
|
435
|
-
return this.unifyApi('url', 'POST', argumentsArr);
|
|
436
|
-
}
|
|
437
|
-
/**
|
|
438
|
-
* PUT 请求
|
|
439
|
-
*/
|
|
440
|
-
flagPut() {
|
|
441
|
-
const argumentsArr = arguments;
|
|
442
|
-
return this.unifyApi('flag', 'PUT', argumentsArr);
|
|
443
|
-
}
|
|
444
|
-
urlPut() {
|
|
445
|
-
const argumentsArr = arguments;
|
|
446
|
-
return this.unifyApi('url', 'PUT', argumentsArr);
|
|
447
|
-
}
|
|
448
|
-
/**
|
|
449
|
-
* PATCH 请求
|
|
450
|
-
*/
|
|
451
|
-
flagPatch() {
|
|
452
|
-
const argumentsArr = arguments;
|
|
453
|
-
return this.unifyApi('flag', 'PATCH', argumentsArr);
|
|
454
|
-
}
|
|
455
|
-
urlPatch() {
|
|
456
|
-
const argumentsArr = arguments;
|
|
457
|
-
return this.unifyApi('url', 'PATCH', argumentsArr);
|
|
458
|
-
}
|
|
459
|
-
/**
|
|
460
|
-
* DELETE 请求
|
|
461
|
-
*/
|
|
462
|
-
flagDel() {
|
|
463
|
-
const argumentsArr = arguments;
|
|
464
|
-
return this.unifyApi('flag', 'DELETE', argumentsArr);
|
|
465
|
-
}
|
|
466
|
-
urlDel() {
|
|
467
|
-
const argumentsArr = arguments;
|
|
468
|
-
return this.unifyApi('url', 'DELETE', argumentsArr);
|
|
469
|
-
}
|
|
470
|
-
/* 文件上传通用 */
|
|
471
|
-
flagUpload() {
|
|
472
|
-
const argumentsArr = arguments;
|
|
473
|
-
return this.unifyApi('flag', 'UPLOAD', argumentsArr);
|
|
474
|
-
}
|
|
475
|
-
urlUpload() {
|
|
476
|
-
const argumentsArr = arguments;
|
|
477
|
-
return this.unifyApi('url', 'UPLOAD', argumentsArr);
|
|
478
|
-
}
|
|
479
|
-
/* 图片上传通用 */
|
|
480
|
-
flagUpImg() {
|
|
481
|
-
const argumentsArr = arguments;
|
|
482
|
-
return this.unifyApi('flag', 'UPLOAD', argumentsArr);
|
|
483
|
-
}
|
|
484
|
-
urlUpImg() {
|
|
485
|
-
const argumentsArr = arguments;
|
|
486
|
-
return this.unifyApi('url', 'UPLOAD', argumentsArr);
|
|
487
|
-
}
|
|
488
|
-
/**
|
|
489
|
-
* 统一请求
|
|
490
|
-
*/
|
|
491
|
-
unifyApi(flagOrUrl, methodType, argumentsArr) {
|
|
492
|
-
let _this = this;
|
|
493
|
-
let argNum = argumentsArr.length || 0;
|
|
494
|
-
if (argNum <= 0 || argNum > 3) {
|
|
495
|
-
let errorMsg = `-- ${methodType} : 参数为(1-3)个---`;
|
|
496
|
-
return new Promise((resolve, reject) => {
|
|
497
|
-
this.resetNetError({ message: errorMsg });
|
|
498
|
-
return reject({ message: errorMsg });
|
|
499
|
-
});
|
|
500
|
-
}
|
|
501
|
-
let apiUrl = '';
|
|
502
|
-
let apiUrlNoMsg = '';
|
|
503
|
-
if (flagOrUrl == 'flag') {
|
|
504
|
-
let apiFlag = argumentsArr[0];
|
|
505
|
-
if (typeof apiFlag === 'string') {
|
|
506
|
-
apiFlag = apiFlag || '';
|
|
507
|
-
apiUrl = apiFlag == '' ? '' : this.flagMap[apiFlag] || '';
|
|
508
|
-
}
|
|
509
|
-
apiUrlNoMsg = ' flag' + methodType + ':传入的标示 { ' + `${apiFlag}` + ' },未匹配到 apiUrl ';
|
|
510
|
-
}
|
|
511
|
-
if (flagOrUrl == 'url') {
|
|
512
|
-
apiUrl = argumentsArr[0];
|
|
513
|
-
if (typeof apiUrl === 'string') {
|
|
514
|
-
apiUrl = apiUrl || '';
|
|
515
|
-
}
|
|
516
|
-
apiUrlNoMsg = ' 未匹配到 apiUrl ';
|
|
517
|
-
}
|
|
518
|
-
if (apiUrl == '') {
|
|
519
|
-
return new Promise((resolve, reject) => {
|
|
520
|
-
this.resetNetError({ message: apiUrlNoMsg });
|
|
521
|
-
return reject({ message: apiUrlNoMsg });
|
|
522
|
-
});
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
// 如果传回一个
|
|
526
|
-
if (argNum == 1) {
|
|
527
|
-
return function (reqData) {
|
|
528
|
-
return _this.apiAll(methodType, apiUrl, reqData);
|
|
529
|
-
};
|
|
530
|
-
} else if (argNum == 2 || argNum == 3) {
|
|
531
|
-
let reqData = {};
|
|
532
|
-
let arg2Val = argumentsArr[1];
|
|
533
|
-
let arg2Type = Object.prototype.toString.call(arg2Val);
|
|
534
|
-
// let argType2_2 = typeof argumentsArr[1] === 'object';
|
|
535
|
-
if (arg2Type === '[object String]' || arg2Type === '[object Number]') {
|
|
536
|
-
// console.log('----转换-----', parseInt(arg2Val), BigInt(arg2Val), Number(arg2Val)); // 超过17位;
|
|
537
|
-
let isEndId = Number(arg2Val);
|
|
538
|
-
if (!isNaN(isEndId)) {
|
|
539
|
-
// 检查是否精度丢失(当原始值有超过17位或转换后不等时)
|
|
540
|
-
if (isEndId.toString() !== String(arg2Val).trim()) {
|
|
541
|
-
isEndId = BigInt(`${arg2Val}`).toString(); // 回退到BigInt
|
|
542
|
-
}
|
|
543
|
-
if (!apiUrl.endsWith('/')) {
|
|
544
|
-
apiUrl = apiUrl + '/';
|
|
545
|
-
}
|
|
546
|
-
apiUrl = apiUrl + isEndId;
|
|
547
|
-
} else {
|
|
548
|
-
// console.log('---字符');
|
|
549
|
-
}
|
|
550
|
-
if (argNum == 3) {
|
|
551
|
-
let arg3Val = argumentsArr[2];
|
|
552
|
-
let arg3Type = Object.prototype.toString.call(arg3Val);
|
|
553
|
-
if (arg3Type === '[object Object]') {
|
|
554
|
-
reqData = arg3Val || {};
|
|
555
|
-
}
|
|
556
|
-
}
|
|
557
|
-
} else if (arg2Type === '[object Object]') {
|
|
558
|
-
reqData = arg2Val || {};
|
|
559
|
-
} else if (arg2Type === '[object FormData]') {
|
|
560
|
-
reqData = arg2Val || new FormData();
|
|
561
|
-
}
|
|
562
|
-
return _this.apiAll(methodType, apiUrl, reqData);
|
|
563
|
-
} else {
|
|
564
|
-
return new Promise((resolve, reject) => {
|
|
565
|
-
return reject({ message: ' 请求错误 ' });
|
|
566
|
-
});
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
export default RequestClass;
|