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,451 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getDifferDate = exports.userLogout = exports.refreshToken = undefined;
7
+
8
+ var _typeof2 = require('babel-runtime/helpers/typeof');
9
+
10
+ var _typeof3 = _interopRequireDefault(_typeof2);
11
+
12
+ var _stringify = require('babel-runtime/core-js/json/stringify');
13
+
14
+ var _stringify2 = _interopRequireDefault(_stringify);
15
+
16
+ var _message2 = require('antd/lib/message');
17
+
18
+ var _message3 = _interopRequireDefault(_message2);
19
+
20
+ require('antd/lib/message/style');
21
+
22
+ require('isomorphic-fetch');
23
+
24
+ var _NHCore = require('./NHCore');
25
+
26
+ var _MD = require('./MD5');
27
+
28
+ var _createHashHistory = require('history/createHashHistory');
29
+
30
+ var _createHashHistory2 = _interopRequireDefault(_createHashHistory);
31
+
32
+ var _moment = require('moment');
33
+
34
+ var _moment2 = _interopRequireDefault(_moment);
35
+
36
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
+
38
+ var hashHistory = (0, _createHashHistory2.default)();
39
+ var hasClass = function hasClass(node, className) {
40
+ var exist = false;
41
+ if (node.getAttribute('class')) {
42
+ // 存class属性
43
+ // 式1
44
+ if (node.getAttribute('class').indexOf(className) > -1) {
45
+ exist = true;
46
+ }
47
+ // 式2
48
+ if (node.className.indexOf(className) > -1) {
49
+ exist = true;
50
+ }
51
+ }
52
+ return exist;
53
+ };
54
+
55
+ var parents = function parents(obj, className) {
56
+ if (obj.tagName === 'BODY') {
57
+ return undefined;
58
+ }
59
+ if (hasClass(obj, className)) {
60
+ return obj;
61
+ } else {
62
+ return parents(obj.parentNode, className);
63
+ }
64
+ };
65
+
66
+ var getTitles = function getTitles(fields) {
67
+ var errorInfo = '';
68
+ var errorInfoMap = {};
69
+ for (var i = 0; i < fields.length; i++) {
70
+ //先对动态表单中的字段做判断,如果不是动态表单才最常规的判断
71
+ var objs = document.getElementsByClassName('dynamic-label-' + fields[i].toUpperCase());
72
+ if (objs && objs.length > 0) {
73
+ //说明此时是动态表单
74
+ for (var _i = 0; _i < objs.length; _i++) {
75
+ errorInfoMap[objs[_i].innerHTML] = true;
76
+ }
77
+ } else {
78
+ var obj = document.getElementById(fields[i]);
79
+ if (obj) {
80
+ //获取标签的上级第一个存在ant-form-item-control-wrapper类的标签
81
+ var parentObj = parents(obj, 'ant-form-item-control-wrapper');
82
+ if (parentObj) {
83
+ var prevObj = parentObj.previousSibling;
84
+ if (prevObj) {
85
+ var labelObj = prevObj.getElementsByTagName('label');
86
+ if (labelObj && labelObj.length > 0) {
87
+ var title = labelObj[0].attributes['title'].nodeValue;
88
+ if (title) {
89
+ errorInfo += ',' + title;
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }
95
+ }
96
+ }
97
+ for (var _title in errorInfoMap) {
98
+ errorInfo += ',' + _title;
99
+ }
100
+ return errorInfo.length > 0 ? errorInfo.substring(1) : '';
101
+ };
102
+
103
+ /**
104
+ * 唯一性约束错误提示
105
+ */
106
+ var onlyDataErrorTip = function onlyDataErrorTip(res) {
107
+ var fieldStr = res.message.substring(14, res.message.length - 1);
108
+ var fields = fieldStr.split(',');
109
+ var errorInfo = getTitles(fields);
110
+ if (errorInfo.length > 0) {
111
+ _message3.default.info(errorInfo + '已经存在!');
112
+ } else {
113
+ _message3.default.info('存在数据违反了唯一性约束,请检查之后再提交!');
114
+ }
115
+ };
116
+
117
+ /**
118
+ * 数据太长错误提示
119
+ */
120
+ var dataToLongErrorTip = function dataToLongErrorTip(res) {
121
+ var fieldStr = res.message.substring(16, res.message.length - 1);
122
+ var fields = fieldStr.split(',');
123
+ var errorInfo = getTitles([fields[0]]);
124
+ if (errorInfo.length > 0) {
125
+ _message3.default.info(errorInfo + '数据太长(要求长度:' + fields[2] + ',实际长度:' + fields[1] + ')!');
126
+ } else {
127
+ _message3.default.info('存在数据值太长,请检查之后再提交!');
128
+ }
129
+ };
130
+
131
+ /**
132
+ * 数据不能为空
133
+ */
134
+ var columnNotNullTip = function columnNotNullTip(res) {
135
+ var fieldStr = res.message.substring(14, res.message.length - 1);
136
+ var fields = fieldStr.split(',');
137
+ var errorInfo = getTitles(fields);
138
+ if (errorInfo.length > 0) {
139
+ _message3.default.info(errorInfo + '不能为空!');
140
+ } else {
141
+ _message3.default.info('存在数据不能为空,请检查之后再提交!');
142
+ }
143
+ };
144
+
145
+ /**
146
+ * 刷新Token
147
+ * @param refreshToken 当前登录用户的刷新token值
148
+ * @param callback 回调方法
149
+ */
150
+ var refreshToken = exports.refreshToken = function refreshToken(_refreshToken, callback) {
151
+ fetch('api/refreshToken?refreshToken=' + _refreshToken, {
152
+ method: 'GET',
153
+ credentials: 'include',
154
+ headers: {
155
+ 'Content-Type': 'application/x-www-form-urlencoded',
156
+ 'X-Requested-With': 'XMLHttpRequest',
157
+ appId: 'ly-zhxg'
158
+ }
159
+ }).then(function (response) {
160
+ return response.json();
161
+ }).then(function (res) {
162
+ if (res.meta && res.meta.statusCode === 200) {
163
+ if (callback && typeof callback === 'function') {
164
+ callback(res.data);
165
+ }
166
+ } else {
167
+ //刷新token失败,跳转到登录页面重新登录
168
+ userLogout();
169
+ }
170
+ return res;
171
+ }).catch(function (error) {
172
+ //刷新token失败,跳转到登录页面重新登录
173
+ userLogout();
174
+ });
175
+ };
176
+
177
+ var userLogout = exports.userLogout = function userLogout() {
178
+ fetch('logout', {
179
+ method: 'GET',
180
+ credentials: 'include',
181
+ headers: {
182
+ 'Content-Type': 'application/x-www-form-urlencoded',
183
+ 'X-Requested-With': 'XMLHttpRequest'
184
+ }
185
+ }).then(function (response) {
186
+ return response.json();
187
+ }).then(function (res) {
188
+ if (res.meta && res.meta.statusCode === 200) {
189
+ sessionStorage.removeItem('userLogin');
190
+ sessionStorage.removeItem('access_token');
191
+ sessionStorage.removeItem('refresh_token');
192
+ sessionStorage.removeItem('user_last_operation_time');
193
+ if (window.casStatus && window.casLogoutUrl && window.casLogoutUrl != '') {
194
+ window.location = window.casLogoutUrl;
195
+ } else {
196
+ hashHistory.push({
197
+ pathname: '/login'
198
+ });
199
+ }
200
+ } else {
201
+ _message3.default.error('退出登陆失败,请稍后再试一次!');
202
+ }
203
+ return res;
204
+ }).catch(function (error) {
205
+ // 网络请求失败返回执行该回调函数,得到错误信息
206
+ _message3.default.error('网络请求异常,请联系管理员');
207
+ return error;
208
+ });
209
+ };
210
+
211
+ //获取两个日期的相差秒数
212
+ var getDifferDate = exports.getDifferDate = function getDifferDate(firstDate, secondDate) {
213
+ //1) 将两个日期字符串转化为日期对象
214
+ var startDate = new Date(firstDate);
215
+ var endDate = new Date(secondDate);
216
+ //2) 计算两个日期相差的毫秒数
217
+ var msecNum = endDate.getTime() - startDate.getTime();
218
+ //3) 计算两个日期相差的天数
219
+ return Math.floor(msecNum / parseFloat(1000));
220
+ };
221
+
222
+ var NHFetch = function NHFetch(pUrl, pMethod, params, errorFunc) {
223
+ var opts = {};
224
+ var tmpHeader = '';
225
+ var url = pUrl;
226
+ var method = '';
227
+
228
+ if (url.startsWith('/')) {
229
+ url = window.baseUrl + url;
230
+ }
231
+
232
+ //默认的请求方式是POST
233
+ if (pMethod === undefined || pMethod === '') {
234
+ method = 'POST';
235
+ } else {
236
+ method = pMethod;
237
+ }
238
+
239
+ if (method.toLowerCase() === 'get') {
240
+ //如果是get方式,则把参数拼凑到url路径上面
241
+ if (params !== undefined && params !== '' && (0, _stringify2.default)(params) !== '{}') {
242
+ //如果params是Map对象,则需要先转换成字符串
243
+ if (typeof params === 'string') {
244
+ url = url + '?' + params;
245
+ } else {
246
+ //不是字符串就一定是map对象
247
+ var paramsStr = '';
248
+ for (var key in params) {
249
+ if ((0, _typeof3.default)(params[key]) === 'object') {
250
+ var params2 = params[key];
251
+ for (var key2 in params2) {
252
+ paramsStr += '&' + key + '.' + key2 + '=' + params2[key2];
253
+ }
254
+ } else {
255
+ paramsStr += '&' + key + '=' + params[key];
256
+ }
257
+ }
258
+
259
+ url = paramsStr ? url + '?' + paramsStr : url;
260
+ //+"&time="+new Date().getTime();
261
+ }
262
+ } else {
263
+ //url = url + "?time="+new Date().getTime();
264
+ }
265
+ tmpHeader = 'application/x-www-form-urlencoded;charset=UTF-8';
266
+ } else {
267
+ //除了get,所有方法改为post
268
+ method = 'POST';
269
+ tmpHeader = 'application/json;charset=UTF-8';
270
+ if (params !== undefined && params !== '') {
271
+ opts.body = (0, _stringify2.default)(params);
272
+ }
273
+ }
274
+ opts.method = method;
275
+ // credentials: 'include',
276
+ opts.headers = { 'Content-Type': tmpHeader };
277
+
278
+ //设置网关加密串
279
+ var timestemp = new Date().valueOf();
280
+ var csrfToken = (0, _MD.hex_md5)('timestamp=' + timestemp + ',key=' + 'lianyi2019' //这个就是与网关约定的秘钥
281
+ );
282
+ if (url.indexOf('?') > -1 && url.indexOf('=') > -1 && url.indexOf('?') < url.indexOf('=')) {
283
+ url = url + '&csrfTimestamp=' + timestemp + '&csrfToken=' + csrfToken;
284
+ } else {
285
+ url = url + '?csrfTimestamp=' + timestemp + '&csrfToken=' + csrfToken;
286
+ }
287
+
288
+ var token = window.sessionStorage.getItem('access_token');
289
+ if (token) {
290
+ opts.headers.Authorization = token;
291
+ }
292
+ var nodeEnv = process.env.NODE_ENV || 'development';
293
+ if (nodeEnv === 'development') {
294
+ opts.headers.loginUserId = (0, _NHCore.getLoginUser)().userId;
295
+ }
296
+
297
+ opts.credentials = 'include';
298
+ return fetch(url, opts).then(function (response) {
299
+ if (response.status === 200) {
300
+ if (pMethod === 'nbpost' || pMethod === 'NBPOST') {
301
+ return response.blob();
302
+ } else {
303
+ if (window.gateway_version === '2') {
304
+ //新网关
305
+ sessionStorage.removeItem('user_last_operation_time');
306
+ //记录用户最后一次操作时间
307
+ var userLastOperationTime = (0, _moment2.default)().format('YYYY-MM-DD HH:mm:ss');
308
+ sessionStorage.setItem('user_last_operation_time', userLastOperationTime);
309
+ }
310
+ return response.json();
311
+ }
312
+ } else if (response.status === 302) {
313
+ if (window.gateway_version === '2') {
314
+ //新网关
315
+ var userLogin = sessionStorage.getItem('userLogin') ? JSON.parse(sessionStorage.getItem('userLogin')) : {};
316
+ var _token = sessionStorage.getItem('refresh_token');
317
+ var _userLastOperationTime = sessionStorage.getItem('user_last_operation_time');
318
+ var expiresIn = userLogin.expiresIn || 1800;
319
+ var userLastOperationTimeStr = _userLastOperationTime.replace('/-/g', '/');
320
+ //用户最后一次操作时间
321
+ var userLastOperationTimeDate = new Date(userLastOperationTimeStr);
322
+ //当前时间
323
+ var nowDate = new Date();
324
+ //在token超时阈值范围内用户没有任何操作,则直接退出登录,重新登录
325
+ var differDate = getDifferDate(userLastOperationTimeDate, nowDate);
326
+ if (differDate >= expiresIn) {
327
+ userLogout();
328
+ } else {
329
+ //在token超时阈值范围内用户有操作,则重新生成accessToken
330
+ refreshToken(_token, function (newAccessToken) {
331
+ sessionStorage.removeItem('access_token');
332
+ sessionStorage.setItem('access_token', newAccessToken);
333
+ var userLastOperationTime = (0, _moment2.default)().format('YYYY-MM-DD HH:mm:ss');
334
+ sessionStorage.setItem('user_last_operation_time', userLastOperationTime);
335
+ });
336
+ }
337
+ } else {
338
+ _message3.default.error('未登录或登录已过期,请刷新页面重新登录!');
339
+ sessionStorage.removeItem('userLogin');
340
+ sessionStorage.removeItem('access_token');
341
+ }
342
+ } else if (response.status === 401) {
343
+ _message3.default.warning('您正在尝试访问未授权的功能!');
344
+ } else {
345
+ //如果存在错误的回调方法,则调用回调方法,否则提示网络请求异常
346
+ if (errorFunc) {
347
+ errorFunc();
348
+ }
349
+ }
350
+ try {
351
+ return response.json();
352
+ } catch (e) {
353
+ console.log(e);
354
+ return undefined;
355
+ }
356
+ }).then(function (res) {
357
+ if (res === undefined) {
358
+ _message3.default.error('系统出现异常,请联系管理员!');
359
+ return undefined;
360
+ } else if (res.meta && res.meta.statusCode === 401 || res.code === 302) {
361
+ //判断是否没有权限
362
+ _message3.default.warning('您正在尝试访问未授权的功能!');
363
+ return undefined;
364
+ } else if (res.meta && res.meta.statusCode === 500) {
365
+ var msg = res.meta.message;
366
+ if (null !== msg) {
367
+ if (msg.startsWith('businessLogicError[')) {
368
+ //自定义的提示(错误)
369
+ _message3.default.error(msg.substring(19, msg.length - 1));
370
+ // Modal.error({ title: '错误提示', content: res.message.substring(19,res.message.length-1),});
371
+ } else if (msg.startsWith('businessLogicWarm[')) {
372
+ //自定义的提示(警告)
373
+ _message3.default.warning(msg.substring(18, msg.length - 1));
374
+ // Modal.warning({ title: '警告提示', content: res.message.substring(18,res.message.length-1),});
375
+ } else if (msg.startsWith('businessLogicInfo[')) {
376
+ //自定义的提示(消息)
377
+ _message3.default.info(msg.substring(18, msg.length - 1));
378
+ // Modal.info({ title: '消息提示', content: res.message.substring(18,res.message.length-1),});
379
+ } else if (msg.startsWith('onlyDataError[')) {
380
+ //数据唯一性异常
381
+ onlyDataErrorTip(res.meta);
382
+ } else if (msg.startsWith('dataToLongError[')) {
383
+ //数据太长
384
+ dataToLongErrorTip(res.meta);
385
+ } else if (msg.startsWith('columnNotNull[')) {
386
+ //数据不能为空异常
387
+ columnNotNullTip(res.meta);
388
+ } else {
389
+ _message3.default.error('系统出现异常,请联系管理员!');
390
+ }
391
+ } else {
392
+ _message3.default.error('系统出现异常,请联系管理员!');
393
+ }
394
+ // Modal.error({ title: '错误提示', content:'系统出现异常,请联系管理员!'});
395
+ return undefined;
396
+ } else if (res && res.code && res.code !== 200) {
397
+ //判断出现的问题
398
+ var _msg = res.message;
399
+ if (!_msg) {
400
+ _message3.default.error('系统出现异常,请联系管理员!');
401
+ } else if (_msg.startsWith('businessLogicError[')) {
402
+ //自定义的提示(错误)
403
+ _message3.default.error(_msg.substring(19, _msg.length - 1));
404
+ // Modal.error({ title: '错误提示', content: msg.substring(19,msg.length-1),});
405
+ } else if (_msg.startsWith('businessLogicWarm[')) {
406
+ //自定义的提示(警告)
407
+ _message3.default.warning(_msg.substring(18, _msg.length - 1));
408
+ // Modal.warning({ title: '警告提示', content: msg.substring(18,msg.length-1),});
409
+ } else if (_msg.startsWith('businessLogicInfo[')) {
410
+ //自定义的提示(消息)
411
+ _message3.default.info(_msg.substring(18, _msg.length - 1));
412
+ // Modal.info({ title: '消息提示', content: msg.substring(18,msg.length-1),});
413
+ } else if (_msg.startsWith('onlyDataError[')) {
414
+ //数据唯一性异常
415
+ onlyDataErrorTip(res);
416
+ } else if (_msg.startsWith('dataToLongError[')) {
417
+ //数据太长
418
+ dataToLongErrorTip(res);
419
+ } else if (_msg.startsWith('columnNotNull[')) {
420
+ //数据不能为空异常
421
+ columnNotNullTip(res);
422
+ } else if (res.code == 10002) {
423
+ _message3.default.warn('\u53C2\u6570\u6709\u8BEF\uFF1A' + res.message);
424
+ } else {
425
+ _message3.default.error('系统出现异常,请联系管理员!');
426
+ // Modal.error({ title: '错误提示', content:'系统出现异常,请联系管理员!'});
427
+ }
428
+ return undefined;
429
+ } else if (res.status && res.status === 404) {
430
+ _message3.default.error('系统出现异常,请联系管理员!');
431
+ // Modal.error({ title: '错误提示', content:'系统出现异常,请联系管理员!'});
432
+ return undefined;
433
+ } else if (res && res.code && res.code === 200) {
434
+ //返回的是正确的结果,公司通用放回格式
435
+ return res;
436
+ } else if (res && res.meta && (res.meta.statusCode === 200 || res.meta.statusCode === 302)) {
437
+ //返回的是正确的结果,四部返回格式
438
+ return res;
439
+ } else {
440
+ //剩下的情况都是有错误
441
+ _message3.default.error('系统出现异常,请联系管理员!');
442
+ // Modal.error({ title: '错误提示', content:'系统出现异常,请联系管理员!'});
443
+ }
444
+ //在此处统一对后台抛出来的异常进行处理
445
+ return undefined;
446
+ }).catch(function (error) {
447
+ return error;
448
+ });
449
+ };
450
+
451
+ exports.default = NHFetch;