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.
- package/README.md +4 -1
- package/assets/components/KyCheckButton/index.less +23 -0
- package/assets/components/KyCollapse/index.less +15 -0
- package/assets/components/KyContainerFrame/index.less +21 -0
- package/assets/components/KyEditableTable/index.less +116 -0
- package/assets/components/KyEmpty/index.less +8 -0
- package/assets/components/KyIcon/index.less +6 -0
- package/assets/components/KyMore/index.less +9 -0
- package/assets/components/KyTable/checkbuttons.less +23 -0
- package/assets/components/KyTable/highSearchForm.less +16 -0
- package/assets/components/KyTable/index.less +558 -0
- package/assets/components/KyTitle/index.less +39 -0
- package/assets/images/noData.png +0 -0
- package/lib/components/KyBtnBox/index.js +137 -0
- package/lib/components/KyCheckBox/index.js +361 -0
- package/lib/components/KyCheckButton/index.js +256 -0
- package/lib/components/KyCollapse/index.js +144 -0
- package/lib/components/KyContainerFrame/index.js +239 -0
- package/lib/components/KyEditableTable/component.js +216 -0
- package/lib/components/KyEditableTable/index.js +1537 -0
- package/lib/components/KyEmpty/index.js +102 -0
- package/lib/components/KyExcel/ExcelForm.js +111 -0
- package/lib/components/KyExcel/index.js +601 -0
- package/lib/components/KyIcon/index.js +51 -0
- package/lib/components/KyModal/buildTitle.js +1 -0
- package/lib/components/KyModal/dragM.js +1 -0
- package/lib/components/KyMore/index.js +74 -0
- package/lib/components/KyPreview/index.js +1 -0
- package/lib/components/KyTable/AddFieldsModal.js +360 -0
- package/lib/components/KyTable/action.js +222 -0
- package/lib/components/KyTable/checkButtons.js +244 -0
- package/lib/components/KyTable/data.js +726 -0
- package/lib/components/KyTable/expexcel.js +269 -0
- package/lib/components/KyTable/highSearchForm.js +749 -0
- package/lib/components/KyTable/highSelect.js +313 -0
- package/lib/components/KyTable/index.js +2075 -0
- package/lib/components/KyTable/marqueenText.js +142 -0
- package/lib/components/KyTable/overflowColumn.js +113 -0
- package/lib/components/KyTable/text.js +96 -0
- package/lib/components/KyTable/textGroup.js +108 -0
- package/lib/components/KyTitle/index.js +127 -0
- package/lib/components/KyUpload/index.js +1 -0
- package/lib/index.js +240 -59
- package/lib/layouts/Exception/403/index.js +1 -0
- package/lib/layouts/Exception/403.js +1 -0
- package/lib/layouts/Exception/404.js +1 -0
- package/lib/layouts/Exception/500.js +1 -0
- package/lib/layouts/LeftMenu/index.js +1 -0
- package/lib/layouts/Login/lyPassword.js +1 -0
- package/lib/layouts/NavigationBar/index.js +1 -0
- package/lib/layouts/Top/index.js +1 -0
- package/lib/layouts/TopMenu/index.js +1 -0
- package/lib/layouts/layout/index.js +1 -0
- package/lib/layouts/mixTop/index.js +1 -0
- package/lib/layouts/settingDrawer/colorChange.js +1 -0
- package/lib/layouts/settingDrawer/colorPicker.js +1 -0
- package/lib/utils/MD5.js +256 -0
- package/lib/utils/NHCore.js +273 -0
- package/lib/utils/NHFetch.js +451 -0
- package/lib/utils/common.js +516 -0
- package/lib/utils/createUuid.js +37 -0
- package/lib/utils/equalsObj.js +59 -0
- package/lib/utils/getLoginUser.js +10 -0
- package/lib/utils/getSize.js +27 -0
- package/lib/utils/index.js +804 -0
- 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
|
+
};
|