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.
@@ -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.$on(listen, () => { request(true, {}) });
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nvue3",
3
- "version": "1.1.11",
3
+ "version": "1.1.13",
4
4
  "description": "for uniapp & vue3",
5
5
  "main": "src/kernel.js",
6
6
  "scripts": {
package/src/http.js CHANGED
@@ -2,8 +2,8 @@
2
2
  * toast最少显示长时间,主要是加载api的读取中后续关闭
3
3
  */
4
4
  const tstShow = 350;
5
- // const isDebug = (process.env.NODE_ENV === 'development');
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.before = Date.now();
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.mintime) {
630
- console.log({ nowTime, justPostTime, just: nowTime - justPostTime, min: config.mintime });
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
- const fd = FrequencyDetection(api);
659
- if (fd) return fd;
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
- const fd = FrequencyDetection(api);
666
- if (fd) return fd;
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
  }