@aloudata/aloudata-design 0.2.0-beta.17 → 0.2.0-beta.18
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/es/Button/style/index.less +1 -1
- package/es/Input/style/index.less +14 -25
- package/es/Select/OptionsList/index.js +1 -1
- package/es/Select/Selector/index.js +1 -1
- package/es/Select/style/index.less +23 -4
- package/es/Table/index.js +69 -38
- package/es/Table/interface.d.ts +1 -1
- package/es/Table/style/index.less +3 -5
- package/es/Tabs/index.js +2 -1
- package/es/Tabs/style/index.less +8 -1
- package/lib/Button/style/index.less +1 -1
- package/lib/Input/style/index.less +14 -25
- package/lib/Select/OptionsList/index.js +1 -1
- package/lib/Select/Selector/index.js +1 -1
- package/lib/Select/style/index.less +23 -4
- package/lib/Table/index.js +69 -38
- package/lib/Table/interface.d.ts +1 -1
- package/lib/Table/style/index.less +3 -5
- package/lib/Tabs/index.js +2 -1
- package/lib/Tabs/style/index.less +8 -1
- package/package.json +2 -1
|
@@ -69,21 +69,23 @@
|
|
|
69
69
|
caret-color: @B40;
|
|
70
70
|
height: 100%;
|
|
71
71
|
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
72
74
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
.ant-input-affix-wrapper.ant-input-affix-wrapper {
|
|
76
|
+
&-lg {
|
|
77
|
+
padding: 4px 11px;
|
|
78
|
+
height: 32px;
|
|
79
|
+
font-size: 14px;
|
|
80
|
+
}
|
|
78
81
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
&-sm {
|
|
83
|
+
border-radius: @border-radius-sm;
|
|
84
|
+
padding: 0 12px;
|
|
85
|
+
height: 24px;
|
|
83
86
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
+
.ant-input-sm {
|
|
88
|
+
height: 22px;
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
91
|
}
|
|
@@ -92,16 +94,3 @@
|
|
|
92
94
|
.ald-iconfont('\e616');
|
|
93
95
|
}
|
|
94
96
|
}
|
|
95
|
-
|
|
96
|
-
.ant-input-password {
|
|
97
|
-
&-large {
|
|
98
|
-
// font-size: 14px;
|
|
99
|
-
// height: 32px;
|
|
100
|
-
|
|
101
|
-
.ant-input-lg {
|
|
102
|
-
// height: 20px;
|
|
103
|
-
// line-height: 20px;
|
|
104
|
-
// align-items: center;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
@@ -148,7 +148,7 @@ var OptionsList = function OptionsList(props, ref) {
|
|
|
148
148
|
return /*#__PURE__*/React.createElement("div", {
|
|
149
149
|
className: "".concat(prefixCls, "-list"),
|
|
150
150
|
style: {
|
|
151
|
-
|
|
151
|
+
maxHeight: "".concat(height - DEFAULT_LIST_PADDING, "px")
|
|
152
152
|
},
|
|
153
153
|
ref: OptionListRef,
|
|
154
154
|
role: "list",
|
|
@@ -173,7 +173,7 @@ var Selector = function Selector(props, ref) {
|
|
|
173
173
|
return [].concat(_toConsumableArray(prev), [curr]);
|
|
174
174
|
}, []);
|
|
175
175
|
|
|
176
|
-
if (Array.isArray(value) && value.length === filteredOptions.length) {
|
|
176
|
+
if (Array.isArray(value) && value.length === filteredOptions.length && !isEmpty(value)) {
|
|
177
177
|
return /*#__PURE__*/React.createElement("span", null, "\u5168\u90E8");
|
|
178
178
|
}
|
|
179
179
|
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
// Base Text
|
|
36
36
|
// @text-color-base: #313e75;
|
|
37
37
|
// @text-color-disabled: #313e75;
|
|
38
|
-
@text-font-size
|
|
38
|
+
@text-font-base-size: 14px;
|
|
39
39
|
// @text-lint-height-base: 22px;
|
|
40
40
|
|
|
41
41
|
//Background Color
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
|
|
45
45
|
@ald-prefix: ~'@{component-prefix}';
|
|
46
46
|
@select-prefix-cls-legacy: ~'@{component-prefix}-select-legacy';
|
|
47
|
-
@select-input-fontSize: @text-font-size
|
|
48
|
-
@select-input-fontSize-sm: @text-font-size
|
|
47
|
+
@select-input-fontSize: @text-font-base-size;
|
|
48
|
+
@select-input-fontSize-sm: @text-font-base-size - 2px;
|
|
49
49
|
// @color-font-list-primary-normal: @palette-black-6; // $color-black-6
|
|
50
50
|
// @color-box-shadow-focused: #c0c4d3;
|
|
51
51
|
// @color-background-matchHeight: #ffcf3c;
|
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
&-close {
|
|
142
142
|
position: absolute;
|
|
143
143
|
top: 0;
|
|
144
|
-
right:
|
|
144
|
+
right: 8px;
|
|
145
145
|
display: flex;
|
|
146
146
|
align-items: center;
|
|
147
147
|
justify-content: center;
|
|
@@ -283,6 +283,25 @@
|
|
|
283
283
|
}
|
|
284
284
|
}
|
|
285
285
|
|
|
286
|
+
&-default {
|
|
287
|
+
height: 28px;
|
|
288
|
+
.@{select-prefix-cls-legacy} {
|
|
289
|
+
&-selector {
|
|
290
|
+
height: 26px;
|
|
291
|
+
min-height: 26px;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
&-values-wrapper {
|
|
295
|
+
line-height: 26px;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
&-selector-label {
|
|
299
|
+
height: 26px;
|
|
300
|
+
font-size: 12px;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
286
305
|
&-large {
|
|
287
306
|
height: @height-lg;
|
|
288
307
|
.@{select-prefix-cls-legacy} {
|
package/es/Table/index.js
CHANGED
|
@@ -23,6 +23,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
23
23
|
|
|
24
24
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
25
25
|
|
|
26
|
+
/* eslint-disable no-unneeded-ternary */
|
|
26
27
|
/// <reference types ='./react-table-config' />
|
|
27
28
|
import _ from 'lodash';
|
|
28
29
|
import classnames from 'classnames';
|
|
@@ -31,6 +32,7 @@ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
|
|
31
32
|
import usePrefixCls from '../_utils/hooks/usePrefixCls';
|
|
32
33
|
import InfiniteScroll from 'react-infinite-scroll-component';
|
|
33
34
|
import Empty from '../Empty';
|
|
35
|
+
import ResizeObserver from 'rc-resize-observer';
|
|
34
36
|
import { useTable, useBlockLayout, useRowSelect, useSortBy, useResizeColumns } from 'react-table';
|
|
35
37
|
var ARRAY_FIRST_INDEX = 0;
|
|
36
38
|
var DEFAULT_ROW_WIDTH = 0;
|
|
@@ -73,11 +75,18 @@ function Table(_ref, ref) {
|
|
|
73
75
|
setTableClientWidth = _useState2[1];
|
|
74
76
|
|
|
75
77
|
var RANDOM_ID = "INNER_SCROLL_ID_".concat(Math.random());
|
|
78
|
+
|
|
79
|
+
var _useState3 = useState(DEFAULT_ROW_WIDTH),
|
|
80
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
81
|
+
width = _useState4[0],
|
|
82
|
+
setWidth = _useState4[1]; // 如果页面整体宽度变化则重新计算
|
|
83
|
+
|
|
84
|
+
|
|
76
85
|
useEffect(function () {
|
|
77
86
|
if (tableRef.current) {
|
|
78
87
|
setTableClientWidth(tableRef.current.clientWidth);
|
|
79
88
|
}
|
|
80
|
-
}, []);
|
|
89
|
+
}, [width]);
|
|
81
90
|
var initialColumnsWidthMap = useMemo(function () {
|
|
82
91
|
var map = new Map();
|
|
83
92
|
|
|
@@ -125,7 +134,12 @@ function Table(_ref, ref) {
|
|
|
125
134
|
}
|
|
126
135
|
});
|
|
127
136
|
});
|
|
128
|
-
}, [columns, sortable, initialColumnsWidthMap]);
|
|
137
|
+
}, [columns, sortable, initialColumnsWidthMap]); // 默认排序的对象
|
|
138
|
+
|
|
139
|
+
var defaultSortObject = {
|
|
140
|
+
id: newColumns[ARRAY_FIRST_INDEX].accessor,
|
|
141
|
+
desc: newColumns[ARRAY_FIRST_INDEX].sortOrder && newColumns[ARRAY_FIRST_INDEX].sortOrder === 'descend' ? true : false
|
|
142
|
+
}; // 如果支持排序 但是没有默认排序 则默认按第一列倒叙排序
|
|
129
143
|
|
|
130
144
|
var getInitialSortDirection = function getInitialSortDirection() {
|
|
131
145
|
if (defaultSort && defaultSort.id) {
|
|
@@ -133,10 +147,7 @@ function Table(_ref, ref) {
|
|
|
133
147
|
}
|
|
134
148
|
|
|
135
149
|
if (sortable) {
|
|
136
|
-
return
|
|
137
|
-
id: newColumns[ARRAY_FIRST_INDEX].accessor,
|
|
138
|
-
desc: false
|
|
139
|
-
};
|
|
150
|
+
return defaultSortObject;
|
|
140
151
|
}
|
|
141
152
|
|
|
142
153
|
return {
|
|
@@ -202,41 +213,65 @@ function Table(_ref, ref) {
|
|
|
202
213
|
}, "\u5171\u8BA1", total || len, "\u6761"), /*#__PURE__*/React.createElement("div", {
|
|
203
214
|
className: classnames("".concat(prefixCls, "-header-right"))
|
|
204
215
|
}, renderHeaderRight ? renderHeaderRight() : null));
|
|
205
|
-
};
|
|
216
|
+
}; // 排序的方向 倒叙{ id: 'xx', desc: true }、正序{ id: 'xx', desc: false }、无序 { id: '', desc: undefined }
|
|
217
|
+
// 获取排序方向以及排序的id
|
|
218
|
+
|
|
206
219
|
|
|
207
|
-
var
|
|
220
|
+
var getSortBy = function getSortBy(id) {
|
|
208
221
|
var sortDirections = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['ascend', 'descend'];
|
|
209
|
-
var
|
|
222
|
+
var // 如果传了sortDirections,则使用传入的,否则使用默认的
|
|
223
|
+
sortOrder = arguments.length > 2 ? arguments[2] : undefined;
|
|
224
|
+
var res = {
|
|
225
|
+
id: id,
|
|
226
|
+
desc: undefined // 给个默认的排序
|
|
227
|
+
|
|
228
|
+
};
|
|
229
|
+
var isSameCol = sortDirection.id === id;
|
|
210
230
|
var descMap = new Map([['ascend', false], ['descend', true]]);
|
|
211
|
-
var directions = allSortDirections || sortDirections;
|
|
231
|
+
var directions = allSortDirections || sortDirections; // 如果不是同一列 则返回默认排序 或者排序顺序的第一个
|
|
232
|
+
|
|
233
|
+
if (!isSameCol) {
|
|
234
|
+
if (sortOrder === 'ascend' || sortOrder === 'descend') {
|
|
235
|
+
res.desc = descMap.get(sortOrder);
|
|
236
|
+
} else {
|
|
237
|
+
res.desc = sortOrder ? sortOrder : descMap.get(directions[ARRAY_FIRST_INDEX]);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
return res;
|
|
241
|
+
} // 如果是同一列
|
|
242
|
+
// 如果列给了默认的sortOrder则不在变化
|
|
243
|
+
|
|
212
244
|
|
|
213
245
|
if (sortOrder === 'ascend' || sortOrder === 'descend') {
|
|
214
|
-
|
|
215
|
-
|
|
246
|
+
res.desc = descMap.get(sortOrder);
|
|
247
|
+
return res;
|
|
248
|
+
} // 在所有方向上 往后取一个
|
|
216
249
|
|
|
217
|
-
if (typeof currentDesc === 'undefined') {
|
|
218
|
-
return descMap.get(directions[ARRAY_FIRST_INDEX]);
|
|
219
|
-
}
|
|
220
250
|
|
|
221
|
-
var
|
|
251
|
+
var lastSortDirection = sortDirection.desc ? 'descend' : 'ascend';
|
|
222
252
|
|
|
223
253
|
var index = _.findIndex(directions, function (item) {
|
|
224
|
-
return item ===
|
|
254
|
+
return item === lastSortDirection;
|
|
225
255
|
});
|
|
226
256
|
|
|
227
257
|
var nextIndex = index + 1;
|
|
228
|
-
|
|
258
|
+
res.desc = descMap.get(directions[nextIndex]); // 如果没有排序方向,则返回默认排序对象
|
|
259
|
+
|
|
260
|
+
if (res.desc === undefined) {
|
|
261
|
+
res.id = '';
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
return res;
|
|
229
265
|
};
|
|
230
266
|
|
|
231
267
|
var getHeaderProps = function getHeaderProps(column) {
|
|
232
268
|
// @ts-ignore
|
|
233
269
|
var id = column.id,
|
|
234
|
-
isSortedDesc = column.isSortedDesc,
|
|
235
270
|
canSort = column.canSort,
|
|
236
271
|
sorter = column.sorter,
|
|
237
272
|
sortOrder = column.sortOrder,
|
|
238
273
|
sortDirections = column.sortDirections;
|
|
239
|
-
var toggleProps = column.getSortByToggleProps();
|
|
274
|
+
var toggleProps = column.getSortByToggleProps(); // 仅在Table设置sortable时,所有列的canSort为true,此时为前端排序
|
|
240
275
|
|
|
241
276
|
if (canSort) {
|
|
242
277
|
// client sort
|
|
@@ -245,19 +280,16 @@ function Table(_ref, ref) {
|
|
|
245
280
|
e.stopPropagation();
|
|
246
281
|
|
|
247
282
|
if (typeof toggleProps.onClick === 'function') {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
id: typeof desc === 'undefined' ? '' : id,
|
|
252
|
-
desc: desc
|
|
253
|
-
};
|
|
254
|
-
setSortBy(typeof desc === 'undefined' ? [] : [sortBy]);
|
|
283
|
+
var sortBy = getSortBy(id, sortDirections, sortOrder);
|
|
284
|
+
setSortBy(sortBy.desc === undefined ? [defaultSortObject] : [sortBy]); // 客户端排序时 需要重新设置排序
|
|
285
|
+
|
|
255
286
|
setSortDirection(sortBy);
|
|
256
287
|
onChange(sortBy);
|
|
257
288
|
}
|
|
258
289
|
}
|
|
259
290
|
});
|
|
260
|
-
}
|
|
291
|
+
} // 当列设置sorter属性时,则为服务端排序
|
|
292
|
+
|
|
261
293
|
|
|
262
294
|
if (sorter) {
|
|
263
295
|
// server sort
|
|
@@ -267,14 +299,8 @@ function Table(_ref, ref) {
|
|
|
267
299
|
}
|
|
268
300
|
})), {}, {
|
|
269
301
|
onClick: function onClick(e) {
|
|
270
|
-
e.stopPropagation();
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
var desc = getNextSortDesc(sortDirection.desc, sortDirections, sortOrder);
|
|
274
|
-
var sortBy = {
|
|
275
|
-
id: typeof desc === 'boolean' ? id : '',
|
|
276
|
-
desc: desc
|
|
277
|
-
};
|
|
302
|
+
e.stopPropagation();
|
|
303
|
+
var sortBy = getSortBy(id, sortDirections, sortOrder);
|
|
278
304
|
setSortDirection(sortBy);
|
|
279
305
|
onChange(sortBy);
|
|
280
306
|
}
|
|
@@ -374,7 +400,12 @@ function Table(_ref, ref) {
|
|
|
374
400
|
}, renderRowList()) : renderRowList());
|
|
375
401
|
};
|
|
376
402
|
|
|
377
|
-
return /*#__PURE__*/React.createElement(
|
|
403
|
+
return /*#__PURE__*/React.createElement(ResizeObserver, {
|
|
404
|
+
onResize: function onResize(_ref4) {
|
|
405
|
+
var domWidth = _ref4.width;
|
|
406
|
+
setWidth(domWidth);
|
|
407
|
+
}
|
|
408
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
378
409
|
className: prefixCls,
|
|
379
410
|
ref: tableRef
|
|
380
411
|
}, showHeader && renderHeader(data.length), /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, getTableProps()), {}, {
|
|
@@ -415,7 +446,7 @@ function Table(_ref, ref) {
|
|
|
415
446
|
style: {
|
|
416
447
|
width: totalColumnsWidth
|
|
417
448
|
}
|
|
418
|
-
}), renderTableBody())));
|
|
449
|
+
}), renderTableBody()))));
|
|
419
450
|
}
|
|
420
451
|
|
|
421
452
|
export default /*#__PURE__*/React.forwardRef(Table);
|
package/es/Table/interface.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export interface ISort<T> {
|
|
|
8
8
|
export interface IColumn<T extends object> {
|
|
9
9
|
title: string | null;
|
|
10
10
|
dataIndex: string;
|
|
11
|
-
render?: (value: any, row:
|
|
11
|
+
render?: (value: any, row: any, index: number) => React.ReactNode;
|
|
12
12
|
width?: number;
|
|
13
13
|
minWidth?: number;
|
|
14
14
|
sorter?: boolean | 'string' | 'number' | 'basic' | 'datetime' | 'alphanumeric' | ((rowA: Row<T>, rowB: Row<T>, columnId: IdType<T>, desc?: boolean) => number);
|
|
@@ -26,14 +26,13 @@
|
|
|
26
26
|
&-cell {
|
|
27
27
|
flex-grow: 1;
|
|
28
28
|
height: unset;
|
|
29
|
-
min-height: @table-row-height;
|
|
30
29
|
color: @NL0;
|
|
31
|
-
line-height:
|
|
30
|
+
line-height: 16px;
|
|
32
31
|
text-align: left;
|
|
33
32
|
border-bottom: 1px solid @NL95;
|
|
34
33
|
word-break: break-all;
|
|
35
|
-
display: flex;
|
|
36
|
-
padding:
|
|
34
|
+
display: flex !important; // 目前都让表格先居左、居中处理,所以这里需要强制设置为flex
|
|
35
|
+
padding: 11.5px 12px;
|
|
37
36
|
align-items: center;
|
|
38
37
|
|
|
39
38
|
&-content {
|
|
@@ -126,7 +125,6 @@
|
|
|
126
125
|
align-items: center;
|
|
127
126
|
justify-content: space-between;
|
|
128
127
|
margin-bottom: 24px;
|
|
129
|
-
padding: 0 10px;
|
|
130
128
|
|
|
131
129
|
&-left {
|
|
132
130
|
color: @NL0;
|
package/es/Tabs/index.js
CHANGED
package/es/Tabs/style/index.less
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
@import '../../style/index.less';
|
|
2
2
|
|
|
3
|
-
.ald-tabs {
|
|
3
|
+
.ant-tabs.ald-tabs {
|
|
4
4
|
&.ant-tabs {
|
|
5
5
|
color: @NL30;
|
|
6
6
|
}
|
|
@@ -30,6 +30,13 @@
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
&.ald-tabs-default {
|
|
34
|
+
.ant-tabs-tab {
|
|
35
|
+
font-size: 14px;
|
|
36
|
+
line-height: 20px;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
33
40
|
.ant-tabs-nav-more {
|
|
34
41
|
margin: 0 !important;
|
|
35
42
|
}
|
|
@@ -69,21 +69,23 @@
|
|
|
69
69
|
caret-color: @B40;
|
|
70
70
|
height: 100%;
|
|
71
71
|
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
72
74
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
.ant-input-affix-wrapper.ant-input-affix-wrapper {
|
|
76
|
+
&-lg {
|
|
77
|
+
padding: 4px 11px;
|
|
78
|
+
height: 32px;
|
|
79
|
+
font-size: 14px;
|
|
80
|
+
}
|
|
78
81
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
&-sm {
|
|
83
|
+
border-radius: @border-radius-sm;
|
|
84
|
+
padding: 0 12px;
|
|
85
|
+
height: 24px;
|
|
83
86
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
+
.ant-input-sm {
|
|
88
|
+
height: 22px;
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
91
|
}
|
|
@@ -92,16 +94,3 @@
|
|
|
92
94
|
.ald-iconfont('\e616');
|
|
93
95
|
}
|
|
94
96
|
}
|
|
95
|
-
|
|
96
|
-
.ant-input-password {
|
|
97
|
-
&-large {
|
|
98
|
-
// font-size: 14px;
|
|
99
|
-
// height: 32px;
|
|
100
|
-
|
|
101
|
-
.ant-input-lg {
|
|
102
|
-
// height: 20px;
|
|
103
|
-
// line-height: 20px;
|
|
104
|
-
// align-items: center;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
@@ -165,7 +165,7 @@ var OptionsList = function OptionsList(props, ref) {
|
|
|
165
165
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
166
166
|
className: "".concat(prefixCls, "-list"),
|
|
167
167
|
style: {
|
|
168
|
-
|
|
168
|
+
maxHeight: "".concat(height - DEFAULT_LIST_PADDING, "px")
|
|
169
169
|
},
|
|
170
170
|
ref: OptionListRef,
|
|
171
171
|
role: "list",
|
|
@@ -195,7 +195,7 @@ var Selector = function Selector(props, ref) {
|
|
|
195
195
|
return [].concat(_toConsumableArray(prev), [curr]);
|
|
196
196
|
}, []);
|
|
197
197
|
|
|
198
|
-
if (Array.isArray(value) && value.length === filteredOptions.length) {
|
|
198
|
+
if (Array.isArray(value) && value.length === filteredOptions.length && !(0, _lodash.isEmpty)(value)) {
|
|
199
199
|
return /*#__PURE__*/_react.default.createElement("span", null, "\u5168\u90E8");
|
|
200
200
|
}
|
|
201
201
|
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
// Base Text
|
|
36
36
|
// @text-color-base: #313e75;
|
|
37
37
|
// @text-color-disabled: #313e75;
|
|
38
|
-
@text-font-size
|
|
38
|
+
@text-font-base-size: 14px;
|
|
39
39
|
// @text-lint-height-base: 22px;
|
|
40
40
|
|
|
41
41
|
//Background Color
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
|
|
45
45
|
@ald-prefix: ~'@{component-prefix}';
|
|
46
46
|
@select-prefix-cls-legacy: ~'@{component-prefix}-select-legacy';
|
|
47
|
-
@select-input-fontSize: @text-font-size
|
|
48
|
-
@select-input-fontSize-sm: @text-font-size
|
|
47
|
+
@select-input-fontSize: @text-font-base-size;
|
|
48
|
+
@select-input-fontSize-sm: @text-font-base-size - 2px;
|
|
49
49
|
// @color-font-list-primary-normal: @palette-black-6; // $color-black-6
|
|
50
50
|
// @color-box-shadow-focused: #c0c4d3;
|
|
51
51
|
// @color-background-matchHeight: #ffcf3c;
|
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
&-close {
|
|
142
142
|
position: absolute;
|
|
143
143
|
top: 0;
|
|
144
|
-
right:
|
|
144
|
+
right: 8px;
|
|
145
145
|
display: flex;
|
|
146
146
|
align-items: center;
|
|
147
147
|
justify-content: center;
|
|
@@ -283,6 +283,25 @@
|
|
|
283
283
|
}
|
|
284
284
|
}
|
|
285
285
|
|
|
286
|
+
&-default {
|
|
287
|
+
height: 28px;
|
|
288
|
+
.@{select-prefix-cls-legacy} {
|
|
289
|
+
&-selector {
|
|
290
|
+
height: 26px;
|
|
291
|
+
min-height: 26px;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
&-values-wrapper {
|
|
295
|
+
line-height: 26px;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
&-selector-label {
|
|
299
|
+
height: 26px;
|
|
300
|
+
font-size: 12px;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
286
305
|
&-large {
|
|
287
306
|
height: @height-lg;
|
|
288
307
|
.@{select-prefix-cls-legacy} {
|
package/lib/Table/index.js
CHANGED
|
@@ -21,6 +21,8 @@ var _reactInfiniteScrollComponent = _interopRequireDefault(require("react-infini
|
|
|
21
21
|
|
|
22
22
|
var _Empty = _interopRequireDefault(require("../Empty"));
|
|
23
23
|
|
|
24
|
+
var _rcResizeObserver = _interopRequireDefault(require("rc-resize-observer"));
|
|
25
|
+
|
|
24
26
|
var _reactTable = require("react-table");
|
|
25
27
|
|
|
26
28
|
var _excluded = ["style"],
|
|
@@ -95,11 +97,18 @@ function Table(_ref, ref) {
|
|
|
95
97
|
setTableClientWidth = _useState2[1];
|
|
96
98
|
|
|
97
99
|
var RANDOM_ID = "INNER_SCROLL_ID_".concat(Math.random());
|
|
100
|
+
|
|
101
|
+
var _useState3 = (0, _react.useState)(DEFAULT_ROW_WIDTH),
|
|
102
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
103
|
+
width = _useState4[0],
|
|
104
|
+
setWidth = _useState4[1]; // 如果页面整体宽度变化则重新计算
|
|
105
|
+
|
|
106
|
+
|
|
98
107
|
(0, _react.useEffect)(function () {
|
|
99
108
|
if (tableRef.current) {
|
|
100
109
|
setTableClientWidth(tableRef.current.clientWidth);
|
|
101
110
|
}
|
|
102
|
-
}, []);
|
|
111
|
+
}, [width]);
|
|
103
112
|
var initialColumnsWidthMap = (0, _react.useMemo)(function () {
|
|
104
113
|
var map = new Map();
|
|
105
114
|
|
|
@@ -147,7 +156,12 @@ function Table(_ref, ref) {
|
|
|
147
156
|
}
|
|
148
157
|
});
|
|
149
158
|
});
|
|
150
|
-
}, [columns, sortable, initialColumnsWidthMap]);
|
|
159
|
+
}, [columns, sortable, initialColumnsWidthMap]); // 默认排序的对象
|
|
160
|
+
|
|
161
|
+
var defaultSortObject = {
|
|
162
|
+
id: newColumns[ARRAY_FIRST_INDEX].accessor,
|
|
163
|
+
desc: newColumns[ARRAY_FIRST_INDEX].sortOrder && newColumns[ARRAY_FIRST_INDEX].sortOrder === 'descend' ? true : false
|
|
164
|
+
}; // 如果支持排序 但是没有默认排序 则默认按第一列倒叙排序
|
|
151
165
|
|
|
152
166
|
var getInitialSortDirection = function getInitialSortDirection() {
|
|
153
167
|
if (defaultSort && defaultSort.id) {
|
|
@@ -155,10 +169,7 @@ function Table(_ref, ref) {
|
|
|
155
169
|
}
|
|
156
170
|
|
|
157
171
|
if (sortable) {
|
|
158
|
-
return
|
|
159
|
-
id: newColumns[ARRAY_FIRST_INDEX].accessor,
|
|
160
|
-
desc: false
|
|
161
|
-
};
|
|
172
|
+
return defaultSortObject;
|
|
162
173
|
}
|
|
163
174
|
|
|
164
175
|
return {
|
|
@@ -225,41 +236,65 @@ function Table(_ref, ref) {
|
|
|
225
236
|
}, "\u5171\u8BA1", total || len, "\u6761"), /*#__PURE__*/_react.default.createElement("div", {
|
|
226
237
|
className: (0, _classnames7.default)("".concat(prefixCls, "-header-right"))
|
|
227
238
|
}, renderHeaderRight ? renderHeaderRight() : null));
|
|
228
|
-
};
|
|
239
|
+
}; // 排序的方向 倒叙{ id: 'xx', desc: true }、正序{ id: 'xx', desc: false }、无序 { id: '', desc: undefined }
|
|
240
|
+
// 获取排序方向以及排序的id
|
|
241
|
+
|
|
229
242
|
|
|
230
|
-
var
|
|
243
|
+
var getSortBy = function getSortBy(id) {
|
|
231
244
|
var sortDirections = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['ascend', 'descend'];
|
|
232
|
-
var
|
|
245
|
+
var // 如果传了sortDirections,则使用传入的,否则使用默认的
|
|
246
|
+
sortOrder = arguments.length > 2 ? arguments[2] : undefined;
|
|
247
|
+
var res = {
|
|
248
|
+
id: id,
|
|
249
|
+
desc: undefined // 给个默认的排序
|
|
250
|
+
|
|
251
|
+
};
|
|
252
|
+
var isSameCol = sortDirection.id === id;
|
|
233
253
|
var descMap = new Map([['ascend', false], ['descend', true]]);
|
|
234
|
-
var directions = allSortDirections || sortDirections;
|
|
254
|
+
var directions = allSortDirections || sortDirections; // 如果不是同一列 则返回默认排序 或者排序顺序的第一个
|
|
255
|
+
|
|
256
|
+
if (!isSameCol) {
|
|
257
|
+
if (sortOrder === 'ascend' || sortOrder === 'descend') {
|
|
258
|
+
res.desc = descMap.get(sortOrder);
|
|
259
|
+
} else {
|
|
260
|
+
res.desc = sortOrder ? sortOrder : descMap.get(directions[ARRAY_FIRST_INDEX]);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
return res;
|
|
264
|
+
} // 如果是同一列
|
|
265
|
+
// 如果列给了默认的sortOrder则不在变化
|
|
266
|
+
|
|
235
267
|
|
|
236
268
|
if (sortOrder === 'ascend' || sortOrder === 'descend') {
|
|
237
|
-
|
|
238
|
-
|
|
269
|
+
res.desc = descMap.get(sortOrder);
|
|
270
|
+
return res;
|
|
271
|
+
} // 在所有方向上 往后取一个
|
|
239
272
|
|
|
240
|
-
if (typeof currentDesc === 'undefined') {
|
|
241
|
-
return descMap.get(directions[ARRAY_FIRST_INDEX]);
|
|
242
|
-
}
|
|
243
273
|
|
|
244
|
-
var
|
|
274
|
+
var lastSortDirection = sortDirection.desc ? 'descend' : 'ascend';
|
|
245
275
|
|
|
246
276
|
var index = _lodash.default.findIndex(directions, function (item) {
|
|
247
|
-
return item ===
|
|
277
|
+
return item === lastSortDirection;
|
|
248
278
|
});
|
|
249
279
|
|
|
250
280
|
var nextIndex = index + 1;
|
|
251
|
-
|
|
281
|
+
res.desc = descMap.get(directions[nextIndex]); // 如果没有排序方向,则返回默认排序对象
|
|
282
|
+
|
|
283
|
+
if (res.desc === undefined) {
|
|
284
|
+
res.id = '';
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
return res;
|
|
252
288
|
};
|
|
253
289
|
|
|
254
290
|
var getHeaderProps = function getHeaderProps(column) {
|
|
255
291
|
// @ts-ignore
|
|
256
292
|
var id = column.id,
|
|
257
|
-
isSortedDesc = column.isSortedDesc,
|
|
258
293
|
canSort = column.canSort,
|
|
259
294
|
sorter = column.sorter,
|
|
260
295
|
sortOrder = column.sortOrder,
|
|
261
296
|
sortDirections = column.sortDirections;
|
|
262
|
-
var toggleProps = column.getSortByToggleProps();
|
|
297
|
+
var toggleProps = column.getSortByToggleProps(); // 仅在Table设置sortable时,所有列的canSort为true,此时为前端排序
|
|
263
298
|
|
|
264
299
|
if (canSort) {
|
|
265
300
|
// client sort
|
|
@@ -268,19 +303,16 @@ function Table(_ref, ref) {
|
|
|
268
303
|
e.stopPropagation();
|
|
269
304
|
|
|
270
305
|
if (typeof toggleProps.onClick === 'function') {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
id: typeof desc === 'undefined' ? '' : id,
|
|
275
|
-
desc: desc
|
|
276
|
-
};
|
|
277
|
-
setSortBy(typeof desc === 'undefined' ? [] : [sortBy]);
|
|
306
|
+
var sortBy = getSortBy(id, sortDirections, sortOrder);
|
|
307
|
+
setSortBy(sortBy.desc === undefined ? [defaultSortObject] : [sortBy]); // 客户端排序时 需要重新设置排序
|
|
308
|
+
|
|
278
309
|
setSortDirection(sortBy);
|
|
279
310
|
onChange(sortBy);
|
|
280
311
|
}
|
|
281
312
|
}
|
|
282
313
|
});
|
|
283
|
-
}
|
|
314
|
+
} // 当列设置sorter属性时,则为服务端排序
|
|
315
|
+
|
|
284
316
|
|
|
285
317
|
if (sorter) {
|
|
286
318
|
// server sort
|
|
@@ -290,14 +322,8 @@ function Table(_ref, ref) {
|
|
|
290
322
|
}
|
|
291
323
|
})), {}, {
|
|
292
324
|
onClick: function onClick(e) {
|
|
293
|
-
e.stopPropagation();
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
var desc = getNextSortDesc(sortDirection.desc, sortDirections, sortOrder);
|
|
297
|
-
var sortBy = {
|
|
298
|
-
id: typeof desc === 'boolean' ? id : '',
|
|
299
|
-
desc: desc
|
|
300
|
-
};
|
|
325
|
+
e.stopPropagation();
|
|
326
|
+
var sortBy = getSortBy(id, sortDirections, sortOrder);
|
|
301
327
|
setSortDirection(sortBy);
|
|
302
328
|
onChange(sortBy);
|
|
303
329
|
}
|
|
@@ -398,7 +424,12 @@ function Table(_ref, ref) {
|
|
|
398
424
|
}, renderRowList()) : renderRowList());
|
|
399
425
|
};
|
|
400
426
|
|
|
401
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
427
|
+
return /*#__PURE__*/_react.default.createElement(_rcResizeObserver.default, {
|
|
428
|
+
onResize: function onResize(_ref4) {
|
|
429
|
+
var domWidth = _ref4.width;
|
|
430
|
+
setWidth(domWidth);
|
|
431
|
+
}
|
|
432
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
402
433
|
className: prefixCls,
|
|
403
434
|
ref: tableRef
|
|
404
435
|
}, showHeader && renderHeader(data.length), /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, getTableProps()), {}, {
|
|
@@ -439,7 +470,7 @@ function Table(_ref, ref) {
|
|
|
439
470
|
style: {
|
|
440
471
|
width: totalColumnsWidth
|
|
441
472
|
}
|
|
442
|
-
}), renderTableBody())));
|
|
473
|
+
}), renderTableBody()))));
|
|
443
474
|
}
|
|
444
475
|
|
|
445
476
|
var _default = /*#__PURE__*/_react.default.forwardRef(Table);
|
package/lib/Table/interface.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export interface ISort<T> {
|
|
|
8
8
|
export interface IColumn<T extends object> {
|
|
9
9
|
title: string | null;
|
|
10
10
|
dataIndex: string;
|
|
11
|
-
render?: (value: any, row:
|
|
11
|
+
render?: (value: any, row: any, index: number) => React.ReactNode;
|
|
12
12
|
width?: number;
|
|
13
13
|
minWidth?: number;
|
|
14
14
|
sorter?: boolean | 'string' | 'number' | 'basic' | 'datetime' | 'alphanumeric' | ((rowA: Row<T>, rowB: Row<T>, columnId: IdType<T>, desc?: boolean) => number);
|
|
@@ -26,14 +26,13 @@
|
|
|
26
26
|
&-cell {
|
|
27
27
|
flex-grow: 1;
|
|
28
28
|
height: unset;
|
|
29
|
-
min-height: @table-row-height;
|
|
30
29
|
color: @NL0;
|
|
31
|
-
line-height:
|
|
30
|
+
line-height: 16px;
|
|
32
31
|
text-align: left;
|
|
33
32
|
border-bottom: 1px solid @NL95;
|
|
34
33
|
word-break: break-all;
|
|
35
|
-
display: flex;
|
|
36
|
-
padding:
|
|
34
|
+
display: flex !important; // 目前都让表格先居左、居中处理,所以这里需要强制设置为flex
|
|
35
|
+
padding: 11.5px 12px;
|
|
37
36
|
align-items: center;
|
|
38
37
|
|
|
39
38
|
&-content {
|
|
@@ -126,7 +125,6 @@
|
|
|
126
125
|
align-items: center;
|
|
127
126
|
justify-content: space-between;
|
|
128
127
|
margin-bottom: 24px;
|
|
129
|
-
padding: 0 10px;
|
|
130
128
|
|
|
131
129
|
&-left {
|
|
132
130
|
color: @NL0;
|
package/lib/Tabs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
@import '../../style/index.less';
|
|
2
2
|
|
|
3
|
-
.ald-tabs {
|
|
3
|
+
.ant-tabs.ald-tabs {
|
|
4
4
|
&.ant-tabs {
|
|
5
5
|
color: @NL30;
|
|
6
6
|
}
|
|
@@ -30,6 +30,13 @@
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
&.ald-tabs-default {
|
|
34
|
+
.ant-tabs-tab {
|
|
35
|
+
font-size: 14px;
|
|
36
|
+
line-height: 20px;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
33
40
|
.ant-tabs-nav-more {
|
|
34
41
|
margin: 0 !important;
|
|
35
42
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aloudata/aloudata-design",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.18",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"start": "dumi dev",
|
|
6
6
|
"docs:build": "dumi build",
|
|
@@ -55,6 +55,7 @@
|
|
|
55
55
|
"lodash": "^4.17.21",
|
|
56
56
|
"rc-menu": "^9.3.2",
|
|
57
57
|
"rc-overflow": "^1.2.3",
|
|
58
|
+
"rc-resize-observer": "^1.2.0",
|
|
58
59
|
"rc-trigger": "^5.2.10",
|
|
59
60
|
"rc-virtual-list": "^3.4.2",
|
|
60
61
|
"react-infinite-scroll-component": "^6.1.0",
|