dlt-for-react 1.0.3 → 1.0.5

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 (66) hide show
  1. package/README.md +4 -1
  2. package/assets/components/KyCheckButton/index.less +23 -0
  3. package/assets/components/KyCollapse/index.less +15 -0
  4. package/assets/components/KyContainerFrame/index.less +21 -0
  5. package/assets/components/KyEditableTable/index.less +116 -0
  6. package/assets/components/KyEmpty/index.less +8 -0
  7. package/assets/components/KyIcon/index.less +6 -0
  8. package/assets/components/KyMore/index.less +9 -0
  9. package/assets/components/KyTable/checkbuttons.less +23 -0
  10. package/assets/components/KyTable/highSearchForm.less +16 -0
  11. package/assets/components/KyTable/index.less +558 -0
  12. package/assets/components/KyTitle/index.less +39 -0
  13. package/assets/images/noData.png +0 -0
  14. package/lib/components/KyBtnBox/index.js +137 -0
  15. package/lib/components/KyCheckBox/index.js +361 -0
  16. package/lib/components/KyCheckButton/index.js +256 -0
  17. package/lib/components/KyCollapse/index.js +144 -0
  18. package/lib/components/KyContainerFrame/index.js +239 -0
  19. package/lib/components/KyEditableTable/component.js +216 -0
  20. package/lib/components/KyEditableTable/index.js +1537 -0
  21. package/lib/components/KyEmpty/index.js +102 -0
  22. package/lib/components/KyExcel/ExcelForm.js +111 -0
  23. package/lib/components/KyExcel/index.js +601 -0
  24. package/lib/components/KyIcon/index.js +51 -0
  25. package/lib/components/KyModal/buildTitle.js +1 -0
  26. package/lib/components/KyModal/dragM.js +1 -0
  27. package/lib/components/KyMore/index.js +74 -0
  28. package/lib/components/KyPreview/index.js +1 -0
  29. package/lib/components/KyTable/AddFieldsModal.js +360 -0
  30. package/lib/components/KyTable/action.js +222 -0
  31. package/lib/components/KyTable/checkButtons.js +244 -0
  32. package/lib/components/KyTable/data.js +726 -0
  33. package/lib/components/KyTable/expexcel.js +269 -0
  34. package/lib/components/KyTable/highSearchForm.js +749 -0
  35. package/lib/components/KyTable/highSelect.js +313 -0
  36. package/lib/components/KyTable/index.js +2075 -0
  37. package/lib/components/KyTable/marqueenText.js +142 -0
  38. package/lib/components/KyTable/overflowColumn.js +113 -0
  39. package/lib/components/KyTable/text.js +96 -0
  40. package/lib/components/KyTable/textGroup.js +108 -0
  41. package/lib/components/KyTitle/index.js +127 -0
  42. package/lib/components/KyUpload/index.js +1 -0
  43. package/lib/index.js +240 -59
  44. package/lib/layouts/Exception/403/index.js +1 -0
  45. package/lib/layouts/Exception/403.js +1 -0
  46. package/lib/layouts/Exception/404.js +1 -0
  47. package/lib/layouts/Exception/500.js +1 -0
  48. package/lib/layouts/LeftMenu/index.js +1 -0
  49. package/lib/layouts/Login/lyPassword.js +1 -0
  50. package/lib/layouts/NavigationBar/index.js +1 -0
  51. package/lib/layouts/Top/index.js +1 -0
  52. package/lib/layouts/TopMenu/index.js +1 -0
  53. package/lib/layouts/layout/index.js +1 -0
  54. package/lib/layouts/mixTop/index.js +1 -0
  55. package/lib/layouts/settingDrawer/colorChange.js +1 -0
  56. package/lib/layouts/settingDrawer/colorPicker.js +1 -0
  57. package/lib/utils/MD5.js +256 -0
  58. package/lib/utils/NHCore.js +273 -0
  59. package/lib/utils/NHFetch.js +451 -0
  60. package/lib/utils/common.js +516 -0
  61. package/lib/utils/createUuid.js +37 -0
  62. package/lib/utils/equalsObj.js +59 -0
  63. package/lib/utils/getLoginUser.js +10 -0
  64. package/lib/utils/getSize.js +27 -0
  65. package/lib/utils/index.js +804 -0
  66. package/package.json +2 -2
@@ -0,0 +1,804 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.randomNumEnum = exports.getStyle = exports.getValueFromArray = exports.getLabelValueTree = exports.createUuid = exports.createScript = exports.getBase64 = exports.compatibleAnimationFrame = exports.cutArray = exports.arrayMove = exports.arrayMoveMutate = exports.checkPassword = exports.matchParamsPath = exports.urlToList = exports.getHashParam = exports.isUrl = exports.getRouterAuthority = exports.transformDate = exports.getStrLength = exports.DateUtil = exports._utf8_encode = exports.encode = exports.decode = exports.getSize = exports.getOffset = undefined;
7
+
8
+ var _stringify = require('babel-runtime/core-js/json/stringify');
9
+
10
+ var _stringify2 = _interopRequireDefault(_stringify);
11
+
12
+ var _promise = require('babel-runtime/core-js/promise');
13
+
14
+ var _promise2 = _interopRequireDefault(_promise);
15
+
16
+ var _keys = require('babel-runtime/core-js/object/keys');
17
+
18
+ var _keys2 = _interopRequireDefault(_keys);
19
+
20
+ exports.splitString = splitString;
21
+ exports.queryArray = queryArray;
22
+ exports.arrayToTree = arrayToTree;
23
+ exports.delay = delay;
24
+ exports.transformFileToText = transformFileToText;
25
+ exports.animationFramePolyfill = animationFramePolyfill;
26
+ exports.isAccordReg = isAccordReg;
27
+ exports.isSearchKeyReg = isSearchKeyReg;
28
+ exports.toThousands = toThousands;
29
+ exports.findValueFormObject = findValueFormObject;
30
+ exports.loadScript = loadScript;
31
+
32
+ var _pathToRegexp = require('path-to-regexp');
33
+
34
+ var _pathToRegexp2 = _interopRequireDefault(_pathToRegexp);
35
+
36
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
+
38
+ /**
39
+ * 获取元素距离可视区域顶部、左部的距离
40
+ * @param {*} ele
41
+ * @returns
42
+ */
43
+ var getOffset = exports.getOffset = function getOffset(ele) {
44
+ var top = ele.offsetTop;
45
+ var left = ele.offsetLeft;
46
+ while (ele.offsetParent) {
47
+ ele = ele.offsetParent;
48
+ if (window.navigator.userAgent.indexOf('MSTE 8') > -1) {
49
+ top += ele.offsetTop;
50
+ left += ele.offsetLeft;
51
+ } else {
52
+ top += ele.offsetTop + ele.clientTop;
53
+ left += ele.offsetLeft + ele.clientLeft;
54
+ }
55
+ }
56
+ return {
57
+ left: left,
58
+ top: top
59
+ };
60
+ };
61
+
62
+ /**
63
+ * 获取窗口信息
64
+ * @returns
65
+ */
66
+ /*
67
+ * @Description: 通用工具类
68
+ * @Author: admin
69
+ * @Date: 2020-03-06 09:45:52
70
+ * @LastEditors: jiangzhongxin
71
+ * @LastEditTime: 2023-09-28 15:44:43
72
+ */
73
+ var getSize = exports.getSize = function getSize() {
74
+ var windowW = void 0,
75
+ windowH = void 0,
76
+ contentH = void 0,
77
+ contentW = void 0,
78
+ scrollT = void 0;
79
+ windowH = window.innerHeight;
80
+ windowW = window.innerWidth;
81
+ scrollT = document.documentElement.scrollTop || document.body.scrollTop;
82
+ contentH = document.documentElement.scrollHeight > document.body.scrollHeight ? document.documentElement.scrollHeight : document.body.scrollHeight;
83
+ contentW = document.documentElement.scrollWidth > document.body.scrollWidth ? document.documentElement.scrollWidth : document.body.scrollWidth;
84
+ return { windowW: windowW, windowH: windowH, contentH: contentH, contentW: contentW, scrollT: scrollT };
85
+ };
86
+
87
+ var decode = exports.decode = function decode(input) {
88
+ var _keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
89
+ var output = '';
90
+ var chr1 = void 0,
91
+ chr2 = void 0,
92
+ chr3 = void 0;
93
+ var enc1 = void 0,
94
+ enc2 = void 0,
95
+ enc3 = void 0,
96
+ enc4 = void 0;
97
+ var i = 0;
98
+ input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '');
99
+ while (i < input.length) {
100
+ enc1 = _keyStr.indexOf(input.charAt(i++));
101
+ enc2 = _keyStr.indexOf(input.charAt(i++));
102
+ enc3 = _keyStr.indexOf(input.charAt(i++));
103
+ enc4 = _keyStr.indexOf(input.charAt(i++));
104
+ chr1 = enc1 << 2 | enc2 >> 4;
105
+ chr2 = (enc2 & 15) << 4 | enc3 >> 2;
106
+ chr3 = (enc3 & 3) << 6 | enc4;
107
+ output = output + String.fromCharCode(chr1);
108
+ if (enc3 != 64) {
109
+ output = output + String.fromCharCode(chr2);
110
+ }
111
+ if (enc4 != 64) {
112
+ output = output + String.fromCharCode(chr3);
113
+ }
114
+ }
115
+ output = _utf8_decode(output);
116
+ return output;
117
+ };
118
+
119
+ var encode = exports.encode = function encode(input) {
120
+ var _keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
121
+ var output = '';
122
+ var chr1 = void 0,
123
+ chr2 = void 0,
124
+ chr3 = void 0,
125
+ enc1 = void 0,
126
+ enc2 = void 0,
127
+ enc3 = void 0,
128
+ enc4 = void 0;
129
+ var i = 0;
130
+ input = _utf8_encode(input);
131
+ while (i < input.length) {
132
+ chr1 = input.charCodeAt(i++);
133
+ chr2 = input.charCodeAt(i++);
134
+ chr3 = input.charCodeAt(i++);
135
+ enc1 = chr1 >> 2;
136
+ enc2 = (chr1 & 3) << 4 | chr2 >> 4;
137
+ enc3 = (chr2 & 15) << 2 | chr3 >> 6;
138
+ enc4 = chr3 & 63;
139
+ if (isNaN(chr2)) {
140
+ enc3 = enc4 = 64;
141
+ } else if (isNaN(chr3)) {
142
+ enc4 = 64;
143
+ }
144
+ output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4);
145
+ }
146
+ return output;
147
+ };
148
+
149
+ // private method for UTF-8 encoding
150
+ var _utf8_encode = exports._utf8_encode = function _utf8_encode(string) {
151
+ string = string.replace(/\r\n/g, '\n');
152
+ var utftext = '';
153
+ for (var n = 0; n < string.length; n++) {
154
+ var c = string.charCodeAt(n);
155
+ if (c < 128) {
156
+ utftext += String.fromCharCode(c);
157
+ } else if (c > 127 && c < 2048) {
158
+ utftext += String.fromCharCode(c >> 6 | 192);
159
+ utftext += String.fromCharCode(c & 63 | 128);
160
+ } else {
161
+ utftext += String.fromCharCode(c >> 12 | 224);
162
+ utftext += String.fromCharCode(c >> 6 & 63 | 128);
163
+ utftext += String.fromCharCode(c & 63 | 128);
164
+ }
165
+ }
166
+ return utftext;
167
+ };
168
+
169
+ function _utf8_decode(utftext) {
170
+ var string = '';
171
+ var i = 0;
172
+ var c = 0;
173
+ var c1 = 0;
174
+ var c2 = 0;
175
+ var c3 = 0;
176
+ while (i < utftext.length) {
177
+ c = utftext.charCodeAt(i);
178
+ if (c < 128) {
179
+ string += String.fromCharCode(c);
180
+ i++;
181
+ } else if (c > 191 && c < 224) {
182
+ c2 = utftext.charCodeAt(i + 1);
183
+ string += String.fromCharCode((c & 31) << 6 | c2 & 63);
184
+ i += 2;
185
+ } else {
186
+ c2 = utftext.charCodeAt(i + 1);
187
+ c3 = utftext.charCodeAt(i + 2);
188
+ string += String.fromCharCode((c & 15) << 12 | (c2 & 63) << 6 | c3 & 63);
189
+ i += 3;
190
+ }
191
+ }
192
+ return string;
193
+ }
194
+
195
+ //添加key
196
+ var DateUtil = exports.DateUtil = {
197
+ dateAddKey: function dateAddKey(date) {
198
+ var localCounter = 1;
199
+ date.forEach(function (el) {
200
+ el.key = localCounter++;
201
+ });
202
+ return date;
203
+ },
204
+ dataFormat: function dataFormat(time) {
205
+ //时间戳转时间 => yyyy-mm-dd hh:mm:ss
206
+ var now = new Date(time);
207
+ var year = now.getFullYear();
208
+ var month = now.getMonth() + 1 >= 10 ? now.getMonth() + 1 : '0' + (now.getMonth() + 1);
209
+ var date = now.getDate() >= 10 ? now.getDate() : '0' + now.getDate();
210
+ var hour = now.getHours() >= 10 ? now.getHours() : '0' + now.getHours();
211
+ var minute = now.getMinutes() >= 10 ? now.getMinutes() : '0' + now.getMinutes();
212
+ var second = now.getSeconds() >= 10 ? now.getSeconds() : '0' + now.getSeconds();
213
+ return year + '-' + month + '-' + date + ' ' + hour + ':' + minute + ':' + second;
214
+ }
215
+ };
216
+
217
+ /**
218
+ * GBK字符集实际长度计算
219
+ * @param {*} str
220
+ * @returns
221
+ */
222
+ var getStrLength = exports.getStrLength = function getStrLength(str) {
223
+ var realLength = 0;
224
+ var len = str.length;
225
+ var charCode = -1;
226
+ for (var i = 0; i < len; i++) {
227
+ charCode = str.charCodeAt(i);
228
+ if (charCode >= 0 && charCode <= 128) {
229
+ realLength += 1;
230
+ } else {
231
+ // 如果是中文则长度加2
232
+ realLength += 2;
233
+ }
234
+ }
235
+ return realLength;
236
+ };
237
+
238
+ /**
239
+ * 格式化时间
240
+ * @param {*} date
241
+ * @returns
242
+ */
243
+ var transformDate = exports.transformDate = function transformDate(date) {
244
+ var createAt = new Date(date);
245
+ var time = new Date().getTime() - createAt.getTime(); //现在的时间-传入的时间 = 相差的时间(单位 = 毫秒)
246
+ if (time < 0) {
247
+ return '';
248
+ } else if (time / 1000 < 60) {
249
+ return '刚刚';
250
+ } else if (time / 60000 < 60) {
251
+ return parseInt(time / 60000) + '分钟前';
252
+ } else if (time / 3600000 < 24) {
253
+ return parseInt(time / 3600000) + '小时前';
254
+ } else if (time / 86400000 < 31) {
255
+ return parseInt(time / 86400000) + '天前';
256
+ } else if (time / 2592000000 < 12) {
257
+ return parseInt(time / 2592000000) + '月前';
258
+ } else {
259
+ return parseInt(time / 31536000000) + '年前';
260
+ }
261
+ };
262
+
263
+ /**
264
+ * 获取路径权限
265
+ * @param {*} pathname
266
+ * @param {*} routeData
267
+ * @returns
268
+ */
269
+ var getRouterAuthority = exports.getRouterAuthority = function getRouterAuthority(pathname, routeData) {
270
+ var routeAuthority = ['noAuthority'];
271
+ var getAuthority = function getAuthority(key, routes) {
272
+ routes.map(function (route) {
273
+ if (route.path === key) {
274
+ routeAuthority = route.authority;
275
+ } else if (route.routes) {
276
+ routeAuthority = getAuthority(key, route.routes);
277
+ }
278
+ return route;
279
+ });
280
+ return routeAuthority;
281
+ };
282
+ return getAuthority(pathname, routeData);
283
+ };
284
+
285
+ var reg = /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/;
286
+ /**
287
+ * 是否url
288
+ * @param {*} path
289
+ * @returns
290
+ */
291
+ var isUrl = exports.isUrl = function isUrl(path) {
292
+ return reg.test(path);
293
+ };
294
+
295
+ /**
296
+ * 获取url参数
297
+ * @param {*} name
298
+ * @returns
299
+ */
300
+ var getHashParam = exports.getHashParam = function getHashParam(name) {
301
+ var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)'),
302
+ queryString = window.location.href.split('?')[1] || '',
303
+ result = queryString.match(reg);
304
+ return result ? decodeURIComponent(result[2]) : null;
305
+ };
306
+
307
+ /**
308
+ * 转化url为列表
309
+ * @param {*} url
310
+ * @returns
311
+ */
312
+ var urlToList = exports.urlToList = function urlToList(url) {
313
+ var urllist = url.split('/').filter(function (i) {
314
+ return i;
315
+ });
316
+ return urllist.map(function (urlItem, index) {
317
+ return '/' + urllist.slice(0, index + 1).join('/');
318
+ });
319
+ };
320
+
321
+ /**
322
+ * 获取当前路径信息
323
+ * @param {*} pathname
324
+ * @param {*} breadcrumbNameMap
325
+ * @returns
326
+ */
327
+ var matchParamsPath = exports.matchParamsPath = function matchParamsPath(pathname, breadcrumbNameMap) {
328
+ var pathKey = (0, _keys2.default)(breadcrumbNameMap).find(function (key) {
329
+ return (0, _pathToRegexp2.default)(key).test(pathname);
330
+ });
331
+ return breadcrumbNameMap[pathKey];
332
+ };
333
+
334
+ /**
335
+ * 校验密码
336
+ * @param {*} value
337
+ * @returns [0:小于6位不合格,1:弱,2: 中,3:强]
338
+ */
339
+ var checkPassword = exports.checkPassword = function checkPassword(value) {
340
+ if (value === undefined || value === null) {
341
+ return 0;
342
+ }
343
+ var strongRegex = new RegExp('^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$', 'g');
344
+ var mediumRegex = new RegExp('^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$', 'g');
345
+ var enoughRegex = new RegExp('(?=.{6,}).*', 'g');
346
+ var strong = 1;
347
+ if (enoughRegex.test(value) == false) {
348
+ //密码小于六位的时候
349
+ strong = 0;
350
+ } else if (strongRegex.test(value)) {
351
+ //密码为八位及以上并且字母数字特殊字符三项都包括,强度最强
352
+ strong = 3;
353
+ } else if (mediumRegex.test(value)) {
354
+ //密码为七位及以上并且字母、数字、特殊字符三项中有两项,强度是中等
355
+ strong = 2;
356
+ }
357
+ return strong;
358
+ };
359
+
360
+ var arrayMoveMutate = exports.arrayMoveMutate = function arrayMoveMutate(array, from, to) {
361
+ array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);
362
+ };
363
+ /**
364
+ * 交换数组内两个值的位置
365
+ * @param {*} array
366
+ * @param {*} from
367
+ * @param {*} to
368
+ * @returns
369
+ */
370
+ var arrayMove = exports.arrayMove = function arrayMove(array, from, to) {
371
+ array = array.slice();
372
+ arrayMoveMutate(array, from, to);
373
+ return array;
374
+ };
375
+
376
+ /**
377
+ * 将数组按固定长度分割
378
+ * @param {*} array
379
+ * @param {*} subLength
380
+ * @returns
381
+ */
382
+ var cutArray = exports.cutArray = function cutArray(array, subLength) {
383
+ var index = 0;
384
+ var newArr = [];
385
+ while (index < array.length) {
386
+ newArr.push(array.slice(index, index += subLength));
387
+ }
388
+ return newArr;
389
+ };
390
+
391
+ /**
392
+ * 按指定长度分段字符串
393
+ * @param str 传入的字符串(非空)
394
+ * @param num 指定长度(正整数)
395
+ * @returns Array(字符串数组)
396
+ */
397
+ function splitString(str, num) {
398
+ if (str == null || str == undefined) return null;
399
+ if (!/^[0-9]*[1-9][0-9]*$/.test(num)) return null;
400
+ var array = new Array();
401
+ var len = str.length;
402
+ for (var i = 0; i < len / num; i++) {
403
+ if ((i + 1) * num > len) {
404
+ array.push(str.substring(i * num, len));
405
+ } else {
406
+ array.push(str.substring(i * num, (i + 1) * num));
407
+ }
408
+ }
409
+ return array;
410
+ }
411
+
412
+ // 兼容requestAnimationFrame
413
+ var compatibleAnimationFrame = exports.compatibleAnimationFrame = function compatibleAnimationFrame() {
414
+ var lastTime = 0;
415
+ var vendors = ['webkit', 'moz'];
416
+ for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
417
+ window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
418
+ window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];
419
+ }
420
+
421
+ if (!window.requestAnimationFrame) window.requestAnimationFrame = function (callback, element) {
422
+ var currTime = new Date().getTime();
423
+ var timeToCall = Math.max(0, 16 - (currTime - lastTime));
424
+ var id = window.setTimeout(function () {
425
+ callback(currTime + timeToCall);
426
+ }, timeToCall);
427
+ lastTime = currTime + timeToCall;
428
+ return id;
429
+ };
430
+
431
+ if (!window.cancelAnimationFrame) window.cancelAnimationFrame = function (id) {
432
+ clearTimeout(id);
433
+ };
434
+ };
435
+
436
+ /**
437
+ * 图片转化
438
+ * @param {*} file
439
+ * @returns
440
+ */
441
+ var getBase64 = exports.getBase64 = function getBase64(file) {
442
+ return new _promise2.default(function (resolve, reject) {
443
+ var reader = new FileReader();
444
+ reader.readAsDataURL(file);
445
+ reader.onload = function () {
446
+ return resolve(reader.result);
447
+ };
448
+ reader.onerror = function (error) {
449
+ return reject(error);
450
+ };
451
+ });
452
+ };
453
+
454
+ /**
455
+ * 创建script标签加载js
456
+ * @param {string} [url='']
457
+ * @returns
458
+ */
459
+ var createScript = exports.createScript = function createScript() {
460
+ var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
461
+
462
+ var scriptTags = window.document.querySelectorAll('script');
463
+ var len = scriptTags.length;
464
+ var i = 0;
465
+ // 截取字符串,去掉可能url是相对路径的
466
+ url = url.indexOf('.') === 0 ? url.substr(1) : url;
467
+ var _url = location.origin + url;
468
+ return new _promise2.default(function (resolve, reject) {
469
+ var isHas = false;
470
+ for (i = 0; i < len; i++) {
471
+ var src = scriptTags[i].src;
472
+ if (src && src === _url) {
473
+ isHas = true;
474
+ resolve();
475
+ // scriptTags[i].parentElement.removeChild(scriptTags[i]);
476
+ }
477
+ }
478
+ if (!isHas) {
479
+ var node = document.createElement('script');
480
+ node.type = 'text/javascript';
481
+ node.src = url;
482
+ node.onload = resolve;
483
+ document.body.appendChild(node);
484
+ }
485
+ });
486
+ };
487
+
488
+ /**
489
+ * 获取UUID
490
+ * @returns
491
+ */
492
+ var createUuid = exports.createUuid = function createUuid() {
493
+ var chars = '0123456789abcdefghijklmnopqrstuvwxyz'.split('');
494
+ var uuid = [],
495
+ i;
496
+ radix = radix || chars.length;
497
+
498
+ if (len) {
499
+ // Compact form
500
+ for (i = 0; i < len; i++) {
501
+ uuid[i] = chars[0 | Math.random() * radix];
502
+ }
503
+ } else {
504
+ // rfc4122, version 4 form
505
+ var r;
506
+
507
+ // rfc4122 requires these characters
508
+ uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
509
+ uuid[14] = '4';
510
+
511
+ // Fill in random data. At i==19 set the high bits of clock sequence as
512
+ // per rfc4122, sec. 4.1.5
513
+ for (i = 0; i < 36; i++) {
514
+ if (!uuid[i]) {
515
+ r = 0 | Math.random() * 16;
516
+ uuid[i] = chars[i == 19 ? r & 0x3 | 0x8 : r];
517
+ }
518
+ }
519
+ }
520
+
521
+ return uuid.join('');
522
+ };
523
+
524
+ /**
525
+ * 数组内查询
526
+ * @param {array} array
527
+ * @param {String} id
528
+ * @param {String} keyAlias
529
+ * @return {Array}
530
+ */
531
+ function queryArray(array, key) {
532
+ var keyAlias = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'key';
533
+
534
+ if (!(array instanceof Array)) {
535
+ return null;
536
+ }
537
+ var item = array.filter(function (_) {
538
+ return _[keyAlias] === key;
539
+ });
540
+ if (item.length) {
541
+ return item[0];
542
+ }
543
+ return null;
544
+ }
545
+
546
+ /**
547
+ * 数组格式转树状结构
548
+ * @param {array} array
549
+ * @param {String} id
550
+ * @param {String} pid
551
+ * @param {String} children
552
+ * @return {Array}
553
+ */
554
+ function arrayToTree(array) {
555
+ var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'id';
556
+ var pid = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pid';
557
+ var children = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'children';
558
+
559
+ var data = cloneDeep(array);
560
+ var result = [];
561
+ var hash = {};
562
+ data.forEach(function (item, index) {
563
+ hash[data[index][id]] = data[index];
564
+ });
565
+
566
+ data.forEach(function (item) {
567
+ var hashVP = hash[item[pid]];
568
+ if (hashVP) {
569
+ !hashVP[children] && (hashVP[children] = []);
570
+ hashVP[children].push(item);
571
+ } else {
572
+ result.push(item);
573
+ }
574
+ });
575
+ return result;
576
+ }
577
+
578
+ /**
579
+ * getLabelValueTree
580
+ * @version 171221 1.0
581
+ * @param {Arr} data 数据源
582
+ * @param {Arr} children 子类键名
583
+ */
584
+ var getLabelValueTree = exports.getLabelValueTree = function getLabelValueTree(Data) {
585
+ var label = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'label';
586
+ var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'value';
587
+ var children = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'children';
588
+
589
+ var data = JSON.parse((0, _stringify2.default)(Data));
590
+ var tree = [];
591
+ for (var i in data) {
592
+ if (data[i][children] && data[i][children].length) {
593
+ tree.push({
594
+ label: data[i][label] || data[i][value],
595
+ value: data[i][value],
596
+ children: getLabelValueTree(data[i][children], label, value, children)
597
+ });
598
+ } else {
599
+ tree.push({
600
+ label: data[i][label] || data[i][value],
601
+ value: data[i][value]
602
+ });
603
+ }
604
+ }
605
+ return tree;
606
+ };
607
+
608
+ /**
609
+ * 根据label的值获取value
610
+ * @version 171221 1.0
611
+ * @param {Arr} data 数据源
612
+ * @param {string} key label的值
613
+ * @param {string} label label的键名
614
+ * @param {string} value value的键名
615
+ */
616
+ var getValueFromArray = exports.getValueFromArray = function getValueFromArray() {
617
+ var Data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
618
+ var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key';
619
+ var label = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'label';
620
+ var value = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'value';
621
+
622
+ var data = JSON.parse((0, _stringify2.default)(Data));
623
+ var res = '';
624
+ for (var i in data) {
625
+ if (data[i][label] == key) {
626
+ res = data[i][value];
627
+ break;
628
+ }
629
+ }
630
+ return res;
631
+ };
632
+
633
+ /**
634
+ * 获取元素的属性
635
+ * @version 171221 1.0
636
+ * @param {node} obj 元素
637
+ * @param {string} name 属性key
638
+ */
639
+ var getStyle = exports.getStyle = function getStyle(obj, name) {
640
+ if (obj.currentStyle) {
641
+ return obj.currentStyle[name];
642
+ } else {
643
+ return getComputedStyle(obj, false)[name];
644
+ }
645
+ };
646
+
647
+ /**
648
+ * 延时
649
+ * @export
650
+ * @param {*} timeout 延时时间ms
651
+ * @returns
652
+ */
653
+ function delay() {
654
+ var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 700;
655
+
656
+ return new _promise2.default(function (resolve) {
657
+ setTimeout(resolve, timeout);
658
+ });
659
+ }
660
+
661
+ /**
662
+ * 文件转为字符串文件
663
+ *
664
+ * @export
665
+ * @param {*} file
666
+ * @returns
667
+ */
668
+ function transformFileToText(file) {
669
+ return new _promise2.default(function (resolve) {
670
+ var reader = new FileReader();
671
+ reader.readAsText(file);
672
+ reader.onload = function () {
673
+ resolve(reader.result);
674
+ };
675
+ });
676
+ }
677
+
678
+ /**
679
+ * 兼容requestAnimationFrame
680
+ *
681
+ * @export
682
+ */
683
+ function animationFramePolyfill() {
684
+ var lastTime = 0;
685
+ var vendors = ['ms', 'moz', 'webkit', 'o'];
686
+ for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
687
+ window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
688
+ window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];
689
+ }
690
+
691
+ if (!window.requestAnimationFrame) {
692
+ window.requestAnimationFrame = function (callback, element) {
693
+ var currTime = new Date().getTime();
694
+ var timeToCall = Math.max(0, 16 - (currTime - lastTime));
695
+ var id = window.setTimeout(function () {
696
+ callback(currTime + timeToCall);
697
+ }, timeToCall);
698
+ lastTime = currTime + timeToCall;
699
+ return id;
700
+ };
701
+ }
702
+
703
+ if (!window.cancelAnimationFrame) {
704
+ window.cancelAnimationFrame = function (id) {
705
+ clearTimeout(id);
706
+ };
707
+ }
708
+ }
709
+
710
+ /**
711
+ * 是否符合(中文、英文、汉字、汉字符号和 - _ 字符)
712
+ * @param {*} text
713
+ * @returns
714
+ */
715
+ function isAccordReg(text) {
716
+ var reg = /^[a-zA-Z0-9\u4e00-\u9fa5\~\!\@\#\¥\%\……\&\*\(\)\——\-\_\+\=\【\】\{\}\、\|\;\‘\’\:\“\”\《\》\?\,\。\、]+$/g;
717
+ return reg.test(text);
718
+ }
719
+
720
+ /**
721
+ * 是否符合(中文、英文和- _ 字符)
722
+ * @param {*} text
723
+ * @returns
724
+ */
725
+ function isSearchKeyReg(text) {
726
+ var reg = /^[a-zA-Z0-9\u4e00-\u9fa5\-\_]+$/g;
727
+ return reg.test(text);
728
+ }
729
+
730
+ /**
731
+ * 格式化数字 , 分隔
732
+ * 689878 => 689,878
733
+ * @export
734
+ * @param {*} num
735
+ * @returns
736
+ */
737
+ function toThousands(num) {
738
+ var num = (num || 0).toString(),
739
+ result = '';
740
+ while (num.length > 3) {
741
+ result = ',' + num.slice(-3) + result;
742
+ num = num.slice(0, num.length - 3);
743
+ }
744
+ if (num) {
745
+ result = num + result;
746
+ }
747
+ return result;
748
+ }
749
+
750
+ /**
751
+ * 在对象中查找是否存在某个字段
752
+ * @param {Object} source 对象
753
+ * @param {String} 路径,用逗号隔开(如 data,person,id为查找source.data.person.id)
754
+ * @param {String} 未找到返回的值,默认返回undefined
755
+ * @param {String} 字段间的间隔符号
756
+ */
757
+ function findValueFormObject(source, findStr) {
758
+ var noVlaue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'undefined';
759
+ var splitStr = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ',';
760
+
761
+ var data = JSON.parse((0, _stringify2.default)(source));
762
+ var arr = findStr.split(splitStr);
763
+ for (var i = 0; i < arr.length; i++) {
764
+ if (data[arr[i]] != undefined) {
765
+ data = data[arr[i]];
766
+ } else {
767
+ return noVlaue;
768
+ }
769
+ }
770
+ return data;
771
+ }
772
+
773
+ function loadScript(src) {
774
+ return new _promise2.default(function (resolve, reject) {
775
+ var script = document.createElement('script');
776
+ script.type = 'text/javascript';
777
+ script.src = src;
778
+ script.onload = resolve;
779
+ script.onerror = reject;
780
+ document.head.appendChild(script);
781
+ });
782
+ }
783
+
784
+ /*******
785
+ * @description: 随机抽取数组中的n个值
786
+ * @author: 琴时
787
+ * @param {*} array
788
+ * @param {*} num
789
+ * @return {Array}
790
+ */
791
+ var randomNumEnum = exports.randomNumEnum = function randomNumEnum(array, num) {
792
+ var shuffled = array.slice(0),
793
+ i = array.length,
794
+ min = i - num,
795
+ temp = void 0,
796
+ index = void 0;
797
+ while (i-- > min) {
798
+ index = Math.floor((i + 1) * Math.random());
799
+ temp = shuffled[index];
800
+ shuffled[index] = shuffled[i];
801
+ shuffled[i] = temp;
802
+ }
803
+ return shuffled.slice(min);
804
+ };