@arim-aisdc/public-components 2.2.9 → 2.3.0
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/dist/assets/iconfont/table/iconfont.css +29 -9
- package/dist/assets/iconfont/table/iconfont.ttf +0 -0
- package/dist/components/BaseInfo/BaseInfo.d.ts +1 -1
- package/dist/components/TableMax/TableBody/Row.js +21 -13
- package/dist/components/TableMax/TableBody/index.less +14 -0
- package/dist/components/TableMax/TableHeader/Cell.d.ts +3 -1
- package/dist/components/TableMax/TableHeader/Cell.js +19 -16
- package/dist/components/TableMax/TableHeader/index.d.ts +2 -1
- package/dist/components/TableMax/TableHeader/index.js +11 -20
- package/dist/components/TableMax/TableHeader/index.less +7 -0
- package/dist/components/TableMax/TableMax.d.ts +1 -2
- package/dist/components/TableMax/TableMax.js +11 -7
- package/dist/components/TableMax/components/{ColumnFilter/FilterDateRange → ColumnFilterV2/DateRange}/index.d.ts +2 -1
- package/dist/components/TableMax/components/ColumnFilterV2/DateRange/index.js +135 -0
- package/dist/components/TableMax/components/{ColumnFilter/FilterDateRange → ColumnFilterV2/DateRange}/index.less +5 -5
- package/dist/components/TableMax/components/ColumnFilterV2/Filter.d.ts +9 -0
- package/dist/components/TableMax/components/{ColumnFilter/index.js → ColumnFilterV2/Filter.js} +173 -226
- package/dist/components/TableMax/components/{ColumnFilter → ColumnFilterV2}/MultipleSelect/index.d.ts +3 -1
- package/dist/components/TableMax/components/ColumnFilterV2/MultipleSelect/index.js +124 -0
- package/dist/components/TableMax/components/ColumnFilterV2/MultipleSelect/index.less +32 -0
- package/dist/components/TableMax/components/ColumnFilterV2/NumberRange/index.d.ts +10 -0
- package/dist/components/TableMax/components/ColumnFilterV2/NumberRange/index.js +98 -0
- package/dist/components/TableMax/components/ColumnFilterV2/NumberRange/index.less +27 -0
- package/dist/components/TableMax/components/ColumnFilterV2/SingleSelect/index.d.ts +12 -0
- package/dist/components/TableMax/components/ColumnFilterV2/SingleSelect/index.js +107 -0
- package/dist/components/TableMax/components/ColumnFilterV2/SingleSelect/index.less +43 -0
- package/dist/components/TableMax/components/{ColumnFilter → ColumnFilterV2}/customFilterFns.js +1 -1
- package/dist/components/TableMax/components/{ColumnFilter → ColumnFilterV2}/index.d.ts +15 -1
- package/dist/components/TableMax/components/ColumnFilterV2/index.js +149 -0
- package/dist/components/TableMax/components/ColumnFilterV2/index.less +23 -0
- package/dist/components/TableMax/components/ColumnSetting/index.js +4 -13
- package/dist/components/TableMax/components/ColumnSort/customSortFns.d.ts +8 -8
- package/dist/components/TableMax/components/ColumnSort/customSortFns.js +43 -8
- package/dist/components/TableMax/components/ColumnSort/index.js +8 -1
- package/dist/components/TableMax/components/ColumnSort/index.less +6 -4
- package/dist/components/TableMax/index.d.ts +2 -2
- package/dist/components/TableMax/index.js +1 -1
- package/dist/components/TableMax/type.d.ts +33 -5
- package/dist/components/TableMax/type.js +21 -1
- package/dist/components/TableMax/utils.d.ts +13 -2
- package/dist/components/TableMax/utils.js +81 -8
- package/dist/themes/variables.less +5 -5
- package/dist/themes/variablesConfig.js +6 -6
- package/dist/utils/request.d.ts +4 -3
- package/dist/utils/request.js +4 -4
- package/package.json +1 -1
- package/dist/components/TableMax/components/ColumnFilter/FilterDateRange/index.js +0 -101
- package/dist/components/TableMax/components/ColumnFilter/MultipleSelect/index.js +0 -52
- package/dist/components/TableMax/components/ColumnFilter/MultipleSelect/index.less +0 -20
- package/dist/components/TableMax/components/ColumnFilter/SingleSelect/index.d.ts +0 -10
- package/dist/components/TableMax/components/ColumnFilter/SingleSelect/index.js +0 -27
- package/dist/components/TableMax/components/ColumnFilter/SingleSelect/index.less +0 -8
- /package/dist/components/TableMax/components/{ColumnFilter → ColumnFilterV2}/customFilterFns.d.ts +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
@font-face {
|
|
2
2
|
font-family: "iconfont-table"; /* Project id 4453758 */
|
|
3
|
-
src: url('
|
|
3
|
+
src: url('iconfont.ttf?t=1740568199599') format('truetype');
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
.iconfont-table {
|
|
@@ -11,12 +11,36 @@
|
|
|
11
11
|
-moz-osx-font-smoothing: grayscale;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
.icon-table-
|
|
15
|
-
content: "\
|
|
14
|
+
.icon-table-sort:before {
|
|
15
|
+
content: "\e890";
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
.icon-table-
|
|
19
|
-
content: "\
|
|
18
|
+
.icon-table-filter:before {
|
|
19
|
+
content: "\e88e";
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.icon-table-shengji:before {
|
|
23
|
+
content: "\e64a";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.icon-table-calendar:before {
|
|
27
|
+
content: "\e888";
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.icon-table-edit:before {
|
|
31
|
+
content: "\e887";
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.icon-table-pin:before {
|
|
35
|
+
content: "\e889";
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.icon-table-drag:before {
|
|
39
|
+
content: "\e88d";
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.icon-table-down:before {
|
|
43
|
+
content: "\e88f";
|
|
20
44
|
}
|
|
21
45
|
|
|
22
46
|
.icon-table-tight:before {
|
|
@@ -27,10 +51,6 @@
|
|
|
27
51
|
content: "\e87f";
|
|
28
52
|
}
|
|
29
53
|
|
|
30
|
-
.icon-table-shenglvehao:before {
|
|
31
|
-
content: "\e62d";
|
|
32
|
-
}
|
|
33
|
-
|
|
34
54
|
.icon-table-delete:before {
|
|
35
55
|
content: "\e87c";
|
|
36
56
|
}
|
|
Binary file
|
|
@@ -17,7 +17,7 @@ export declare const foramtBaseInfoField: (data: any, dataField: BaseInfoFieldTy
|
|
|
17
17
|
value: any;
|
|
18
18
|
field: string;
|
|
19
19
|
label?: string;
|
|
20
|
-
text: string | Element |
|
|
20
|
+
text: string | JSX.Element | Element;
|
|
21
21
|
units?: string;
|
|
22
22
|
width?: string;
|
|
23
23
|
labelWidth?: string;
|
|
@@ -280,16 +280,26 @@ var Row = function Row(_ref) {
|
|
|
280
280
|
}
|
|
281
281
|
};
|
|
282
282
|
|
|
283
|
-
//
|
|
284
|
-
var
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
283
|
+
// 高亮色
|
|
284
|
+
var highLightClassName = useMemo(function () {
|
|
285
|
+
if (!canSelection && String(row.id) === String(rowSelectedId)) {
|
|
286
|
+
// 单选,选中用高亮色显示
|
|
287
|
+
return 'tbody-tr-highlight';
|
|
288
|
+
} else if (canSelection) {
|
|
289
|
+
// 多选
|
|
290
|
+
if (row.getIsSelected()) {
|
|
291
|
+
// checked选中用选中色
|
|
292
|
+
return 'tbody-tr-selected';
|
|
293
|
+
} else if (String(row.id) === String(rowHighLightId)) {
|
|
294
|
+
// 高亮状态
|
|
295
|
+
return 'tbody-tr-highlight';
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
return '';
|
|
291
299
|
}, [row.id, row.getIsSelected(), rowSelectedId, selectRowWhenClick, rowHighLightId, canSelection]);
|
|
292
|
-
|
|
300
|
+
|
|
301
|
+
// console.log('row render');
|
|
302
|
+
|
|
293
303
|
var rowCom = function rowCom() {
|
|
294
304
|
var _row;
|
|
295
305
|
return /*#__PURE__*/_jsx("tr", {
|
|
@@ -305,7 +315,7 @@ var Row = function Row(_ref) {
|
|
|
305
315
|
onClick: rowClickOrDoubleClick,
|
|
306
316
|
onMouseEnter: rowMouseEnter,
|
|
307
317
|
onMouseLeave: rowMouseLeave,
|
|
308
|
-
className: "tbody-tr ".concat(
|
|
318
|
+
className: "tbody-tr ".concat(highLightClassName, " ").concat(dropPreviewLineClassName, " ").concat((rowClassName === null || rowClassName === void 0 ? void 0 : rowClassName(row).map(function (item) {
|
|
309
319
|
return "".concat(item, "-").concat(theme);
|
|
310
320
|
}).join(' ')) || ''),
|
|
311
321
|
children: (_row = row["getVisibleCells"]) === null || _row === void 0 ? void 0 : _row.call(row).map(function (cell) {
|
|
@@ -360,9 +370,7 @@ var Row = function Row(_ref) {
|
|
|
360
370
|
},
|
|
361
371
|
children: !!(tableBodyRef !== null && tableBodyRef !== void 0 && (_tableBodyRef$current = tableBodyRef.current) !== null && _tableBodyRef$current !== void 0 && _tableBodyRef$current.clientWidth) && /*#__PURE__*/_jsx("div", {
|
|
362
372
|
id: "".concat(tableId, "_expand-table"),
|
|
363
|
-
className: "subRowWrapper"
|
|
364
|
-
// 减去10,避免被父表滚动条覆盖
|
|
365
|
-
,
|
|
373
|
+
className: "subRowWrapper",
|
|
366
374
|
style: {
|
|
367
375
|
width: "".concat(tableBodyRef === null || tableBodyRef === void 0 || (_tableBodyRef$current2 = tableBodyRef.current) === null || _tableBodyRef$current2 === void 0 ? void 0 : _tableBodyRef$current2.clientWidth, "px")
|
|
368
376
|
},
|
|
@@ -18,6 +18,13 @@ table {
|
|
|
18
18
|
background-color: @globalColor0;
|
|
19
19
|
border-bottom: 1px solid @tableColor2;
|
|
20
20
|
}
|
|
21
|
+
.tbody-tr-highlight {
|
|
22
|
+
// display: flex;
|
|
23
|
+
transition: left, top;
|
|
24
|
+
transition-duration: 0.6s;
|
|
25
|
+
background-color: @rowHoverBackgroundColor;
|
|
26
|
+
border-bottom: 1px solid @tableColor2;
|
|
27
|
+
}
|
|
21
28
|
|
|
22
29
|
.tbody-tr-td-editting {
|
|
23
30
|
// height: auto !important;
|
|
@@ -28,6 +35,8 @@ table {
|
|
|
28
35
|
|
|
29
36
|
.tbody-tr-td,
|
|
30
37
|
.tbody-tr-td-drag,
|
|
38
|
+
.tbody-tr-highlight > .tbody-tr-td,
|
|
39
|
+
.tbody-tr-highlight > .tbody-tr-td-drag,
|
|
31
40
|
.tbody-tr-selected > .tbody-tr-td,
|
|
32
41
|
.tbody-tr-selected > .tbody-tr-td-drag {
|
|
33
42
|
background-color: @globalColor0;
|
|
@@ -45,6 +54,11 @@ table {
|
|
|
45
54
|
background: @selectTableRow;
|
|
46
55
|
}
|
|
47
56
|
|
|
57
|
+
.tbody-tr-highlight > .tbody-tr-td,
|
|
58
|
+
.tbody-tr-highlight > .tbody-tr-td-drag {
|
|
59
|
+
background: @rowHoverBackgroundColor;
|
|
60
|
+
}
|
|
61
|
+
|
|
48
62
|
.tbody-tr:not(.tbody-tr-selected) {
|
|
49
63
|
&:hover {
|
|
50
64
|
.tbody-tr-td {
|
|
@@ -12,6 +12,8 @@ type ICellType = {
|
|
|
12
12
|
columnResizeMode: ColumnResizeMode;
|
|
13
13
|
disableColumnDrag?: boolean;
|
|
14
14
|
headerRowNum: number;
|
|
15
|
+
canFilter?: boolean;
|
|
16
|
+
manualFiltering: boolean;
|
|
15
17
|
};
|
|
16
|
-
declare const Cell: ({ tableContentRef, header, table, hasGroup, canSorting, getHeaderCellProps, disableColumnDrag, headerRowNum, }: ICellType) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
declare const Cell: ({ tableContentRef, header, table, hasGroup, canSorting, getHeaderCellProps, disableColumnDrag, headerRowNum, canFilter, manualFiltering, }: ICellType) => import("react/jsx-runtime").JSX.Element;
|
|
17
19
|
export default Cell;
|
|
@@ -22,6 +22,7 @@ import { useDrag, useDrop } from 'react-dnd';
|
|
|
22
22
|
import { createPortal } from 'react-dom';
|
|
23
23
|
import { useConfig } from "../../ConfigProvider";
|
|
24
24
|
import { ColumnType } from "../TableMax";
|
|
25
|
+
import { ColumnFilter } from "../components/ColumnFilterV2";
|
|
25
26
|
import Sort from "../components/ColumnSort";
|
|
26
27
|
import "./index.less";
|
|
27
28
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -39,7 +40,9 @@ var Cell = function Cell(_ref) {
|
|
|
39
40
|
canSorting = _ref.canSorting,
|
|
40
41
|
getHeaderCellProps = _ref.getHeaderCellProps,
|
|
41
42
|
disableColumnDrag = _ref.disableColumnDrag,
|
|
42
|
-
headerRowNum = _ref.headerRowNum
|
|
43
|
+
headerRowNum = _ref.headerRowNum,
|
|
44
|
+
canFilter = _ref.canFilter,
|
|
45
|
+
manualFiltering = _ref.manualFiltering;
|
|
43
46
|
var _useConfig = useConfig(),
|
|
44
47
|
root = _useConfig.root;
|
|
45
48
|
var cannotDragColumn = [ColumnType.Darg, ColumnType.Selection, ColumnType.Expander, ColumnType.PlaceHolder];
|
|
@@ -86,7 +89,10 @@ var Cell = function Cell(_ref) {
|
|
|
86
89
|
initPosition = _useState2[0],
|
|
87
90
|
setInitPosition = _useState2[1];
|
|
88
91
|
return /*#__PURE__*/_jsxs("div", {
|
|
89
|
-
ref:
|
|
92
|
+
ref: function ref(node) {
|
|
93
|
+
dropRef(node);
|
|
94
|
+
dragRef(disableColumnDrag || cannotDragColumn.includes(header.column.id) || header.column.getIsPinned() ? null : node);
|
|
95
|
+
},
|
|
90
96
|
children: [/*#__PURE__*/_jsxs("div", {
|
|
91
97
|
className: "cell-wapper ".concat(columns ? 'wapper-top-parent' : '', " table-max-header-cell-wrapper"),
|
|
92
98
|
ref: previewRef,
|
|
@@ -102,13 +108,13 @@ var Cell = function Cell(_ref) {
|
|
|
102
108
|
y: y
|
|
103
109
|
});
|
|
104
110
|
},
|
|
105
|
-
children: [/*#__PURE__*/
|
|
111
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
106
112
|
className: "cell-left",
|
|
107
113
|
onClick: header.column.getToggleSortingHandler(),
|
|
108
114
|
style: {
|
|
109
115
|
textAlign: columns ? 'center' : 'left'
|
|
110
116
|
},
|
|
111
|
-
children:
|
|
117
|
+
children: !cannotDragColumn.includes(header.column.id) ? /*#__PURE__*/_jsx(Tooltip, {
|
|
112
118
|
placement: "topLeft"
|
|
113
119
|
// @ts-ignore
|
|
114
120
|
,
|
|
@@ -125,17 +131,16 @@ var Cell = function Cell(_ref) {
|
|
|
125
131
|
})
|
|
126
132
|
}) :
|
|
127
133
|
// @ts-ignore
|
|
128
|
-
flexRender(columnDef.header, header.getContext())
|
|
134
|
+
flexRender(columnDef.header, header.getContext())
|
|
135
|
+
}), !cannotDragColumn.includes(header.column.id) ? /*#__PURE__*/_jsxs("div", {
|
|
136
|
+
className: "cell-right",
|
|
137
|
+
children: [canSorting && header.column.getCanSort() ? /*#__PURE__*/_jsx(Sort, {
|
|
129
138
|
sort: header.column.getIsSorted()
|
|
139
|
+
}) : null, canFilter && columnDef.enableColumnFilter !== false ? /*#__PURE__*/_jsx(ColumnFilter, {
|
|
140
|
+
column: header.column,
|
|
141
|
+
manualFiltering: manualFiltering
|
|
130
142
|
}) : null]
|
|
131
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
132
|
-
className: "cell-right",
|
|
133
|
-
onClick: header.column.getToggleSortingHandler(),
|
|
134
|
-
children: disableColumnDrag || cannotDragColumn.includes(header.column.id) || header.column.getIsPinned() ? null : /*#__PURE__*/_jsx("i", {
|
|
135
|
-
ref: dragRef,
|
|
136
|
-
className: "icon iconfont-other icon-other-drag drag-handler"
|
|
137
|
-
})
|
|
138
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
143
|
+
}) : null, /*#__PURE__*/_jsx("div", {
|
|
139
144
|
className: "cell-resize-handler ".concat(header.column.getIsResizing() ? 'column-is-resizing' : ''),
|
|
140
145
|
onMouseDown: header.getResizeHandler(),
|
|
141
146
|
onTouchStart: header.getResizeHandler()
|
|
@@ -148,9 +153,7 @@ var Cell = function Cell(_ref) {
|
|
|
148
153
|
height: (_tableContentRef$curr = tableContentRef.current) === null || _tableContentRef$curr === void 0 ? void 0 : _tableContentRef$curr.clientHeight,
|
|
149
154
|
transform: "translateX(".concat(table.getState().columnSizingInfo.deltaOffset || 0, "px)")
|
|
150
155
|
}
|
|
151
|
-
}),
|
|
152
|
-
// document.body,
|
|
153
|
-
root ? document.querySelector(root) : document.body) : null]
|
|
156
|
+
}), root ? document.querySelector(root) : document.body) : null]
|
|
154
157
|
});
|
|
155
158
|
};
|
|
156
159
|
export default Cell;
|
|
@@ -18,6 +18,7 @@ type TableHeaderProps = {
|
|
|
18
18
|
};
|
|
19
19
|
disableColumnDrag?: boolean;
|
|
20
20
|
headerRowNum: number;
|
|
21
|
+
manualFiltering: boolean;
|
|
21
22
|
};
|
|
22
|
-
declare const TableHeader: ({ tableContentRef, table, canFilter, enableFilters, canSorting, hasGroup, getHeaderCellProps, columnResizeMode, shadowColumnInfo, disableColumnDrag, rowHeight, headerRowNum, }: TableHeaderProps) => import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
declare const TableHeader: ({ tableContentRef, table, canFilter, enableFilters, canSorting, hasGroup, getHeaderCellProps, columnResizeMode, shadowColumnInfo, disableColumnDrag, rowHeight, headerRowNum, manualFiltering, }: TableHeaderProps) => import("react/jsx-runtime").JSX.Element;
|
|
23
24
|
export default TableHeader;
|
|
@@ -7,14 +7,15 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
7
7
|
// import { Column, flexRender } from '@tanstack/react-table';
|
|
8
8
|
// import { useDrag, useDrop } from 'ahooks';
|
|
9
9
|
|
|
10
|
-
import { Filter } from
|
|
10
|
+
// import { Filter } from '../components/ColumnFilter';
|
|
11
|
+
|
|
11
12
|
import Cell from "./Cell";
|
|
12
13
|
import "./index.less";
|
|
13
14
|
import { getPinningStyle } from "./utils";
|
|
14
15
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
16
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
17
|
var TableHeader = function TableHeader(_ref) {
|
|
17
|
-
var _headerGroups
|
|
18
|
+
var _headerGroups;
|
|
18
19
|
var tableContentRef = _ref.tableContentRef,
|
|
19
20
|
table = _ref.table,
|
|
20
21
|
canFilter = _ref.canFilter,
|
|
@@ -26,7 +27,8 @@ var TableHeader = function TableHeader(_ref) {
|
|
|
26
27
|
shadowColumnInfo = _ref.shadowColumnInfo,
|
|
27
28
|
disableColumnDrag = _ref.disableColumnDrag,
|
|
28
29
|
rowHeight = _ref.rowHeight,
|
|
29
|
-
headerRowNum = _ref.headerRowNum
|
|
30
|
+
headerRowNum = _ref.headerRowNum,
|
|
31
|
+
manualFiltering = _ref.manualFiltering;
|
|
30
32
|
var headerGroups = table.getHeaderGroups();
|
|
31
33
|
var headers = (headerGroups === null || headerGroups === void 0 || (_headerGroups = headerGroups[headerGroups.length - 1]) === null || _headerGroups === void 0 ? void 0 : _headerGroups.headers) || [];
|
|
32
34
|
var leftLastColumnId = shadowColumnInfo.leftLastColumnId,
|
|
@@ -40,8 +42,8 @@ var TableHeader = function TableHeader(_ref) {
|
|
|
40
42
|
width: size
|
|
41
43
|
}, header.id);
|
|
42
44
|
})
|
|
43
|
-
}), /*#__PURE__*/
|
|
44
|
-
children:
|
|
45
|
+
}), /*#__PURE__*/_jsx("thead", {
|
|
46
|
+
children: headerGroups === null || headerGroups === void 0 ? void 0 : headerGroups.map(function (headerGroup) {
|
|
45
47
|
return /*#__PURE__*/_jsx("tr", {
|
|
46
48
|
className: "table-thead-tr cus-table-thead-tr",
|
|
47
49
|
style: {
|
|
@@ -62,25 +64,14 @@ var TableHeader = function TableHeader(_ref) {
|
|
|
62
64
|
getHeaderCellProps: getHeaderCellProps,
|
|
63
65
|
columnResizeMode: columnResizeMode,
|
|
64
66
|
disableColumnDrag: disableColumnDrag,
|
|
65
|
-
headerRowNum: headerRowNum
|
|
67
|
+
headerRowNum: headerRowNum,
|
|
68
|
+
canFilter: canFilter,
|
|
69
|
+
manualFiltering: manualFiltering
|
|
66
70
|
}, header.id)
|
|
67
71
|
}, header.id);
|
|
68
72
|
})
|
|
69
73
|
}, headerGroup.id);
|
|
70
|
-
})
|
|
71
|
-
className: "table-filter-tr",
|
|
72
|
-
children: headerGroups === null || headerGroups === void 0 || (_headerGroups2 = headerGroups[headerGroups.length - 1]) === null || _headerGroups2 === void 0 || (_headerGroups2 = _headerGroups2.headers) === null || _headerGroups2 === void 0 ? void 0 : _headerGroups2.map(function (header) {
|
|
73
|
-
return /*#__PURE__*/_jsx("th", {
|
|
74
|
-
style: _objectSpread({}, getPinningStyle(header, table)),
|
|
75
|
-
className: "table-filter-th ".concat(header.id === leftLastColumnId ? 'thead-tr-th-cell-fix-left-last' : '', " ").concat(header.id === rightFirstColumnId ? 'thead-tr-th-cell-fix-right-first' : ''),
|
|
76
|
-
children: header.column.getCanFilter() ? /*#__PURE__*/_jsx("div", {
|
|
77
|
-
children: /*#__PURE__*/_jsx(Filter, {
|
|
78
|
-
column: header.column
|
|
79
|
-
})
|
|
80
|
-
}) : null
|
|
81
|
-
}, header.id + '1');
|
|
82
|
-
})
|
|
83
|
-
}, "table-filter-tr") : null]
|
|
74
|
+
})
|
|
84
75
|
})]
|
|
85
76
|
});
|
|
86
77
|
};
|
|
@@ -41,6 +41,7 @@ table {
|
|
|
41
41
|
white-space: nowrap;
|
|
42
42
|
display: flex;
|
|
43
43
|
align-items: center;
|
|
44
|
+
justify-content: space-between;
|
|
44
45
|
|
|
45
46
|
.cell-left-header {
|
|
46
47
|
display: -webkit-box;
|
|
@@ -56,6 +57,12 @@ table {
|
|
|
56
57
|
}
|
|
57
58
|
}
|
|
58
59
|
|
|
60
|
+
.cell-right {
|
|
61
|
+
display: flex;
|
|
62
|
+
gap: 4px;
|
|
63
|
+
align-items: center;
|
|
64
|
+
}
|
|
65
|
+
|
|
59
66
|
.drag-handler {
|
|
60
67
|
color: @tableColor3;
|
|
61
68
|
display: none;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { RowData } from '@tanstack/react-table';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import './tableMax.less';
|
|
4
|
-
import { type
|
|
4
|
+
import { type TableMaxProps } from './type';
|
|
5
5
|
declare module '@tanstack/react-table' {
|
|
6
6
|
interface TableMeta<TData extends RowData> {
|
|
7
7
|
updateData: (rowIndex: number, columnId: string, value: unknown) => void;
|
|
@@ -14,7 +14,6 @@ export declare enum ColumnType {
|
|
|
14
14
|
Expander = "expander"
|
|
15
15
|
}
|
|
16
16
|
export type ColumnSizing = Record<string, number>;
|
|
17
|
-
export declare const TableContext: React.Context<TableContextType>;
|
|
18
17
|
export declare const CACHE_MAX_AGE: number;
|
|
19
18
|
declare const _default: React.ForwardRefExoticComponent<TableMaxProps & React.RefAttributes<unknown>>;
|
|
20
19
|
export default _default;
|
|
@@ -24,19 +24,19 @@ import { useUpdateEffect } from 'ahooks';
|
|
|
24
24
|
import { Button, Checkbox, Form, Pagination, Upload } from 'antd';
|
|
25
25
|
import dayjs from 'dayjs';
|
|
26
26
|
import { cloneDeep, debounce } from 'lodash';
|
|
27
|
-
import React, {
|
|
27
|
+
import React, { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
|
|
28
28
|
import { useConfig } from "../ConfigProvider";
|
|
29
29
|
import TableBody from "./TableBody";
|
|
30
30
|
import TableHeader from "./TableHeader";
|
|
31
31
|
import { InputType } from "./components/ColumnEdit";
|
|
32
|
-
import { setDefaultFilterFn } from "./components/
|
|
33
|
-
import customFilterFns from "./components/
|
|
32
|
+
import { setDefaultFilterFn } from "./components/ColumnFilterV2";
|
|
33
|
+
import customFilterFns from "./components/ColumnFilterV2/customFilterFns";
|
|
34
34
|
import ColumnSetting from "./components/ColumnSetting";
|
|
35
35
|
import customSortFns, { setDefaultSortFn } from "./components/ColumnSort/customSortFns";
|
|
36
36
|
import PaginationV2 from "./components/PaginationV2";
|
|
37
37
|
import { useColumnWidth } from "./hooks/useColumnWidth";
|
|
38
38
|
import "./tableMax.less";
|
|
39
|
-
import { downloadExcel, getFormatFilters, getFormatSorting, operationColumnNoTooltips } from "./utils";
|
|
39
|
+
import { downloadExcel, getFormatFilters, getFormatFiltersV2, getFormatSorting, operationColumnNoTooltips } from "./utils";
|
|
40
40
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
41
41
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
42
42
|
export var ColumnType = /*#__PURE__*/function (ColumnType) {
|
|
@@ -46,7 +46,8 @@ export var ColumnType = /*#__PURE__*/function (ColumnType) {
|
|
|
46
46
|
ColumnType["Expander"] = "expander";
|
|
47
47
|
return ColumnType;
|
|
48
48
|
}({});
|
|
49
|
-
export
|
|
49
|
+
// export const TableContext = createContext<TableContextType>({} as TableContextType);
|
|
50
|
+
|
|
50
51
|
export var CACHE_MAX_AGE = 1 * 60 * 60 * 1000;
|
|
51
52
|
var getCurrentRouterName = function getCurrentRouterName() {
|
|
52
53
|
return window.location.pathname.slice(1);
|
|
@@ -646,6 +647,7 @@ var TableMax = function TableMax(_ref) {
|
|
|
646
647
|
|
|
647
648
|
// 筛选回调
|
|
648
649
|
useEffect(function () {
|
|
650
|
+
console.log('columnFilters :>> ', tableId, columnFilters);
|
|
649
651
|
var filteredRowModel = table.getRowModel();
|
|
650
652
|
var filteredData = filteredRowModel.rows.map(function (item) {
|
|
651
653
|
return item.original;
|
|
@@ -660,7 +662,8 @@ var TableMax = function TableMax(_ref) {
|
|
|
660
662
|
filteredData: filteredData,
|
|
661
663
|
filteredRowModel: filteredRowModel,
|
|
662
664
|
filters: columnFilters,
|
|
663
|
-
formatFilters: getFormatFilters(columns, columnFilters)
|
|
665
|
+
formatFilters: getFormatFilters(columns, columnFilters),
|
|
666
|
+
formatFiltersV2: getFormatFiltersV2(columns, columnFilters) // 动态化查询格式:https://arim-jyzx.coding.net/p/infra/wiki/3252
|
|
664
667
|
});
|
|
665
668
|
}
|
|
666
669
|
}, [JSON.stringify(columnFilters), manualFiltering, tableId]);
|
|
@@ -980,7 +983,8 @@ var TableMax = function TableMax(_ref) {
|
|
|
980
983
|
columnResizeMode: columnResizeMode,
|
|
981
984
|
shadowColumnInfo: shadowColumnInfo,
|
|
982
985
|
disableColumnDrag: disableColumnDrag,
|
|
983
|
-
compactMode: compactMode
|
|
986
|
+
compactMode: compactMode,
|
|
987
|
+
manualFiltering: manualFiltering
|
|
984
988
|
};
|
|
985
989
|
var tableBodyProps = {
|
|
986
990
|
tableContentRef: tableContentRef,
|
|
@@ -10,7 +10,8 @@ interface IProps {
|
|
|
10
10
|
endDate: number | null;
|
|
11
11
|
} | undefined;
|
|
12
12
|
columnDef: TableMaxColumnType;
|
|
13
|
+
manualFiltering: boolean;
|
|
13
14
|
}
|
|
14
|
-
export declare const
|
|
15
|
+
export declare const DateRange: ({ onChange, value, columnDef, manualFiltering }: IProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
16
|
export declare const timeRangeFilter: (row: any, columnId: any, filterValue: any) => boolean;
|
|
16
17
|
export {};
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { DatePicker } from 'antd';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
import { defaultDateFormat } from "../index";
|
|
4
|
+
import "./index.less";
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
var defaultRangePresets = [{
|
|
7
|
+
label: '最近7天',
|
|
8
|
+
value: [dayjs().add(-7, 'd'), dayjs()]
|
|
9
|
+
}, {
|
|
10
|
+
label: '最近一个月',
|
|
11
|
+
value: [dayjs().add(-1, 'M'), dayjs()]
|
|
12
|
+
}, {
|
|
13
|
+
label: '最近三个月',
|
|
14
|
+
value: [dayjs().add(-3, 'M'), dayjs()]
|
|
15
|
+
}, {
|
|
16
|
+
label: '最近半年',
|
|
17
|
+
value: [dayjs().add(-6, 'M'), dayjs()]
|
|
18
|
+
}, {
|
|
19
|
+
label: '最近一年',
|
|
20
|
+
value: [dayjs().add(-1, 'y'), dayjs()]
|
|
21
|
+
}];
|
|
22
|
+
var defaultTimeRange = [dayjs('00:00:00', 'HH:mm:ss'), dayjs('23:59:59', 'HH:mm:ss')];
|
|
23
|
+
export var DateRange = function DateRange(_ref) {
|
|
24
|
+
var onChange = _ref.onChange,
|
|
25
|
+
value = _ref.value,
|
|
26
|
+
columnDef = _ref.columnDef,
|
|
27
|
+
manualFiltering = _ref.manualFiltering;
|
|
28
|
+
var _columnDef$filterComP = columnDef.filterComProps,
|
|
29
|
+
_columnDef$filterComP2 = _columnDef$filterComP.format,
|
|
30
|
+
format = _columnDef$filterComP2 === void 0 ? defaultDateFormat : _columnDef$filterComP2,
|
|
31
|
+
_columnDef$filterComP3 = _columnDef$filterComP.rangePresets,
|
|
32
|
+
rangePresets = _columnDef$filterComP3 === void 0 ? defaultRangePresets : _columnDef$filterComP3,
|
|
33
|
+
showTime = _columnDef$filterComP.showTime,
|
|
34
|
+
_columnDef$filterComP4 = _columnDef$filterComP.picker,
|
|
35
|
+
picker = _columnDef$filterComP4 === void 0 ? 'date' : _columnDef$filterComP4;
|
|
36
|
+
|
|
37
|
+
// 后端筛选-开始时间
|
|
38
|
+
var calManualStartTime = function calManualStartTime(startTime, dateStrings) {
|
|
39
|
+
if (picker === 'date') {
|
|
40
|
+
if (format.endsWith('YY')) {
|
|
41
|
+
return startTime.startOf('year').format('YYYY-MM-DD HH:mm:ss');
|
|
42
|
+
} else if (format.endsWith('MM')) {
|
|
43
|
+
return startTime.startOf('month').format('YYYY-MM-DD HH:mm:ss');
|
|
44
|
+
} else if (format.endsWith('DD')) {
|
|
45
|
+
return startTime.startOf('day').format('YYYY-MM-DD HH:mm:ss');
|
|
46
|
+
} else if (format.endsWith('HH')) {
|
|
47
|
+
return startTime.startOf('hour').format('YYYY-MM-DD HH:mm:ss');
|
|
48
|
+
} else if (format.endsWith('mm')) {
|
|
49
|
+
return startTime.startOf('minute').format('YYYY-MM-DD HH:mm:ss');
|
|
50
|
+
} else if (format.endsWith('ss')) {
|
|
51
|
+
return startTime.startOf('second').format('YYYY-MM-DD HH:mm:ss');
|
|
52
|
+
}
|
|
53
|
+
} else {
|
|
54
|
+
return dateStrings[0];
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
// 后端筛选-结束时间
|
|
59
|
+
var calManualEndTime = function calManualEndTime(endTime, dateStrings) {
|
|
60
|
+
if (picker === 'date') {
|
|
61
|
+
if (format.endsWith('YY')) {
|
|
62
|
+
return endTime.endOf('year').format('YYYY-MM-DD HH:mm:ss');
|
|
63
|
+
} else if (format.endsWith('MM')) {
|
|
64
|
+
return endTime.endOf('month').format('YYYY-MM-DD HH:mm:ss');
|
|
65
|
+
} else if (format.endsWith('DD')) {
|
|
66
|
+
return endTime.endOf('day').format('YYYY-MM-DD HH:mm:ss');
|
|
67
|
+
} else if (format.endsWith('HH')) {
|
|
68
|
+
return endTime.endOf('hour').format('YYYY-MM-DD HH:mm:ss');
|
|
69
|
+
} else if (format.endsWith('mm')) {
|
|
70
|
+
return endTime.endOf('minute').format('YYYY-MM-DD HH:mm:ss');
|
|
71
|
+
} else if (format.endsWith('ss')) {
|
|
72
|
+
return endTime.endOf('second').format('YYYY-MM-DD HH:mm:ss');
|
|
73
|
+
}
|
|
74
|
+
} else {
|
|
75
|
+
return dateStrings[1];
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
// 前端筛选-计算结束时间,精确度时间后的时间取结束时间,比如精确到小时,那么分钟取59分,秒取59秒,毫秒取999毫秒
|
|
80
|
+
var calEndTime = function calEndTime(endTime) {
|
|
81
|
+
if (format.endsWith('YY')) {
|
|
82
|
+
return endTime.endOf('year');
|
|
83
|
+
} else if (format.endsWith('MM')) {
|
|
84
|
+
return endTime.endOf('month');
|
|
85
|
+
} else if (format.endsWith('DD')) {
|
|
86
|
+
return endTime.endOf('day');
|
|
87
|
+
} else if (format.endsWith('HH')) {
|
|
88
|
+
return endTime.endOf('hour');
|
|
89
|
+
} else if (format.endsWith('mm')) {
|
|
90
|
+
return endTime.endOf('minute');
|
|
91
|
+
} else if (format.endsWith('ss')) {
|
|
92
|
+
return endTime.endOf('second');
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
var onChangeDateRange = function onChangeDateRange(dates, dateStrings) {
|
|
96
|
+
console.log('dates :>> ', dates, dateStrings);
|
|
97
|
+
var newRange = {
|
|
98
|
+
startDate: dates && dates[0] ? manualFiltering ? calManualStartTime(dates[0], dateStrings) // 后端筛选:向外传递字符串格式的时间
|
|
99
|
+
: dayjs(dateStrings[0]).valueOf() // 前端筛选需要时间戳格式:去掉精确度后面的时间:把字符串转为dayjs、再转为时间戳,
|
|
100
|
+
: null,
|
|
101
|
+
endDate: dates && dates[1] ? manualFiltering ? calManualEndTime(dates[1], dateStrings) // 后端筛选:向外传递字符串格式的时间
|
|
102
|
+
: calEndTime(dates[1]).valueOf() // 前端筛选需要时间戳格式
|
|
103
|
+
: null
|
|
104
|
+
};
|
|
105
|
+
if (newRange.startDate === null && newRange.endDate === null) {
|
|
106
|
+
onChange(undefined);
|
|
107
|
+
} else {
|
|
108
|
+
onChange(newRange);
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
return /*#__PURE__*/_jsx("div", {
|
|
112
|
+
className: "date-range-filter-wrapper",
|
|
113
|
+
children: /*#__PURE__*/_jsx(DatePicker.RangePicker, {
|
|
114
|
+
presets: rangePresets && rangePresets.length > 0 ? rangePresets : undefined,
|
|
115
|
+
defaultValue: [value !== null && value !== void 0 && value.startDate ? dayjs(value === null || value === void 0 ? void 0 : value.startDate) : undefined, value !== null && value !== void 0 && value.endDate ? dayjs(value === null || value === void 0 ? void 0 : value.endDate) : undefined],
|
|
116
|
+
showTime: showTime === true ? {
|
|
117
|
+
defaultValue: defaultTimeRange
|
|
118
|
+
} : showTime,
|
|
119
|
+
format: format,
|
|
120
|
+
placeholder: ['开始时间', '结束时间'],
|
|
121
|
+
picker: picker,
|
|
122
|
+
onChange: onChangeDateRange,
|
|
123
|
+
allowEmpty: [true, true],
|
|
124
|
+
style: {
|
|
125
|
+
width: 330
|
|
126
|
+
}
|
|
127
|
+
})
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
// 前端筛选时的过滤函数
|
|
132
|
+
export var timeRangeFilter = function timeRangeFilter(row, columnId, filterValue) {
|
|
133
|
+
var timeMs = new Date(row.getValue(columnId)).getTime() || 0;
|
|
134
|
+
return !(filterValue.startDate && timeMs < filterValue.startDate || filterValue.endDate && timeMs > filterValue.endDate);
|
|
135
|
+
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
.date-range-filter-
|
|
1
|
+
.date-range-filter-wrapper {
|
|
2
|
+
padding: 8px 12px;
|
|
2
3
|
.split-wapper {
|
|
3
4
|
margin: 5px 0px 0px;
|
|
4
5
|
height: 2px;
|
|
@@ -17,8 +18,7 @@
|
|
|
17
18
|
margin: 5px 0px 0px;
|
|
18
19
|
}
|
|
19
20
|
|
|
20
|
-
>div {
|
|
21
|
-
width: 100
|
|
21
|
+
> div {
|
|
22
|
+
width: 100%;
|
|
22
23
|
}
|
|
23
|
-
|
|
24
|
-
}
|
|
24
|
+
}
|