nvue3 1.1.11 → 1.1.13
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/components/v-paging.vue +9 -4
- package/package.json +1 -1
- package/src/http.js +20 -171
package/components/v-paging.vue
CHANGED
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
</template>
|
|
36
36
|
|
|
37
37
|
<script setup>
|
|
38
|
-
import { computed, ref, inject, onMounted } from 'vue';
|
|
38
|
+
import { computed, ref, inject, onMounted, isRef, isReactive } from 'vue';
|
|
39
39
|
import { onPullDownRefresh, onReachBottom } from '@dcloudio/uni-app';
|
|
40
40
|
const { back } = inject('$pages');
|
|
41
41
|
const { post } = inject('$http');
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
*/
|
|
121
121
|
const request = (refresh, option = {}) => {
|
|
122
122
|
const index = refresh ? 1 : (pageIndex.value + 1)
|
|
123
|
-
|
|
123
|
+
const loaded = Boolean(option.loaded || false);
|
|
124
124
|
post(api, Object.assign({}, params, option, { index })).then(
|
|
125
125
|
res => {
|
|
126
126
|
uni.stopPullDownRefresh();
|
|
@@ -128,13 +128,14 @@
|
|
|
128
128
|
|
|
129
129
|
const resData = (field ? res.data[field] : res.data) || [];
|
|
130
130
|
if (refresh) {
|
|
131
|
+
datas.value.length = 0;
|
|
131
132
|
if (resData.length > 0) datas.value = [...resData];
|
|
132
133
|
else datas.value.length = 0;
|
|
133
134
|
}
|
|
134
135
|
else if (resData.length > 0) {
|
|
135
136
|
datas.value.push(...resData);
|
|
136
137
|
}
|
|
137
|
-
emit('update', res.data, refresh);
|
|
138
|
+
emit('update', res.data, refresh, loaded);
|
|
138
139
|
|
|
139
140
|
pageState.value = 1;
|
|
140
141
|
pageIndex.value = paging.value.index;
|
|
@@ -164,7 +165,11 @@
|
|
|
164
165
|
request(true, { loaded: 1 });
|
|
165
166
|
|
|
166
167
|
if (!listen) return;
|
|
167
|
-
uni.$
|
|
168
|
+
uni.$off(listen);
|
|
169
|
+
uni.$on(listen, (...from) => {
|
|
170
|
+
console.log(`by paging listen(${listen})=======>`, from);
|
|
171
|
+
request(true, {})
|
|
172
|
+
});
|
|
168
173
|
|
|
169
174
|
})
|
|
170
175
|
|
package/package.json
CHANGED
package/src/http.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* toast最少显示长时间,主要是加载api的读取中后续关闭
|
|
3
3
|
*/
|
|
4
4
|
const tstShow = 350;
|
|
5
|
-
|
|
6
|
-
const isDebug = true;
|
|
5
|
+
const isDebug = (process.env.NODE_ENV === 'development');
|
|
6
|
+
// const isDebug = true;
|
|
7
7
|
|
|
8
8
|
const baseResp = {
|
|
9
9
|
success: 1,
|
|
@@ -18,6 +18,7 @@ const config = {
|
|
|
18
18
|
modal: false, //出错时显示model,否则显示toast
|
|
19
19
|
timeout: 6000,
|
|
20
20
|
mintime: 100, //两次modal或toast之间间隔最短时间,小于此时间的不显示
|
|
21
|
+
detection: 0, //检测相同API连续请求间隔,小于此时间的报错,0不检测
|
|
21
22
|
toast: {
|
|
22
23
|
'l': '加载中...',
|
|
23
24
|
'r': '读取中...',
|
|
@@ -280,8 +281,6 @@ function doSuccess(REQ, res, resolve, reject) {
|
|
|
280
281
|
}
|
|
281
282
|
|
|
282
283
|
function doFail(request, res, resolve, reject) {
|
|
283
|
-
if (!request.timer.after) request.timer.after = Date.now();
|
|
284
|
-
// console.error('uni.request Fail:', request, JSON.stringify(res));
|
|
285
284
|
|
|
286
285
|
if (res.errMsg.indexOf('Failed to connect') > 0) {
|
|
287
286
|
let info = res.errMsg.match(/([\w\.]+)\/([\d\.]+)\:(\d+)/);
|
|
@@ -312,10 +311,6 @@ function doComplete(request, res, resolve, reject) {
|
|
|
312
311
|
request.timer.used = request.timer.after - request.timer.before;
|
|
313
312
|
request.timer.useTime = (request.timer.used / 1000) + 's';
|
|
314
313
|
|
|
315
|
-
/**
|
|
316
|
-
* 1727661448.089
|
|
317
|
-
*/
|
|
318
|
-
|
|
319
314
|
if (request.toast && (tstShow > 0)) {
|
|
320
315
|
if (request.timer.used > tstShow) {
|
|
321
316
|
if (request.loading) uni.hideLoading();
|
|
@@ -327,7 +322,7 @@ function doComplete(request, res, resolve, reject) {
|
|
|
327
322
|
}
|
|
328
323
|
}
|
|
329
324
|
|
|
330
|
-
if (isDebug) console.log(request)
|
|
325
|
+
if (isDebug || config.debug) console.log(request)
|
|
331
326
|
}
|
|
332
327
|
|
|
333
328
|
|
|
@@ -342,13 +337,14 @@ function doRequest(request) {
|
|
|
342
337
|
}
|
|
343
338
|
|
|
344
339
|
return new Promise(async (resolve, reject) => {
|
|
345
|
-
request.timer.
|
|
340
|
+
request.timer.ready = Date.now();
|
|
346
341
|
request.header.put = await processor.header(request.api, request.request, request.method);
|
|
347
342
|
|
|
348
343
|
const contType = (request.method === 'UPLOAD') ? 'multipart/form-data' : 'application/json';
|
|
349
344
|
request.header.put['content-type'] = contType;
|
|
350
345
|
delete request.header.put['referer'];
|
|
351
346
|
|
|
347
|
+
request.timer.before = Date.now();
|
|
352
348
|
uni.request({
|
|
353
349
|
url: request.api,
|
|
354
350
|
method: request.method,
|
|
@@ -357,9 +353,11 @@ function doRequest(request) {
|
|
|
357
353
|
data: request.request,
|
|
358
354
|
header: request.header.put,
|
|
359
355
|
success: (res) => {
|
|
356
|
+
request.timer.after = Date.now();
|
|
360
357
|
doSuccess(request, res, resolve, reject);
|
|
361
358
|
},
|
|
362
359
|
fail: (res) => {
|
|
360
|
+
request.timer.after = Date.now();
|
|
363
361
|
doFail(request, res, resolve, reject);
|
|
364
362
|
},
|
|
365
363
|
complete: (res) => {
|
|
@@ -370,155 +368,6 @@ function doRequest(request) {
|
|
|
370
368
|
});
|
|
371
369
|
}
|
|
372
370
|
|
|
373
|
-
function cropImg(file) {
|
|
374
|
-
return new Promise((resolve, reject) => {
|
|
375
|
-
uni.getImageInfo({
|
|
376
|
-
src: file.path,
|
|
377
|
-
success(info) {
|
|
378
|
-
resolve({
|
|
379
|
-
path: file.path,
|
|
380
|
-
ext: info.type.toLowerCase(),
|
|
381
|
-
width: info.width,
|
|
382
|
-
height: info.height,
|
|
383
|
-
weight: file.size
|
|
384
|
-
})
|
|
385
|
-
},
|
|
386
|
-
fail(err) {
|
|
387
|
-
// console.log(err);
|
|
388
|
-
reject(err)
|
|
389
|
-
}
|
|
390
|
-
})
|
|
391
|
-
})
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
function upServerFile(request, file) {
|
|
395
|
-
return new Promise((resolve, reject) => {
|
|
396
|
-
request.request.data = JSON.stringify(request.request.data);
|
|
397
|
-
request.request.files = JSON.stringify([file]);
|
|
398
|
-
uni.uploadFile({
|
|
399
|
-
url: request.api,
|
|
400
|
-
filePath: file.path,
|
|
401
|
-
//#ifdef MP-ALIPAY
|
|
402
|
-
fileType: file.ext,
|
|
403
|
-
//#endif
|
|
404
|
-
name: file.name,
|
|
405
|
-
timeout: request.timeout,
|
|
406
|
-
header: request.header.put,
|
|
407
|
-
formData: request.request,
|
|
408
|
-
success: (res) => {
|
|
409
|
-
resolve(res);
|
|
410
|
-
},
|
|
411
|
-
fail: (res) => {
|
|
412
|
-
reject(res);
|
|
413
|
-
}
|
|
414
|
-
});
|
|
415
|
-
})
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
function objectJson(obj) {
|
|
419
|
-
return JSON.parse(JSON.stringify(obj));
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
/**
|
|
423
|
-
* 上传 uni.chooseImage()选择好的文件
|
|
424
|
-
*
|
|
425
|
-
* @param {Object} choose 是uni.chooseImage({success: (res)})中的res原样
|
|
426
|
-
* @param {Object} saveSpace 0:自己服务器,1:uniCloud
|
|
427
|
-
*/
|
|
428
|
-
function doUpload_OLD(request, choose) {
|
|
429
|
-
|
|
430
|
-
return new Promise((resolve, reject) => {
|
|
431
|
-
request.timer.before = Date.now();
|
|
432
|
-
const fileCount = choose.tempFiles.length;
|
|
433
|
-
const processAll = [];
|
|
434
|
-
for (let i = 0; i < fileCount; i++) {
|
|
435
|
-
processAll.push(cropImg(choose.tempFiles[i]));
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
return Promise.all(processAll).then(allFile => {
|
|
439
|
-
return allFile;
|
|
440
|
-
}).then(res => {
|
|
441
|
-
// console.log(res);
|
|
442
|
-
|
|
443
|
-
//#ifdef APP-PLUS
|
|
444
|
-
//app可以批量上传
|
|
445
|
-
const files = [];
|
|
446
|
-
for (let i = 0; i < fileCount; i++) {
|
|
447
|
-
res[i].name = `file${i}`;
|
|
448
|
-
files.push({
|
|
449
|
-
name: res[i].name,
|
|
450
|
-
uri: res[i].path
|
|
451
|
-
});
|
|
452
|
-
}
|
|
453
|
-
request.request.files = JSON.stringify(res);
|
|
454
|
-
request.request.data = JSON.stringify(request.request.data);
|
|
455
|
-
|
|
456
|
-
uni.uploadFile({
|
|
457
|
-
url: request.api,
|
|
458
|
-
timeout: request.timeout,
|
|
459
|
-
header: request.header.put,
|
|
460
|
-
dataType: request.encode,
|
|
461
|
-
formData: request.request,
|
|
462
|
-
files: files,
|
|
463
|
-
success: (res) => {
|
|
464
|
-
if (isDebug) console.log(res);
|
|
465
|
-
try {
|
|
466
|
-
if (typeof res.data === 'string') res.data = JSON.parse(res.data);
|
|
467
|
-
}
|
|
468
|
-
catch (e) {
|
|
469
|
-
//TODO handle the exception
|
|
470
|
-
}
|
|
471
|
-
doSuccess(request, res, resolve, reject);
|
|
472
|
-
},
|
|
473
|
-
fail: (res) => {
|
|
474
|
-
doFail(request, res, resolve, reject);
|
|
475
|
-
},
|
|
476
|
-
complete: (res) => {
|
|
477
|
-
doComplete(request, res, resolve, reject)
|
|
478
|
-
}
|
|
479
|
-
});
|
|
480
|
-
//#endif
|
|
481
|
-
|
|
482
|
-
//#ifndef APP-PLUS
|
|
483
|
-
const processUp = [];
|
|
484
|
-
for (let i = 0; i < fileCount; i++) {
|
|
485
|
-
res[i].name = `file${i}`;
|
|
486
|
-
processUp.push(upServerFile(request, res[i]));
|
|
487
|
-
}
|
|
488
|
-
|
|
489
|
-
return Promise.all(processUp).then(
|
|
490
|
-
allFile => {
|
|
491
|
-
let resp = {};
|
|
492
|
-
const files = allFile.map((res, f) => {
|
|
493
|
-
let json = res.data;
|
|
494
|
-
try {
|
|
495
|
-
if (typeof json === 'string') json = JSON.parse(json);
|
|
496
|
-
}
|
|
497
|
-
catch (e) {
|
|
498
|
-
//TODO handle the exception
|
|
499
|
-
}
|
|
500
|
-
resp.data = json;
|
|
501
|
-
resp.header = allFile[0].header;
|
|
502
|
-
resp.errMsg = allFile[0].errMsg;
|
|
503
|
-
resp.statusCode = allFile[0].statusCode;
|
|
504
|
-
return json.data;
|
|
505
|
-
});
|
|
506
|
-
resp.files = files;
|
|
507
|
-
doSuccess(request, resp);
|
|
508
|
-
},
|
|
509
|
-
allError => {
|
|
510
|
-
if (isDebug) console.log('allError', allError);
|
|
511
|
-
doFail(request, allError[0]);
|
|
512
|
-
});
|
|
513
|
-
//#endif
|
|
514
|
-
|
|
515
|
-
});
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
});
|
|
520
|
-
}
|
|
521
|
-
|
|
522
371
|
|
|
523
372
|
function thisPost(api, data = {}) {
|
|
524
373
|
return doRequest(new _request(api, data, 'post'));
|
|
@@ -624,18 +473,14 @@ function FrequencyDetection(api) {
|
|
|
624
473
|
if (api[0] === '@') return null; //不检查频率
|
|
625
474
|
|
|
626
475
|
let nowTime = Date.now();
|
|
627
|
-
console.log({ api, nowTime, justPostTime });
|
|
628
476
|
|
|
629
|
-
if (api === justPostApi && nowTime - justPostTime < config.
|
|
630
|
-
console.log({ nowTime, justPostTime, just: nowTime - justPostTime,
|
|
477
|
+
if (api === justPostApi && nowTime - justPostTime < config.detection) {
|
|
478
|
+
// console.log({ nowTime, justPostTime, just: nowTime - justPostTime, detection: config.detection });
|
|
631
479
|
|
|
632
480
|
return new Promise((resolve, reject) => {
|
|
633
|
-
reject({
|
|
634
|
-
error: 1,
|
|
635
|
-
success: 0,
|
|
636
|
-
message: '操作太频繁'
|
|
637
|
-
})
|
|
481
|
+
reject({ error: 1, success: 0, message: '操作太频繁' })
|
|
638
482
|
});
|
|
483
|
+
|
|
639
484
|
}
|
|
640
485
|
|
|
641
486
|
justPostTime = nowTime;
|
|
@@ -655,15 +500,19 @@ export default class {
|
|
|
655
500
|
}
|
|
656
501
|
|
|
657
502
|
get(api, data = {}) {
|
|
658
|
-
|
|
659
|
-
|
|
503
|
+
if (config.detection > 0) {
|
|
504
|
+
const fd = FrequencyDetection(api);
|
|
505
|
+
if (fd) return fd;
|
|
506
|
+
}
|
|
660
507
|
|
|
661
508
|
return doRequest(new _request(api, data, 'get'));
|
|
662
509
|
}
|
|
663
510
|
|
|
664
511
|
post(api, data = {}) {
|
|
665
|
-
|
|
666
|
-
|
|
512
|
+
if (config.detection > 0) {
|
|
513
|
+
const fd = FrequencyDetection(api);
|
|
514
|
+
if (fd) return fd;
|
|
515
|
+
}
|
|
667
516
|
|
|
668
517
|
return doRequest(new _request(api, data, 'post'));
|
|
669
518
|
}
|