dlt-for-react 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -1
- package/assets/components/KyCheckButton/index.less +23 -0
- package/assets/components/KyCollapse/index.less +15 -0
- package/assets/components/KyContainerFrame/index.less +21 -0
- package/assets/components/KyEditableTable/index.less +116 -0
- package/assets/components/KyEmpty/index.less +8 -0
- package/assets/components/KyIcon/index.less +6 -0
- package/assets/components/KyMore/index.less +9 -0
- package/assets/components/KyTable/checkbuttons.less +23 -0
- package/assets/components/KyTable/highSearchForm.less +16 -0
- package/assets/components/KyTable/index.less +558 -0
- package/assets/components/KyTitle/index.less +39 -0
- package/assets/images/noData.png +0 -0
- package/lib/components/KyBtnBox/index.js +137 -0
- package/lib/components/KyCheckBox/index.js +361 -0
- package/lib/components/KyCheckButton/index.js +256 -0
- package/lib/components/KyCollapse/index.js +144 -0
- package/lib/components/KyContainerFrame/index.js +239 -0
- package/lib/components/KyEditableTable/component.js +216 -0
- package/lib/components/KyEditableTable/index.js +1537 -0
- package/lib/components/KyEmpty/index.js +102 -0
- package/lib/components/KyExcel/ExcelForm.js +111 -0
- package/lib/components/KyExcel/index.js +601 -0
- package/lib/components/KyIcon/index.js +51 -0
- package/lib/components/KyModal/buildTitle.js +1 -0
- package/lib/components/KyModal/dragM.js +1 -0
- package/lib/components/KyMore/index.js +74 -0
- package/lib/components/KyPreview/index.js +1 -0
- package/lib/components/KyTable/AddFieldsModal.js +360 -0
- package/lib/components/KyTable/action.js +222 -0
- package/lib/components/KyTable/checkButtons.js +244 -0
- package/lib/components/KyTable/data.js +726 -0
- package/lib/components/KyTable/expexcel.js +269 -0
- package/lib/components/KyTable/highSearchForm.js +749 -0
- package/lib/components/KyTable/highSelect.js +313 -0
- package/lib/components/KyTable/index.js +2075 -0
- package/lib/components/KyTable/marqueenText.js +142 -0
- package/lib/components/KyTable/overflowColumn.js +113 -0
- package/lib/components/KyTable/text.js +96 -0
- package/lib/components/KyTable/textGroup.js +108 -0
- package/lib/components/KyTitle/index.js +127 -0
- package/lib/components/KyUpload/index.js +1 -0
- package/lib/index.js +240 -59
- package/lib/layouts/Exception/403/index.js +1 -0
- package/lib/layouts/Exception/403.js +1 -0
- package/lib/layouts/Exception/404.js +1 -0
- package/lib/layouts/Exception/500.js +1 -0
- package/lib/layouts/LeftMenu/index.js +1 -0
- package/lib/layouts/Login/lyPassword.js +1 -0
- package/lib/layouts/NavigationBar/index.js +1 -0
- package/lib/layouts/Top/index.js +1 -0
- package/lib/layouts/TopMenu/index.js +1 -0
- package/lib/layouts/layout/index.js +1 -0
- package/lib/layouts/mixTop/index.js +1 -0
- package/lib/layouts/settingDrawer/colorChange.js +1 -0
- package/lib/layouts/settingDrawer/colorPicker.js +1 -0
- package/lib/utils/MD5.js +256 -0
- package/lib/utils/NHCore.js +273 -0
- package/lib/utils/NHFetch.js +451 -0
- package/lib/utils/common.js +516 -0
- package/lib/utils/createUuid.js +37 -0
- package/lib/utils/equalsObj.js +59 -0
- package/lib/utils/getLoginUser.js +10 -0
- package/lib/utils/getSize.js +27 -0
- package/lib/utils/index.js +804 -0
- package/package.json +2 -2
|
@@ -0,0 +1,726 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.throttle = exports.debounce = exports.getActions = exports.getTableDivHeigh = exports.refreshHeight = exports.getColumns = exports.handleTableColumns = exports.getRowSelection = undefined;
|
|
7
|
+
|
|
8
|
+
var _typeof2 = require('babel-runtime/helpers/typeof');
|
|
9
|
+
|
|
10
|
+
var _typeof3 = _interopRequireDefault(_typeof2);
|
|
11
|
+
|
|
12
|
+
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
|
|
13
|
+
|
|
14
|
+
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
|
|
15
|
+
|
|
16
|
+
var _extends2 = require('babel-runtime/helpers/extends');
|
|
17
|
+
|
|
18
|
+
var _extends3 = _interopRequireDefault(_extends2);
|
|
19
|
+
|
|
20
|
+
var _popover = require('antd/lib/popover');
|
|
21
|
+
|
|
22
|
+
var _popover2 = _interopRequireDefault(_popover);
|
|
23
|
+
|
|
24
|
+
require('antd/lib/popover/style');
|
|
25
|
+
|
|
26
|
+
var _react = require('react');
|
|
27
|
+
|
|
28
|
+
var _react2 = _interopRequireDefault(_react);
|
|
29
|
+
|
|
30
|
+
var _action = require('./action');
|
|
31
|
+
|
|
32
|
+
var _action2 = _interopRequireDefault(_action);
|
|
33
|
+
|
|
34
|
+
var _NHCore = require('../../utils/NHCore');
|
|
35
|
+
|
|
36
|
+
var _overflowColumn = require('./overflowColumn');
|
|
37
|
+
|
|
38
|
+
var _overflowColumn2 = _interopRequireDefault(_overflowColumn);
|
|
39
|
+
|
|
40
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* 获取行选中数据的处理
|
|
44
|
+
*/
|
|
45
|
+
var getRowSelection = exports.getRowSelection = function getRowSelection(rowSelection, checkbox, rowSelectionChange, selectedRowKeys) {
|
|
46
|
+
if (!checkbox) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
if (!rowSelection) {
|
|
50
|
+
rowSelection = {};
|
|
51
|
+
}
|
|
52
|
+
if (!rowSelection.type) {
|
|
53
|
+
rowSelection.type = 'checkbox';
|
|
54
|
+
}
|
|
55
|
+
rowSelection.onChange = function (selectedRowKeys, selectedRows) {
|
|
56
|
+
rowSelectionChange(selectedRowKeys, selectedRows);
|
|
57
|
+
};
|
|
58
|
+
rowSelection.selectedRowKeys = selectedRowKeys;
|
|
59
|
+
return rowSelection;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* 处理成列表可以使用的列
|
|
64
|
+
*/
|
|
65
|
+
var handleTableColumns = exports.handleTableColumns = function handleTableColumns(columns, props, className) {
|
|
66
|
+
if (!columns) {
|
|
67
|
+
return [];
|
|
68
|
+
}
|
|
69
|
+
var _props$adjustMaxWidth = props.adjustMaxWidth,
|
|
70
|
+
adjustMaxWidth = _props$adjustMaxWidth === undefined ? 200 : _props$adjustMaxWidth; //若超出最大宽度则显示省略号
|
|
71
|
+
|
|
72
|
+
var PopoverDom = function PopoverDom(sourceRender, item) {
|
|
73
|
+
var closeAdjustColumnWidth = props.closeAdjustColumnWidth;
|
|
74
|
+
|
|
75
|
+
var res = {},
|
|
76
|
+
widthToCal = item.width || 0;
|
|
77
|
+
if (widthToCal >= adjustMaxWidth) {
|
|
78
|
+
res.render = function () {
|
|
79
|
+
var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
80
|
+
var record = arguments[1];
|
|
81
|
+
var index = arguments[2];
|
|
82
|
+
|
|
83
|
+
var Dom = text;
|
|
84
|
+
if (sourceRender) {
|
|
85
|
+
Dom = sourceRender(text, record, index);
|
|
86
|
+
}
|
|
87
|
+
// Dom 宽度较小的话不需要气泡 个性化除外 只考虑字符和props.children
|
|
88
|
+
// flag
|
|
89
|
+
var flag = true;
|
|
90
|
+
var body_FontSize = (0, _NHCore.getStyle)(document.getElementsByClassName('ant-table')[0], 'fontSize');
|
|
91
|
+
var body_FontFamily = (0, _NHCore.getStyle)(document.body, 'fontFamily');
|
|
92
|
+
if (Dom && Dom.props) {
|
|
93
|
+
var domSize = (0, _NHCore.computeFontSize)(Dom.props.children, body_FontSize, body_FontFamily);
|
|
94
|
+
domSize.width = domSize.width + 6; //加上边距 避免内容溢出边距
|
|
95
|
+
domSize.width > widthToCal ? flag = false : '';
|
|
96
|
+
// Dom.props.children.length > 13 ? flag = false : ''
|
|
97
|
+
} else {
|
|
98
|
+
var _domSize = (0, _NHCore.computeFontSize)(Dom, body_FontSize, body_FontFamily);
|
|
99
|
+
_domSize.width > widthToCal + 6 ? flag = false : '';
|
|
100
|
+
// Dom.length > 13 ? flag = false : ''
|
|
101
|
+
}
|
|
102
|
+
if (closeAdjustColumnWidth || flag) {
|
|
103
|
+
return _react2.default.createElement(
|
|
104
|
+
'div',
|
|
105
|
+
{ className: 'textOverFlow' },
|
|
106
|
+
Dom
|
|
107
|
+
);
|
|
108
|
+
} else {
|
|
109
|
+
return _react2.default.createElement(
|
|
110
|
+
_popover2.default,
|
|
111
|
+
{
|
|
112
|
+
key: 'textOverFlow' + index,
|
|
113
|
+
id: 'test',
|
|
114
|
+
placement: 'topLeft',
|
|
115
|
+
content: _react2.default.createElement(
|
|
116
|
+
'div',
|
|
117
|
+
{ style: { maxWidth: 200, wordBreak: 'break-all' } },
|
|
118
|
+
Dom
|
|
119
|
+
)
|
|
120
|
+
},
|
|
121
|
+
_react2.default.createElement(
|
|
122
|
+
'div',
|
|
123
|
+
{ className: 'textOverFlow' },
|
|
124
|
+
Dom
|
|
125
|
+
)
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
} else {
|
|
130
|
+
res.render = function () {
|
|
131
|
+
var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
132
|
+
var record = arguments[1];
|
|
133
|
+
var index = arguments[2];
|
|
134
|
+
|
|
135
|
+
var Dom = text;
|
|
136
|
+
if (sourceRender) {
|
|
137
|
+
Dom = sourceRender(text, record, index);
|
|
138
|
+
}
|
|
139
|
+
return Dom;
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
res.width = item.width || widthToCal;
|
|
143
|
+
return res;
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
// 给columns增加Popover
|
|
147
|
+
columns.forEach(function (item, index) {
|
|
148
|
+
var sourceRender = item.render;
|
|
149
|
+
// || ((text) => { return text })
|
|
150
|
+
var render = void 0,
|
|
151
|
+
width = void 0;
|
|
152
|
+
if (item.render && typeof item.render === 'string') {
|
|
153
|
+
// 如果列是自定义的render 不做溢出处理
|
|
154
|
+
} else {
|
|
155
|
+
// let res = PopoverDom(sourceRender, item)
|
|
156
|
+
// render = res.render;
|
|
157
|
+
// width = res.width
|
|
158
|
+
// item.render = render
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (!item.minWidth) {
|
|
162
|
+
item.minWidth = width;
|
|
163
|
+
}
|
|
164
|
+
item.onHeaderCell = function (column) {
|
|
165
|
+
return {
|
|
166
|
+
width: column.width || column.minWidth || width || 0,
|
|
167
|
+
minWidth: column.width || column.minWidth || width || 0,
|
|
168
|
+
id: item.dataIndex + className,
|
|
169
|
+
index: index
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
if (columns[columns.length - 1] && columns[columns.length - 1].title == '操作') {
|
|
175
|
+
columns[columns.length - 1].fixed = 'right';
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
var newColumns = [];
|
|
179
|
+
//循环处理数据
|
|
180
|
+
for (var i = 0; i < columns.length; i++) {
|
|
181
|
+
var ele = columns[i];
|
|
182
|
+
var item = deepCopy(columns[i]);
|
|
183
|
+
//如果该列是隐藏,则不需要使用该列
|
|
184
|
+
// if (item.hidden === true) {
|
|
185
|
+
// continue;
|
|
186
|
+
// }
|
|
187
|
+
// if (
|
|
188
|
+
// item.sorted !== false &&
|
|
189
|
+
// item.title !== '序号' &&
|
|
190
|
+
// item.title !== '操作'
|
|
191
|
+
// ) {
|
|
192
|
+
// item.sorter = true;
|
|
193
|
+
// } else {
|
|
194
|
+
// item.sorter = false;
|
|
195
|
+
// }
|
|
196
|
+
// 默认添加排序,序号列、操作列、sort为false时不添加排序
|
|
197
|
+
if (item.sorted !== false && item.title !== '序号' && item.title !== '操作') {
|
|
198
|
+
item.sorter = true;
|
|
199
|
+
} else {
|
|
200
|
+
item.sorter = false;
|
|
201
|
+
}
|
|
202
|
+
//dataIndex不能为空
|
|
203
|
+
if (!item.dataIndex) {
|
|
204
|
+
alert('dataIndex不能为空');
|
|
205
|
+
return item;
|
|
206
|
+
}
|
|
207
|
+
//dataIndex必须大写
|
|
208
|
+
item.dataIndex = item.dataIndex.toUpperCase();
|
|
209
|
+
//如果key不存在就设置dataIndex为key值
|
|
210
|
+
if (!item.key) {
|
|
211
|
+
item.key = item.dataIndex;
|
|
212
|
+
}
|
|
213
|
+
//列width或者minWidth必须至少设置一个
|
|
214
|
+
// if (!item.width && !item.minWidth) {
|
|
215
|
+
// alert('参数设置有误,width和minWidth必须设置一个!');
|
|
216
|
+
// return item1;
|
|
217
|
+
// }
|
|
218
|
+
//如果列的最小宽度不存在,则设置width为最小宽度
|
|
219
|
+
if (!item.minWidth) {
|
|
220
|
+
item.minWidth = item.width;
|
|
221
|
+
}
|
|
222
|
+
//项缓存冻结列的数据,因为当列的宽度总和小于列表宽度的时候不需要是使用冻结列的
|
|
223
|
+
if (item.fixed && item.fixed === 'left') {
|
|
224
|
+
item.cacheFixed = 'left';
|
|
225
|
+
} else if (item.fixed && item.fixed === 'right') {
|
|
226
|
+
item.cacheFixed = 'right';
|
|
227
|
+
}
|
|
228
|
+
delete item.fixed;
|
|
229
|
+
//如果render是字符串,表示需要根据render的key值去获取function
|
|
230
|
+
if (item.render !== undefined && item.render !== '' && typeof item.render === 'string') {
|
|
231
|
+
if (item.render.indexOf('function') != -1) {
|
|
232
|
+
if (item.render) {
|
|
233
|
+
item.render = eval('(true&&' + item.render.replace(/[\r\n]/g, '') + ')');
|
|
234
|
+
} else {
|
|
235
|
+
delete item.render;
|
|
236
|
+
}
|
|
237
|
+
} else {
|
|
238
|
+
if (props.funcParams && props.funcParams[item.render] !== undefined) {
|
|
239
|
+
item.render = props.funcParams[item.render];
|
|
240
|
+
} else {
|
|
241
|
+
delete item.render;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
newColumns.push(item);
|
|
246
|
+
}
|
|
247
|
+
// console.log(newColumns,'newColumns')
|
|
248
|
+
return newColumns;
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* 获取真正展示时候的列的参数
|
|
253
|
+
* @param {*} columns
|
|
254
|
+
* @param {*} actions
|
|
255
|
+
* @param {*} data
|
|
256
|
+
*/
|
|
257
|
+
var getColumns = exports.getColumns = function getColumns(columns, actionColumnsCfg, className, props, pagination) {
|
|
258
|
+
var closeAdjustColumnWidth = props.closeAdjustColumnWidth;
|
|
259
|
+
var newColumns = [];
|
|
260
|
+
var currentPage = 0;
|
|
261
|
+
var pageSize = props.defaultPageSize || 20;
|
|
262
|
+
if (pagination) {
|
|
263
|
+
currentPage = pagination.page - 1 || 0;
|
|
264
|
+
pageSize = pagination.pageSize || props.defaultPageSize;
|
|
265
|
+
}
|
|
266
|
+
var xuhao = [{
|
|
267
|
+
dataIndex: 'index',
|
|
268
|
+
title: '序号',
|
|
269
|
+
minWidth: 70,
|
|
270
|
+
width: 70,
|
|
271
|
+
cacheFixed: 'left',
|
|
272
|
+
render: function render(text, record, index) {
|
|
273
|
+
return _react2.default.createElement(
|
|
274
|
+
'div',
|
|
275
|
+
null,
|
|
276
|
+
index + 1 + pageSize * currentPage
|
|
277
|
+
);
|
|
278
|
+
}
|
|
279
|
+
}];
|
|
280
|
+
|
|
281
|
+
var minWidthCount = 0; //最小宽度列(只有最小宽度这个参数)
|
|
282
|
+
var minAllWidth = 0; //最小宽度列宽度之和
|
|
283
|
+
var fieldAllWidth = 0; //除开序号列和操作列的宽度之和
|
|
284
|
+
var bodyContentMarginBottom = 0; ////内容区table向下扩充的距离,主要为了解决出现横向滚动条的时候会遮住列表内容
|
|
285
|
+
var xhIndex = columns.findIndex(function (i) {
|
|
286
|
+
return i.title === '序号';
|
|
287
|
+
});
|
|
288
|
+
if (xhIndex === -1) {
|
|
289
|
+
// 如果不存在序号
|
|
290
|
+
columns = xuhao.concat(columns);
|
|
291
|
+
} else {
|
|
292
|
+
columns[xhIndex].minWidth = 70;
|
|
293
|
+
columns[xhIndex].width = 70;
|
|
294
|
+
columns[xhIndex].cacheFixed = 'left';
|
|
295
|
+
}
|
|
296
|
+
columns.map(function (item, index) {
|
|
297
|
+
var newItem = (0, _extends3.default)({}, item);
|
|
298
|
+
if (!newItem.minWidth) {
|
|
299
|
+
newItem.minWidth = newItem.width;
|
|
300
|
+
}
|
|
301
|
+
newItem.onHeaderCell = function (column) {
|
|
302
|
+
return {
|
|
303
|
+
width: column.width || column.minWidth || 0,
|
|
304
|
+
minWidth: column.width || column.minWidth || 0,
|
|
305
|
+
id: item.dataIndex + className,
|
|
306
|
+
index: index
|
|
307
|
+
};
|
|
308
|
+
};
|
|
309
|
+
//如果render是字符串,表示需要根据render的key值去获取function
|
|
310
|
+
if (newItem.render !== undefined && newItem.render !== '' && typeof newItem.render === 'string') {
|
|
311
|
+
if (newItem.render.indexOf('function') != -1) {
|
|
312
|
+
if (newItem.render) {
|
|
313
|
+
newItem.render = eval('(true&&' + newItem.render.replace(/[\r\n]/g, '') + ')');
|
|
314
|
+
} else {
|
|
315
|
+
delete newItem.render;
|
|
316
|
+
}
|
|
317
|
+
} else {
|
|
318
|
+
if (props.funcParams && props.funcParams[newItem.render] !== undefined) {
|
|
319
|
+
newItem.render = props.funcParams[newItem.render];
|
|
320
|
+
} else {
|
|
321
|
+
delete newItem.render;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
if (!item) {
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
if (item.hidden === true) {
|
|
329
|
+
// 隐藏列
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
if (item.title !== '序号' && item.dataIndex !== 'ACTION') {
|
|
333
|
+
fieldAllWidth += parseInt(item.minWidth || item.width, 10);
|
|
334
|
+
}
|
|
335
|
+
if (!item.width) {
|
|
336
|
+
minWidthCount++;
|
|
337
|
+
minAllWidth += parseInt(item.minWidth, 10);
|
|
338
|
+
}
|
|
339
|
+
if (!newItem.width) {
|
|
340
|
+
// if(isNaN(newItem.width) || newItem.width == undefined){
|
|
341
|
+
newItem.width = 0;
|
|
342
|
+
}
|
|
343
|
+
newColumns.push(newItem);
|
|
344
|
+
});
|
|
345
|
+
|
|
346
|
+
if (actionColumnsCfg !== undefined) {
|
|
347
|
+
newColumns.push(actionColumnsCfg);
|
|
348
|
+
}
|
|
349
|
+
//获取对象的宽度,如果当前对象宽度为0,表明此对象是被隐藏了,此时需要获取他父级的宽度
|
|
350
|
+
function getWidth(width, obj) {
|
|
351
|
+
if (width <= 0) {
|
|
352
|
+
var paddintLeft = (0, _NHCore.getStyle)(obj.parentNode, 'paddingLeft') ? (0, _NHCore.getStyle)(obj.parentNode, 'paddingLeft') : 0;
|
|
353
|
+
var paddingRight = (0, _NHCore.getStyle)(obj.parentNode, 'paddingRight') ? (0, _NHCore.getStyle)(obj.parentNode, 'paddingRight') : 0;
|
|
354
|
+
var borderLeft = (0, _NHCore.getStyle)(obj.parentNode, 'borderLeftWidth') ? (0, _NHCore.getStyle)(obj.parentNode, 'borderLeftWidth') : 0;
|
|
355
|
+
var borderRight = (0, _NHCore.getStyle)(obj.parentNode, 'borderRightWidth') ? (0, _NHCore.getStyle)(obj.parentNode, 'borderRightWidth') : 0;
|
|
356
|
+
width = obj.parentNode.clientWidth - parseInt(paddintLeft, 10) - parseInt(paddingRight, 10) - parseInt(borderLeft, 10) - parseInt(borderRight, 10);
|
|
357
|
+
if (obj.className.includes('ant-table-expanded-row')) {
|
|
358
|
+
//如果为二级列表,则需要减去第一个TD的宽度
|
|
359
|
+
width = (width - 50) * 0.98;
|
|
360
|
+
}
|
|
361
|
+
return getWidth(width, obj.parentNode);
|
|
362
|
+
}
|
|
363
|
+
return width;
|
|
364
|
+
}
|
|
365
|
+
var width = undefined; //默认列不需要设置宽度
|
|
366
|
+
if (document.getElementsByClassName(className)[0]) {
|
|
367
|
+
//存在二级列表时候的+号列50
|
|
368
|
+
var expandWidth = props.expandedRowRender === undefined ? 0 : 50;
|
|
369
|
+
//滚动条宽度17
|
|
370
|
+
var scollWidth = props.autoHeightFlag === true ? 0 : 17;
|
|
371
|
+
//选择框列63
|
|
372
|
+
var selectFieldWidth = props.checkbox !== false ? 63 : 0;
|
|
373
|
+
//列表的宽度
|
|
374
|
+
var tableWidth = document.getElementsByClassName(className)[0].offsetWidth;
|
|
375
|
+
tableWidth = getWidth(tableWidth, document.getElementsByClassName(className)[0]);
|
|
376
|
+
//列的实际宽度
|
|
377
|
+
var trueWidth = scollWidth + selectFieldWidth + expandWidth;
|
|
378
|
+
var resizeAllWidth = 0; //拖拽列的宽度之和
|
|
379
|
+
newColumns.map(function (item, index) {
|
|
380
|
+
if (item.width) {
|
|
381
|
+
trueWidth += parseInt(item.width, 10);
|
|
382
|
+
}
|
|
383
|
+
resizeAllWidth += parseInt(item.resizeWidth || 0, 10);
|
|
384
|
+
//
|
|
385
|
+
// trueWidth += parseInt(item.widthToCalScallWidth || 0, 10);
|
|
386
|
+
return item;
|
|
387
|
+
});
|
|
388
|
+
|
|
389
|
+
// 不能从真实domu元素中获取到宽度 因为这个时候还没有渲染 只能通过属性
|
|
390
|
+
// 在渲染后的计算
|
|
391
|
+
// columns.forEach((col, index) => {
|
|
392
|
+
// let thDom = document.getElementById(col.dataIndex) || {};
|
|
393
|
+
// let thWidth = thDom.scrollWidth;
|
|
394
|
+
// // console.log(thDom, thDom.scrollWidth);
|
|
395
|
+
// if (thWidth > 200) thWidth = 200
|
|
396
|
+
// if (thWidth === undefined) thWidth = 0
|
|
397
|
+
// trueWidth += thWidth
|
|
398
|
+
// })
|
|
399
|
+
|
|
400
|
+
// console.log(trueWidth,tableWidth,'trueWidth')
|
|
401
|
+
var noWidthLength = newColumns.filter(function (i) {
|
|
402
|
+
return !i.width && !isNaN(i.width);
|
|
403
|
+
}).length; //未设置宽度的列数
|
|
404
|
+
var resizeWidthLength = newColumns.filter(function (i) {
|
|
405
|
+
return i.resizeWidth;
|
|
406
|
+
}).length; //拖拽表头宽度的列数
|
|
407
|
+
//如果列的宽度大于列表的宽度的时候,需要冻结列
|
|
408
|
+
if (trueWidth > tableWidth && noWidthLength === 0) {
|
|
409
|
+
newColumns.map(function (item, index) {
|
|
410
|
+
// item.width = parseInt(item.minWidth, 10);
|
|
411
|
+
//此时会出现横向滚动条,设置最小宽度列的字段不设置具体的宽度以适应弹性布局,主要是为了解决会出现白色垂直空隙
|
|
412
|
+
if (item.cacheFixed) {
|
|
413
|
+
item.fixed = item.cacheFixed;
|
|
414
|
+
} else {
|
|
415
|
+
if (!item.render || !item.closeOverflow) {
|
|
416
|
+
//column存在自定义的方法 或者关闭溢出浮动的显示
|
|
417
|
+
item.render = handelPopoverDom(item, closeAdjustColumnWidth);
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
if (item.fixed && !item.closeOverflow) {
|
|
421
|
+
var styleObj = { width: item.width ? parseInt(item.width, 10) - 16 : null };
|
|
422
|
+
item.render = handelPopoverDom(item, closeAdjustColumnWidth, styleObj);
|
|
423
|
+
}
|
|
424
|
+
return item;
|
|
425
|
+
});
|
|
426
|
+
width = trueWidth;
|
|
427
|
+
bodyContentMarginBottom = 12;
|
|
428
|
+
} else if (trueWidth === tableWidth) {
|
|
429
|
+
//如果列的宽度等于列表的宽度的时候,不需要做任何的处理
|
|
430
|
+
newColumns.map(function (item, index) {
|
|
431
|
+
if (item.minWidth) {
|
|
432
|
+
item.width = parseInt(item.minWidth, 10);
|
|
433
|
+
}
|
|
434
|
+
if (!item.render || !item.closeOverflow) {
|
|
435
|
+
item.render = handelPopoverDom(item, closeAdjustColumnWidth);
|
|
436
|
+
}
|
|
437
|
+
if (item.fixed && !item.closeOverflow) {
|
|
438
|
+
var styleObj = { width: item.width ? parseInt(item.width, 10) - 16 : null };
|
|
439
|
+
item.render = handelPopoverDom(item, closeAdjustColumnWidth, styleObj);
|
|
440
|
+
}
|
|
441
|
+
return item;
|
|
442
|
+
});
|
|
443
|
+
} else {
|
|
444
|
+
//如果列的宽度小于列表的宽度的时候,存在最小宽度列,则把剩余宽度平分到最小宽度列,如果没有,则平分到除了序号和操作列的其他列
|
|
445
|
+
// let elseWidth = tableWidth - trueWidth + scollWidth; //因为暂时不能准确判断是否会出现滚动条,加上scollWidth使elseWidth等于或稍大与实际值,避免表格刷新时出现列偏移的情况
|
|
446
|
+
var elseWidth = tableWidth - trueWidth; //因为暂时不能准确判断是否会出现滚动条,加上scollWidth使elseWidth等于或稍大与实际值,避免表格刷新时出现列偏移的情况
|
|
447
|
+
if (resizeWidthLength > 0) {
|
|
448
|
+
// 如果有拖拽的列,则拖拽的列宽不变,其他的列平分
|
|
449
|
+
// elseWidth = tableWidth - trueWidth - resizeAllWidth + scollWidth;
|
|
450
|
+
elseWidth = tableWidth - trueWidth - resizeAllWidth;
|
|
451
|
+
fieldAllWidth = fieldAllWidth - resizeAllWidth;
|
|
452
|
+
minAllWidth = minAllWidth - resizeAllWidth;
|
|
453
|
+
}
|
|
454
|
+
if (minWidthCount === 0) {
|
|
455
|
+
//没有扩展列
|
|
456
|
+
newColumns.map(function (item, index) {
|
|
457
|
+
if (item.dataIndex && item.dataIndex !== 'rowId' && item.title !== '序号' && item.dataIndex !== 'ACTION' && !item.resizeWidth) {
|
|
458
|
+
item.width = parseInt(item.width, 10) + parseInt(elseWidth * parseInt(item.minWidth, 10) / fieldAllWidth, 10);
|
|
459
|
+
}
|
|
460
|
+
if (!item.render || !item.closeOverflow) {
|
|
461
|
+
item.render = handelPopoverDom(item, closeAdjustColumnWidth);
|
|
462
|
+
}
|
|
463
|
+
if (item.fixed && !item.closeOverflow) {
|
|
464
|
+
var styleObj = { width: item.width ? parseInt(item.width, 10) - 16 : null };
|
|
465
|
+
item.render = handelPopoverDom(item, closeAdjustColumnWidth, styleObj);
|
|
466
|
+
}
|
|
467
|
+
return item;
|
|
468
|
+
});
|
|
469
|
+
} else {
|
|
470
|
+
newColumns.map(function (item, index) {
|
|
471
|
+
if (!item.width && item.minWidth) {
|
|
472
|
+
//最小宽度列
|
|
473
|
+
// item.width =
|
|
474
|
+
// parseInt(item.minWidth, 10) +
|
|
475
|
+
// parseInt((elseWidth * parseInt(item.minWidth, 10)) / minAllWidth, 10);
|
|
476
|
+
item.width = parseInt(elseWidth * parseInt(item.minWidth, 10) / minAllWidth, 10);
|
|
477
|
+
}
|
|
478
|
+
if (!item.render || !item.closeOverflow) {
|
|
479
|
+
item.render = handelPopoverDom(item, closeAdjustColumnWidth);
|
|
480
|
+
}
|
|
481
|
+
if (item.fixed && !item.closeOverflow) {
|
|
482
|
+
var styleObj = { width: item.width ? parseInt(item.width, 10) - 16 : null };
|
|
483
|
+
item.render = handelPopoverDom(item, closeAdjustColumnWidth, styleObj);
|
|
484
|
+
}
|
|
485
|
+
return item;
|
|
486
|
+
});
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
return { columns: newColumns, width: width, bodyContentMarginBottom: bodyContentMarginBottom };
|
|
491
|
+
};
|
|
492
|
+
|
|
493
|
+
/**
|
|
494
|
+
* 刷新高度设置
|
|
495
|
+
* @param {*} props
|
|
496
|
+
* @param {*} state
|
|
497
|
+
*/
|
|
498
|
+
var refreshHeight = exports.refreshHeight = function refreshHeight(props, state, func) {
|
|
499
|
+
//如果需要自适应高度
|
|
500
|
+
if (!props.autoHeightFlag && document.getElementsByClassName(state.className)) {
|
|
501
|
+
var lastHeight = state.height;
|
|
502
|
+
var height = (0, _NHCore.getSuitHeight)(document.getElementsByClassName(state.className)[0]);
|
|
503
|
+
var titleHeight = props.titleHeight || props.titleHeight === 0 ? props.titleHeight : 40;
|
|
504
|
+
//如果不显示头部,则头部的高度为0
|
|
505
|
+
if (props.showHeader !== true) {
|
|
506
|
+
titleHeight = 0;
|
|
507
|
+
}
|
|
508
|
+
var reduceHeight = 36 + titleHeight;
|
|
509
|
+
if (props.footerFlag === false) {
|
|
510
|
+
//如果不显示尾部
|
|
511
|
+
reduceHeight = 5 + titleHeight;
|
|
512
|
+
}
|
|
513
|
+
height = height - reduceHeight;
|
|
514
|
+
if (!lastHeight || lastHeight !== height) {
|
|
515
|
+
func && func(height);
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
};
|
|
519
|
+
|
|
520
|
+
var getTableDivHeigh = exports.getTableDivHeigh = function getTableDivHeigh(height, autoHeightFlag, className, ele) {
|
|
521
|
+
var bottomHeight = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 28;
|
|
522
|
+
|
|
523
|
+
if (autoHeightFlag) {
|
|
524
|
+
return '100%';
|
|
525
|
+
}
|
|
526
|
+
if (height) {
|
|
527
|
+
return height;
|
|
528
|
+
}
|
|
529
|
+
var tableDivHeight = void 0;
|
|
530
|
+
if (ele) {
|
|
531
|
+
tableDivHeight = window.innerHeight - (0, _NHCore.getOffset)(ele).top - bottomHeight;
|
|
532
|
+
} else {
|
|
533
|
+
tableDivHeight = (0, _NHCore.getSuitHeight)(document.getElementsByClassName(className)[0] && document.getElementsByClassName(className)[0].parentNode);
|
|
534
|
+
}
|
|
535
|
+
return tableDivHeight;
|
|
536
|
+
};
|
|
537
|
+
|
|
538
|
+
/**
|
|
539
|
+
* 获取操作列
|
|
540
|
+
*/
|
|
541
|
+
var getActions = exports.getActions = function getActions(actions, data, actionLength) {
|
|
542
|
+
if (!actions || actions.length <= 0) {
|
|
543
|
+
return undefined;
|
|
544
|
+
}
|
|
545
|
+
//1、过滤掉没有权限的操作列
|
|
546
|
+
var newActions = [].concat((0, _toConsumableArray3.default)(actions));
|
|
547
|
+
newActions = actions.filter(function (item) {
|
|
548
|
+
if (item.authList) {
|
|
549
|
+
return (0, _NHCore.hasAuthList)(item.authList);
|
|
550
|
+
}
|
|
551
|
+
return !item.auth || (0, _NHCore.hasAuth)(item.auth);
|
|
552
|
+
});
|
|
553
|
+
|
|
554
|
+
if (newActions.length <= 0) {
|
|
555
|
+
return undefined;
|
|
556
|
+
}
|
|
557
|
+
//1、计算操作列的宽度
|
|
558
|
+
var actionWidth = 80;
|
|
559
|
+
if (data || data.length > 0) {
|
|
560
|
+
//如果数据为空,则此时默认操作列的宽度为80px
|
|
561
|
+
// data.map(item => {
|
|
562
|
+
// let rowActions = [];
|
|
563
|
+
// for (let i = 0; i < newActions.length; i++) {
|
|
564
|
+
// if (newActions[i].isShow === undefined || newActions[i].isShow(item)) {
|
|
565
|
+
// rowActions.push(newActions[i]);
|
|
566
|
+
// }
|
|
567
|
+
// }
|
|
568
|
+
// let tempWidth = 16;
|
|
569
|
+
// if (newActions.length <= actionLength) {
|
|
570
|
+
// for (var i = 0; i < newActions.length; i++) {
|
|
571
|
+
// tempWidth += newActions[i].title.length * 14 + 17;
|
|
572
|
+
// }
|
|
573
|
+
// tempWidth -= 17;
|
|
574
|
+
// } else {
|
|
575
|
+
// for (var i = 0; i < actionLength - 1; i++) {
|
|
576
|
+
// tempWidth += newActions[i].title.length * 14 + 17;
|
|
577
|
+
// }
|
|
578
|
+
// tempWidth += 44;
|
|
579
|
+
// }
|
|
580
|
+
|
|
581
|
+
// if (actionWidth < tempWidth) {
|
|
582
|
+
// actionWidth = tempWidth;
|
|
583
|
+
// }
|
|
584
|
+
// return item;
|
|
585
|
+
// });
|
|
586
|
+
var tempWidth = 16;
|
|
587
|
+
var _actionWidth = newActions.map(function (i) {
|
|
588
|
+
return i.title.length;
|
|
589
|
+
}).sort(function (b, a) {
|
|
590
|
+
return a - b;
|
|
591
|
+
});
|
|
592
|
+
if (newActions.length <= actionLength) {
|
|
593
|
+
for (var i = 0; i < newActions.length; i++) {
|
|
594
|
+
tempWidth += newActions[i].title.length * 14 + 17;
|
|
595
|
+
}
|
|
596
|
+
tempWidth -= 17;
|
|
597
|
+
} else {
|
|
598
|
+
for (var i = 0; i < actionLength - 1; i++) {
|
|
599
|
+
tempWidth += _actionWidth[i] * 15 + 17;
|
|
600
|
+
}
|
|
601
|
+
tempWidth += 44;
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
if (actionWidth < tempWidth) {
|
|
605
|
+
actionWidth = tempWidth;
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
return {
|
|
610
|
+
title: '操作',
|
|
611
|
+
width: actionWidth + 'px',
|
|
612
|
+
// width: 200,
|
|
613
|
+
minWidth: actionWidth + 'px',
|
|
614
|
+
cacheFixed: 'right',
|
|
615
|
+
dataIndex: 'ACTION',
|
|
616
|
+
key: 'ACTION',
|
|
617
|
+
closeOverflow: true,
|
|
618
|
+
render: function render(text, record, index) {
|
|
619
|
+
return _react2.default.createElement(_action2.default, { action: newActions, record: record, key: index, actionLength: actionLength });
|
|
620
|
+
}
|
|
621
|
+
};
|
|
622
|
+
};
|
|
623
|
+
|
|
624
|
+
var deepCopy = function deepCopy(obj) {
|
|
625
|
+
if ((typeof obj === 'undefined' ? 'undefined' : (0, _typeof3.default)(obj)) !== 'object') {
|
|
626
|
+
return obj;
|
|
627
|
+
}
|
|
628
|
+
var newobj = {};
|
|
629
|
+
for (var attr in obj) {
|
|
630
|
+
newobj[attr] = deepCopy(obj[attr]);
|
|
631
|
+
}
|
|
632
|
+
return newobj;
|
|
633
|
+
};
|
|
634
|
+
|
|
635
|
+
/**
|
|
636
|
+
* 将列溢出的处理为Popover
|
|
637
|
+
* @param {*} item
|
|
638
|
+
* @param {*} closeAdjustColumnWidth
|
|
639
|
+
* @returns render
|
|
640
|
+
*/
|
|
641
|
+
var handelPopoverDom = function handelPopoverDom(item, closeAdjustColumnWidth) {
|
|
642
|
+
var styleObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
643
|
+
|
|
644
|
+
var render = void 0,
|
|
645
|
+
widthToCal = item.width || 0;
|
|
646
|
+
var sourceRender = item.render;
|
|
647
|
+
render = function render() {
|
|
648
|
+
var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
649
|
+
var record = arguments[1];
|
|
650
|
+
var index = arguments[2];
|
|
651
|
+
|
|
652
|
+
var Dom = text;
|
|
653
|
+
if (sourceRender) {
|
|
654
|
+
Dom = sourceRender(text, record, index);
|
|
655
|
+
}
|
|
656
|
+
return _react2.default.createElement(_overflowColumn2.default, { text: Dom, style: styleObj });
|
|
657
|
+
// // Dom 宽度较小的话不需要气泡 个性化除外 只考虑字符和props.children
|
|
658
|
+
// // flag 处理列溢出时才显示Popover
|
|
659
|
+
// let flag = true;
|
|
660
|
+
// let body_FontSize = getStyle(document.getElementsByClassName('ant-table')[0],'fontSize');
|
|
661
|
+
// let body_FontFamily = getStyle(document.body, 'fontFamily');
|
|
662
|
+
// if (Dom&&Dom.props) {
|
|
663
|
+
// let domSize = computeFontSize(Dom.props.children,body_FontSize,body_FontFamily)
|
|
664
|
+
// domSize.width = domSize.width + 16; //加上边距 避免内容溢出边距 左右的padding为16
|
|
665
|
+
// domSize.width > widthToCal ? flag = false : '';
|
|
666
|
+
// // Dom.props.children.length > 13 ? flag = false : ''
|
|
667
|
+
// } else {
|
|
668
|
+
// let domSize = computeFontSize(Dom,body_FontSize,body_FontFamily);
|
|
669
|
+
// domSize.width = domSize.width + 16; //加上边距 避免内容溢出边距 左右的padding为16
|
|
670
|
+
// domSize.width > widthToCal ? flag = false : '';
|
|
671
|
+
// }
|
|
672
|
+
// if (closeAdjustColumnWidth || flag) {
|
|
673
|
+
// return <div className={'textOverFlow'}>{Dom}</div>
|
|
674
|
+
// } else {
|
|
675
|
+
// return <Popover key={'textOverFlow' + index} id='test' placement="topLeft" content={<div style={{ maxWidth: 200, wordBreak: 'break-all' }}>
|
|
676
|
+
// {Dom}
|
|
677
|
+
// </div>} >
|
|
678
|
+
// <div className={'textOverFlow'}>{Dom}</div>
|
|
679
|
+
// </Popover>
|
|
680
|
+
// }
|
|
681
|
+
};
|
|
682
|
+
return render;
|
|
683
|
+
};
|
|
684
|
+
|
|
685
|
+
/**
|
|
686
|
+
* 函数防抖
|
|
687
|
+
* @param {*} fn
|
|
688
|
+
* @param {*} context this指向
|
|
689
|
+
* @param {*} delay
|
|
690
|
+
*/
|
|
691
|
+
var debounce = exports.debounce = function debounce(fn, context, delay) {
|
|
692
|
+
var timer = null;
|
|
693
|
+
return function () {
|
|
694
|
+
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
|
695
|
+
args[_key] = arguments[_key];
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
if (timer) {
|
|
699
|
+
clearTimeout(timer);
|
|
700
|
+
}
|
|
701
|
+
timer = setTimeout(function () {
|
|
702
|
+
fn.apply(context, args);
|
|
703
|
+
}, delay);
|
|
704
|
+
};
|
|
705
|
+
};
|
|
706
|
+
/**
|
|
707
|
+
* 函数节流
|
|
708
|
+
* @param {*} fn
|
|
709
|
+
* @param {*} context this指向
|
|
710
|
+
* @param {*} delay
|
|
711
|
+
* @returns
|
|
712
|
+
*/
|
|
713
|
+
var throttle = exports.throttle = function throttle(fn, context, delay) {
|
|
714
|
+
var last = 0; //上次触发的事件
|
|
715
|
+
return function () {
|
|
716
|
+
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
717
|
+
args[_key2] = arguments[_key2];
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
var now = Date.now();
|
|
721
|
+
if (now - last > delay) {
|
|
722
|
+
last = now;
|
|
723
|
+
fn.apply(context, args);
|
|
724
|
+
}
|
|
725
|
+
};
|
|
726
|
+
};
|