axj-ab_ 1.0.6 → 1.0.9

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.
Files changed (4) hide show
  1. package/dtsmake.sh +9 -0
  2. package/index.d.ts +82 -685
  3. package/index.js +1139 -1248
  4. package/package.json +5 -2
package/index.js CHANGED
@@ -1,1248 +1,1139 @@
1
- var ab_ = {
2
-
3
- _ver: false,
4
-
5
- local: true,
6
-
7
- https: false,
8
-
9
- fn(fn) {
10
- ab_ = Object.assign(ab_, fn)
11
- },
12
-
13
- header() {
14
- },
15
-
16
- back() {
17
- if (history.length > 1) {
18
- history.back()
19
-
20
- } else {
21
- window.close()
22
- }
23
- },
24
-
25
- push(uri, title) {
26
- location.hash = uri
27
- },
28
-
29
- replace(uri, title) {
30
- location.replace(uri)
31
- },
32
-
33
- open(uri, title, alone) {
34
- window.open(uri)
35
- },
36
-
37
- get(name) {
38
- var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
39
- var r = window.location.search.substr(1).match(reg)
40
- return r != null ? unescape(r[2]) : null
41
- },
42
-
43
- empty(o) {
44
- if (o) {
45
- if (typeof (o) === 'object') {
46
- for (var k in o) {
47
- return false
48
- }
49
-
50
- } else {
51
- return o.length > 0
52
- }
53
- }
54
-
55
- return true
56
- },
57
-
58
- urlRm(url, para) {
59
- var i = url.indexOf('&' + para + '=')
60
- var f = 0
61
- if (i < 0) {
62
- i = url.indexOf('?' + para + '=')
63
- f = 1
64
- }
65
-
66
- if (i >= 0) {
67
- var j = url.indexOf('&', i + 1)
68
- if (j > i) {
69
- if (f) {
70
- url = url.substr(0, i + 1) + url.substr(j + 1)
71
-
72
- } else {
73
- url = url.substr(0, i) + url.substr(j)
74
- }
75
-
76
- } else {
77
- url = url.substr(0, i)
78
- }
79
- }
80
-
81
- return url
82
- },
83
-
84
- urlParas(url, paras, force) {
85
- if (typeof (paras) === 'object') {
86
- var s = ''
87
- for (var k in paras) {
88
- var v = paras[k]
89
- if (v || force) {
90
- s += (s ? '&' : '') + k + '=' + encodeURIComponent(v)
91
- }
92
- }
93
-
94
- paras = s
95
- }
96
-
97
- if (url === undefined || url === null) {
98
- return paras
99
- }
100
-
101
- var i = url.indexOf('?')
102
- if (i >= 0) {
103
- return url.substr(0, i + 1) + paras + '&' + url.substr(i + 1)
104
-
105
- } else {
106
- return url + '?' + paras
107
- }
108
- },
109
-
110
- urlPath() {
111
- return location.protocol + '//' + location.host + location.pathname
112
- },
113
-
114
- pathDir(path) {
115
- var i = path && path.lastIndexOf('/')
116
- return i ? path.substr(0, i + 1) : '/'
117
- },
118
-
119
- route(anch, url, set) {
120
- var hash
121
- if (url) {
122
- hash = url.replace(/^[#]*[\/]*/, '')
123
-
124
- } else {
125
- hash = location.hash
126
- hash = hash.replace(/^#[\/]*/, '')
127
- }
128
-
129
- var href = '/' + hash
130
- var $route = ab_.$route
131
- if ($route && $route.hash === href) {
132
- return $route
133
- }
134
-
135
- $route = {
136
- hash: href,
137
- path: [],
138
- search: {}
139
- }
140
-
141
- hash = hash.replace(/([^#])(#.*$)/, '$1')
142
- if (anch) {
143
- hash = hash.split('/') || []
144
- var len = hash.length
145
- for (var i = 0; i < len; i++) {
146
- var path = hash[i]
147
- var id = path.indexOf('=')
148
- if (id >= 0) {
149
- $route.search[path.substr(0, id)] = path.substr(id + 1)
150
-
151
- } else {
152
- $route.path.push(path)
153
- }
154
- }
155
-
156
- $route.href = $route.path.join('/')
157
-
158
- } else {
159
- var id = hash.indexOf('?')
160
- var path = id >= 0 ? hash.substr(0, id) : hash
161
- $route.href = path
162
- var paths = path.split('/') || []
163
- var len = paths.length
164
- for (var i = 0; i < len; i++) {
165
- $route.path.push(paths[i])
166
- }
167
-
168
- paths = id >= 0 ? hash.substr(id) : ''
169
- if (paths && paths[0] === '?') {
170
- paths = paths.substr(1)
171
- }
172
-
173
- var search = location.search
174
- if (search && search[0] === '?') {
175
- search = search.substr(1)
176
- }
177
-
178
- if (search) {
179
- paths = paths ? (paths + '&' + search) : search
180
- }
181
-
182
- $route.searchS = paths
183
- if (paths && paths.length > 1) {
184
- paths = paths.split('&') || []
185
- len = paths.length
186
- for (var i = 0; i < len; i++) {
187
- path = paths[i]
188
- id = path.indexOf('=')
189
- if (id >= 0) {
190
- $route.search[decodeURIComponent(path.substr(0, id))] = decodeURIComponent(path.substr(id + 1))
191
-
192
- } else {
193
- $route.search[decodeURIComponent(path)] = ''
194
- }
195
- }
196
- }
197
- }
198
-
199
- if (url === undefined || set) {
200
- ab_.$route = $route
201
- }
202
-
203
- return $route
204
- },
205
-
206
- el(el) {
207
- return el || ab_.$el || (ab_.$el = document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[
208
- 0] || document)
209
- },
210
-
211
- ver(url) {
212
- if (ab_._ver && url) {
213
- url = url + (url.indexOf('?') >= 0 ? '&' : '?') + 'v=' + ab_._ver
214
- }
215
-
216
- return url
217
- },
218
-
219
- reqCss(href, el, media) {
220
- var link = document.createElement('link')
221
- link.href = ab_.ver(href)
222
- link.rel = 'stylesheet'
223
- link.type = 'text/css'
224
- link.media = media || 'all'
225
- ab_.el(el).appendChild(link)
226
- },
227
-
228
- call() {
229
- var call = ab_.$call
230
- if (call) {
231
- delete ab_.$call
232
- call.apply(this, arguments)
233
- }
234
- },
235
-
236
- reqJs(js, el, call) {
237
- var script = document.createElement('script')
238
- script.type = 'text/javascript'
239
- if (call) {
240
- if (script.readyState) { //IE
241
- script.onreadystatechange = call
242
-
243
- } else { //Other
244
- script.onload = call
245
- }
246
- }
247
-
248
- script.src = ab_.ver(js)
249
- ab_.el(el).appendChild(script)
250
- },
251
-
252
- reqModule(name, jses, csses) {
253
- return function (call) {
254
- if (!call) {
255
- return
256
- }
257
-
258
- if (ab_['_' + name + '_']) {
259
- call()
260
- return
261
- }
262
-
263
- var calls = ab_['_' + name + '_s']
264
- if (calls) {
265
- calls.push(call)
266
- return
267
- }
268
-
269
- ab_['_' + name + '_s'] = [call]
270
- if (csses) {
271
- var len = csses.length
272
- for (var i = 0; i < len; i++) {
273
- ab_.reqCss(csses[i])
274
- }
275
- }
276
-
277
- var $i = 0
278
- var $len = jses ? jses.length : 0
279
-
280
- function next() {
281
- if ($i < $len) {
282
- var js = jses[$i++]
283
- if (typeof (js) === 'function') {
284
- try {
285
- js = js()
286
-
287
- } finally {
288
- if (js && typeof (js) == 'string') {
289
- ab_.reqJs(js, 0, next)
290
-
291
- } else {
292
- next()
293
- }
294
- }
295
-
296
- } else {
297
- ab_.reqJs(js, 0, next)
298
- }
299
-
300
- } else {
301
- ab_['_' + name + '_'] = 1
302
- var calls = ab_['_' + name + '_s']
303
- if (calls) {
304
- delete ab_['_' + name + '_s']
305
- var len = calls.length
306
- for (var i = 0; i < len; i++) {
307
- try {
308
- calls[i]()
309
-
310
- } catch (e) {
311
- console.error(e)
312
- }
313
- }
314
- }
315
- }
316
- }
317
-
318
- next()
319
- }
320
- },
321
-
322
- eval(exp, $page, $this, res) {
323
- var fn = eval(exp)
324
- if (fn && typeof (fn) === 'function') {
325
- fn()
326
- }
327
- },
328
-
329
- $center: {},
330
-
331
- args(args, off, len) {
332
- if (off == undefined) {
333
- return Array.prototype.slice.call(args)
334
- }
335
-
336
- if (len === undefined) {
337
- len = args.length
338
- }
339
-
340
- var ary = []
341
- for (; off < len; off++) {
342
- ary.push(args[off])
343
- }
344
-
345
- return ary
346
- },
347
-
348
- swap(ary, from, to) {
349
- if (ary[from] && ary[to]) {
350
- ary[from] = ary.splice(to, 1, ary[from])[0]
351
- }
352
- return ary
353
- },
354
-
355
- reSort(ary, from, to) {
356
- if (from === to) {
357
- return
358
- }
359
-
360
- if (from === to + 1 || from == to - 1) {
361
- ab_.swap(ary, from, to)
362
- return
363
- }
364
-
365
- var fromE = ary[from]
366
- ary.splice(from, 1)
367
- ary.splice(to, 0, fromE)
368
- return ary
369
- },
370
-
371
- resetEl(children, fromI, toI) {
372
- if (toI == fromI) {
373
- return
374
- }
375
-
376
- var to = children[toI]
377
- var from = children[fromI]
378
- if (to && from) {
379
- if (toI < fromI) {
380
- from.after(to)
381
-
382
- } else {
383
- from.before(to)
384
- }
385
- }
386
- },
387
-
388
- swapEl(from, to) {
389
- var next = from.nextSibling
390
- if (next === to) {
391
- to.after(from)
392
- return
393
- }
394
-
395
- var parent = from.parentElement
396
- to.after(from)
397
- if (next) {
398
- next.before(to)
399
-
400
- } else if (parent) {
401
- parent.appendChild(to)
402
- }
403
- },
404
-
405
- post(name) {
406
- var args = false
407
- var from = undefined
408
- if (arguments.length >= 3 && arguments[0] === undefined) {
409
- name = arguments[1]
410
- args = true
411
- from = arguments[3]
412
- }
413
-
414
- var target = ab_.$center
415
- var fn = target[name]
416
- if (fn) {
417
- if (from) {
418
- target['$from'] = from
419
- }
420
-
421
- fn.apply(target, args ? arguments[2] : ab_.args(arguments, 1))
422
- return
423
- }
424
-
425
- while (true) {
426
- var i = name.indexOf('/')
427
- if (i <= 0) {
428
- return
429
- }
430
-
431
- target = target[name.substr(0, i)]
432
- if (typeof (target) !== 'object') {
433
- return
434
- }
435
-
436
- name = name.substr(i + 1)
437
- fn = target[name]
438
- if (fn) {
439
- if (from) {
440
- target['$from'] = from
441
- }
442
-
443
- fn.apply(target, args ? arguments[2] : ab_.args(arguments, 1))
444
- return
445
- }
446
- }
447
- },
448
-
449
- posts(data, i, from) {
450
- var last = data.length - 1
451
- for (i = i || 0; i < last; i += 2) {
452
- try {
453
- ab_.post(undefined, data[i], data[i + 1], from)
454
-
455
- } catch (e) {
456
- console.error(e)
457
- }
458
- }
459
- },
460
-
461
- langs: {},
462
-
463
- langChange(lang, call) {
464
- if (!lang) {
465
- lang = navigator.language || navigator.userLanguage
466
- if (!lang) {
467
- call(false)
468
- return
469
- }
470
- }
471
-
472
- ab_.require('./i18n/lang_' + lang + '.json', true, function (data) {
473
- if (data) {
474
- ab_.langs = Object.assign(ab_.langs, data)
475
- call(true)
476
- return
477
- }
478
-
479
- var i = lang.indexOf('-')
480
- if (i > 0) {
481
- ab_.langChange(lang.substr(0, i), call)
482
- return
483
- }
484
-
485
- call(false)
486
- })
487
- },
488
-
489
- lang(key, lang) {
490
- if (lang) {
491
- if (!ab_.langs[key]) {
492
- ab_.langs[key] = lang
493
- }
494
- }
495
- },
496
-
497
- i18n(key, par) {
498
- var s = ab_.$i18n ? ab_.langs[key] || key : key
499
- if (s && (Array.isArray(par) || typeof (par) === 'object')) {
500
- s = s.replace(/(\\)?\{([^\{\}\\]+)(\\)?\}/g, function (word, slash1, token, slash2) {
501
- // 如果有转义的\{或\}替换转义字符
502
- if (slash1 || slash2) {
503
- return word.replace('\\', '')
504
- }
505
-
506
- return par[token] || ''
507
- })
508
- }
509
-
510
- return s
511
- },
512
-
513
- time() {
514
- return parseInt(new Date().getTime() / 1000)
515
- },
516
-
517
- humTime(time, max) {
518
- if (time < (max || 1000)) {
519
- return time + 's'
520
- }
521
-
522
- if (time < 600) {
523
- return Math.floor(time / 60) + 'm' + (time % 60) + 's'
524
- }
525
-
526
- if (time < (max ? max * 60 : 60000)) {
527
- return Math.ceil(time / 60) + 'm'
528
- }
529
-
530
- if (time < 36000) {
531
- return Math.floor(time / 3600) + 'h' + Math.ceil((time % 3600) / 60) + 'm'
532
- }
533
-
534
- return Math.ceil(time / 3600) + 'h'
535
- },
536
-
537
- humSize(size) {
538
- var kb = size / 1024
539
- if (kb < 10000) {
540
- return kb.toFixed(2) + 'kb'
541
- }
542
-
543
- var mb = kb / 1024
544
- if (mb < 10000) {
545
- return mb.toFixed(2) + 'mb'
546
- }
547
-
548
- var gb = mb / 1024
549
- if (gb < 10000) {
550
- return gb.toFixed(2) + 'gb'
551
- }
552
-
553
- return (gb / 1024).toFixed(2) + 'tb'
554
- },
555
-
556
- parseJson(json) {
557
- return typeof (json) === 'string' ? JSON.parse(json) : json
558
- },
559
-
560
- toJson(obj) {
561
- return JSON.stringify(obj)
562
- },
563
-
564
- tplRender(tpl, render) {
565
- // 被转义的的分隔符 { } 不应该被渲染,分隔符与变量之间允许有空白字符
566
- /*
567
- "{greeting}! My name is { author.name }.".render({
568
- greeting: "Hi",
569
- author: {
570
- name: "hsfzxjy"
571
- }});
572
- */
573
- return tpl.replace(/(\\)?\{([^\{\}\\]+)(\\)?\}/g, function (word, slash1, token, slash2) {
574
- // 如果有转义的\{或\}替换转义字符
575
- if (slash1 || slash2) {
576
- return word.replace('\\', '')
577
- }
578
-
579
- if (!render) {
580
- return ''
581
- }
582
- // 切割 token ,实现级联的变量也可以展开
583
- var tokens = token.replace(/\s/g, '').split('.')
584
- var len = tokens.length
585
- var curr = render
586
- for (var i = 0; i < len; ++i) {
587
- token = tokens[i]
588
- curr = curr[token]
589
- // 如果当前索引的对象不存在,则直接返回空字符串。
590
- if (curr === undefined || curr === null) return ''
591
- }
592
-
593
- return curr
594
- })
595
- },
596
-
597
- // 支持formData file var form = new FormData();form.append("file", fileObj);
598
- xhrReq(loading, headers, url, posts, callback, init) {
599
- var xhr = new XMLHttpRequest()
600
- var done = XMLHttpRequest.DONE || 4
601
- xhr.onreadystatechange = function () {
602
- if (xhr.readyState === done) {
603
- loading && loading()
604
- if (callback) {
605
- if (xhr.status === 200) {
606
- callback(null, xhr.responseText)
607
- } else {
608
- callback(xhr.text || 'fail', null)
609
- }
610
- }
611
- }
612
- }
613
- // 设置30s超时时间
614
- // xhr.timeout = 30000
615
- // xhr.ontimeout = ab_.xhrOntimeout()
616
- if (posts) {
617
- xhr.open('POST', url, true)
618
-
619
- } else {
620
- xhr.open('GET', url, true)
621
- posts = undefined
622
- }
623
-
624
- if (headers) {
625
- for (var name in headers) {
626
- xhr.setRequestHeader(name, headers[name])
627
- }
628
- }
629
-
630
- if (posts && posts._progress) {
631
- // onprogress 事件在浏览器下载指定的视频/音频(audio/video)时触发
632
- // xhr.onprogress = posts._progress
633
- if (xhr.upload) {
634
- xhr.upload.addEventListener('progress', posts._progress, false)
635
- }
636
-
637
- delete posts._progress
638
- posts._abort = function () {
639
- xhr.abort()
640
- }
641
- }
642
-
643
- if (posts && posts._init) {
644
- posts._init(xhr)
645
- delete posts._init
646
- }
647
-
648
- init && init(xhr)
649
- loading && loading(1)
650
- xhr.send(posts)
651
- },
652
-
653
- uniReq(loading, headers, url, posts, files, callback, init) {
654
- var req = {
655
- url: url
656
- }
657
-
658
- if (headers) {
659
- req.header = headers
660
- }
661
-
662
- req.success = function (rep) {
663
- loading && loading()
664
- if (callback) {
665
- callback(undefined, rep.data)
666
- }
667
- }
668
-
669
- req.fail = function (err) {
670
- loading && loading()
671
- if (callback) {
672
- callback(err || 'fail', undefined)
673
- }
674
- }
675
-
676
- init && init(req)
677
- if (files) {
678
- var len = files.length
679
- if (!len) {
680
- // 表单提交
681
- var header = {
682
- ...req.header
683
- }
684
-
685
- header['content-type'] = 'application/x-www-form-urlencoded'
686
- req.header = header
687
- req.method = 'post'
688
- req.dataType = 'x-www-form-urlencoded'
689
- req.data = posts
690
- uni.request(req)
691
- return
692
- }
693
-
694
- if (len === 1) {
695
- // 单文件上传
696
- var file = files[0]
697
- req.name = file.name
698
- req.filePath = file.filePath
699
-
700
- } else {
701
- // 多文件上传
702
- req.files = files
703
- }
704
-
705
- if (posts) {
706
- req.formData = posts
707
- }
708
-
709
- var header = {
710
- ...req.header
711
- }
712
-
713
- header['Content-Type'] = 'multipart/form-data'
714
- req.header = header
715
- uni.uploadFile(req)
716
-
717
- } else {
718
- if (posts !== undefined && posts !== 0) {
719
- // post请求
720
- req.method = 'post'
721
- if (posts !== '') {
722
- req.data = posts
723
- }
724
- }
725
-
726
- uni.request(req)
727
- }
728
- },
729
-
730
- newReady(last) {
731
- var backs = []
732
-
733
- function ready(back) {
734
- if (backs) {
735
- backs.push(back)
736
-
737
- } else {
738
- back()
739
- }
740
- }
741
-
742
- ready.start = function () {
743
- if (backs) {
744
- var calls = backs
745
- backs = undefined
746
- for (var i = 0; i < calls.length; i++) {
747
- try {
748
- calls[i]()
749
-
750
- } catch (e) {
751
- console.error(e)
752
- }
753
- }
754
-
755
- if (last) {
756
- var call = last
757
- last = undefined
758
- try {
759
- call()
760
-
761
- } catch (e) {
762
- console.error(e)
763
- }
764
- }
765
- }
766
- }
767
-
768
- return ready
769
- },
770
-
771
- newStart(run) {
772
- var i = 0
773
-
774
- function start(inited) {
775
- if (++i > 0 || inited) {
776
- if (run != null) {
777
- var call = run
778
- run = undefined
779
- try {
780
- call()
781
-
782
- } catch (e) {
783
- console.error(e)
784
- }
785
- }
786
- }
787
- }
788
-
789
- start.waite = function () {
790
- i--
791
- }
792
-
793
- return start
794
- },
795
-
796
- vConsole() {
797
- if (!ab_.vconsoled) {
798
- ab_.vconsoled = true
799
- ab_.reqJs('https://cdn.bootcss.com/vConsole/3.3.4/vconsole.min.js', 0, function () {
800
- var script = document.createElement('script')
801
- script.type = 'text/javascript'
802
- script.appendChild(document.createTextNode('new VConsole()'))
803
- document.body.appendChild(script)
804
- })
805
- }
806
- },
807
-
808
- getStyle($el, name) {
809
- var style = $el.getAttribute ? $el.getAttribute('style') : $el.attr('style')
810
- if (style) {
811
- var match = style.match(new RegExp(name + '[\\s\\t\\r\\n]*:([^;]*)', 'i'))
812
- if (match) {
813
- return match[1]
814
- }
815
- }
816
- },
817
-
818
- cssSetRest($el, names) {
819
- var len = names.length
820
- var css = []
821
- for (var i = 0; i < len; i++) {
822
- css.push(ab_.getStyle($el, names[i]) || '')
823
- }
824
-
825
- return $el.style ? {
826
- set(vals) {
827
- for (var i = 0; i < len; i++) {
828
- $el.style[names[i]] = vals[i] || ''
829
- }
830
- },
831
- reset() {
832
- for (var i = 0; i < len; i++) {
833
- $el.style[names[i]] = css[i]
834
- }
835
- }
836
- } : {
837
- set(vals) {
838
- for (var i = 0; i < len; i++) {
839
- $el.css(names[i], vals[i] || '')
840
- }
841
- },
842
- reset() {
843
- for (var i = 0; i < len; i++) {
844
- $el.css(names[i], css[i])
845
- }
846
- }
847
- }
848
- },
849
-
850
- cloneElement(el, tag) {
851
- if (el) {
852
- var clone = document.createElement(tag || el.tagName)
853
- var attrs = el.attributes
854
- for (var i = 0; i < attrs.length; i++) {
855
- var attr = attrs[i]
856
- clone.setAttribute(attr.name, attr.value)
857
- }
858
-
859
- while (el.firstChild) {
860
- clone.appendChild(el.firstChild)
861
- }
862
-
863
- return clone
864
- }
865
- },
866
-
867
- objectMerge(to, from, depth) {
868
- to = typeof (to) === 'object' ? to : {}
869
- for (var k in from) {
870
- var f = from[k]
871
- if (depth > 0) {
872
- if (f && typeof (f) === 'object') {
873
- var t = to[k]
874
- if (typeof (t) === 'object') {
875
- ab_.objectMerge(t, f, depth - 1)
876
- continue
877
- }
878
- }
879
- }
880
-
881
- to[k] = f
882
- }
883
-
884
- return to
885
- },
886
-
887
- keepAlive(inst) {
888
- if (!inst) {
889
- inst = $root.$route.matched
890
- if (inst.length) {
891
- inst = inst[inst.length - 1].instances.default
892
- }
893
-
894
- if (!inst) {
895
- return
896
- }
897
- }
898
-
899
- inst = inst.$vnode || inst
900
- inst = inst.parent
901
- return inst && inst.componentInstance
902
- },
903
-
904
- keepAliveClose(key) {
905
- var matched = $root.$route.matched
906
- if (matched.length > 1) {
907
- ab_.keepAliveDel(ab_.keepAlive(matched[matched.length - 1].instances.default), key)
908
- }
909
- },
910
-
911
- keepAliveDel($keepAlive, key, cKey) {
912
- if ($keepAlive && (key || cKey)) {
913
- $keepAlive = $keepAlive.componentInstance || $keepAlive
914
- var cache = $keepAlive.cache
915
- var keys = $keepAlive.keys
916
- if (cache) {
917
- if (!cKey && key) {
918
- for (var k in cache) {
919
- if (cache[k].data.key === key) {
920
- cKey = k
921
- break
922
- }
923
- }
924
- }
925
-
926
- if (cKey) {
927
- if (keys.length) {
928
- var index = keys.indexOf(cKey)
929
- if (index >= 0) {
930
- keys.splice(index, 1)
931
- }
932
- }
933
-
934
- var c = cache[cKey]
935
- if (c) {
936
- try {
937
- c.componentInstance.$destroy()
938
-
939
- } catch (e) {
940
- console.error(e)
941
- }
942
- }
943
-
944
- delete cache[cKey]
945
- }
946
- }
947
- }
948
- },
949
-
950
- getPaths(model, paths, fromI) {
951
- if (typeof (model) === 'object' && typeof (paths) === 'string') {
952
- var i = fromI = fromI > 0 ? fromI : 0
953
- while ((i = paths.indexOf('.', i)) > 0) {
954
- var j = paths[i - 1] === ']' ? paths.lastIndexOf('[', i - 1) : -1
955
- j = j <= fromI ? -1 : j
956
- var path = paths.substr(fromI, (j > 0 ? j : i) - fromI)
957
- var m = model[path]
958
- if (m) {
959
- if (j > 0) {
960
- m = m[paths.substr(j + 1, i - j - 2)]
961
- }
962
-
963
- return ab_.getPaths(m, paths, ++i)
964
- }
965
-
966
- i++
967
- }
968
-
969
- return model[fromI > 0 ? paths.substr(fromI) : paths]
970
- }
971
- },
972
-
973
- setPaths(model, val, paths, fromI) {
974
- if (typeof (model) === 'object' && typeof (paths) === 'string') {
975
- var i = fromI = fromI > 0 ? fromI : 0
976
- while ((i = paths.indexOf('.', i)) > 0) {
977
- var j = paths[i - 1] === ']' ? paths.lastIndexOf('[', i - 1) : -1
978
- j = j <= fromI ? -1 : j
979
- var path = paths.substr(fromI, (j > 0 ? j : i) - fromI)
980
- var m = model[path]
981
- if (m) {
982
- if (j > 0) {
983
- m = m[paths.substr(j + 1, i - j - 2)]
984
- }
985
-
986
- return ab_.setPaths(m, val, paths, ++i)
987
- }
988
-
989
- i++
990
- }
991
-
992
- model[fromI > 0 ? paths.substr(fromI) : paths] = val
993
- }
994
- },
995
-
996
- date(time) {
997
- return time > 0 ? new Date(time > 2147483647 ? time : (time * 1000)) : null
998
- },
999
-
1000
- formatTime(time, fmt) {
1001
- return ab_.formatDate(ab_.date(time), fmt)
1002
- },
1003
-
1004
- formatDate(date, fmt) {
1005
- if (!date || !date.getFullYear) {
1006
- return ''
1007
- }
1008
-
1009
- fmt = fmt || 'yyyy-MM-dd hh:mm:ss'
1010
- if (/(y+)/.test(fmt)) {
1011
- fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
1012
- }
1013
-
1014
- var o = {
1015
- 'M+': date.getMonth() + 1,
1016
- 'd+': date.getDate(),
1017
- 'h+': date.getHours(),
1018
- 'm+': date.getMinutes(),
1019
- 's+': date.getSeconds()
1020
- }
1021
-
1022
- for (var k in o) {
1023
- if (new RegExp(`(${k})`).test(fmt)) {
1024
- var str = o[k] + ''
1025
- fmt = fmt.replace(RegExp.$1, str.length > 1 ? str : ('0' + str))
1026
- }
1027
- }
1028
-
1029
- return fmt
1030
- },
1031
-
1032
- xhrOntimeout() {
1033
- // console.log('请求超时。。')
1034
- },
1035
-
1036
- aName(name) {
1037
- if (typeof (name) !== 'string') {
1038
- return ''
1039
- }
1040
-
1041
- var len = name && name.length
1042
- var i = 0
1043
- var c
1044
- for (; i < len; i++) {
1045
- c = name[i]
1046
- if (c < 'a' || c > 'z') {
1047
- break
1048
- }
1049
- }
1050
-
1051
- return i >= len ? '' : name.substr(0, i)
1052
- },
1053
-
1054
- aNameC(a, name, underline) {
1055
- if (!a || !name) {
1056
- return name
1057
- }
1058
-
1059
- if (underline) {
1060
- return a + '_' + name
1061
- }
1062
-
1063
- return (a === '@' ? '' : a) + name[0].toUpperCase() + name.substr(1)
1064
- },
1065
-
1066
- fullScreen($this, $el, fun) {
1067
- var $parent = $this.parentNode
1068
- var parentSetRest
1069
- var thisSetRest
1070
- var $fixeds
1071
- return function () {
1072
- if (!parentSetRest) {
1073
- parentSetRest = ab_.cssSetRest($parent, ['position', 'z-index', 'top', 'right', 'bottom', 'left', 'background', 'width', 'height'])
1074
- thisSetRest = ab_.cssSetRest($this, ['position', 'top', 'right', 'bottom', 'left', 'width', 'height'])
1075
- }
1076
-
1077
- if ($fixeds) {
1078
- parentSetRest.reset()
1079
- thisSetRest.reset()
1080
- for (var i = 0; i < $fixeds.length; i++) {
1081
- var $fixed = $fixeds[i]
1082
- if ($fixed[1]) {
1083
- $fixed[0].attr('style', $fixed[1])
1084
-
1085
- } else {
1086
- $fixed[0].removeAttr('style')
1087
- }
1088
- }
1089
-
1090
- $fixeds = null
1091
- if ($el && $el.classList) {
1092
- $el.classList.remove('.abFullScreenReset')
1093
- $el.classList.add('.abFullScreenTo')
1094
- }
1095
-
1096
- fun && fun()
1097
-
1098
- } else {
1099
- parentSetRest.set(['fixed', '19891024', '0', '0', '0', '0', '#FFF'])
1100
- thisSetRest.set(['absolute', '0', '0', '0', '0'])
1101
- $fixeds = []
1102
- $fixed = $parent
1103
- if ($fixed.style) {
1104
- while (true) {
1105
- $fixed = $fixed.parentNode
1106
- if (!$fixed || !$fixed.length || $fixed[0] === document) {
1107
- break
1108
- }
1109
-
1110
- if ($fixed.style.position === 'fixed') {
1111
- $fixeds.push([$fixed, $fixed.getAttribute('style')])
1112
- $fixed.style.position === 'static'
1113
- }
1114
- }
1115
-
1116
- } else {
1117
- while (true) {
1118
- $fixed = $fixed.parent()
1119
- if (!$fixed || !$fixed.length || $fixed[0] === document) {
1120
- break
1121
- }
1122
-
1123
- if ($fixed.css('position') === 'fixed') {
1124
- $fixeds.push([$fixed, $fixed.attr('style')])
1125
- $fixed.css('position', 'static')
1126
- }
1127
- }
1128
- }
1129
-
1130
- if ($el && $el.classList) {
1131
- $el.classList.remove('.abFullScreenTo')
1132
- $el.classList.add('.abFullScreenReset')
1133
- }
1134
-
1135
- fun && fun(true)
1136
- }
1137
- }
1138
- },
1139
-
1140
- cvsVal(val) {
1141
- if (typeof (val) === 'string') {
1142
- if (val.indexOf(',') >= 0 || val.indexOf('"') >= 0) {
1143
- val = '"' + val.replace('"', '""') + '"'
1144
- }
1145
- }
1146
-
1147
- return val === undefined || val === null ? '' : val
1148
- },
1149
-
1150
- downloadTxt(txt, name, bom) {
1151
- if (bom) {
1152
- txt = '\uFEFF' + txt
1153
- }
1154
-
1155
- var element = document.createElement('a')
1156
- element.setAttribute('href', 'data:text/plain;charset=' + document.characterSet + ',' + encodeURIComponent(txt))
1157
- element.setAttribute('download', name)
1158
- element.style.display = 'none'
1159
- element.click()
1160
- setTimeout(function () {
1161
- if (element) {
1162
- element.remove()
1163
- }
1164
-
1165
- }, 100)
1166
- },
1167
-
1168
- funTimer(fun) {
1169
- var timer
1170
- var timerI
1171
- var self = {
1172
- start(interval) {
1173
- if (timer && timerI != interval) {
1174
- self.stop()
1175
- }
1176
-
1177
- if (!timer) {
1178
- timerI = interval
1179
- timer = setInterval(fun, interval)
1180
- }
1181
- },
1182
- stop() {
1183
- if (timer) {
1184
- try {
1185
- clearInterval(timer)
1186
-
1187
- } catch (e) {
1188
- console.error(e)
1189
- }
1190
-
1191
- timer = null
1192
- }
1193
- }
1194
- }
1195
-
1196
- return self
1197
- },
1198
- loadState(bind, path, target, props) {
1199
- var state = bind && bind['_$$state$$' + path]
1200
- if (state && target) {
1201
- var len = props && props.length
1202
- for (var i = 0; i < len; i++) {
1203
- var prop = props[i]
1204
- target[prop] = state[prop]
1205
- }
1206
-
1207
- return true
1208
- }
1209
- },
1210
- saveState(bind, path, target, props) {
1211
- if (bind && target) {
1212
- var state = {}
1213
- var len = props && props.length
1214
- for (var i = 0; i < len; i++) {
1215
- var prop = props[i]
1216
- state[prop] = target[prop]
1217
- }
1218
-
1219
- bind['_$$state$$' + path] = state
1220
- }
1221
- },
1222
- }
1223
-
1224
- try {
1225
- if (typeof location !== undefined) {
1226
- ab_.local = location.hostname == '127.0.0.1' || location.hostname == 'localhost'
1227
- ab_.https = location.href.startsWith('https')
1228
- }
1229
-
1230
- } catch (e) {
1231
- console.error(e)
1232
- }
1233
-
1234
- try {
1235
- if (globalThis) {
1236
- if (globalThis.ab_) {
1237
- ab_ = globalThis.ab_
1238
-
1239
- } else {
1240
- globalThis.ab_ = ab_
1241
- }
1242
- }
1243
-
1244
- } catch (e) {
1245
- console.error(e)
1246
- }
1247
-
1248
- module.exports = ab_
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var _nextT = 0;
13
+ var ab_ = {
14
+ _ver: false,
15
+ local: true,
16
+ https: false,
17
+ fn: function (fn) {
18
+ ab_ = Object.assign(ab_, fn);
19
+ },
20
+ header: function () {
21
+ },
22
+ back: function () {
23
+ if (history.length > 1) {
24
+ history.back();
25
+ }
26
+ else {
27
+ window.close();
28
+ }
29
+ },
30
+ push: function (uri, title) {
31
+ location.hash = uri;
32
+ },
33
+ replace: function (uri, title) {
34
+ location.replace(uri);
35
+ },
36
+ open: function (uri, title, alone) {
37
+ window.open(uri);
38
+ },
39
+ get: function (name) {
40
+ var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
41
+ var r = window.location.search.substr(1).match(reg);
42
+ return r != null ? unescape(r[2]) : null;
43
+ },
44
+ empty: function (o) {
45
+ if (o) {
46
+ if (typeof (o) === 'object') {
47
+ for (var k in o) {
48
+ return false;
49
+ }
50
+ }
51
+ else {
52
+ return o.length > 0;
53
+ }
54
+ }
55
+ return true;
56
+ },
57
+ urlRm: function (url, para) {
58
+ var i = url.indexOf('&' + para + '=');
59
+ var f = 0;
60
+ if (i < 0) {
61
+ i = url.indexOf('?' + para + '=');
62
+ f = 1;
63
+ }
64
+ if (i >= 0) {
65
+ var j = url.indexOf('&', i + 1);
66
+ if (j > i) {
67
+ if (f) {
68
+ url = url.substr(0, i + 1) + url.substr(j + 1);
69
+ }
70
+ else {
71
+ url = url.substr(0, i) + url.substr(j);
72
+ }
73
+ }
74
+ else {
75
+ url = url.substr(0, i);
76
+ }
77
+ }
78
+ return url;
79
+ },
80
+ urlParas: function (url, paras, force) {
81
+ if (typeof (paras) === 'object') {
82
+ var s = '';
83
+ for (var k in paras) {
84
+ var v = paras[k];
85
+ if (v || force) {
86
+ s += (s ? '&' : '') + k + '=' + encodeURIComponent(v);
87
+ }
88
+ }
89
+ paras = s;
90
+ }
91
+ if (url === undefined || url === null) {
92
+ return paras;
93
+ }
94
+ var i = url.indexOf('?');
95
+ if (i >= 0) {
96
+ return url.substr(0, i + 1) + paras + '&' + url.substr(i + 1);
97
+ }
98
+ else {
99
+ return url + '?' + paras;
100
+ }
101
+ },
102
+ urlPath: function () {
103
+ return location.protocol + '//' + location.host + location.pathname;
104
+ },
105
+ pathDir: function (path) {
106
+ var i = path && path.lastIndexOf('/');
107
+ return i ? path.substr(0, i + 1) : '/';
108
+ },
109
+ route: function (anch, url, set) {
110
+ var hash;
111
+ if (url) {
112
+ hash = url.replace(/^[#]*[\/]*/, '');
113
+ }
114
+ else {
115
+ hash = location.hash;
116
+ hash = hash.replace(/^#[\/]*/, '');
117
+ }
118
+ var href = '/' + hash;
119
+ var $route = ab_.$route;
120
+ if ($route && $route.hash === href) {
121
+ return $route;
122
+ }
123
+ $route = {
124
+ hash: href,
125
+ path: [],
126
+ search: {}
127
+ };
128
+ hash = hash.replace(/([^#])(#.*$)/, '$1');
129
+ if (anch) {
130
+ hash = hash.split('/') || [];
131
+ var len = hash.length;
132
+ for (var i = 0; i < len; i++) {
133
+ var path = hash[i];
134
+ var id = path.indexOf('=');
135
+ if (id >= 0) {
136
+ $route.search[path.substr(0, id)] = path.substr(id + 1);
137
+ }
138
+ else {
139
+ $route.path.push(path);
140
+ }
141
+ }
142
+ $route.href = $route.path.join('/');
143
+ }
144
+ else {
145
+ var id = hash.indexOf('?');
146
+ var path = id >= 0 ? hash.substr(0, id) : hash;
147
+ $route.href = path;
148
+ var paths = path.split('/') || [];
149
+ var len = paths.length;
150
+ for (var i = 0; i < len; i++) {
151
+ $route.path.push(paths[i]);
152
+ }
153
+ paths = id >= 0 ? hash.substr(id) : '';
154
+ if (paths && paths[0] === '?') {
155
+ paths = paths.substr(1);
156
+ }
157
+ var search = location.search;
158
+ if (search && search[0] === '?') {
159
+ search = search.substr(1);
160
+ }
161
+ if (search) {
162
+ paths = paths ? (paths + '&' + search) : search;
163
+ }
164
+ $route.searchS = paths;
165
+ if (paths && paths.length > 1) {
166
+ paths = paths.split('&') || [];
167
+ len = paths.length;
168
+ for (var i = 0; i < len; i++) {
169
+ path = paths[i];
170
+ id = path.indexOf('=');
171
+ if (id >= 0) {
172
+ $route.search[decodeURIComponent(path.substr(0, id))] = decodeURIComponent(path.substr(id + 1));
173
+ }
174
+ else {
175
+ $route.search[decodeURIComponent(path)] = '';
176
+ }
177
+ }
178
+ }
179
+ }
180
+ if (url === undefined || set) {
181
+ ab_.$route = $route;
182
+ }
183
+ return $route;
184
+ },
185
+ el: function (el) {
186
+ return el || ab_.$el || (ab_.$el = document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0] || document);
187
+ },
188
+ ver: function (url) {
189
+ if (ab_._ver && url) {
190
+ url = url + (url.indexOf('?') >= 0 ? '&' : '?') + 'v=' + ab_._ver;
191
+ }
192
+ return url;
193
+ },
194
+ reqCss: function (href, el, media) {
195
+ var link = document.createElement('link');
196
+ link.href = ab_.ver(href);
197
+ link.rel = 'stylesheet';
198
+ link.type = 'text/css';
199
+ link.media = media || 'all';
200
+ ab_.el(el).appendChild(link);
201
+ },
202
+ call: function () {
203
+ var call = ab_.$call;
204
+ if (call) {
205
+ delete ab_.$call;
206
+ call.apply(this, arguments);
207
+ }
208
+ },
209
+ requires: function (requires, fun) {
210
+ if (!requires) {
211
+ return;
212
+ }
213
+ if (requires && requires.webpack) {
214
+ requires.keys().forEach(function (key) {
215
+ fun(key, requires(key));
216
+ });
217
+ }
218
+ else {
219
+ for (var key in requires) {
220
+ fun(key, requires[key]);
221
+ }
222
+ }
223
+ },
224
+ nextT: function () {
225
+ var t = ab_.time();
226
+ if (t < _nextT) {
227
+ t = ++_nextT;
228
+ }
229
+ else {
230
+ _nextT = t;
231
+ }
232
+ return t;
233
+ },
234
+ reqJs: function (js, el, onload, onerror) {
235
+ var script = document.createElement('script');
236
+ script.type = 'text/javascript';
237
+ if (call) {
238
+ if (script.readyState !== undefined) {
239
+ //IE
240
+ if (onload || onerror) {
241
+ script.onreadystatechange = function () {
242
+ var state = script.readyState;
243
+ if (state && typeof (state) === 'string') {
244
+ if (state === 'loaded') {
245
+ onload && onload();
246
+ }
247
+ else if (state.indexOf('err') >= 0 || state.indexOf('fail') >= 0) {
248
+ onerror && onerror();
249
+ }
250
+ }
251
+ else {
252
+ onload && onload();
253
+ }
254
+ };
255
+ }
256
+ }
257
+ else { //Other
258
+ onload && (script.onload = call);
259
+ onerror && (script.onerror = onerror);
260
+ }
261
+ }
262
+ script.src = ab_.ver(js);
263
+ ab_.el(el).appendChild(script);
264
+ },
265
+ reqModule: function (name, jses, csses) {
266
+ return function (call) {
267
+ if (!call) {
268
+ return;
269
+ }
270
+ if (ab_['_' + name + '_']) {
271
+ call();
272
+ return;
273
+ }
274
+ var calls = ab_['_' + name + '_s'];
275
+ if (calls) {
276
+ calls.push(call);
277
+ return;
278
+ }
279
+ ab_['_' + name + '_s'] = [call];
280
+ if (csses) {
281
+ var len = csses.length;
282
+ for (var i = 0; i < len; i++) {
283
+ ab_.reqCss(csses[i]);
284
+ }
285
+ }
286
+ var $i = 0;
287
+ var $len = jses ? jses.length : 0;
288
+ function next() {
289
+ if ($i < $len) {
290
+ var js = jses[$i++];
291
+ if (typeof (js) === 'function') {
292
+ try {
293
+ js = js();
294
+ }
295
+ finally {
296
+ if (js && typeof (js) == 'string') {
297
+ ab_.reqJs(js, 0, next);
298
+ }
299
+ else {
300
+ next();
301
+ }
302
+ }
303
+ }
304
+ else {
305
+ ab_.reqJs(js, 0, next);
306
+ }
307
+ }
308
+ else {
309
+ ab_['_' + name + '_'] = 1;
310
+ var calls = ab_['_' + name + '_s'];
311
+ if (calls) {
312
+ delete ab_['_' + name + '_s'];
313
+ var len = calls.length;
314
+ for (var i = 0; i < len; i++) {
315
+ try {
316
+ calls[i]();
317
+ }
318
+ catch (e) {
319
+ console.error(e);
320
+ }
321
+ }
322
+ }
323
+ }
324
+ }
325
+ next();
326
+ };
327
+ },
328
+ eval: function (exp, $page, $this, res) {
329
+ var fn = eval(exp);
330
+ if (fn && typeof (fn) === 'function') {
331
+ fn();
332
+ }
333
+ },
334
+ $center: {},
335
+ args: function (args, off, len) {
336
+ if (off == undefined) {
337
+ return Array.prototype.slice.call(args);
338
+ }
339
+ if (len === undefined) {
340
+ len = args.length;
341
+ }
342
+ var ary = [];
343
+ for (; off < len; off++) {
344
+ ary.push(args[off]);
345
+ }
346
+ return ary;
347
+ },
348
+ swap: function (ary, from, to) {
349
+ if (ary[from] && ary[to]) {
350
+ ary[from] = ary.splice(to, 1, ary[from])[0];
351
+ }
352
+ return ary;
353
+ },
354
+ reSort: function (ary, from, to) {
355
+ if (from === to) {
356
+ return;
357
+ }
358
+ if (from === to + 1 || from == to - 1) {
359
+ ab_.swap(ary, from, to);
360
+ return;
361
+ }
362
+ var fromE = ary[from];
363
+ ary.splice(from, 1);
364
+ ary.splice(to, 0, fromE);
365
+ return ary;
366
+ },
367
+ resetEl: function (children, fromI, toI) {
368
+ if (toI == fromI) {
369
+ return;
370
+ }
371
+ var to = children[toI];
372
+ var from = children[fromI];
373
+ if (to && from) {
374
+ if (toI < fromI) {
375
+ from.after(to);
376
+ }
377
+ else {
378
+ from.before(to);
379
+ }
380
+ }
381
+ },
382
+ swapEl: function (from, to) {
383
+ var next = from.nextSibling;
384
+ if (next === to) {
385
+ to.after(from);
386
+ return;
387
+ }
388
+ var parent = from.parentElement;
389
+ to.after(from);
390
+ if (next) {
391
+ next.before(to);
392
+ }
393
+ else if (parent) {
394
+ parent.appendChild(to);
395
+ }
396
+ },
397
+ post: function (name) {
398
+ var args = false;
399
+ var from = undefined;
400
+ if (arguments.length >= 3 && arguments[0] === undefined) {
401
+ name = arguments[1];
402
+ args = true;
403
+ from = arguments[3];
404
+ }
405
+ var target = ab_.$center;
406
+ var fn = target[name];
407
+ if (fn) {
408
+ if (from) {
409
+ target['$from'] = from;
410
+ }
411
+ fn.apply(target, args ? arguments[2] : ab_.args(arguments, 1));
412
+ return;
413
+ }
414
+ while (true) {
415
+ var i = name.indexOf('/');
416
+ if (i <= 0) {
417
+ return;
418
+ }
419
+ target = target[name.substr(0, i)];
420
+ if (typeof (target) !== 'object') {
421
+ return;
422
+ }
423
+ name = name.substr(i + 1);
424
+ fn = target[name];
425
+ if (fn) {
426
+ if (from) {
427
+ target['$from'] = from;
428
+ }
429
+ fn.apply(target, args ? arguments[2] : ab_.args(arguments, 1));
430
+ return;
431
+ }
432
+ }
433
+ },
434
+ posts: function (data, i, from) {
435
+ var last = data.length - 1;
436
+ for (i = i || 0; i < last; i += 2) {
437
+ try {
438
+ ab_.post(undefined, data[i], data[i + 1], from);
439
+ }
440
+ catch (e) {
441
+ console.error(e);
442
+ }
443
+ }
444
+ },
445
+ langs: {},
446
+ langChange: function (lang, call) {
447
+ if (!lang) {
448
+ lang = navigator.language || navigator.userLanguage;
449
+ if (!lang) {
450
+ call(false);
451
+ return;
452
+ }
453
+ }
454
+ ab_.require('./i18n/lang_' + lang + '.json', true, function (data) {
455
+ if (data) {
456
+ ab_.langs = Object.assign(ab_.langs, data);
457
+ call(true);
458
+ return;
459
+ }
460
+ var i = lang.indexOf('-');
461
+ if (i > 0) {
462
+ ab_.langChange(lang.substr(0, i), call);
463
+ return;
464
+ }
465
+ call(false);
466
+ });
467
+ },
468
+ lang: function (key, lang) {
469
+ if (lang) {
470
+ if (!ab_.langs[key]) {
471
+ ab_.langs[key] = lang;
472
+ }
473
+ }
474
+ },
475
+ i18n: function (key, par) {
476
+ var s = ab_.$i18n ? ab_.langs[key] || key : key;
477
+ if (s && (Array.isArray(par) || typeof (par) === 'object')) {
478
+ s = s.replace(/(\\)?\{([^\{\}\\]+)(\\)?\}/g, function (word, slash1, token, slash2) {
479
+ // 如果有转义的\{或\}替换转义字符
480
+ if (slash1 || slash2) {
481
+ return word.replace('\\', '');
482
+ }
483
+ return par[token] || '';
484
+ });
485
+ }
486
+ return s;
487
+ },
488
+ time: function () {
489
+ return parseInt(new Date().getTime() / 1000);
490
+ },
491
+ humTime: function (time, max) {
492
+ if (time < (max || 1000)) {
493
+ return time + 's';
494
+ }
495
+ if (time < 600) {
496
+ return Math.floor(time / 60) + 'm' + (time % 60) + 's';
497
+ }
498
+ if (time < (max ? max * 60 : 60000)) {
499
+ return Math.ceil(time / 60) + 'm';
500
+ }
501
+ if (time < 36000) {
502
+ return Math.floor(time / 3600) + 'h' + Math.ceil((time % 3600) / 60) + 'm';
503
+ }
504
+ return Math.ceil(time / 3600) + 'h';
505
+ },
506
+ humSize: function (size) {
507
+ var kb = size / 1024;
508
+ if (kb < 10000) {
509
+ return kb.toFixed(2) + 'kb';
510
+ }
511
+ var mb = kb / 1024;
512
+ if (mb < 10000) {
513
+ return mb.toFixed(2) + 'mb';
514
+ }
515
+ var gb = mb / 1024;
516
+ if (gb < 10000) {
517
+ return gb.toFixed(2) + 'gb';
518
+ }
519
+ return (gb / 1024).toFixed(2) + 'tb';
520
+ },
521
+ parseJson: function (json) {
522
+ return typeof (json) === 'string' ? JSON.parse(json) : json;
523
+ },
524
+ toJson: function (obj) {
525
+ return JSON.stringify(obj);
526
+ },
527
+ tplRender: function (tpl, render) {
528
+ // 被转义的的分隔符 { 和 } 不应该被渲染,分隔符与变量之间允许有空白字符
529
+ /*
530
+ "{greeting}! My name is { author.name }.".render({
531
+ greeting: "Hi",
532
+ author: {
533
+ name: "hsfzxjy"
534
+ }});
535
+ */
536
+ return tpl.replace(/(\\)?\{([^\{\}\\]+)(\\)?\}/g, function (word, slash1, token, slash2) {
537
+ // 如果有转义的\{或\}替换转义字符
538
+ if (slash1 || slash2) {
539
+ return word.replace('\\', '');
540
+ }
541
+ if (!render) {
542
+ return '';
543
+ }
544
+ // 切割 token ,实现级联的变量也可以展开
545
+ var tokens = token.replace(/\s/g, '').split('.');
546
+ var len = tokens.length;
547
+ var curr = render;
548
+ for (var i = 0; i < len; ++i) {
549
+ token = tokens[i];
550
+ curr = curr[token];
551
+ // 如果当前索引的对象不存在,则直接返回空字符串。
552
+ if (curr === undefined || curr === null)
553
+ return '';
554
+ }
555
+ return curr;
556
+ });
557
+ },
558
+ // xhrOntimeout() {
559
+ // // console.log('请求超时。。')
560
+ // },
561
+ // 支持formData file var form = new FormData();form.append("file", fileObj);
562
+ xhrReq: function (loading, headers, url, posts, callback, init) {
563
+ var xhr = new XMLHttpRequest();
564
+ var done = XMLHttpRequest.DONE || 4;
565
+ xhr.onreadystatechange = function () {
566
+ if (xhr.readyState === done) {
567
+ loading && loading();
568
+ if (callback) {
569
+ if (xhr.status === 200) {
570
+ callback(null, xhr.responseText);
571
+ }
572
+ else {
573
+ callback(xhr.text || 'fail', null);
574
+ }
575
+ }
576
+ }
577
+ };
578
+ // 设置30s超时时间
579
+ // xhr.timeout = 30000
580
+ // xhr.ontimeout = ab_.xhrOntimeout()
581
+ if (posts) {
582
+ xhr.open('POST', url, true);
583
+ }
584
+ else {
585
+ xhr.open('GET', url, true);
586
+ posts = undefined;
587
+ }
588
+ if (headers) {
589
+ for (var name in headers) {
590
+ xhr.setRequestHeader(name, headers[name]);
591
+ }
592
+ }
593
+ if (posts && posts._progress) {
594
+ // onprogress 事件在浏览器下载指定的视频/音频(audio/video)时触发
595
+ // xhr.onprogress = posts._progress
596
+ if (xhr.upload) {
597
+ xhr.upload.addEventListener('progress', posts._progress, false);
598
+ }
599
+ delete posts._progress;
600
+ posts._abort = function () {
601
+ xhr.abort();
602
+ };
603
+ }
604
+ if (posts && posts._init) {
605
+ posts._init(xhr);
606
+ delete posts._init;
607
+ }
608
+ init && init(xhr);
609
+ loading && loading(1);
610
+ xhr.send(posts);
611
+ },
612
+ uniReq: function (loading, headers, url, posts, files, callback, init) {
613
+ var req = {
614
+ url: url
615
+ };
616
+ if (headers) {
617
+ req.header = headers;
618
+ }
619
+ req.success = function (rep) {
620
+ loading && loading();
621
+ if (callback) {
622
+ callback(undefined, rep.data);
623
+ }
624
+ };
625
+ req.fail = function (err) {
626
+ loading && loading();
627
+ if (callback) {
628
+ callback(err || 'fail', undefined);
629
+ }
630
+ };
631
+ init && init(req);
632
+ if (files) {
633
+ var len = files.length;
634
+ if (!len) {
635
+ // 表单提交
636
+ var header = __assign({}, req.header);
637
+ header['content-type'] = 'application/x-www-form-urlencoded';
638
+ req.header = header;
639
+ req.method = 'post';
640
+ req.dataType = 'x-www-form-urlencoded';
641
+ req.data = posts;
642
+ uni.request(req);
643
+ return;
644
+ }
645
+ if (len === 1) {
646
+ // 单文件上传
647
+ var file = files[0];
648
+ req.name = file.name;
649
+ req.filePath = file.filePath;
650
+ }
651
+ else {
652
+ // 多文件上传
653
+ req.files = files;
654
+ }
655
+ if (posts) {
656
+ req.formData = posts;
657
+ }
658
+ var header = __assign({}, req.header);
659
+ header['Content-Type'] = 'multipart/form-data';
660
+ req.header = header;
661
+ uni.uploadFile(req);
662
+ }
663
+ else {
664
+ if (posts !== undefined && posts !== 0) {
665
+ // post请求
666
+ req.method = 'post';
667
+ if (posts !== '') {
668
+ req.data = posts;
669
+ }
670
+ }
671
+ uni.request(req);
672
+ }
673
+ },
674
+ newReady: function (last) {
675
+ var backs = [];
676
+ function ready(back) {
677
+ if (backs) {
678
+ backs.push(back);
679
+ }
680
+ else {
681
+ back();
682
+ }
683
+ }
684
+ ready.start = function () {
685
+ if (backs) {
686
+ var calls = backs;
687
+ backs = undefined;
688
+ for (var i = 0; i < calls.length; i++) {
689
+ try {
690
+ calls[i]();
691
+ }
692
+ catch (e) {
693
+ console.error(e);
694
+ }
695
+ }
696
+ if (last) {
697
+ var call = last;
698
+ last = undefined;
699
+ try {
700
+ call();
701
+ }
702
+ catch (e) {
703
+ console.error(e);
704
+ }
705
+ }
706
+ }
707
+ };
708
+ return ready;
709
+ },
710
+ newStart: function (run) {
711
+ var i = 0;
712
+ function start(inited) {
713
+ if (++i > 0 || inited) {
714
+ if (run != null) {
715
+ var call = run;
716
+ run = undefined;
717
+ try {
718
+ call();
719
+ }
720
+ catch (e) {
721
+ console.error(e);
722
+ }
723
+ }
724
+ }
725
+ }
726
+ start.waite = function () {
727
+ i--;
728
+ };
729
+ return start;
730
+ },
731
+ vConsole: function () {
732
+ if (!ab_.vconsoled) {
733
+ ab_.vconsoled = true;
734
+ ab_.reqJs('https://cdn.bootcss.com/vConsole/3.3.4/vconsole.min.js', 0, function () {
735
+ var script = document.createElement('script');
736
+ script.type = 'text/javascript';
737
+ script.appendChild(document.createTextNode('new VConsole()'));
738
+ document.body.appendChild(script);
739
+ });
740
+ }
741
+ },
742
+ getStyle: function ($el, name) {
743
+ var style = $el.getAttribute ? $el.getAttribute('style') : $el.attr('style');
744
+ if (style) {
745
+ var match = style.match(new RegExp(name + '[\\s\\t\\r\\n]*:([^;]*)', 'i'));
746
+ if (match) {
747
+ return match[1];
748
+ }
749
+ }
750
+ },
751
+ cssSetRest: function ($el, names) {
752
+ var len = names.length;
753
+ var css = [];
754
+ for (var i = 0; i < len; i++) {
755
+ css.push(ab_.getStyle($el, names[i]) || '');
756
+ }
757
+ return $el.style ? {
758
+ set: function (vals) {
759
+ for (var i = 0; i < len; i++) {
760
+ $el.style[names[i]] = vals[i] || '';
761
+ }
762
+ },
763
+ reset: function () {
764
+ for (var i = 0; i < len; i++) {
765
+ $el.style[names[i]] = css[i];
766
+ }
767
+ }
768
+ } : {
769
+ set: function (vals) {
770
+ for (var i = 0; i < len; i++) {
771
+ $el.css(names[i], vals[i] || '');
772
+ }
773
+ },
774
+ reset: function () {
775
+ for (var i = 0; i < len; i++) {
776
+ $el.css(names[i], css[i]);
777
+ }
778
+ }
779
+ };
780
+ },
781
+ cloneElement: function (el, tag) {
782
+ if (el) {
783
+ var clone = document.createElement(tag || el.tagName);
784
+ var attrs = el.attributes;
785
+ for (var i = 0; i < attrs.length; i++) {
786
+ var attr = attrs[i];
787
+ clone.setAttribute(attr.name, attr.value);
788
+ }
789
+ while (el.firstChild) {
790
+ clone.appendChild(el.firstChild);
791
+ }
792
+ return clone;
793
+ }
794
+ },
795
+ objectMerge: function (to, from, depth) {
796
+ to = typeof (to) === 'object' ? to : {};
797
+ for (var k in from) {
798
+ var f = from[k];
799
+ if (depth > 0) {
800
+ if (f && typeof (f) === 'object') {
801
+ var t = to[k];
802
+ if (typeof (t) === 'object') {
803
+ ab_.objectMerge(t, f, depth - 1);
804
+ continue;
805
+ }
806
+ }
807
+ }
808
+ to[k] = f;
809
+ }
810
+ return to;
811
+ },
812
+ keepAlive: function (inst) {
813
+ if (!inst) {
814
+ inst = $root.$route.matched;
815
+ if (inst.length) {
816
+ inst = inst[inst.length - 1].instances["default"];
817
+ }
818
+ if (!inst) {
819
+ return;
820
+ }
821
+ }
822
+ inst = inst.$vnode || inst;
823
+ inst = inst.parent;
824
+ return inst && inst.componentInstance;
825
+ },
826
+ keepAliveClose: function (key) {
827
+ var matched = $root.$route.matched;
828
+ if (matched.length > 1) {
829
+ ab_.keepAliveDel(ab_.keepAlive(matched[matched.length - 1].instances["default"]), key);
830
+ }
831
+ },
832
+ keepAliveDel: function ($keepAlive, key, cKey) {
833
+ if ($keepAlive && (key || cKey)) {
834
+ $keepAlive = $keepAlive.componentInstance || $keepAlive;
835
+ var cache = $keepAlive.cache;
836
+ var keys = $keepAlive.keys;
837
+ if (cache) {
838
+ if (!cKey && key) {
839
+ for (var k in cache) {
840
+ if (cache[k].data.key === key) {
841
+ cKey = k;
842
+ break;
843
+ }
844
+ }
845
+ }
846
+ if (cKey) {
847
+ if (keys.length) {
848
+ var index = keys.indexOf(cKey);
849
+ if (index >= 0) {
850
+ keys.splice(index, 1);
851
+ }
852
+ }
853
+ var c = cache[cKey];
854
+ if (c) {
855
+ try {
856
+ c.componentInstance.$destroy();
857
+ }
858
+ catch (e) {
859
+ console.error(e);
860
+ }
861
+ }
862
+ delete cache[cKey];
863
+ }
864
+ }
865
+ }
866
+ },
867
+ getPaths: function (model, paths, fromI) {
868
+ if (typeof (model) === 'object' && typeof (paths) === 'string') {
869
+ var i = fromI = fromI > 0 ? fromI : 0;
870
+ while ((i = paths.indexOf('.', i)) > 0) {
871
+ var j = paths[i - 1] === ']' ? paths.lastIndexOf('[', i - 1) : -1;
872
+ j = j <= fromI ? -1 : j;
873
+ var path = paths.substr(fromI, (j > 0 ? j : i) - fromI);
874
+ var m = model[path];
875
+ if (m) {
876
+ if (j > 0) {
877
+ m = m[paths.substr(j + 1, i - j - 2)];
878
+ }
879
+ return ab_.getPaths(m, paths, ++i);
880
+ }
881
+ i++;
882
+ }
883
+ return model[fromI > 0 ? paths.substr(fromI) : paths];
884
+ }
885
+ },
886
+ setPaths: function (model, val, paths, fromI) {
887
+ if (typeof (model) === 'object' && typeof (paths) === 'string') {
888
+ var i = fromI = fromI > 0 ? fromI : 0;
889
+ while ((i = paths.indexOf('.', i)) > 0) {
890
+ var j = paths[i - 1] === ']' ? paths.lastIndexOf('[', i - 1) : -1;
891
+ j = j <= fromI ? -1 : j;
892
+ var path = paths.substr(fromI, (j > 0 ? j : i) - fromI);
893
+ var m = model[path];
894
+ if (m) {
895
+ if (j > 0) {
896
+ m = m[paths.substr(j + 1, i - j - 2)];
897
+ }
898
+ return ab_.setPaths(m, val, paths, ++i);
899
+ }
900
+ i++;
901
+ }
902
+ model[fromI > 0 ? paths.substr(fromI) : paths] = val;
903
+ }
904
+ },
905
+ date: function (time) {
906
+ return time > 0 ? new Date(time > 2147483647 ? time : (time * 1000)) : null;
907
+ },
908
+ formatTime: function (time, fmt) {
909
+ return ab_.formatDate(ab_.date(time), fmt);
910
+ },
911
+ formatDate: function (date, fmt) {
912
+ if (!date || !date.getFullYear) {
913
+ return '';
914
+ }
915
+ fmt = fmt || 'yyyy-MM-dd hh:mm:ss';
916
+ if (/(y+)/.test(fmt)) {
917
+ fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
918
+ }
919
+ var o = {
920
+ 'M+': date.getMonth() + 1,
921
+ 'd+': date.getDate(),
922
+ 'h+': date.getHours(),
923
+ 'm+': date.getMinutes(),
924
+ 's+': date.getSeconds()
925
+ };
926
+ for (var k in o) {
927
+ if (new RegExp("(".concat(k, ")")).test(fmt)) {
928
+ var str = o[k] + '';
929
+ fmt = fmt.replace(RegExp.$1, str.length > 1 ? str : ('0' + str));
930
+ }
931
+ }
932
+ return fmt;
933
+ },
934
+ aName: function (name) {
935
+ if (typeof (name) !== 'string') {
936
+ return '';
937
+ }
938
+ var len = name && name.length;
939
+ var i = 0;
940
+ var c;
941
+ for (; i < len; i++) {
942
+ c = name[i];
943
+ if (c < 'a' || c > 'z') {
944
+ break;
945
+ }
946
+ }
947
+ return i >= len ? '' : name.substr(0, i);
948
+ },
949
+ aNameC: function (a, name, underline) {
950
+ if (!a || !name) {
951
+ return name;
952
+ }
953
+ if (underline) {
954
+ return a + '_' + name;
955
+ }
956
+ return (a === '@' ? '' : a) + name[0].toUpperCase() + name.substr(1);
957
+ },
958
+ fullScreen: function ($this, $el, fun) {
959
+ var $parent = $this.parentNode;
960
+ var parentSetRest;
961
+ var thisSetRest;
962
+ var $fixeds;
963
+ return function () {
964
+ if (!parentSetRest) {
965
+ parentSetRest = ab_.cssSetRest($parent, ['position', 'z-index', 'top', 'right', 'bottom', 'left', 'background', 'width', 'height']);
966
+ thisSetRest = ab_.cssSetRest($this, ['position', 'top', 'right', 'bottom', 'left', 'width', 'height']);
967
+ }
968
+ if ($fixeds) {
969
+ parentSetRest.reset();
970
+ thisSetRest.reset();
971
+ for (var i = 0; i < $fixeds.length; i++) {
972
+ var $fixed = $fixeds[i];
973
+ if ($fixed[1]) {
974
+ $fixed[0].attr('style', $fixed[1]);
975
+ }
976
+ else {
977
+ $fixed[0].removeAttr('style');
978
+ }
979
+ }
980
+ $fixeds = null;
981
+ if ($el && $el.classList) {
982
+ $el.classList.remove('.abFullScreenReset');
983
+ $el.classList.add('.abFullScreenTo');
984
+ }
985
+ fun && fun();
986
+ }
987
+ else {
988
+ parentSetRest.set(['fixed', '19891024', '0', '0', '0', '0', '#FFF']);
989
+ thisSetRest.set(['absolute', '0', '0', '0', '0']);
990
+ $fixeds = [];
991
+ $fixed = $parent;
992
+ if ($fixed.style) {
993
+ while (true) {
994
+ $fixed = $fixed.parentNode;
995
+ if (!$fixed || !$fixed.length || $fixed[0] === document) {
996
+ break;
997
+ }
998
+ if ($fixed.style.position === 'fixed') {
999
+ $fixeds.push([$fixed, $fixed.getAttribute('style')]);
1000
+ $fixed.style.position === 'static';
1001
+ }
1002
+ }
1003
+ }
1004
+ else {
1005
+ while (true) {
1006
+ $fixed = $fixed.parent();
1007
+ if (!$fixed || !$fixed.length || $fixed[0] === document) {
1008
+ break;
1009
+ }
1010
+ if ($fixed.css('position') === 'fixed') {
1011
+ $fixeds.push([$fixed, $fixed.attr('style')]);
1012
+ $fixed.css('position', 'static');
1013
+ }
1014
+ }
1015
+ }
1016
+ if ($el && $el.classList) {
1017
+ $el.classList.remove('.abFullScreenTo');
1018
+ $el.classList.add('.abFullScreenReset');
1019
+ }
1020
+ fun && fun(true);
1021
+ }
1022
+ };
1023
+ },
1024
+ cvsVal: function (val, cHead, cEnd) {
1025
+ if (cHead || cEnd) {
1026
+ var head = 0;
1027
+ var last = val.length - 1;
1028
+ var cLast = last;
1029
+ for (; head <= last; head++) {
1030
+ var c = val[head];
1031
+ if (c !== '\r' && c !== '\n') {
1032
+ break;
1033
+ }
1034
+ }
1035
+ for (; cLast > head; cLast--) {
1036
+ var c = val[cLast];
1037
+ if (c !== '\r' && c !== '\n') {
1038
+ break;
1039
+ }
1040
+ }
1041
+ if (head > 0 || cLast < last) {
1042
+ val = val.substr(head, cLast + 1 - cHead);
1043
+ }
1044
+ }
1045
+ if (typeof (val) === 'string') {
1046
+ if (val.indexOf(',') >= 0 || val.indexOf('"') >= 0 || val.indexOf('\r') >= 0 || val.indexOf('\n') >= 0) {
1047
+ val = '"' + val.replace('"', '""') + '"';
1048
+ }
1049
+ }
1050
+ return val === undefined || val === null ? '' : val;
1051
+ },
1052
+ downloadTxt: function (txt, name, bom) {
1053
+ if (bom) {
1054
+ txt = '\uFEFF' + txt;
1055
+ }
1056
+ var element = document.createElement('a');
1057
+ element.setAttribute('href', 'data:text/plain;charset=' + document.characterSet + ',' + encodeURIComponent(txt));
1058
+ element.setAttribute('download', name);
1059
+ element.style.display = 'none';
1060
+ element.click();
1061
+ setTimeout(function () {
1062
+ if (element) {
1063
+ element.remove();
1064
+ }
1065
+ }, 100);
1066
+ },
1067
+ funTimer: function (fun) {
1068
+ var timer;
1069
+ var timerI;
1070
+ var self = {
1071
+ start: function (interval) {
1072
+ if (timer && timerI != interval) {
1073
+ self.stop();
1074
+ }
1075
+ if (!timer) {
1076
+ timerI = interval;
1077
+ timer = setInterval(fun, interval);
1078
+ }
1079
+ },
1080
+ stop: function () {
1081
+ if (timer) {
1082
+ try {
1083
+ clearInterval(timer);
1084
+ }
1085
+ catch (e) {
1086
+ console.error(e);
1087
+ }
1088
+ timer = null;
1089
+ }
1090
+ }
1091
+ };
1092
+ return self;
1093
+ },
1094
+ loadState: function (bind, path, target, props) {
1095
+ var state = bind && bind['_$$state$$' + path];
1096
+ if (state && target) {
1097
+ var len = props && props.length;
1098
+ for (var i = 0; i < len; i++) {
1099
+ var prop = props[i];
1100
+ target[prop] = state[prop];
1101
+ }
1102
+ return true;
1103
+ }
1104
+ },
1105
+ saveState: function (bind, path, target, props) {
1106
+ if (bind && target) {
1107
+ var state = {};
1108
+ var len = props && props.length;
1109
+ for (var i = 0; i < len; i++) {
1110
+ var prop = props[i];
1111
+ state[prop] = target[prop];
1112
+ }
1113
+ bind['_$$state$$' + path] = state;
1114
+ }
1115
+ }
1116
+ };
1117
+ try {
1118
+ if (typeof location !== undefined) {
1119
+ ab_.local = location.hostname == '127.0.0.1' || location.hostname == 'localhost';
1120
+ ab_.https = location.href.startsWith('https');
1121
+ }
1122
+ }
1123
+ catch (e) {
1124
+ console.error(e);
1125
+ }
1126
+ try {
1127
+ if (globalThis) {
1128
+ if (globalThis.ab_) {
1129
+ ab_ = globalThis.ab_;
1130
+ }
1131
+ else {
1132
+ globalThis.ab_ = ab_;
1133
+ }
1134
+ }
1135
+ }
1136
+ catch (e) {
1137
+ console.error(e);
1138
+ }
1139
+ module.exports = ab_;