@10yun/cv-mobile-ui 0.5.35 → 0.5.36

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.
@@ -0,0 +1,572 @@
1
+ let log = console.log; // 如果在项目的APP.vue文件中的onlaunch中设置 console.log = ()=> {} 则在此也不会有打印信息
2
+ // log = ()=>{}; // 打开注释则该插件不会打印任何信息
3
+ let _app = {
4
+ lineFeedTags: ['<br />', '<br/>', '\r\n', '\n\t', '\r', '\n'], //换行符识别列表
5
+ tagetLineFeedTag: `❤`, //将lineFeedTags列表中的字符串替换为该字符, 代表换行符, 只要找一个特殊符号就行,必须是单字符单字符单字符!
6
+ //交互控制
7
+ log(t) {
8
+ log(t);
9
+ }, // 打印控制,
10
+ showLoading(msg, ifmask) {
11
+ // uni.showLoading({
12
+ // title: msg,
13
+ // mask: ifmask || false
14
+ // })
15
+ },
16
+ hideLoading() {
17
+ // uni.hideLoading();
18
+ },
19
+ showToast(msg, icon) {
20
+ // uni.showToast({
21
+ // title: msg,
22
+ // icon: icon || 'none'
23
+ // })
24
+ },
25
+ getPosterUrl(objs) {
26
+ // 后端获取背景图的url路径方法
27
+ let { backgroundImage, type, formData } = objs;
28
+ return new Promise((rs, rj) => {
29
+ let image;
30
+ if (backgroundImage) {
31
+ image = backgroundImage;
32
+ } else {
33
+ //根据type获取背景图, 一般要改成request获取
34
+ switch (type) {
35
+ case 1:
36
+ image = '';
37
+ break;
38
+ default:
39
+ image = '/static/1.png';
40
+ break;
41
+ }
42
+ }
43
+ if (image) {
44
+ rs(image); // resolve图片的路径
45
+ } else {
46
+ rj('背景图片路径不存在');
47
+ }
48
+ });
49
+ },
50
+
51
+ //下面一般不用动他
52
+ shareTypeListSheetArray: {
53
+ array: [0, 1, 2, 3, 4, 5]
54
+ }, // 分享类型 0-图文链接 1-纯文字 2-纯图片 3-音乐 4-视频 5-小程序
55
+ isArray(arg) {
56
+ return Object.prototype.toString.call(arg) === '[object Array]';
57
+ },
58
+ isObject(arg) {
59
+ return Object.prototype.toString.call(arg) === '[object Object]';
60
+ },
61
+ isPromise(obj) {
62
+ return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
63
+ },
64
+ isNull(arg) {
65
+ return arg === null;
66
+ },
67
+ isUndefined(arg) {
68
+ return arg === undefined;
69
+ },
70
+ isUndef(arg) {
71
+ return arg === undefined;
72
+ },
73
+ isNotNull_string(arg) {
74
+ return arg !== null && arg !== undefined && arg !== '';
75
+ },
76
+ isFn(fn) {
77
+ return fn && typeof fn === 'function';
78
+ },
79
+ getStorage(key, scb, fcb) {
80
+ uni.getStorage({
81
+ key,
82
+ success: function (res) {
83
+ if (res.data && res.data != '') {
84
+ if (scb) scb(res.data);
85
+ } else {
86
+ if (fcb) fcb();
87
+ }
88
+ },
89
+ fail: function () {
90
+ if (fcb) fcb();
91
+ }
92
+ });
93
+ },
94
+ setStorage(key, data) {
95
+ log('设置缓存');
96
+ log('key:' + key);
97
+ log('data:' + JSON.stringify(data));
98
+ uni.setStorage({
99
+ key,
100
+ data
101
+ });
102
+ },
103
+ setStorageSync(key, data) {
104
+ uni.setStorageSync(key, data);
105
+ },
106
+ getStorageSync(key) {
107
+ return uni.getStorageSync(key);
108
+ },
109
+ clearStorageSync() {
110
+ uni.clearStorageSync();
111
+ },
112
+ removeStorageSync(key) {
113
+ uni.removeStorageSync(key);
114
+ },
115
+ getImageInfo(url, cb, fcb) {
116
+ url = checkMPUrl(url);
117
+ uni.getImageInfo({
118
+ src: url,
119
+ success(res) {
120
+ if (cb && typeof cb == 'function') cb(res);
121
+ },
122
+ fail(err) {
123
+ if (fcb && typeof fcb == 'function') fcb(err);
124
+ }
125
+ });
126
+ },
127
+ downloadFile(url, cb) {
128
+ url = checkMPUrl(url);
129
+ uni.downloadFile({
130
+ url,
131
+ success(res) {
132
+ if (cb && typeof cb == 'function') cb(res);
133
+ }
134
+ });
135
+ },
136
+ downloadFile_PromiseFc(url) {
137
+ return new Promise((rs, rj) => {
138
+ if (url.substring(0, 4) !== 'http') {
139
+ rs(url);
140
+ } else {
141
+ url = checkMPUrl(url);
142
+ log('url:' + url);
143
+ uni.downloadFile({
144
+ url,
145
+ success(res) {
146
+ if (res && res.tempFilePath) rs(res.tempFilePath);
147
+ else rj('not find tempFilePath');
148
+ },
149
+ fail(err) {
150
+ rj(err);
151
+ }
152
+ });
153
+ }
154
+ });
155
+ },
156
+ saveFile(url) {
157
+ uni.saveFile({
158
+ tempFilePath: url,
159
+ success(res) {
160
+ log('保存成功:' + JSON.stringify(res));
161
+ }
162
+ });
163
+ },
164
+ downLoadAndSaveFile_PromiseFc(url) {
165
+ return new Promise((rs, rj) => {
166
+ log('准备下载并保存图片:' + url);
167
+ if (url.substring(0, 4) === 'http') {
168
+ url = checkMPUrl(url);
169
+ uni.downloadFile({
170
+ url,
171
+ success(d_res) {
172
+ log('下载背景图成功:' + JSON.stringify(d_res));
173
+ if (d_res && d_res.tempFilePath) {
174
+ // #ifdef H5
175
+ rs(d_res.tempFilePath);
176
+ // #endif
177
+
178
+ // #ifndef H5
179
+ uni.saveFile({
180
+ tempFilePath: d_res.tempFilePath,
181
+ success(s_res) {
182
+ log('保存背景图成功:' + JSON.stringify(s_res));
183
+ if (s_res && s_res.savedFilePath) rs(s_res.savedFilePath);
184
+ else rs(d_res.tempFilePath);
185
+ },
186
+ fail(err) {
187
+ rs(d_res.tempFilePath);
188
+ }
189
+ });
190
+ // #endif
191
+ } else {
192
+ rj('not find tempFilePath');
193
+ }
194
+ },
195
+ fail(err) {
196
+ rj(err);
197
+ }
198
+ });
199
+ } else {
200
+ rs(url);
201
+ }
202
+ });
203
+ },
204
+ checkFile_PromiseFc(url) {
205
+ return new Promise((rs, rj) => {
206
+ uni.getSavedFileList({
207
+ success(res) {
208
+ let d = res.fileList;
209
+ let index = d.findIndex((item) => {
210
+ return item.filePath === url;
211
+ });
212
+ rs(index);
213
+ },
214
+ fail(err) {
215
+ rj(err);
216
+ }
217
+ });
218
+ });
219
+ },
220
+ removeSavedFile(path) {
221
+ uni.getSavedFileList({
222
+ success(res) {
223
+ let d = res.fileList;
224
+ let index = d.findIndex((item) => {
225
+ return item.filePath === path;
226
+ });
227
+ if (index >= 0)
228
+ uni.removeSavedFile({
229
+ filePath: path
230
+ });
231
+ }
232
+ });
233
+ },
234
+ fileNameInPath(path) {
235
+ let s = path.split('/');
236
+ return s[s.length - 1];
237
+ },
238
+ getImageInfo_PromiseFc(imgPath) {
239
+ return new Promise((rs, rj) => {
240
+ log('准备获取图片信息:' + imgPath);
241
+ imgPath = checkMPUrl(imgPath);
242
+ uni.getImageInfo({
243
+ src: imgPath,
244
+ success: (res) => {
245
+ log('获取图片信息成功:' + JSON.stringify(res));
246
+ rs(res);
247
+ },
248
+ fail: (err) => {
249
+ log('获取图片信息失败:' + JSON.stringify(err));
250
+ rj(err);
251
+ }
252
+ });
253
+ });
254
+ },
255
+ previewImage(urls) {
256
+ if (typeof urls == 'string') urls = [urls];
257
+ uni.previewImage({
258
+ urls
259
+ });
260
+ },
261
+ actionSheet(obj, cb) {
262
+ let sheetArray = [];
263
+ for (let i = 0; i < obj.array.length; i++) {
264
+ switch (obj.array[i]) {
265
+ case 'sinaweibo':
266
+ sheetArray[i] = '新浪微博';
267
+ break;
268
+ case 'qq':
269
+ sheetArray[i] = 'QQ';
270
+ break;
271
+ case 'weixin':
272
+ sheetArray[i] = '微信';
273
+ break;
274
+ case 'WXSceneSession':
275
+ sheetArray[i] = '微信好友';
276
+ break;
277
+ case 'WXSenceTimeline':
278
+ sheetArray[i] = '微信朋友圈';
279
+ break;
280
+ case 'WXSceneFavorite':
281
+ sheetArray[i] = '微信收藏';
282
+ break;
283
+ case 0:
284
+ sheetArray[i] = '图文链接';
285
+ break;
286
+ case 1:
287
+ sheetArray[i] = '纯文字';
288
+ break;
289
+ case 2:
290
+ sheetArray[i] = '纯图片';
291
+ break;
292
+ case 3:
293
+ sheetArray[i] = '音乐';
294
+ break;
295
+ case 4:
296
+ sheetArray[i] = '视频';
297
+ break;
298
+ case 5:
299
+ sheetArray[i] = '小程序';
300
+ break;
301
+ default:
302
+ break;
303
+ }
304
+ }
305
+ this.showActionSheet(sheetArray, cb);
306
+ },
307
+ showActionSheet(sheetArray, cb) {
308
+ uni.showActionSheet({
309
+ itemList: sheetArray,
310
+ success: (e) => {
311
+ if (cb && typeof cb == 'function') cb(e.tapIndex);
312
+ }
313
+ });
314
+ },
315
+ getProvider(type, cb, sheet) {
316
+ let _this = this;
317
+ uni.getProvider({
318
+ service: type,
319
+ success: function (res) {
320
+ if (sheet) {
321
+ let obj = {};
322
+ obj.array = res.provider;
323
+ _this.actionSheet(obj, function (index) {
324
+ if (cb && typeof cb == 'function') cb(res.provider[index]);
325
+ });
326
+ } else {
327
+ if (type == 'payment') {
328
+ let providers = res.provider;
329
+ let payTypeArray = [];
330
+ for (let i = 0; i < providers.length; i++) {
331
+ if (providers[i] == 'wxpay') {
332
+ payTypeArray[i] = {
333
+ name: '微信支付',
334
+ value: providers[i],
335
+ img: '/static/image/wei.png'
336
+ };
337
+ } else if (providers[i] == 'alipay') {
338
+ payTypeArray[i] = {
339
+ name: '支付宝支付',
340
+ value: providers[i],
341
+ img: '/static/image/ali.png'
342
+ };
343
+ }
344
+ }
345
+ if (cb && typeof cb == 'function') cb(payTypeArray);
346
+ } else {
347
+ if (cb && typeof cb == 'function') cb(res);
348
+ }
349
+ }
350
+ }
351
+ });
352
+ },
353
+ // #ifdef APP-PLUS
354
+ getShare(providerName, WXScene, shareType, title, summary, href, imageUrl, miniProgramObj, mediaUrl, scb, fcb) {
355
+ //miniProgram: {path: '', type: 0, webUrl: ''}
356
+ let _this = this;
357
+ if (typeof shareType == 'number' && !isNaN(shareType) && shareType >= 0) {
358
+ _this.readyShare(providerName, WXScene, shareType, title, summary, href, imageUrl, miniProgramObj, mediaUrl, scb, fcb);
359
+ } else {
360
+ _this.actionSheet(_this.shareTypeListSheetArray, function (index) {
361
+ _this.readyShare(
362
+ providerName,
363
+ WXScene,
364
+ _this.shareTypeListSheetArray.array[index],
365
+ title,
366
+ summary,
367
+ href,
368
+ imageUrl,
369
+ miniProgramObj,
370
+ mediaUrl,
371
+ scb,
372
+ fcb
373
+ );
374
+ });
375
+ }
376
+ },
377
+ readyShare(providerName, WXScene, shareType, title, summary, href, imageUrl, miniProgramObj, mediaUrl, scb, fcb) {
378
+ let _this = this;
379
+ let shareObjData = {};
380
+ switch (shareType) {
381
+ case 0:
382
+ shareObjData = {
383
+ href: href,
384
+ summary: summary,
385
+ imageUrl: imageUrl
386
+ };
387
+ break;
388
+ case 1:
389
+ shareObjData = {
390
+ summary: summary,
391
+ href: href
392
+ };
393
+ break;
394
+ case 2:
395
+ shareObjData = {
396
+ imageUrl: imageUrl
397
+ };
398
+ break;
399
+ case 3:
400
+ if (mediaUrl) {
401
+ _this.showToast('暂不支持此分享类型');
402
+ return;
403
+ }
404
+ shareObjData = {
405
+ mediaUrl: mediaUrl
406
+ };
407
+ break;
408
+ case 4:
409
+ if (mediaUrl) {
410
+ _this.showToast('暂不支持此分享类型');
411
+ return;
412
+ }
413
+ shareObjData = {
414
+ mediaUrl: mediaUrl
415
+ };
416
+ break;
417
+ case 5:
418
+ shareObjData = {
419
+ miniProgram: {
420
+ ...miniProgramObj,
421
+ id: miniProgramId,
422
+ type: miniProgramShareType
423
+ },
424
+ imageUrl: imageUrl
425
+ };
426
+ providerName = 'weixin';
427
+ break;
428
+ default:
429
+ _this.showToast('分享参数-shareType错误');
430
+ return;
431
+ break;
432
+ }
433
+ shareObjData.title = title;
434
+ _this.share(
435
+ providerName,
436
+ WXScene,
437
+ shareType,
438
+ shareObjData,
439
+ function (res) {
440
+ if (scb && typeof scb == 'function') scb(res);
441
+ },
442
+ function (err) {
443
+ if (fcb && typeof fcb == 'function') fcb(err);
444
+ }
445
+ );
446
+ },
447
+ share(providerName, WXScene, shareType, data, scb, fcb) {
448
+ let _this = this;
449
+ let shareObj = {
450
+ provider: '',
451
+ success: Function,
452
+ fail: Function
453
+ };
454
+ if (providerName && providerName != '') {
455
+ shareObj.provider = providerName;
456
+ if (providerName == 'weixin') {
457
+ _this.readyShareWXScene(WXScene, function (Scene) {
458
+ shareObj.scene = Scene;
459
+ _this.doingShare(shareObj, shareType, data, scb, fcb);
460
+ });
461
+ } else {
462
+ _this.doingShare(shareObj, shareType, data, scb, fcb);
463
+ }
464
+ } else {
465
+ _this.getProvider(
466
+ 'share',
467
+ function (name) {
468
+ shareObj.provider = name;
469
+ if (name == 'weixin') {
470
+ _this.readyShareWXScene(WXScene, function (Scene) {
471
+ shareObj.scene = Scene;
472
+ _this.doingShare(shareObj, shareType, data, scb, fcb);
473
+ });
474
+ } else {
475
+ _this.doingShare(shareObj, shareType, data, scb, fcb);
476
+ }
477
+ },
478
+ true
479
+ );
480
+ }
481
+ },
482
+ readyShareWXScene(WXScene, cb) {
483
+ let _this = this;
484
+ let WXScenetypelist = {
485
+ array: ['WXSceneSession', 'WXSenceTimeline', 'WXSceneFavorite']
486
+ };
487
+ if (WXScene && WXScene != '') {
488
+ if (cb && typeof cb == 'function') cb(WXScene);
489
+ } else {
490
+ _this.actionSheet(WXScenetypelist, function (index) {
491
+ if (cb && typeof cb == 'function') cb(WXScenetypelist.array[index]);
492
+ });
493
+ }
494
+ },
495
+ doingShare(shareObj, shareType, data, scb, fcb) {
496
+ shareObj.type = shareType;
497
+ if (data && data.title) shareObj.title = data.title;
498
+ switch (shareType) {
499
+ case 0: //图文链接
500
+ shareObj.href = data.href;
501
+ shareObj.summary = data.summary;
502
+ shareObj.imageUrl = data.imageUrl;
503
+ break;
504
+ case 1: //纯文字
505
+ shareObj.summary = data.summary;
506
+ shareObj.href = data.href;
507
+ break;
508
+ case 2: //纯图片
509
+ shareObj.imageUrl = data.imageUrl;
510
+ break;
511
+ case 3: //音乐
512
+ if (!data.mediaUrl) {
513
+ _this.showToast('暂不支持此分享类型');
514
+ return;
515
+ }
516
+ shareObj.mediaUrl = data.mediaUrl;
517
+ break;
518
+ case 4: //视频
519
+ if (!data.mediaUrl) {
520
+ _this.showToast('暂不支持此分享类型');
521
+ return;
522
+ }
523
+ shareObj.mediaUrl = data.mediaUrl;
524
+ break;
525
+ case 5: //小程序
526
+ if (miniProgramId == '') {
527
+ uni.showToast('未设置小程序ID, 请使用其他方式分享');
528
+ return;
529
+ }
530
+ let mp = {
531
+ id: miniProgramId
532
+ };
533
+ mp.path = data.miniProgram.path;
534
+ mp.type = data.miniProgram.type;
535
+ if (data.miniProgram.webUrl) mp.webUrl = data.miniProgram.webUrl;
536
+ shareObj.miniProgram = mp;
537
+ shareObj.imageUrl = data.imageUrl;
538
+ break;
539
+ default:
540
+ appJS.showToast('分享参数-shareType错误');
541
+ break;
542
+ }
543
+ shareObj.success = function (res) {
544
+ if (scb && typeof scb == 'function') scb(res);
545
+ };
546
+ shareObj.fail = function (err) {
547
+ if (fcb && typeof fcb == 'function') fcb(err);
548
+ };
549
+ log(JSON.stringify(shareObj));
550
+ uni.share(shareObj);
551
+ }
552
+ // #endif
553
+ };
554
+
555
+ function checkMPUrl(url) {
556
+ // #ifdef MP
557
+ // if(lastConfigEnv.NODE_ENV !== 'development'){
558
+ // if(
559
+ // url.substring(0, 4) === 'http' &&
560
+ // url.substring(0, 5) !== 'https' &&
561
+ // url.substring(0, 12) !== 'http://store' &&
562
+ // url.substring(0, 10) !== 'http://tmp' &&
563
+ // url.substring(0, 10) !== 'http://usr'
564
+ // ) {
565
+ // url = 'https' + url.substring(4, url.length);
566
+ // }
567
+ // }
568
+ // #endif
569
+ return url;
570
+ }
571
+
572
+ export default _app;