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,2075 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = undefined;
7
+
8
+ var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
9
+
10
+ var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
11
+
12
+ var _message2 = require('antd/lib/message');
13
+
14
+ var _message3 = _interopRequireDefault(_message2);
15
+
16
+ var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
17
+
18
+ var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
19
+
20
+ var _stringify = require('babel-runtime/core-js/json/stringify');
21
+
22
+ var _stringify2 = _interopRequireDefault(_stringify);
23
+
24
+ var _table = require('antd/lib/table');
25
+
26
+ var _table2 = _interopRequireDefault(_table);
27
+
28
+ var _icon = require('antd/lib/icon');
29
+
30
+ var _icon2 = _interopRequireDefault(_icon);
31
+
32
+ var _col = require('antd/lib/col');
33
+
34
+ var _col2 = _interopRequireDefault(_col);
35
+
36
+ var _row = require('antd/lib/row');
37
+
38
+ var _row2 = _interopRequireDefault(_row);
39
+
40
+ var _radio = require('antd/lib/radio');
41
+
42
+ var _radio2 = _interopRequireDefault(_radio);
43
+
44
+ var _button = require('antd/lib/button');
45
+
46
+ var _button2 = _interopRequireDefault(_button);
47
+
48
+ var _select = require('antd/lib/select');
49
+
50
+ var _select2 = _interopRequireDefault(_select);
51
+
52
+ var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
53
+
54
+ var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
55
+
56
+ var _keys = require('babel-runtime/core-js/object/keys');
57
+
58
+ var _keys2 = _interopRequireDefault(_keys);
59
+
60
+ var _extends2 = require('babel-runtime/helpers/extends');
61
+
62
+ var _extends3 = _interopRequireDefault(_extends2);
63
+
64
+ var _assign = require('babel-runtime/core-js/object/assign');
65
+
66
+ var _assign2 = _interopRequireDefault(_assign);
67
+
68
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
69
+
70
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
71
+
72
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
73
+
74
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
75
+
76
+ var _createClass2 = require('babel-runtime/helpers/createClass');
77
+
78
+ var _createClass3 = _interopRequireDefault(_createClass2);
79
+
80
+ var _inherits2 = require('babel-runtime/helpers/inherits');
81
+
82
+ var _inherits3 = _interopRequireDefault(_inherits2);
83
+
84
+ var _input = require('antd/lib/input');
85
+
86
+ var _input2 = _interopRequireDefault(_input);
87
+
88
+ require('antd/lib/message/style');
89
+
90
+ require('antd/lib/table/style');
91
+
92
+ require('antd/lib/icon/style');
93
+
94
+ require('antd/lib/col/style');
95
+
96
+ require('antd/lib/row/style');
97
+
98
+ require('antd/lib/radio/style');
99
+
100
+ require('antd/lib/button/style');
101
+
102
+ require('antd/lib/select/style');
103
+
104
+ require('antd/lib/input/style');
105
+
106
+ var _react = require('react');
107
+
108
+ var _react2 = _interopRequireDefault(_react);
109
+
110
+ var _reactCustomScrollbars = require('react-custom-scrollbars');
111
+
112
+ var _NHCore = require('../../utils/NHCore');
113
+
114
+ var _action = require('./action.js');
115
+
116
+ var _action2 = _interopRequireDefault(_action);
117
+
118
+ var _expexcel = require('./expexcel.js');
119
+
120
+ var _expexcel2 = _interopRequireDefault(_expexcel);
121
+
122
+ var _KyModal = require('../KyModal');
123
+
124
+ var _KyModal2 = _interopRequireDefault(_KyModal);
125
+
126
+ var _NHFetch = require('../../utils/NHFetch');
127
+
128
+ var _NHFetch2 = _interopRequireDefault(_NHFetch);
129
+
130
+ var _textGroup = require('./textGroup');
131
+
132
+ var _textGroup2 = _interopRequireDefault(_textGroup);
133
+
134
+ var _text = require('./text');
135
+
136
+ var _text2 = _interopRequireDefault(_text);
137
+
138
+ var _highSearchForm = require('./highSearchForm');
139
+
140
+ var _highSearchForm2 = _interopRequireDefault(_highSearchForm);
141
+
142
+ require('../../../assets/components/KyTable/index.less');
143
+
144
+ var _checkButtons = require('./checkButtons');
145
+
146
+ var _checkButtons2 = _interopRequireDefault(_checkButtons);
147
+
148
+ var _marqueenText = require('./marqueenText');
149
+
150
+ var _marqueenText2 = _interopRequireDefault(_marqueenText);
151
+
152
+ var _reactResizable = require('react-resizable');
153
+
154
+ var _virtuallistAntd = require('virtuallist-antd');
155
+
156
+ var _data = require('./data.js');
157
+
158
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
159
+
160
+ var Search = _input2.default.Search;
161
+ var loadCount = 0;
162
+ /*
163
+ searchList配置参数
164
+ [
165
+ {
166
+ title:'发布状态',
167
+ field:'zt',
168
+ isLeftFixed:false,
169
+ list:[
170
+ {value:'1',text:'已发布'},
171
+ {value:'0',text:'未发布'},
172
+ ]
173
+ }
174
+ ]
175
+ */
176
+ /*
177
+ selectConfig配置参数
178
+ {
179
+ title: '申报状态',
180
+ field: 'STATE_CODE',
181
+ list: [
182
+ { value: '1', label: '评审中' },
183
+ { value: '2', label: '通过' },
184
+ { value: '3', label: '不通过' },
185
+ ],
186
+ },
187
+ */
188
+ /**
189
+ * javaScript获取相邻元素
190
+ * @param {*} ele dom
191
+ * @param {*} type 上一个(1)or下一个(0)
192
+ * @returns 返回查找到的元素Dom对象,无则返回null
193
+ */
194
+ function getNearEle(ele, type) {
195
+ type = type == 1 ? 'previousSibling' : 'nextSibling';
196
+ var nearEle = ele[type];
197
+ while (nearEle) {
198
+ if (nearEle.nodeType === 1) {
199
+ return nearEle;
200
+ }
201
+ nearEle = nearEle[type];
202
+ if (!nearEle) {
203
+ break;
204
+ }
205
+ }
206
+ return null;
207
+ }
208
+
209
+ var KyTable = function (_React$Component) {
210
+ (0, _inherits3.default)(KyTable, _React$Component);
211
+ (0, _createClass3.default)(KyTable, [{
212
+ key: 'UNSAFE_componentWillReceiveProps',
213
+ value: function UNSAFE_componentWillReceiveProps(nextProps) {
214
+ var updateState = {};
215
+ var newParams = {};
216
+ var newSearchParams = {};
217
+ var columns = nextProps.columns,
218
+ searchParams = nextProps.searchParams,
219
+ _nextProps$searchDivF = nextProps.searchDivFlag,
220
+ searchDivFlag = _nextProps$searchDivF === undefined ? true : _nextProps$searchDivF,
221
+ searchDefaultField = nextProps.searchDefaultField,
222
+ initParams = nextProps.initParams;
223
+
224
+
225
+ if (this.columnsIsChange(columns)) {
226
+ //判断columns改变时再更新,避免更新列名适应重加载失败
227
+ (0, _assign2.default)(newParams, (0, _extends3.default)({}, this.state.params), { columns: columns });
228
+ }
229
+
230
+ if (searchParams) {
231
+ (0, _assign2.default)(newSearchParams, (0, _extends3.default)({}, this.state.searchParams), (0, _extends3.default)({}, searchParams));
232
+ }
233
+
234
+ if ((0, _keys2.default)(newParams).length > 0) {
235
+ updateState['params'] = newParams;
236
+ }
237
+
238
+ if ((0, _keys2.default)(newSearchParams).length > 0) {
239
+ updateState['searchParams'] = newSearchParams;
240
+ }
241
+
242
+ if (!columns) {
243
+ columns = this.state.params.columns;
244
+ }
245
+
246
+ var commonSearchParams = this.getCommonSearch({ columns: columns, searchDivFlag: searchDivFlag, searchDefaultField: searchDefaultField });
247
+
248
+ if ((0, _keys2.default)(commonSearchParams).length > 0) {
249
+ updateState['tySearchAllField'] = commonSearchParams.tySearchAllField;
250
+ updateState['searchField'] = commonSearchParams.searchField;
251
+ }
252
+ if (this.state.searchText && !this.state.highSearch) {
253
+ var searchText = this.state.searchText;
254
+ var _newSearchParams = (0, _extends3.default)({}, this.state.quickSearcParams);
255
+ _newSearchParams[commonSearchParams.searchField] = searchText;
256
+ updateState['searchParams'] = (0, _extends3.default)({}, _newSearchParams, searchParams);
257
+ } else {
258
+ updateState['searchParams'] = (0, _extends3.default)({}, newSearchParams, this.state.quickSearcParams);
259
+ }
260
+ this.setState(updateState);
261
+ }
262
+ //设置可以传递参数的默认值
263
+
264
+ }]);
265
+
266
+ function KyTable(props) {
267
+ (0, _classCallCheck3.default)(this, KyTable);
268
+
269
+ var _this = (0, _possibleConstructorReturn3.default)(this, (KyTable.__proto__ || (0, _getPrototypeOf2.default)(KyTable)).call(this, props));
270
+
271
+ _initialiseProps.call(_this);
272
+
273
+ _this.state = {
274
+ searchParams: _this.props.searchParams, //自定义的搜索条件
275
+ searchTextMap: {}, //下拉框查询的值,用作查询
276
+ filters: {}, //多选方式过滤的值
277
+ sorter: {}, //排序字段
278
+ selectedRows: [], //选中的数据
279
+ selectedRowKeys: [], //选中的数据的主键loading
280
+ loading: false,
281
+ data: [], //数据
282
+ pageData: {
283
+ //分页设置的是三个参数
284
+ total: 0,
285
+ pageSize: _this.props.defaultPageSize, //当前页默认多少条数据
286
+ page: 1
287
+ },
288
+ height: _this.props.autoHeightFlag === true ? undefined : _this.props.height, //列表的高度
289
+ tableDivHeight: _this.props.autoHeightFlag === true ? '100%' : undefined,
290
+ width: undefined, //列表的宽度
291
+ className: (0, _NHCore.createUuid)(),
292
+ tySearchAllField: undefined, //通用查询的所有字段
293
+ searchText: undefined, //通用查询的值
294
+ searchField: undefined, //通用查询的字段
295
+ params: {
296
+ rowKey: undefined, //【推荐存在】设置的rowKey,在selectedRowKeys中存放的数据就是这个字段的值
297
+ checkbox: undefined, //【根据需求判断】是否需要checkbox
298
+ autoHeightFlag: undefined, //【根据需求判断】是否根据内容自适应高度,默认为false,表示高度固定
299
+ footerFlag: undefined, //【根据需求判断】是否需要尾部,不需要尾部的时候,不会进行分页,
300
+ searchDivFlag: undefined, //【根据需求判断】是否需要自带查询操作,默认需要
301
+ defaultExpandAllRows: undefined, //初始时,是否展开所有行
302
+ defaultExpandedRowKeys: undefined, //默认展开的行
303
+ expandedRowRender: undefined, //展开行的回调方法认展开的行
304
+ bordered: undefined, //是否展示外边框和列边框
305
+ titleHeight: undefined, //Title头部的高度,这个主要是为了解决出现多级表头的时候,高度计算会出现问题
306
+ showHeader: undefined, //是否显示头部
307
+ url: undefined, //后台访问地址,传了此路径就表示后台查询使用此路径而不是使用通用路径
308
+ rangeFilter: undefined, //是否开启职务范围过滤
309
+ rangeFilterList: undefined, // 自定义职务过滤列表
310
+ isDefaultLoadData: true, //是否默认加载数据,如果此参数为false,则默认不会加载数据,且此时显示加载中,这个主要是为了在当前模块还需要去后台查询初始化参数时,会出现开始就查询两次的情况
311
+ searchDefaultField: undefined, //通用搜索栏默认显示的字段
312
+ columns: undefined, //Table的列配置
313
+ columnsAfterFixed: undefined, //根据字段定义长度后的column,重置表格时如果存在该值就用这个替换原有column
314
+ searchList: undefined, // 搜索列表配置
315
+ showTableHeaderScroll: false // 表头在无内容时是否存在滚动(实现空表格滚动条功能)
316
+ },
317
+ highSearch: false,
318
+ pageCount: 0,
319
+ resetData: false, // 查询时需要重置列表数据,loadMore下有效
320
+ quickSearcParams: {}, // 快捷搜索查询参数
321
+ hightSearchData: [],
322
+ highSearchFetching: false, //是否正在获取高级搜索数据
323
+
324
+ //以下是列宽适应优化新增的
325
+ actionColumnsCfg: undefined, //操作列的配置,只有在数据有改变的时候,才需要重新计算该配置
326
+ selectValue: 'all' //下拉筛选值
327
+ };
328
+ return _this;
329
+ }
330
+ //在组件挂载之前调用一次。如果在这个函数里面调用setState,本次的render函数可以看到更新后的state,并且只渲染一次。
331
+
332
+
333
+ (0, _createClass3.default)(KyTable, [{
334
+ key: 'UNSAFE_componentWillMount',
335
+ value: function UNSAFE_componentWillMount() {
336
+ var _this2 = this;
337
+
338
+ //组件挂载之前先去获取配置信息
339
+ this.ansysParams(function (params) {
340
+ if (params.isDefaultLoadData !== false) {
341
+ _this2.filterTableData();
342
+ }
343
+ });
344
+ }
345
+ //在组件挂载之后调用一次。
346
+
347
+ }, {
348
+ key: 'componentDidMount',
349
+ value: function componentDidMount() {
350
+ var highSearch = this.props.highSearch;
351
+ var searchParams = this.props.searchParams;
352
+ window.addEventListener('resize', this.refreshHeight, false);
353
+ if (highSearch && (0, _keys2.default)(searchParams).length == 0) {
354
+ this.setState({ highSearch: true, searchParams: {} });
355
+ } else if (highSearch) {
356
+ this.setState({ highSearch: true });
357
+ }
358
+ if (this.existHightSearchTableSelect() || this.exitCheckButtonSelect()) {
359
+ // 加载高级搜索数据
360
+ this.getHightSearchData();
361
+ }
362
+ }
363
+ }, {
364
+ key: 'componentWillUnmount',
365
+ value: function componentWillUnmount() {
366
+ window.removeEventListener('resize', this.refreshHeight, false);
367
+ }
368
+ }, {
369
+ key: 'componentDidUpdate',
370
+ value: function componentDidUpdate() {
371
+ if (this.state.params.rowKey !== undefined) {}
372
+ // this.refreshHeight();
373
+
374
+ // this.tableHeaderScrollListener(); // 判断是否需要显示滚动条
375
+ }
376
+ }, {
377
+ key: 'columnsIsChange',
378
+ value: function columnsIsChange(columns) {
379
+ if (!columns || !(columns instanceof Array)) return false;
380
+ if (columns.length !== this.state.params.columns.length) return true;
381
+ var oldColumns = this.state.params.columns;
382
+ //当新旧columns存在任何一个不相同的key时
383
+ for (var i = 0; i < columns.length; i++) {
384
+ for (var j = 0; j < oldColumns.length; j++) {
385
+ if (i === j && columns[i].dataIndex != oldColumns[j].dataIndex) return true;
386
+ }
387
+ }
388
+ return false;
389
+ }
390
+
391
+ /** 处理表格的高度 */
392
+
393
+
394
+ /** 设置适应的列宽度 */
395
+
396
+
397
+ // 设置表格内容高度
398
+
399
+
400
+ /**
401
+ * 获取通用查询的参数
402
+ */
403
+
404
+
405
+ /* 新版 */
406
+ /* refreshHeight = () => {
407
+ //如果需要自适应高度
408
+ if (
409
+ !this.state.params.autoHeightFlag &&
410
+ document.getElementsByClassName(this.state.className)
411
+ ) {
412
+ let lastHeight = this.state.height;
413
+ // let tableDivHeight = getSuitHeight(
414
+ // document.getElementsByClassName(this.state.className)[0].parentNode
415
+ // );
416
+ let tableDivHeight = getTableDivHeigh(
417
+ this.props.height,
418
+ this.props.autoHeightFlag,
419
+ this.state.className,
420
+ this.xguiTable,
421
+ this.props.bottomHeight || 0
422
+ );
423
+ let height = getSuitHeight(document.getElementsByClassName(this.state.className)[0]);
424
+ height = height > tableDivHeight ? height : tableDivHeight;
425
+ let titleHeight =
426
+ this.state.params.titleHeight || this.state.params.titleHeight === 0
427
+ ? this.state.params.titleHeight
428
+ : 40;
429
+ //如果不显示头部,则头部的高度为0
430
+ if (this.state.params.showHeader !== true) {
431
+ titleHeight = 0;
432
+ }
433
+ let $table = document.getElementsByClassName(this.state.className)[0];
434
+ if ($table.getElementsByClassName('ant-table-header')[0]) {
435
+ // 获取表格头部的高度 防止头部标题换行导致页码溢出
436
+ titleHeight = $table.getElementsByClassName('ant-table-header')[0].offsetHeight;
437
+ }
438
+ let reduceHeight = 40 + titleHeight + 24;
439
+ if (this.state.params.footerFlag === false) {
440
+ reduceHeight = 5 + titleHeight;
441
+ }
442
+ // 表头上方一行按钮配置
443
+ let $btn = document.getElementsByClassName('ky-table-btn')[0];
444
+ if ($btn) {
445
+ reduceHeight += $btn.offsetHeight;
446
+ }
447
+ // 获取高级搜索高度
448
+ let $heightSearch = document.getElementsByClassName('xgui-nhTableNew-highSearch')[0];
449
+ if ($heightSearch) {
450
+ reduceHeight += $heightSearch.offsetHeight - 40;
451
+ }
452
+ height = height - reduceHeight;
453
+ if ($table.getElementsByClassName('ant-table-tbody')[0]) {
454
+ const tableBodyHeight = $table.getElementsByClassName('ant-table-tbody')[0].offsetHeight;
455
+ // -24是减去页码的高度,防止页码显示不全问题
456
+ if (tableBodyHeight < height - 24 && tableBodyHeight) {
457
+ //如果高度不溢出,则scroll.y设置undefined, 为解决tableY轴未滚动时宽度异常
458
+ height = undefined;
459
+ }
460
+ }
461
+ if (
462
+ (lastHeight === undefined && height !== undefined) ||
463
+ (lastHeight !== undefined && height === undefined) ||
464
+ (lastHeight !== undefined && height !== undefined && lastHeight !== height)
465
+ ) {
466
+ this.setState({
467
+ height: height,
468
+ tableDivHeight: tableDivHeight,
469
+ });
470
+ }
471
+ let parentColumns = this.props.parentColumns;
472
+ let colSpanDom = document
473
+ .getElementsByClassName(this.state.className)[0]
474
+ .querySelectorAll(
475
+ '.ant-table-scroll > .ant-table-header > table > .ant-table-thead > tr > th[colspan]'
476
+ );
477
+ if (colSpanDom.length > 0 && !this.props.bordered && parentColumns) {
478
+ //给无边框Table的合并列加上边框区分,这个需求不太合理-_-,没有办法,只能在这里硬性用js手动添加上去了,可能不太优雅
479
+ // 存在二级表头的内容
480
+ // 设置其中一级表头的边框
481
+ for (var i = 0; i < colSpanDom.length; i++) {
482
+ let nowEle = colSpanDom[i];
483
+ let prevEle = getNearEle(nowEle, 1); //上一节点
484
+ let nextEle = getNearEle(nowEle, 0); //下一节点
485
+ if (nowEle) {
486
+ nowEle.style.borderBottom = '1px solid #e8e8e8';
487
+ }
488
+ if (prevEle) {
489
+ prevEle.style.borderRight = '1px solid #e8e8e8';
490
+ }
491
+ if (nextEle) {
492
+ nextEle.style.borderLeft = '1px solid #e8e8e8';
493
+ }
494
+ }
495
+ // 设置其中二级表头的边框
496
+ parentColumns &&
497
+ parentColumns.length > 0 &&
498
+ parentColumns.map(i => {
499
+ let colDataIndex = i.children[i.children.length - 1]; //取对应列的dataIndex
500
+ let colId = colDataIndex.toUpperCase() + this.state.className; //取对应列表头的id
501
+ let colNode = document.getElementById(colId);
502
+ if (colNode) {
503
+ //找到对应的dom节点 添加border
504
+ colNode.style.borderRight = '1px solid #e8e8e8';
505
+ }
506
+ });
507
+ }
508
+ }
509
+ }; */
510
+
511
+ //固定通用方法
512
+ //搜索操作
513
+
514
+ //重置操作
515
+
516
+
517
+ //重新加载数据数据的方法(从第一页开始)
518
+
519
+ /**
520
+ * 在当前页刷新数据
521
+ * @param {*} flag 是否触发列宽适应的后续操作
522
+ */
523
+
524
+ //当Table有变动的时候会触发此方法
525
+
526
+
527
+ //导出Excel
528
+
529
+
530
+ //执行导出Excel操作
531
+
532
+ /** 拖拽表头组件 */
533
+
534
+
535
+ /** 覆盖Table组件的元素 */
536
+ // components = (height, data) => {
537
+ // // 数据量大于60条且isVirtualList为true时开启虚拟列表【该功能或存在异常 暂未试用功能】
538
+ // return data && data.length > 60 && this.props.isVirtualList
539
+ // ? {
540
+ // ...VList({
541
+ // height: height,
542
+ // }),
543
+ // header: {
544
+ // cell: this.ResizableTitle,
545
+ // },
546
+ // }
547
+ // : {
548
+ // header: {
549
+ // cell: this.ResizableTitle,
550
+ // },
551
+ // };
552
+ // };
553
+
554
+
555
+ /**
556
+ * 拼接上二级表头
557
+ * @param {*} columns table的columns
558
+ * @param {*} parentColumns 二级表头内容
559
+ * @returns 返回拼接后的columns
560
+ */
561
+
562
+
563
+ /** 去除掉columns的width,使其重新自动计算宽度 */
564
+
565
+
566
+ /** 监听空表格表头是否存在滚动 */
567
+
568
+ }, {
569
+ key: 'render',
570
+ value: function render() {
571
+ var _this3 = this;
572
+
573
+ if (this.state.params.rowKey === undefined) {
574
+ return null;
575
+ }
576
+ /****************************以下部分页的参数,如果不需要尾部则这些信息不需要进行设置*********************************/
577
+ var Pagination = undefined;
578
+ if (this.state.params.footerFlag !== false) {
579
+ Pagination = {
580
+ total: this.state.pageData.total, //数据总数
581
+ pageSize: this.state.pageData.pageSize, //每页的条数
582
+ current: this.state.pageData.page, //当前页数
583
+ showTotal: function showTotal(total, range) {
584
+ return '\u5F53\u524D' + range[0] + '-' + range[1] + '\u6761 \u603B\u6570' + total + '\u6761';
585
+ },
586
+ showQuickJumper: true,
587
+ showSizeChanger: true,
588
+ pageSizeOptions: this.props.pageSizeOptions
589
+ };
590
+ } else {
591
+ Pagination = false;
592
+ }
593
+ /****************************以下是设置是否需要选择框*********************************/
594
+ if (this.state.params.checkbox !== false) {
595
+ var rowSelection = {
596
+ type: this.props.rowSelectionType || 'checkbox',
597
+ columnWidth: 63,
598
+ selectedRowKeys: this.state.selectedRowKeys,
599
+ onChange: function onChange(selectedRowKeys, selectedRows) {
600
+ _this3.setState({
601
+ selectedRows: selectedRows,
602
+ selectedRowKeys: selectedRowKeys
603
+ });
604
+ _this3.props.rowSelectionChange && _this3.props.rowSelectionChange(selectedRowKeys);
605
+ _this3.props.onSelect && _this3.props.onSelect(selectedRowKeys, selectedRows);
606
+ },
607
+ // 选择框的默认属性配置 是否禁用选择框 参照antd
608
+ getCheckboxProps: function getCheckboxProps(record) {
609
+ if (_this3.props.getCheckboxProps && typeof _this3.props.getCheckboxProps === 'function') {
610
+ var obj = _this3.props.getCheckboxProps(record);
611
+ return obj;
612
+ } else {
613
+ return null;
614
+ }
615
+ }
616
+ };
617
+ }
618
+ /****************************行选中事件*********************************/
619
+ var onRow = function onRow(record, index) {
620
+ var rowObj = {};
621
+ if (_this3.props.getCheckboxProps && typeof _this3.props.getCheckboxProps === 'function') {
622
+ rowObj = _this3.props.getCheckboxProps(record);
623
+ }
624
+ if (rowObj && rowObj.disabled) {
625
+ // 若存在禁用选择框的属性时 禁用行选择
626
+ return;
627
+ }
628
+
629
+ if (_this3.props.onRowFalse) {
630
+ // 禁用onRow 已处理若表格存在禁用某行的情况下还是点击行还是被选中的情况
631
+ return;
632
+ }
633
+ return {
634
+ onClick: function onClick(e3) {
635
+ var selectedRowKeys = _this3.state.selectedRowKeys;
636
+ var selectedRows = _this3.state.selectedRows;
637
+ var key = '';
638
+ if (_this3.state.params.rowKey instanceof Function) {
639
+ key = _this3.state.params.rowKey(record);
640
+ } else {
641
+ key = record[_this3.state.params.rowKey];
642
+ }
643
+ var isAdd = true; //默认是新增
644
+ for (var i = 0; i < selectedRowKeys.length; i++) {
645
+ if (selectedRowKeys[i] === key) {
646
+ //存在说明是删除
647
+ selectedRowKeys.splice(i, 1);
648
+ selectedRows.splice(i, 1);
649
+ isAdd = false;
650
+ break;
651
+ }
652
+ }
653
+ if (isAdd) {
654
+ selectedRowKeys.push(key);
655
+ selectedRows.push(record);
656
+ }
657
+ _this3.setState({
658
+ selectedRows: selectedRows,
659
+ selectedRowKeys: selectedRowKeys
660
+ });
661
+ _this3.props.rowSelectionChange && _this3.props.rowSelectionChange(selectedRowKeys);
662
+ _this3.props.onSelect && _this3.props.onSelect(selectedRowKeys, selectedRows);
663
+ }
664
+ };
665
+ };
666
+ /****************************以下获取能用于通用搜索的参数*********************************/
667
+ var maxSearchTitle = 2;
668
+ var searchLength = 0;
669
+ var advanceCheckbtns = [];
670
+ var showAdvancBtn = false;
671
+ var showCheckbtns = false;
672
+ var tyOptions = this.state.params.columns.map(function (item, index) {
673
+ if (item.checkButton) advanceCheckbtns.push(item);
674
+ if (item.searchType) showAdvancBtn = true;
675
+ if (item.checkButton) showCheckbtns = true;
676
+ if (item.commonSearch !== false && item.commonSearch != 'false' && item.title !== '序号' && item.title !== '操作') {
677
+ searchLength++;
678
+ if (item.title.length > maxSearchTitle) {
679
+ maxSearchTitle = item.title.length;
680
+ }
681
+ return _react2.default.createElement(
682
+ _select2.default.Option,
683
+ { value: item.dataIndex, key: (0, _NHCore.createUuid)() },
684
+ item.title
685
+ );
686
+ } else {
687
+ return '';
688
+ }
689
+ });
690
+ var searchList = this.state.params.searchList;
691
+ var tableDivHeight = this.state.tableDivHeight;
692
+ // let showAdvancBtn = this.existHightSearch();
693
+ // let showCheckbtns = this.exitCheckButtonSelect();
694
+ var columnsCfg = (0, _data.getColumns)(this.state.params.columns, this.state.actionColumnsCfg, this.state.className, this.props, this.state.pageData);
695
+ columnsCfg.columns = this.buildParentColumns(columnsCfg, this.props.parentColumns);
696
+ return _react2.default.createElement(
697
+ 'div',
698
+ {
699
+ className: 'ky-nhTable',
700
+ style: { height: tableDivHeight, width: '100%' },
701
+ ref: function ref(el) {
702
+ return _this3.xguiTable = el;
703
+ }
704
+ },
705
+ this.state.params.searchDivFlag !== false ? this.state.highSearch ? _react2.default.createElement(
706
+ 'div',
707
+ { className: 'ky-nhTable-highSearch' },
708
+ _react2.default.createElement(_highSearchForm2.default, {
709
+ onCancel: function onCancel() {
710
+ return _this3.setState({
711
+ highSearch: false,
712
+ searchParams: {},
713
+ searchTextMap: {},
714
+ searchText: '',
715
+ searchField: _this3.state.tySearchAllField
716
+ });
717
+ },
718
+ ref: function ref(_ref) {
719
+ return _this3.highSearchForm = _ref;
720
+ },
721
+ columns: this.state.params.columns,
722
+ tableData: this.state.hightSearchData,
723
+ onSearch: this.onAdvanceSearch,
724
+ onRest: this.onRest,
725
+ refreshHeight: this.refreshHeight,
726
+ getHightSearchData: this.getHightSearchData,
727
+ highSearchFetching: this.state.highSearchFetching,
728
+ parentColumns: this.props.parentColumns
729
+ })
730
+ ) : _react2.default.createElement(
731
+ 'div',
732
+ { className: 'xgui-table-searchDiv' },
733
+ this.props.selectConfig && _react2.default.createElement(
734
+ 'div',
735
+ { className: 'select_state' },
736
+ _react2.default.createElement(
737
+ 'span',
738
+ null,
739
+ this.props.selectConfig.title,
740
+ '\uFF1A'
741
+ ),
742
+ _react2.default.createElement(
743
+ _select2.default,
744
+ {
745
+ // defaultValue="all"
746
+ value: this.state.selectValue,
747
+ style: { width: 240, marginRight: '64px' },
748
+ onChange: function onChange(val) {
749
+ _this3.handleRadioGroupChange(_this3.props.selectConfig.field, val);
750
+ }
751
+ },
752
+ _react2.default.createElement(
753
+ Option,
754
+ { value: 'all' },
755
+ '\u5168\u90E8'
756
+ ),
757
+ this.props.selectConfig.list.map(function (item, index) {
758
+ return _react2.default.createElement(
759
+ Option,
760
+ { value: item.value, key: index },
761
+ item.label
762
+ );
763
+ })
764
+ )
765
+ ),
766
+ this.props.hiddenPartialSearch ? _react2.default.createElement(Search, {
767
+ placeholder: '\u8BF7\u8F93\u5165\u67E5\u8BE2\u6761\u4EF6',
768
+ onSearch: this.onSearch,
769
+ value: this.state.searchText,
770
+ onChange: this.zdySearchTextChange,
771
+ style: { width: '100%' }
772
+ }) : _react2.default.createElement(
773
+ 'span',
774
+ null,
775
+ _react2.default.createElement(
776
+ _select2.default,
777
+ {
778
+ value: this.state.searchField,
779
+ onChange: this.zdySearchFieldChange,
780
+ dropdownMatchSelectWidth: false,
781
+ dropdownStyle: {
782
+ width: tyOptions && searchLength > 6 ? 80 + (maxSearchTitle - 2) * 15 : 'auto'
783
+ }
784
+ },
785
+ (this.state.params.searchDefaultField === undefined || this.state.params.searchDefaultField === '') && _react2.default.createElement(
786
+ _select2.default.Option,
787
+ { value: this.state.tySearchAllField },
788
+ '\u5168\u90E8'
789
+ ),
790
+ tyOptions
791
+ ),
792
+ _react2.default.createElement(Search, {
793
+ placeholder: '\u8BF7\u8F93\u5165\u67E5\u8BE2\u6761\u4EF6',
794
+ onSearch: this.onSearch,
795
+ value: this.state.searchText,
796
+ onChange: this.zdySearchTextChange,
797
+ style: { width: 230 }
798
+ }),
799
+ _react2.default.createElement(
800
+ _button2.default,
801
+ { type: 'primary', style: { margin: '0 8px 0 12px' }, onClick: this.onSearch },
802
+ '\u67E5\u8BE2'
803
+ ),
804
+ _react2.default.createElement(
805
+ _button2.default,
806
+ { type: 'Default', style: { paddingLeft: 15 }, onClick: this.onRest },
807
+ '\u91CD\u7F6E'
808
+ ),
809
+ _react2.default.createElement(
810
+ 'a',
811
+ {
812
+ onClick: function onClick() {
813
+ return _this3.setState({ highSearch: true, searchParams: {} });
814
+ },
815
+ style: { marginLeft: 10, display: showAdvancBtn ? 'inline' : 'none' }
816
+ },
817
+ '[\u9AD8\u7EA7\u641C\u7D22]'
818
+ )
819
+ )
820
+ ) : '',
821
+ showCheckbtns ? _react2.default.createElement(_checkButtons2.default, {
822
+ ref: function ref(_ref2) {
823
+ return _this3.checkbuttons = _ref2;
824
+ },
825
+ checkbtnClos: advanceCheckbtns,
826
+ tableData: this.state.hightSearchData,
827
+ onCheckbuttonSearch: this.onCheckbuttonSearch
828
+ }) : null,
829
+ searchList && searchList.length === 1 && searchList[0].isLeftFixed && _react2.default.createElement(
830
+ _row2.default,
831
+ { gutter: 8, style: { marginBottom: '12px' } },
832
+ _react2.default.createElement(
833
+ 'div',
834
+ null,
835
+ _react2.default.createElement(
836
+ _radio2.default.Group,
837
+ {
838
+ onChange: function onChange(e) {
839
+ return _this3.handleRadioGroupChange(searchList[0].field, e.target.value, 0);
840
+ },
841
+ defaultValue: 'all'
842
+ },
843
+ _react2.default.createElement(
844
+ _radio2.default.Button,
845
+ { value: 'all' },
846
+ '\u5168\u90E8'
847
+ ),
848
+ searchList[0].list.map(function (row, index) {
849
+ return _react2.default.createElement(
850
+ _radio2.default.Button,
851
+ { value: row.value, key: row.value },
852
+ row.text
853
+ );
854
+ })
855
+ )
856
+ )
857
+ ),
858
+ // 多行配置
859
+ searchList && searchList.length > 1 && _react2.default.createElement(
860
+ 'div',
861
+ { style: { marginBottom: '12px' } },
862
+ searchList.map(function (item) {
863
+ return _react2.default.createElement(
864
+ _row2.default,
865
+ { gutter: 0, key: item.field },
866
+ item.title,
867
+ '\uFF1A',
868
+ _react2.default.createElement(
869
+ 'div',
870
+ { style: { display: 'inline' } },
871
+ _react2.default.createElement(
872
+ _textGroup2.default,
873
+ {
874
+ name: 'textGroup',
875
+ style: { display: 'inline' },
876
+ onChange: function onChange(e) {
877
+ return _this3.handleRadioGroupChange(item.field, e, 0);
878
+ },
879
+ defaultValue: 'all'
880
+ },
881
+ _react2.default.createElement(
882
+ _text2.default,
883
+ { value: 'all' },
884
+ '\u5168\u90E8'
885
+ ),
886
+ item.list.map(function (row, index) {
887
+ return _react2.default.createElement(
888
+ _text2.default,
889
+ { value: row.value, key: row.value },
890
+ row.text
891
+ );
892
+ })
893
+ )
894
+ )
895
+ );
896
+ })
897
+ ),
898
+ // 只有一行的配置
899
+ this.props.children || searchList && searchList.length === 1 ? _react2.default.createElement(
900
+ 'div',
901
+ { className: 'ky-table-btn', style: { marginBottom: '12px' } },
902
+ _react2.default.createElement(
903
+ _row2.default,
904
+ { gutter: 16 },
905
+ this.props.children && searchList && _react2.default.createElement(
906
+ _col2.default,
907
+ { span: 12 },
908
+ this.props.children
909
+ ),
910
+ this.props.children && !searchList && _react2.default.createElement(
911
+ _col2.default,
912
+ { span: 24 },
913
+ this.props.children
914
+ ),
915
+ searchList && searchList.length === 1 && !searchList[0].isLeftFixed && _react2.default.createElement(
916
+ _col2.default,
917
+ { span: 12 },
918
+ _react2.default.createElement(
919
+ _row2.default,
920
+ {
921
+ type: 'flex',
922
+ justify: searchList[0].isLeftFixed ? 'start' : this.props.children ? 'end' : 'start'
923
+ },
924
+ _react2.default.createElement(
925
+ 'div',
926
+ null,
927
+ _react2.default.createElement(
928
+ _radio2.default.Group,
929
+ {
930
+ onChange: function onChange(e) {
931
+ return _this3.handleRadioGroupChange(searchList[0].field, e.target.value, 0);
932
+ },
933
+ defaultValue: 'all'
934
+ },
935
+ _react2.default.createElement(
936
+ _radio2.default.Button,
937
+ { value: 'all' },
938
+ '\u5168\u90E8'
939
+ ),
940
+ searchList[0].list.map(function (row, index) {
941
+ return _react2.default.createElement(
942
+ _radio2.default.Button,
943
+ { value: row.value, key: row.value },
944
+ row.text
945
+ );
946
+ })
947
+ )
948
+ )
949
+ )
950
+ )
951
+ )
952
+ ) : '',
953
+ this.props.tip ? _react2.default.createElement(
954
+ 'div',
955
+ { className: 'ky-nhTable-tips-div' },
956
+ _react2.default.createElement(_icon2.default, { type: 'info-circle' }),
957
+ _react2.default.createElement(
958
+ _marqueenText2.default,
959
+ null,
960
+ this.props.tip
961
+ )
962
+ ) : '',
963
+ _react2.default.createElement(_table2.default, {
964
+ className: this.state.className + ' ' + (this.state.showTableHeaderScroll ? 'showHeaderScroll' : ''),
965
+ size: this.props.size || 'small',
966
+ rowKey: this.state.params.rowKey,
967
+ rowSelection: rowSelection,
968
+ dataSource: this.state.data,
969
+ columns: columnsCfg.columns,
970
+ pagination: Pagination,
971
+ loading: this.state.loading,
972
+ onChange: this.handleTableChange,
973
+ defaultExpandAllRows: this.state.params.defaultExpandAllRows,
974
+ defaultExpandedRowKeys: this.state.params.defaultExpandedRowKeys,
975
+ expandedRowRender: this.state.params.expandedRowRender,
976
+ bordered: this.state.params.bordered,
977
+ showHeader: this.state.params.showHeader,
978
+ scroll: {
979
+ x: !this.props.isMaxContent_x ? columnsCfg.width : 'max-content',
980
+ y: this.state.height
981
+ },
982
+ components: this.state.params.autoHeightFlag === true ? undefined : this.isIE() ? undefined : this.components
983
+ // components={this.components(this.state.height, this.state.data)}
984
+ , onRow: onRow,
985
+ rowClassName: this.props.rowClassName
986
+ }),
987
+ this.props.loadMore && _react2.default.createElement(
988
+ _row2.default,
989
+ { type: 'flex', justify: 'center', style: { padding: '20px' } },
990
+ _react2.default.createElement(
991
+ _col2.default,
992
+ { style: { cursor: 'pointer' }, onClick: this.loadMoreData },
993
+ this.state.pageCount <= this.state.pageData.page ? '已加载全部数据' : '查看更多'
994
+ )
995
+ ),
996
+ _react2.default.createElement(
997
+ _KyModal2.default,
998
+ {
999
+ ref: function ref(ele) {
1000
+ return _this3.nhExportExcelModal = ele;
1001
+ },
1002
+ title: this.props.exportTitle,
1003
+ width: 570,
1004
+ onOk: this.handleExportExcel
1005
+ },
1006
+ _react2.default.createElement(_expexcel2.default, {
1007
+ ref: function ref(ele) {
1008
+ return _this3.nhExpExcel = ele;
1009
+ },
1010
+ excelName: this.state.excelName,
1011
+ columns: this.state.params.columns
1012
+ })
1013
+ ),
1014
+ _react2.default.createElement(
1015
+ 'style',
1016
+ { jsx: 'true', global: 'true' },
1017
+ '\n .ky-nhTable\n .ant-table-small\n > .ant-table-content\n > .ant-table-scroll\n > .ant-table-body\n > div\n > div:first-child\n > table {\n margin-bottom: ' + columnsCfg.bodyContentMarginBottom + 'px;\n }\n .ky-nhTable\n .ant-table-small\n > .ant-table-content\n > .ant-table-fixed-left\n > .ant-table-body-outer\n > .ant-table-body-inner\n > div\n > div:first-child\n > table {\n margin-bottom: 12px;\n }\n .ky-nhTable\n .ant-table-small\n > .ant-table-content\n > .ant-table-fixed-right\n > .ant-table-body-outer\n > .ant-table-body-inner\n > div\n > div:first-child\n > table {\n margin-bottom: 12px;\n }\n '
1018
+ )
1019
+ );
1020
+ }
1021
+ }]);
1022
+ return KyTable;
1023
+ }(_react2.default.Component);
1024
+
1025
+ KyTable.defaultProps = {
1026
+ sign: undefined, //【强制存在】数据源的标志
1027
+ searchParams: {}, //【推荐存在】查询条件的参数
1028
+ sqlParams: {}, //【根据需求判断】放在sql语句语句中的参数
1029
+ initParams: {}, //初始化过滤的参数,这个不会根据重置而改变
1030
+ height: undefined, //【根据需求判断】自定义的高度
1031
+ tip: undefined, //【根据需求判断】是否需要提示信息
1032
+ onSelect: undefined,
1033
+ action: [], //操作列
1034
+ actionLength: 2, //操作列最多显示的列数,超出的收起
1035
+ funcParams: {}, //如果在columns内部写代码操作时,用键值对的形式存起来
1036
+ rowKey: undefined, //【推荐存在】设置的rowKey,在selectedRowKeys中存放的数据就是这个字段的值
1037
+ checkbox: undefined, //【根据需求判断】是否需要checkbox
1038
+ autoHeightFlag: undefined, //【根据需求判断】是否根据内容自适应高度,默认为false,表示高度固定
1039
+ footerFlag: undefined, //【根据需求判断】是否需要尾部,不需要尾部的时候,不会进行分页,
1040
+ searchDivFlag: undefined, //【根据需求判断】是否需要自带查询操作,默认需要
1041
+ defaultExpandAllRows: undefined, //初始时,是否展开所有行
1042
+ defaultExpandedRowKeys: undefined, //默认展开的行
1043
+ expandedRowRender: undefined, //展开行的回调方法认展开的行
1044
+ bordered: undefined, //是否展示外边框和列边框
1045
+ titleHeight: undefined, //Title头部的高度,这个主要是为了解决出现多级表头的时候,高度计算会出现问题
1046
+ showHeader: true, //是否显示头部
1047
+ url: undefined, //后台访问地址,传了此路径就表示后台查询使用此路径而不是使用通用路径
1048
+ rangeFilter: undefined, //是否开启职务范围过滤
1049
+ rangeFilterList: undefined, // 自定义职务过滤列表
1050
+ isDefaultLoadData: undefined, //是否默认加载数据,如果此参数为false,则默认不会加载数据,且此时显示加载中,这个主要是为了在当前模块还需要去后台查询初始化参数时,会出现开始就查询两次的情况
1051
+ searchDefaultField: undefined, //通用搜索栏默认显示的字段
1052
+ columns: undefined, //列 列比较多的情况时最好留一列进行宽度,避免显示异常
1053
+ searchList: undefined, // 搜索列表配置
1054
+ baseUrl: undefined, //请求路径的前缀,可通过改参数控制访问的后端服务,如果不设置,则会去访问当前前端服务对应的后端服务,例如:api/sm-bpm-expansion
1055
+ exportExcelCacheDataUrl: undefined, //导出Excel 缓存数据到Redis的请求URL,
1056
+ pageSizeOptions: ['10', '20', '50', '100', '200', '500'], // 分页参数
1057
+ defaultPageSize: 20,
1058
+ highSearch: false, //高级搜索框展示
1059
+ rowSelectionType: 'checkbox', // 多选/单选,checkbox or radio
1060
+ onRowFalse: false, //禁用onRow 若表格存在禁用某行的情况下最好设置为true
1061
+ parentColumns: undefined, //多级表头的数据,目前只支持二级表头 {title: '一级表头的名称', children: [二级表头的dataIndex数组]}
1062
+
1063
+ closeResizeableTitle: false, //是否关闭拖拽表头调整宽度,默认开启
1064
+ closeAdjustColumnWidth: false, //是否关闭通过计算内容宽度重绘表格,默认开启
1065
+ adjustMaxWidth: 200, //内容宽度重绘列的最大宽度,默认为200px,即columns初始未配置宽度时,最大的自适应宽度为200px,超过则显示省略号
1066
+ bottomHeight: 0, //距离底部的距离
1067
+
1068
+ mockDataSource: undefined, //列表的dataSource,sign为空时列表这个DataSource 方便以后原型做模拟数据【/狗头】
1069
+ isVirtualList: false, //是否开启虚拟列表 &数据量在60条后生效,开启后会渲染可视范围内的列表,提高渲染效率,在大数据量下使用,建议在没有固定列的table中使用,会有一些异常的情况出现 如滚动时会出现短时间的白屏等问题 固定列bug 需要升级antd4.x,等后期优化。【不推荐】
1070
+ exportTitle: '导出Excel', //导出model标题
1071
+ isMaxContent_x: false, // 是否自动调整内容合适的宽度,在固定列后,手动设置scroll{x: Number}有可能错位,即出现白色垂直空隙或者重复边框,所以设置为max-content(还有一种办法是使其中一列不设置width属性,但在此处不合适)。
1072
+ selectConfig: undefined //下拉筛选
1073
+ };
1074
+
1075
+ var _initialiseProps = function _initialiseProps() {
1076
+ var _this4 = this;
1077
+
1078
+ this.existHightSearchTableSelect = function () {
1079
+ return _this4.state.params.columns.some(function (item) {
1080
+ return item.searchType === 'select' && !item.sign && !item.dmbz;
1081
+ });
1082
+ };
1083
+
1084
+ this.exitCheckButtonSelect = function () {
1085
+ return _this4.state.params.columns.some(function (item) {
1086
+ return item.checkButton;
1087
+ });
1088
+ };
1089
+
1090
+ this.existHightSearch = function () {
1091
+ return _this4.state.params.columns.some(function (item) {
1092
+ return item.searchType;
1093
+ });
1094
+ };
1095
+
1096
+ this.refreshTable = function () {
1097
+ var params = _this4.state.params;
1098
+ var columns = params.columns;
1099
+
1100
+ var columnsHandle = (0, _data.handleTableColumns)(columns, _this4.props, _this4.state.className); //第一次进来处理一下列的信息
1101
+ var tableDivHeight = (0, _data.getTableDivHeigh)(_this4.props.height, _this4.props.autoHeightFlag, _this4.state.className, _this4.xguiTable, _this4.props.bottomHeight || 0); //第一次进来先获取
1102
+ params.columns = columnsHandle;
1103
+ _this4.setState({
1104
+ params: params,
1105
+ tableDivHeight: tableDivHeight
1106
+ });
1107
+ };
1108
+
1109
+ this.adjustColumnWidth = function () {
1110
+ var _state = _this4.state,
1111
+ params = _state.params,
1112
+ _state$calTime = _state.calTime,
1113
+ calTime = _state$calTime === undefined ? 0 : _state$calTime,
1114
+ changed = _state.changed,
1115
+ className = _state.className;
1116
+ var columns = params.columns;
1117
+ var _props = _this4.props,
1118
+ actions = _props.actions,
1119
+ _props$closeAdjustCol = _props.closeAdjustColumnWidth,
1120
+ closeAdjustColumnWidth = _props$closeAdjustCol === undefined ? false : _props$closeAdjustCol,
1121
+ _props$adjustMaxWidth = _props.adjustMaxWidth,
1122
+ adjustMaxWidth = _props$adjustMaxWidth === undefined ? 200 : _props$adjustMaxWidth;
1123
+
1124
+ columns.forEach(function (col, index) {
1125
+ var thDom = document.getElementById(col.dataIndex + className) || {};
1126
+ var thWidth = thDom.scrollWidth;
1127
+ col.widthToCalScallWidth = thWidth; //用于计算真实dom所需要的滚动宽度
1128
+ if (closeAdjustColumnWidth) {
1129
+ col.ellipsis = true;
1130
+ changed = true;
1131
+ } else if (thWidth > adjustMaxWidth) {
1132
+ //存在适应的存在宽度则 设置最大宽度adjustMaxWidth,默认为200
1133
+ thWidth = adjustMaxWidth;
1134
+ col.ellipsis = true;
1135
+ changed = true;
1136
+ }
1137
+ // 防止获取不到thWidth时宽度混乱
1138
+ if (thWidth) {
1139
+ col.width = thWidth;
1140
+ col.minWidth = thWidth;
1141
+ }
1142
+ });
1143
+ params.columns = columns;
1144
+
1145
+ // 限制重新计算的次数
1146
+ if (!changed && calTime < 1) {
1147
+ // setTimeout(() => {
1148
+ // this.adjustColumnWidth();
1149
+ // }, 100);
1150
+ // 时间太短的话,渲染还未完成,获取的宽高还是之前的
1151
+ _this4.setState({ calTime: calTime + 1 }, function () {
1152
+ _this4.adjustColumnWidth();
1153
+ });
1154
+ } else {
1155
+ _this4.refreshHeight();
1156
+ _this4.setState({
1157
+ params: params,
1158
+ changed: changed,
1159
+ scrollY: 600
1160
+ }, _this4.refreshTable);
1161
+ }
1162
+ };
1163
+
1164
+ this.setTableContentHeight = function (height) {
1165
+ if (!height) return;
1166
+ var boxDom = document.getElementsByClassName(_this4.state.className)[0];
1167
+ if (boxDom) {
1168
+ var tableDom = boxDom.querySelector('.ant-table .ant-table-body');
1169
+ var placeholderDom = boxDom.querySelector('.ant-table .ant-table-placeholder');
1170
+ if (tableDom) {
1171
+ tableDom.style.minHeight = height + 'px';
1172
+ }
1173
+ }
1174
+ };
1175
+
1176
+ this.ansysParams = function (func) {
1177
+ //先从缓存中获取配置信息,如果再缓存中没有配置信息则说明配置时在前端书写
1178
+ var paramsStr = sessionStorage.getItem('nhParams');
1179
+ var params = undefined;
1180
+ if (paramsStr != undefined) {
1181
+ var params1 = JSON.parse(paramsStr);
1182
+ if (params1.table !== undefined && params1.table[_this4.props.sign]) {
1183
+ params = params1.table[_this4.props.sign];
1184
+ }
1185
+ if (params === undefined && _this4.props.rowKey === undefined && _this4.props.baseUrl) {
1186
+ var tableStr = sessionStorage.getItem(_this4.props.sign);
1187
+ if (tableStr) {
1188
+ var tableParam = JSON.parse(tableStr);
1189
+ params = tableParam;
1190
+ } else {
1191
+ var t = new Date().getTime();
1192
+ (0, _NHFetch2.default)(_this4.props.baseUrl + '/proData/queryAllConfig', 'GET', t).then(function (res) {
1193
+ if (res && res.code === 200) {
1194
+ var _tableParam = res.data.table[_this4.props.sign];
1195
+ if (_tableParam) {
1196
+ sessionStorage.setItem(_this4.props.sign, (0, _stringify2.default)(_tableParam));
1197
+ _this4.ansysParams(func);
1198
+ } else {
1199
+ console.warn('无法获取' + _this4.props.sign + '配置');
1200
+ }
1201
+ }
1202
+ });
1203
+ return;
1204
+ }
1205
+ }
1206
+ }
1207
+ if (params != undefined) {
1208
+ params.rowKey = _this4.props.rowKey !== undefined ? _this4.props.rowKey : params.rowKey;
1209
+ params.checkbox = _this4.props.checkbox !== undefined ? _this4.props.checkbox : params.checkbox === 'true' || params.checkbox === '' || params.checkbox === undefined ? true : false;
1210
+ params.autoHeightFlag = _this4.props.autoHeightFlag !== undefined ? _this4.props.autoHeightFlag : params.autoHeightFlag === 'false' || params.autoHeightFlag === '' || params.autoHeightFlag === undefined ? false : true;
1211
+ params.footerFlag = _this4.props.footerFlag !== undefined ? _this4.props.footerFlag : params.footerFlag === 'true' || params.footerFlag === '' || params.footerFlag === undefined ? true : false;
1212
+ params.searchDivFlag = _this4.props.searchDivFlag !== undefined ? _this4.props.searchDivFlag : params.searchDivFlag === 'true' || params.searchDivFlag === '' || params.searchDivFlag === undefined ? true : false;
1213
+ params.defaultExpandAllRows = _this4.props.defaultExpandAllRows !== undefined ? _this4.props.defaultExpandAllRows : params.defaultExpandAllRows === 'false' || params.defaultExpandAllRows === '' || params.defaultExpandAllRows === undefined ? false : true;
1214
+ // params.defaultExpandedRowKeys=this.props.defaultExpandedRowKeys!==undefined?this.props.defaultExpandedRowKeys:((params.defaultExpandedRowKeys === '' )?undefined: params.defaultExpandedRowKeys.split(","));
1215
+ params.bordered = _this4.props.bordered !== undefined ? _this4.props.bordered : params.bordered === 'true' /* || params.bordered === '' || params.bordered === undefined */
1216
+ ? true : false;
1217
+ params.titleHeight = _this4.props.titleHeight !== undefined ? _this4.props.titleHeight : params.titleHeight === '' || params.titleHeight === undefined ? 40 : params.titleHeight;
1218
+ params.showHeader = _this4.props.showHeader !== undefined ? _this4.props.showHeader : params.showHeader === 'true' || params.showHeader === '' || params.showHeader === undefined ? true : false;
1219
+ params.url = _this4.props.url !== undefined ? _this4.props.url : params.url === '' ? undefined : params.url;
1220
+ params.rangeFilter = _this4.props.rangeFilter !== undefined ? _this4.props.rangeFilter : params.rangeFilter === 'false' || params.rangeFilter === '' || params.rangeFilter === undefined ? false : true;
1221
+ params.rangeFilterList = _this4.props.rangeFilterList || params.rangeFilterList;
1222
+ params.isDefaultLoadData = _this4.props.isDefaultLoadData !== undefined ? _this4.props.isDefaultLoadData : params.isDefaultLoadData === 'true' || params.isDefaultLoadData === '' || params.isDefaultLoadData === undefined ? true : false;
1223
+ params.searchDefaultField = _this4.props.searchDefaultField !== undefined ? _this4.props.searchDefaultField : params.searchDefaultField === '' ? undefined : params.searchDefaultField;
1224
+ params.columns = _this4.props.columns !== undefined ? _this4.props.columns : params.columns;
1225
+ params.columns = params.columns !== undefined ? params.columns : [];
1226
+ params.columnsAfterFixed = params.columns; //备份columns
1227
+ params.expandedRowRender = _this4.props.expandedRowRender;
1228
+ var searchList = undefined;
1229
+ if (params.searchList) {
1230
+ searchList = JSON.parse(params.searchList.replace(/[']/g, '"'));
1231
+ }
1232
+ params.searchList = _this4.props.searchList || searchList;
1233
+ if (_this4.props.expandedRowRender !== undefined) {
1234
+ params.expandedRowRender = _this4.props.funcParams[params.expandedRowRender];
1235
+ }
1236
+ var commonSearchMap = _this4.getCommonSearch(params);
1237
+ _this4.setState({
1238
+ params: params,
1239
+ tySearchAllField: commonSearchMap.tySearchAllField,
1240
+ searchField: commonSearchMap.searchField,
1241
+ pageData: {
1242
+ //分页设置的是三个参数
1243
+ total: 0,
1244
+ pageSize: params.footerFlag === false && !_this4.props.loadMore ? 10000000 : _this4.props.defaultPageSize, //当前页默认多少条数据
1245
+ page: 1
1246
+ }
1247
+ }, function () {
1248
+ func && func(params);
1249
+ });
1250
+ } else {
1251
+ var _params = {};
1252
+ _params.rowKey = _this4.props.rowKey;
1253
+ _params.checkbox = _this4.props.checkbox !== undefined ? _this4.props.checkbox : true;
1254
+ _params.autoHeightFlag = _this4.props.autoHeightFlag !== undefined ? _this4.props.autoHeightFlag : false;
1255
+ _params.footerFlag = _this4.props.footerFlag !== undefined ? _this4.props.footerFlag : true;
1256
+ _params.searchDivFlag = _this4.props.searchDivFlag !== undefined ? _this4.props.searchDivFlag : true;
1257
+ _params.defaultExpandAllRows = _this4.props.defaultExpandAllRows !== undefined ? _this4.props.defaultExpandAllRows : false;
1258
+ _params.defaultExpandedRowKeys = _this4.props.defaultExpandedRowKeys;
1259
+ _params.expandedRowRender = _this4.props.expandedRowRender;
1260
+ _params.bordered = _this4.props.bordered !== undefined ? _this4.props.bordered : false;
1261
+ _params.titleHeight = _this4.props.titleHeight !== undefined ? _this4.props.titleHeight : 40;
1262
+ _params.showHeader = _this4.props.showHeader !== undefined ? _this4.props.showHeader : true;
1263
+ _params.url = _this4.props.url;
1264
+ _params.rangeFilter = _this4.props.rangeFilter !== undefined ? _this4.props.rangeFilter : false;
1265
+ _params.rangeFilterList = _this4.props.rangeFilterList;
1266
+
1267
+ _params.isDefaultLoadData = _this4.props.isDefaultLoadData !== undefined ? _this4.props.isDefaultLoadData : true;
1268
+ _params.searchDefaultField = _this4.props.searchDefaultField;
1269
+ _params.columns = _this4.props.columns;
1270
+ _params.columnsAfterFixed = _this4.props.columns; //备份columns
1271
+ _params.searchList = _this4.props.searchList;
1272
+ var _commonSearchMap = _this4.getCommonSearch(_params);
1273
+ _this4.setState({
1274
+ params: _params,
1275
+ tySearchAllField: _commonSearchMap.tySearchAllField,
1276
+ searchField: _commonSearchMap.searchField,
1277
+ pageData: {
1278
+ //分页设置的是三个参数
1279
+ total: 0,
1280
+ pageSize: _params.footerFlag === false && !_this4.props.loadMore ? 10000000 : _this4.props.defaultPageSize, //当前页默认多少条数据
1281
+ page: 1
1282
+ }
1283
+ }, function () {
1284
+ func && func(_params);
1285
+ });
1286
+ }
1287
+ };
1288
+
1289
+ this.getCommonSearch = function (params) {
1290
+ var commonSearchMap = {};
1291
+ //循环判断哪些字段需要通用查询的搜索条件
1292
+ if (params.searchDivFlag !== false) {
1293
+ if (params.searchDefaultField === undefined || params.searchDefaultField === '') {
1294
+ var tySearchAllField = ''; //自定义查询的所有字段
1295
+ var columns = params.columns;
1296
+ columns.map(function (item) {
1297
+ if (item.commonSearch !== false && item.commonSearch != 'false' && item.title !== '序号' && item.title !== '操作') {
1298
+ tySearchAllField += ',' + item.dataIndex.toLowerCase();
1299
+ }
1300
+ return item;
1301
+ });
1302
+ commonSearchMap.tySearchAllField = tySearchAllField.substring(1);
1303
+ commonSearchMap.searchField = _this4.state.searchField ? _this4.state.searchField : tySearchAllField.substring(1);
1304
+ } else {
1305
+ commonSearchMap.tySearchAllField = params.searchDefaultField;
1306
+ commonSearchMap.searchField = _this4.state.searchField ? _this4.state.searchField : params.searchDefaultField;
1307
+ }
1308
+ }
1309
+ return commonSearchMap;
1310
+ };
1311
+
1312
+ this.refreshHeight = function () {
1313
+ //如果需要自适应高度
1314
+ if (!_this4.state.params.autoHeightFlag && document.getElementsByClassName(_this4.state.className)) {
1315
+ var lastHeight = _this4.state.height;
1316
+ var tableDivHeight = (0, _NHCore.getSuitHeight)(document.getElementsByClassName(_this4.state.className)[0] && document.getElementsByClassName(_this4.state.className)[0].parentNode);
1317
+ var height = (0, _NHCore.getSuitHeight)(document.getElementsByClassName(_this4.state.className)[0]);
1318
+ var titleHeight = _this4.state.params.titleHeight || _this4.state.params.titleHeight === 0 ? _this4.state.params.titleHeight : 40;
1319
+ //如果不显示头部,则头部的高度为0
1320
+ if (_this4.state.params.showHeader !== true) {
1321
+ titleHeight = 0;
1322
+ }
1323
+ var $table = document.getElementsByClassName(_this4.state.className)[0];
1324
+ if ($table && $table.getElementsByClassName('ant-table-header')[0]) {
1325
+ // 获取表格头部的高度 防止头部标题换行导致页码溢出
1326
+ titleHeight = $table.getElementsByClassName('ant-table-header')[0].offsetHeight;
1327
+ }
1328
+ var reduceHeight = 40 + titleHeight;
1329
+ if (_this4.state.params.footerFlag === false) {
1330
+ reduceHeight = 5 + titleHeight;
1331
+ }
1332
+ height = height - reduceHeight;
1333
+ if (!lastHeight || lastHeight !== height) {
1334
+ _this4.setState({
1335
+ height: height,
1336
+ tableDivHeight: tableDivHeight
1337
+ });
1338
+ }
1339
+
1340
+ var colSpanDom = document.getElementsByClassName(_this4.state.className)[0] ? document.getElementsByClassName(_this4.state.className)[0].querySelectorAll('.ant-table-scroll > .ant-table-header > table > .ant-table-thead > tr > th[colspan]') : "";
1341
+ if (colSpanDom && colSpanDom.length > 0 && !_this4.props.bordered) {
1342
+ // 存在二级表头的内容
1343
+ for (var i = 0; i < colSpanDom.length; i++) {
1344
+ var nowEle = colSpanDom[i];
1345
+ var prevEle = getNearEle(nowEle, 1); //上一节点
1346
+ var nextEle = getNearEle(nowEle, 0); //下一节点
1347
+ if (nowEle) {
1348
+ nowEle.style.borderBottom = '1px solid #e8e8e8';
1349
+ }
1350
+ if (prevEle) {
1351
+ prevEle.style.borderRight = '1px solid #e8e8e8';
1352
+ }
1353
+ if (nextEle) {
1354
+ nextEle.style.borderLeft = '1px solid #e8e8e8';
1355
+ }
1356
+ }
1357
+ }
1358
+ }
1359
+ };
1360
+
1361
+ this.onAdvanceSearch = function () {
1362
+ var searchParams = (0, _extends3.default)({}, _this4.state.quickSearcParams);
1363
+ _this4.highSearchForm.validateFields(function (err, values) {
1364
+ if (!err) {
1365
+ for (var key in values) {
1366
+ if (values[key]) {
1367
+ if (key.endsWith('_date')) {
1368
+ if (values[key] && values[key].length > 0) {
1369
+ searchParams[key.replace('date', 'LTEQ')] = values[key][1].valueOf();
1370
+ searchParams[key.replace('date', 'GTEQ')] = values[key][0].valueOf();
1371
+ } else {
1372
+ delete searchParams[key.replace('date', 'LTEQ')];
1373
+ delete searchParams[key.replace('date', 'GTEQ')];
1374
+ }
1375
+ } else if (key.endsWith('_dateRange')) {
1376
+ if (values[key] && values[key].length > 0) {
1377
+ searchParams[key.replace(key, 'D_KSSJ_GTEQ')] = values[key][0].valueOf(); //开始时间
1378
+ searchParams[key.replace(key, 'D_JSSJ_LTEQ')] = values[key][1].valueOf(); //结束时间
1379
+ } else {
1380
+ delete searchParams[key];
1381
+ delete searchParams[key];
1382
+ }
1383
+ } else if (key.endsWith('_dateTimeRange')) {
1384
+ if (values[key] && values[key].length > 0) {
1385
+ searchParams[key.replace(key, 'DT_KSSJ_GTEQ')] = values[key][0].valueOf(); //开始时间
1386
+ searchParams[key.replace(key, 'DT_JSSJ_LTEQ')] = values[key][1].valueOf(); //结束时间
1387
+ } else {
1388
+ delete searchParams[key];
1389
+ delete searchParams[key];
1390
+ }
1391
+ } else if (key.endsWith('_time_start')) {
1392
+ searchParams[key.replace('time_start', 'GTEQ')] = values[key].valueOf();
1393
+ } else if (key.endsWith('_time_end')) {
1394
+ searchParams[key.replace('time_end', 'LTEQ')] = values[key].valueOf();
1395
+ } else if (key.endsWith('_number_start')) {
1396
+ searchParams[key.replace('number_start', 'GTEQ')] = values[key].valueOf();
1397
+ } else if (key.endsWith('_number_end')) {
1398
+ searchParams[key.replace('number_end', 'LTEQ')] = values[key].valueOf();
1399
+ } else if (key.startsWith('S') && !key.endsWith('_IN')) {
1400
+ if (values[key].trim() !== '') {
1401
+ searchParams[key] = values[key].trim();
1402
+ } else {
1403
+ delete searchParams[key];
1404
+ }
1405
+ } else if (key.endsWith('_IN')) {
1406
+ if (values[key] && values[key].length > 0) {
1407
+ searchParams[key] = values[key];
1408
+ } else {
1409
+ delete searchParams[key];
1410
+ }
1411
+ } else {
1412
+ searchParams[key] = values[key];
1413
+ }
1414
+ } else {
1415
+ if (key.endsWith('_time_start')) {
1416
+ delete searchParams[key.replace('time_start', 'GTEQ')];
1417
+ } else if (key.endsWith('_time_end')) {
1418
+ delete searchParams[key.replace('time_end', 'LTEQ')];
1419
+ } else if (key.endsWith('_number_start')) {
1420
+ delete searchParams[key.replace('number_start', 'GTEQ')];
1421
+ } else if (key.endsWith('_number_end')) {
1422
+ delete searchParams[key.replace('number_end', 'LTEQ')];
1423
+ } else {
1424
+ delete searchParams[key];
1425
+ }
1426
+ }
1427
+ }
1428
+ }
1429
+ });
1430
+ _this4.setState({ searchParams: searchParams }, function () {
1431
+ return _this4.filterTableData();
1432
+ });
1433
+ };
1434
+
1435
+ this.onSearch = function () {
1436
+ // 去除英文引号
1437
+ var searchText = _this4.state.searchText;
1438
+
1439
+ _this4.setState({
1440
+ searchText: searchText ? searchText.replace("'", '') : searchText
1441
+ }, function () {
1442
+ if (_this4.props.loadMore) {
1443
+ _this4.setState({
1444
+ pageData: {
1445
+ total: _this4.state.pageData.total,
1446
+ pageSize: _this4.state.pageData.pageSize,
1447
+ page: 1
1448
+ },
1449
+ data: [],
1450
+ resetData: true
1451
+ }, _this4.filterTableData);
1452
+ } else {
1453
+ _this4.filterTableData();
1454
+ }
1455
+ });
1456
+ };
1457
+
1458
+ this.onRest = function () {
1459
+ _this4.highSearchForm && _this4.highSearchForm.resetFields();
1460
+ var quickSearcParams = (0, _extends3.default)({}, _this4.state.quickSearcParams);
1461
+ _this4.setState(function (prevState, props) {
1462
+ return {
1463
+ // searchParams: { ...quickSearcParams, ...this.props.searchParams }, //自定义的搜索条件
1464
+ searchParams: (0, _extends3.default)({}, _this4.props.searchParams), //自定义的搜索条件
1465
+ searchTextMap: {}, //下拉框查询的值,用作查询
1466
+ searchText: '',
1467
+ searchField: _this4.state.tySearchAllField,
1468
+ selectValue: 'all',
1469
+ filters: {}, //多选方式过滤的值
1470
+ sorter: {}, //排序字段
1471
+ data: [],
1472
+ resetData: true,
1473
+ selectedRows: [], //选中的数据
1474
+ selectedRowKeys: [], //选中的数据的主键loading
1475
+ pageData: {
1476
+ total: _this4.state.pageData.total,
1477
+ pageSize: _this4.state.pageData.pageSize,
1478
+ page: 1
1479
+ }
1480
+ };
1481
+ }, function () {
1482
+ _this4.filterTableData();
1483
+ // 重置后重新获取高级搜索数据
1484
+ _this4.getHightSearchData();
1485
+ });
1486
+ };
1487
+
1488
+ this.filterTableData = function () {
1489
+ _this4.setState({
1490
+ pageData: {
1491
+ total: 0,
1492
+ pageSize: _this4.props.defaultPageSize,
1493
+ page: 1
1494
+ }
1495
+ }, function () {
1496
+ return _this4.readTableData(true);
1497
+ });
1498
+ };
1499
+
1500
+ this.loadMoreData = function () {
1501
+ _this4.setState({
1502
+ pageData: {
1503
+ total: _this4.state.pageData.total,
1504
+ pageSize: _this4.state.pageData.pageSize,
1505
+ page: _this4.state.pageData.page + 1
1506
+ },
1507
+ resetData: false
1508
+ }, function () {
1509
+ return _this4.readTableData(true);
1510
+ });
1511
+ };
1512
+
1513
+ this.flushLoadMoreData = function () {
1514
+ _this4.setState({
1515
+ pageData: {
1516
+ total: _this4.state.pageData.total,
1517
+ pageSize: _this4.state.pageData.pageSize,
1518
+ page: 1
1519
+ },
1520
+ data: [],
1521
+ resetData: true
1522
+ }, function () {
1523
+ return _this4.readTableData(true);
1524
+ });
1525
+ };
1526
+
1527
+ this.readTableData = function (flag) {
1528
+ var params = _this4.getFilterParams();
1529
+ _this4.setState({ loading: true });
1530
+ var baseUrl = _this4.props.baseUrl || window.baseUrl || '';
1531
+ var _props2 = _this4.props,
1532
+ sign = _props2.sign,
1533
+ mockDataSource = _props2.mockDataSource;
1534
+
1535
+ if (!sign && mockDataSource) {
1536
+ _this4.setState({
1537
+ data: mockDataSource,
1538
+ selectedRowKeys: [],
1539
+ selectedRows: [],
1540
+ pageCount: mockDataSource.length,
1541
+ loading: false,
1542
+ height: undefined,
1543
+ pageData: {
1544
+ total: mockDataSource.length,
1545
+ pageSize: _this4.state.pageData.pageSize,
1546
+ page: _this4.state.pageData.page
1547
+ },
1548
+ actionColumnsCfg: (0, _data.getActions)(_this4.props.action, mockDataSource || [], _this4.props.actionLength)
1549
+ }, function () {
1550
+ _this4.props.rowSelectionChange && _this4.props.rowSelectionChange([]);
1551
+ _this4.props.onSelect && _this4.props.onSelect([], []);
1552
+ _this4.adjustColumnWidth();
1553
+ _this4.tableHeaderScrollListener(); // 判断是否需要显示滚动条
1554
+ });
1555
+ } else {
1556
+ var url = _this4.state.params.url ? _this4.state.params.url : baseUrl + '/proData/gridList';
1557
+ // if (flag && this.props.columns) {
1558
+ // this.adjustColumnWidth(); // 先进行调整,否则表头内容都会挤到一起
1559
+ // }
1560
+ (0, _NHFetch2.default)(url, 'POST', params).then(function (res) {
1561
+ var height = _this4.state.height;
1562
+
1563
+ if (res) {
1564
+ _this4.setState({
1565
+ data: _this4.props.loadMore ? _this4.state.resetData ? res.data.list : [].concat((0, _toConsumableArray3.default)(_this4.state.data), (0, _toConsumableArray3.default)(res.data.list)) : res.data.list,
1566
+ selectedRowKeys: [],
1567
+ selectedRows: [],
1568
+ pageCount: res.data.pageCount,
1569
+ pageData: {
1570
+ total: res.data.total,
1571
+ pageSize: _this4.state.pageData.pageSize,
1572
+ page: _this4.state.pageData.page
1573
+ },
1574
+ actionColumnsCfg: (0, _data.getActions)(_this4.props.action, res.data.list ? res.data.list : [], _this4.props.actionLength),
1575
+ loading: false,
1576
+ height: flag ? undefined : height
1577
+ }, function () {
1578
+ _this4.props.rowSelectionChange && _this4.props.rowSelectionChange([]);
1579
+ _this4.props.onSelect && _this4.props.onSelect([], []);
1580
+ _this4.props.onLoad && _this4.props.onLoad(res.data);
1581
+ _this4.refreshHeight();
1582
+ _this4.tableHeaderScrollListener(); // 判断是否需要显示滚动条
1583
+ });
1584
+ _this4.refreshHeight();
1585
+ return;
1586
+ }
1587
+ _this4.setState({ loading: false, height: undefined });
1588
+ _this4.refreshHeight();
1589
+ _this4.tableHeaderScrollListener(); // 判断是否需要显示滚动条
1590
+ }).catch(function (res) {
1591
+ _this4.setState({ loading: false, height: undefined }, function () {
1592
+ _this4.adjustColumnWidth();
1593
+ _this4.refreshHeight();
1594
+ _this4.tableHeaderScrollListener(); // 判断是否需要显示滚动条
1595
+ });
1596
+ return res;
1597
+ });
1598
+ }
1599
+ };
1600
+
1601
+ this.getHightSearchData = function (callback) {
1602
+ var params = _this4.getFilterParams();
1603
+ var baseUrl = _this4.props.baseUrl || window.baseUrl || '';
1604
+ params.pagination = {
1605
+ page: 1,
1606
+ pageSize: 1 << 31 - 1
1607
+ };
1608
+ _this4.setState({ highSearchFetching: true });
1609
+ var _props3 = _this4.props,
1610
+ sign = _props3.sign,
1611
+ mockDataSource = _props3.mockDataSource;
1612
+
1613
+ if (!sign && mockDataSource) {
1614
+ // 若不存在sign 且存在模拟数据则 不查询接口
1615
+ setTimeout(function () {
1616
+ _this4.setState({
1617
+ hightSearchData: mockDataSource || [],
1618
+ highSearchFetching: false
1619
+ }, function () {
1620
+ callback && typeof callback === 'function' && callback();
1621
+ });
1622
+ }, 500);
1623
+ } else {
1624
+ var url = _this4.state.params.url ? _this4.state.params.url : baseUrl + '/proData/gridList';
1625
+ (0, _NHFetch2.default)(url, 'POST', params).then(function (res) {
1626
+ if (res) {
1627
+ _this4.setState({
1628
+ hightSearchData: res.data ? res.data.list : [],
1629
+ highSearchFetching: false
1630
+ }, function () {
1631
+ callback && typeof callback === 'function' && callback();
1632
+ });
1633
+ }
1634
+ }).catch(function (res) {
1635
+ console.log('高级搜索异常:', res);
1636
+ });
1637
+ }
1638
+ };
1639
+
1640
+ this.getFilterParams = function () {
1641
+ var pagination = _this4.state.pageData; //分页的参数
1642
+ var filters = _this4.state.filters; //多选过滤的数据
1643
+ var sorter = _this4.state.sorter; //过滤的数据
1644
+ var searchTextMap = _this4.state.searchTextMap; //字段上搜索栏的值
1645
+ var searchParams = _this4.state.searchParams; //传递过来的查询参数
1646
+ // isAndPropsSearch:该字段是为了确定不影响到其他项目设置的,如果后续确定和外部传进来的参数一起使用,可以删除该字段
1647
+ if (_this4.props.isAndPropsSearch) {
1648
+ // 修复存在外部查询参数的前提下,使用表格的搜索功能直接从所有数据查询
1649
+ searchParams = (0, _extends3.default)({}, searchParams, _this4.props.searchParams); //传递过来的查询参数
1650
+ }
1651
+ var sqlParams = _this4.props.sqlParams; //在sql语句中的参数
1652
+ var initParams = _this4.props.initParams; //初始化参数
1653
+ var rangeFilter = _this4.state.params.rangeFilter; //是否根据职务范围过滤
1654
+ var rangeFilterList = _this4.state.params.rangeFilterList; // 自定义职务过滤列表
1655
+ if (!searchParams) {
1656
+ searchParams = {};
1657
+ }
1658
+ //对里面可能存在的参数值为sql语句进行处理
1659
+ searchParams = _this4.encodeSql(searchParams);
1660
+ sqlParams = _this4.encodeSql(sqlParams);
1661
+ initParams = _this4.encodeSql(initParams);
1662
+
1663
+ var params = {
1664
+ pagination: pagination,
1665
+ filters: filters,
1666
+ sorter: sorter,
1667
+ searchTextMap: searchTextMap,
1668
+ searchParams: searchParams,
1669
+ sqlParams: sqlParams,
1670
+ initParams: initParams,
1671
+ sign: _this4.props.sign
1672
+ };
1673
+
1674
+ //如果启用职位范围过滤
1675
+ if (rangeFilter) {
1676
+ var userId = (0, _NHCore.getLoginUser)() ? (0, _NHCore.getLoginUser)().userId : '';
1677
+ params.rangeFilter = { id: userId };
1678
+ }
1679
+ if (rangeFilterList) {
1680
+ params.rangeFilterList = rangeFilterList;
1681
+ }
1682
+ return params;
1683
+ };
1684
+
1685
+ this.handleTableChange = function (pagination, filters, sorter) {
1686
+ _this4.setState(function (prevState, props) {
1687
+ return {
1688
+ sorter: {
1689
+ columnKey: sorter.columnKey,
1690
+ order: sorter.order
1691
+ },
1692
+ pageData: {
1693
+ total: _this4.state.pageData.total,
1694
+ pageSize: pagination.pageSize,
1695
+ page: pagination.current
1696
+ }
1697
+ };
1698
+ }, function () {
1699
+ this.readTableData();
1700
+ });
1701
+ };
1702
+
1703
+ this.exportExcel = function (excelName) {
1704
+ _this4.setState({ excelName: excelName });
1705
+ if (_this4.nhExportExcelModal) {
1706
+ _this4.nhExportExcelModal.show();
1707
+ }
1708
+ };
1709
+
1710
+ this.handleExportExcel = function (stopLoading) {
1711
+ var params = _this4.getFilterParams();
1712
+ var columns = _this4.nhExpExcel.state.targetKeys;
1713
+ var excelName = _this4.nhExpExcel.state.excelName;
1714
+ if (!columns || columns.length <= 0) {
1715
+ _message3.default.info('请选择需要导出的列!');
1716
+ stopLoading();
1717
+ return;
1718
+ }
1719
+ if (!excelName) {
1720
+ _message3.default.info('文件名不能为空');
1721
+ stopLoading();
1722
+ return;
1723
+ }
1724
+ var columnsMap = {};
1725
+ for (var i = 0; i < columns.length; i++) {
1726
+ var c = columns[i].split('@');
1727
+ columnsMap[c[0]] = c[1];
1728
+ }
1729
+ var total = _this4.state.pageData.total;
1730
+ params.columnsMap = columnsMap;
1731
+ params.excelName = excelName;
1732
+ if (total < 40000) {
1733
+ var baseUrl = _this4.props.baseUrl || window.baseUrl || '';
1734
+ var exportExcelCacheDataUrl = _this4.props.exportExcelCacheDataUrl || '';
1735
+ var cacheDataUrl = exportExcelCacheDataUrl ? exportExcelCacheDataUrl : '/proData/gridList/excel/params';
1736
+ (0, _NHFetch2.default)(baseUrl + cacheDataUrl, 'POST', params).then(function (res) {
1737
+ if (res) {
1738
+ if (!res.data) {
1739
+ _message3.default.info('请刷新浏览器,重新再执行此操作!');
1740
+ stopLoading();
1741
+ return;
1742
+ }
1743
+ // 本地
1744
+ window.open(baseUrl + '/proData/gridList/excel/export?uuid=' + res.data, '_blank');
1745
+ }
1746
+ stopLoading();
1747
+ }).catch(function (err) {
1748
+ return stopLoading();
1749
+ });
1750
+ } else {
1751
+ _message3.default.warn('最大的导出数量为40000,当前导出数据量过大,无法执行导出操作!');
1752
+ stopLoading();
1753
+ return;
1754
+ }
1755
+ };
1756
+
1757
+ this.encodeSql = function (params) {
1758
+ for (var key in params) {
1759
+ if (key.toUpperCase().startsWith('SQL_') && params[key]) {
1760
+ params[key] = params[key];
1761
+ } else if (key.toUpperCase().startsWith('G_') && params[key]) {
1762
+ params[key] = _this4.encodeSql(params[key]);
1763
+ }
1764
+ }
1765
+ return params;
1766
+ };
1767
+
1768
+ this.zdySearchTextChange = function (e) {
1769
+ var queryValue = e.target.value.trim(); //禁止输入英文单引号
1770
+ _this4.setState({
1771
+ searchText: queryValue
1772
+ });
1773
+ if (queryValue && _this4.state.searchField) {
1774
+ var quickSearcParams = (0, _extends3.default)({}, _this4.state.quickSearcParams);
1775
+ var searchParams = (0, _extends3.default)({}, quickSearcParams);
1776
+ searchParams[_this4.state.searchField] = queryValue.replace("'", '');
1777
+ _this4.setState({
1778
+ searchParams: searchParams
1779
+ });
1780
+ } else {
1781
+ var _quickSearcParams = (0, _extends3.default)({}, _this4.state.quickSearcParams);
1782
+ _this4.setState({
1783
+ searchParams: (0, _extends3.default)({}, _quickSearcParams)
1784
+ });
1785
+ }
1786
+ };
1787
+
1788
+ this.zdySearchFieldChange = function (value) {
1789
+ _this4.setState({
1790
+ searchField: value
1791
+ });
1792
+ if (value && _this4.state.searchText) {
1793
+ var searchText = _this4.state.searchText;
1794
+ var quickSearcParams = (0, _extends3.default)({}, _this4.state.quickSearcParams);
1795
+ var searchParams = (0, _extends3.default)({}, quickSearcParams);
1796
+ searchParams[value] = searchText;
1797
+ _this4.setState({
1798
+ searchParams: searchParams
1799
+ });
1800
+ } else {
1801
+ var _quickSearcParams2 = (0, _extends3.default)({}, _this4.state.quickSearcParams);
1802
+ _this4.setState({
1803
+ searchParams: (0, _extends3.default)({}, _quickSearcParams2)
1804
+ });
1805
+ }
1806
+ };
1807
+
1808
+ this.isIE = function () {
1809
+ var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
1810
+ var isIE = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1; //判断是否IE<11浏览器
1811
+ var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf('rv:11.0') > -1;
1812
+ if (isIE || isIE11) {
1813
+ return true;
1814
+ } else return false;
1815
+ };
1816
+
1817
+ this.ResizableTitle = function (props) {
1818
+ var onResize = props.onResize,
1819
+ width = props.width,
1820
+ minWidth = props.minWidth,
1821
+ _onClick = props.onClick,
1822
+ restProps = (0, _objectWithoutProperties3.default)(props, ['onResize', 'width', 'minWidth', 'onClick']);
1823
+ var closeResizeableTitle = _this4.props.closeResizeableTitle;
1824
+
1825
+ if (closeResizeableTitle) {
1826
+ return _react2.default.createElement('th', restProps);
1827
+ } else {
1828
+ return _react2.default.createElement(
1829
+ _reactResizable.Resizable,
1830
+ {
1831
+ width: +parseFloat(width) || 100,
1832
+ height: 0,
1833
+ onResize: function onResize(e, data) {
1834
+ var size = data.size;
1835
+
1836
+ var nextColumns = void 0;
1837
+ var params = _this4.state.params;
1838
+ var _params$columns = params.columns,
1839
+ columns = _params$columns === undefined ? [] : _params$columns;
1840
+ // 拖拽表头时 若拖拽后宽度大于列宽的最小值时 更新columns配置
1841
+
1842
+ var index = columns.findIndex(function (i) {
1843
+ return i.dataIndex + _this4.state.className === props.id;
1844
+ });
1845
+ if (columns[index] && size.width > parseFloat(columns[index].minWidth)) {
1846
+ nextColumns = [].concat((0, _toConsumableArray3.default)(columns));
1847
+ nextColumns[index].width = size.width;
1848
+ nextColumns[index].resizeWidth = size.width;
1849
+ params.columns = nextColumns; //表格的columns
1850
+ params.columnsAfterFixed = nextColumns; //表格的columns的备份
1851
+ _this4.setState({
1852
+ params: params
1853
+ });
1854
+ }
1855
+ },
1856
+ onResizeStart: function onResizeStart() {
1857
+ _this4.resizing = true;
1858
+ },
1859
+ onResizeStop: function onResizeStop() {
1860
+ setTimeout(function () {
1861
+ _this4.resizing = false;
1862
+ });
1863
+ },
1864
+ draggableOpts: { enableUserSelectHack: false }
1865
+ },
1866
+ _react2.default.createElement('th', (0, _extends3.default)({
1867
+ onClick: function onClick() {
1868
+ if (!_this4.resizing && _onClick) {
1869
+ _onClick.apply(undefined, arguments);
1870
+ }
1871
+ }
1872
+ }, restProps))
1873
+ );
1874
+ }
1875
+ };
1876
+
1877
+ this.components = {
1878
+ table: function table(props) {
1879
+ return _react2.default.createElement(
1880
+ _reactCustomScrollbars.Scrollbars,
1881
+ {
1882
+ onScroll: _this4.onScroll,
1883
+ autoHide: true,
1884
+ style: { width: '100%' },
1885
+ autoHeight: true,
1886
+ autoHeightMin: 0,
1887
+ autoHeightMax: _this4.state.height,
1888
+ thumbMinSize: 30,
1889
+ universal: true
1890
+ },
1891
+ _react2.default.createElement('table', props)
1892
+ );
1893
+ }
1894
+ };
1895
+
1896
+ this.onScroll = function (e1) {
1897
+ if (loadCount === 0) {
1898
+ var scrollLeft = e1.target.scrollLeft;
1899
+ var scrollTop = e1.target.scrollTop;
1900
+ var $parentObj = e1.target.parentNode.parentNode;
1901
+ var obj = $parentObj.classList.contains('ant-table-body') ? 'content' : 'none';
1902
+ if (obj === 'none') {
1903
+ obj = $parentObj.parentNode.parentNode.classList.contains('ant-table-fixed-left') ? 'left' : 'right';
1904
+ }
1905
+
1906
+ //头部对象
1907
+ var $table = document.getElementsByClassName(_this4.state.className)[0];
1908
+ var $header = $table.getElementsByClassName('ant-table-scroll')[0].getElementsByClassName('ant-table-header')[0];
1909
+ $header.scrollLeft = scrollLeft;
1910
+ //中间内容区
1911
+ var $content = $table.getElementsByClassName('ant-table-scroll')[0].getElementsByClassName('ant-table-body')[0].childNodes[0].childNodes[0];
1912
+ if (obj !== 'content' && $content.scrollTop !== scrollTop) {
1913
+ loadCount++;
1914
+ $content.scrollTop = scrollTop;
1915
+ }
1916
+ //左部固定内容区
1917
+ if ($table.getElementsByClassName('ant-table-fixed-left')[0]) {
1918
+ var $left = $table.getElementsByClassName('ant-table-fixed-left')[0].getElementsByClassName('ant-table-body-inner')[0].childNodes[0].childNodes[0];
1919
+ if ($left && obj !== 'left' && $left.scrollTop !== scrollTop) {
1920
+ loadCount++;
1921
+ $left.scrollTop = scrollTop;
1922
+ }
1923
+ }
1924
+ //右部固定内容区
1925
+ if ($table.getElementsByClassName('ant-table-fixed-right')[0]) {
1926
+ var $right = $table.getElementsByClassName('ant-table-fixed-right')[0].getElementsByClassName('ant-table-body-inner')[0].childNodes[0].childNodes[0];
1927
+ if ($right && obj !== 'right' && $right.scrollTop !== scrollTop) {
1928
+ loadCount++;
1929
+ $right.scrollTop = scrollTop;
1930
+ }
1931
+ }
1932
+ } else {
1933
+ loadCount--;
1934
+ }
1935
+ };
1936
+
1937
+ this.handleRadioGroupChange = function (field, v, index) {
1938
+ var quickSearcParams = (0, _extends3.default)({}, _this4.state.quickSearcParams);
1939
+ if (v === 'all') {
1940
+ var searchParams = (0, _extends3.default)({}, _this4.state.searchParams);
1941
+ delete searchParams[field + '_EQ'];
1942
+ delete quickSearcParams[field + '_EQ'];
1943
+ _this4.setState({ searchParams: searchParams, quickSearcParams: quickSearcParams, selectValue: v }, function () {
1944
+ return _this4.filterTableData();
1945
+ });
1946
+ } else {
1947
+ var _searchParams = (0, _extends3.default)({}, _this4.state.searchParams);
1948
+ _searchParams[field + '_EQ'] = v;
1949
+ quickSearcParams[field + '_EQ'] = v;
1950
+ _this4.setState({ searchParams: _searchParams, quickSearcParams: quickSearcParams, selectValue: v }, function () {
1951
+ return _this4.filterTableData();
1952
+ });
1953
+ }
1954
+ };
1955
+
1956
+ this.onCheckbuttonSearch = function () {
1957
+ var searchParams = {};
1958
+ _this4.checkbuttons.validateFields(function (err, values) {
1959
+ if (!err) {
1960
+ for (var key in values) {
1961
+ if (values[key]) {
1962
+ if (key.endsWith('_IN')) {
1963
+ if (values[key] && values[key].length > 0) {
1964
+ searchParams[key] = values[key];
1965
+ }
1966
+ } else {
1967
+ searchParams[key] = values[key];
1968
+ }
1969
+ }
1970
+ }
1971
+ }
1972
+ });
1973
+ _this4.setState({ searchParams: searchParams }, function () {
1974
+ return _this4.filterTableData();
1975
+ });
1976
+ };
1977
+
1978
+ this.buildParentColumns = function (columnsCfg) {
1979
+ var parentColumns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
1980
+
1981
+ var columns = columnsCfg.columns;
1982
+ if (!parentColumns || parentColumns.length === 0) {
1983
+ return columns;
1984
+ }
1985
+ var _columns = [].concat((0, _toConsumableArray3.default)(columns));
1986
+ _columns = _columns.map(function (i, index) {
1987
+ return (0, _extends3.default)({}, i, { index: index });
1988
+ });
1989
+
1990
+ parentColumns.map(function (item) {
1991
+ var children = item.children.map(function (i) {
1992
+ return i.toUpperCase();
1993
+ }); //把对应的dataIndex转为大写判断
1994
+ var _parentColumns = _columns.filter(function (i) {
1995
+ return children.includes(i.dataIndex);
1996
+ });
1997
+ if (_parentColumns.length > 0) {
1998
+ _columns.splice(_parentColumns[0].index, _parentColumns.length, (0, _extends3.default)({}, item, {
1999
+ children: _parentColumns,
2000
+ cacheFixed: item.fixed
2001
+ }));
2002
+ _columns = _columns.map(function (i, index) {
2003
+ return (0, _extends3.default)({}, i, { index: index });
2004
+ });
2005
+ }
2006
+ });
2007
+
2008
+ // 二级表头需要在此处处理,在getColumns()中获取不到parentColumns
2009
+ if (document.getElementsByClassName(_this4.state.className)[0]) {
2010
+ //列表的宽度
2011
+ var tableWidth = document.getElementsByClassName(_this4.state.className)[0].offsetWidth;
2012
+ _columns.map(function (item, index) {
2013
+ if (item.children) {
2014
+ if (columnsCfg.width > tableWidth) {
2015
+ if (item.cacheFixed) {
2016
+ item.fixed = item.cacheFixed;
2017
+ }
2018
+ } else {
2019
+ delete item.fixed;
2020
+ }
2021
+ }
2022
+ });
2023
+ }
2024
+ return _columns;
2025
+ };
2026
+
2027
+ this.reBuildColumns = function () {
2028
+ if (_this4.props.closeAdjustColumnWidth || !_this4.props.columns) {
2029
+ // 若关闭列表自适应 或 列由后端传值
2030
+ return;
2031
+ }
2032
+ // 去除掉columns的width,使其重新自动计算宽度
2033
+ var newColumns = [];
2034
+ var columns = _this4.props.columns;
2035
+ var params = _this4.state.params;
2036
+
2037
+ params.columns = columns;
2038
+ _this4.setState({
2039
+ params: params
2040
+ });
2041
+ _this4.refreshTable();
2042
+ };
2043
+
2044
+ this.tableHeaderScrollListener = function () {
2045
+ var tableEle = document.getElementsByClassName(_this4.state.className);
2046
+ if (tableEle.length > 0) {
2047
+ // 获取空表格
2048
+ var emptyEle = tableEle[0].getElementsByClassName('ant-table-empty');
2049
+ if (emptyEle.length > 0) {
2050
+ var topWidth = 0;
2051
+ var tableWidth = 0;
2052
+ // 获取空表格表头容器
2053
+ var headerEle = emptyEle[0].getElementsByClassName('ant-table-header');
2054
+ if (headerEle.length > 0) {
2055
+ // 获取空表格表头内容
2056
+ var table = headerEle[0].getElementsByTagName('table');
2057
+ topWidth = headerEle[0].offsetWidth;
2058
+ tableWidth = table[0].offsetWidth;
2059
+ // 如果容器小于内容,说明需要滚动条
2060
+ if (topWidth < tableWidth && !_this4.state.showTableHeaderScroll) {
2061
+ _this4.setState({
2062
+ showTableHeaderScroll: true
2063
+ });
2064
+ } else if (topWidth >= tableWidth && _this4.state.showTableHeaderScroll) {
2065
+ _this4.setState({
2066
+ showTableHeaderScroll: false
2067
+ });
2068
+ }
2069
+ }
2070
+ }
2071
+ }
2072
+ };
2073
+ };
2074
+
2075
+ exports.default = KyTable;