@arim-aisdc/public-components 2.1.2 → 2.1.3
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/components/BaseInfo/BaseInfo.d.ts +1 -1
- package/dist/components/CustomForm/CustomForm.js +3 -0
- package/dist/components/TableMax/TableBody/Row.d.ts +3 -2
- package/dist/components/TableMax/TableBody/Row.js +12 -7
- package/dist/components/TableMax/TableBody/index.d.ts +2 -1
- package/dist/components/TableMax/TableBody/index.js +5 -2
- package/dist/components/TableMax/TableMax.d.ts +1 -0
- package/dist/components/TableMax/TableMax.js +107 -205
- package/dist/components/TableMax/components/ColumnEdit/components/numberRange/index.d.ts +2 -1
- package/dist/components/TableMax/components/ColumnEdit/components/numberRange/index.js +4 -1
- package/dist/components/TableMax/components/ColumnEdit/components/remoteSelect/index.d.ts +11 -0
- package/dist/components/TableMax/components/ColumnEdit/components/remoteSelect/index.js +106 -0
- package/dist/components/TableMax/components/ColumnEdit/index.d.ts +4 -0
- package/dist/components/TableMax/components/ColumnEdit/index.js +34 -15
- package/dist/components/TableMax/components/ColumnFilter/MultipleSelect/index.js +2 -5
- package/dist/components/TableMax/components/ColumnFilter/SingleSelect/index.js +3 -6
- package/dist/components/TableMax/components/ColumnSort/customSortFns.d.ts +8 -8
- package/dist/components/TableMax/components/CustomDragerLayer/index.js +22 -5
- package/dist/components/TableMax/components/CustomDragerLayer/index.less +19 -1
- package/dist/components/TableMax/hooks/useColumnWidth.d.ts +18 -0
- package/dist/components/TableMax/hooks/useColumnWidth.js +351 -0
- package/dist/components/TableMax/type.d.ts +13 -4
- package/dist/components/TableMax/utils.d.ts +1 -0
- package/dist/components/TableMax/utils.js +7 -0
- package/package.json +1 -1
|
@@ -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;
|
|
@@ -398,6 +398,9 @@ var CustomForm = function CustomForm(_ref, ref) {
|
|
|
398
398
|
onChange: function onChange(e) {
|
|
399
399
|
commonChange(e, item);
|
|
400
400
|
},
|
|
401
|
+
disabled: item === null || item === void 0 ? void 0 : item.disabled
|
|
402
|
+
// disabledDate={item?.disabled}
|
|
403
|
+
,
|
|
401
404
|
suffixIcon: /*#__PURE__*/_jsx("i", {
|
|
402
405
|
className: "iconfont-other icon-other-calendar"
|
|
403
406
|
}),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DropSide, OnSelectChangeType } from "../type";
|
|
2
2
|
import { Table } from '@tanstack/react-table';
|
|
3
|
-
import { Dispatch, ReactNode, SetStateAction } from 'react';
|
|
3
|
+
import React, { Dispatch, ReactNode, SetStateAction } from 'react';
|
|
4
4
|
import './index.less';
|
|
5
5
|
type IRowProps = {
|
|
6
6
|
table: Table<any>;
|
|
@@ -58,6 +58,7 @@ type IRowProps = {
|
|
|
58
58
|
clearHoverRowIndex: () => void;
|
|
59
59
|
hoverRowIndex: number;
|
|
60
60
|
dropSide: DropSide;
|
|
61
|
+
onEditValueChange?: (field: string, value: any, extra?: any) => void;
|
|
61
62
|
};
|
|
62
|
-
declare const Row: ({ tableBodyRef, table, tableId, row, rowSelectedId, setRowSelectedId, rowHighLightId, setRowHighLightId, selectedRowChange, onSelectChange, canSelection, selectionWithoutChecked, reorderRow, canRowDrag, rowClassName, cellClassName, rowStyle, getCellProps, editting, rowEditing, renderSubComponent, selectedRowDragging, setSelectedRowDragging, onRowMouseEnter, onRowMouseLeave, onRowMouseClick, onRowMouseDoubleClick, rowHeight, disableDragRowIds, selectRowWhenClick, handleEditRowWhenDClick, canEditRowWhenDClick, theme, dragBeforeStart, shadowColumnInfo, onCellContextMenu, getRowHoverTipConfig, tableTooltip, changeHoverRow, clearHoverRowIndex, hoverRowIndex, dropSide, }: IRowProps) => import("react/jsx-runtime").JSX.Element;
|
|
63
|
+
declare const Row: ({ tableBodyRef, table, tableId, row, rowSelectedId, setRowSelectedId, rowHighLightId, setRowHighLightId, selectedRowChange, onSelectChange, canSelection, selectionWithoutChecked, reorderRow, canRowDrag, rowClassName, cellClassName, rowStyle, getCellProps, editting, rowEditing, renderSubComponent, selectedRowDragging, setSelectedRowDragging, onRowMouseEnter, onRowMouseLeave, onRowMouseClick, onRowMouseDoubleClick, rowHeight, disableDragRowIds, selectRowWhenClick, handleEditRowWhenDClick, canEditRowWhenDClick, theme, dragBeforeStart, shadowColumnInfo, onCellContextMenu, getRowHoverTipConfig, tableTooltip, changeHoverRow, clearHoverRowIndex, hoverRowIndex, dropSide, onEditValueChange, }: IRowProps) => import("react/jsx-runtime").JSX.Element;
|
|
63
64
|
export default Row;
|
|
@@ -12,8 +12,9 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
|
|
|
12
12
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
13
13
|
import { DropSide } from "../type";
|
|
14
14
|
import { flexRender } from '@tanstack/react-table';
|
|
15
|
+
import { useUpdateEffect } from 'ahooks';
|
|
15
16
|
import { Tooltip } from 'antd';
|
|
16
|
-
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
17
|
+
import React, { useEffect, useMemo, useRef, useState } from 'react';
|
|
17
18
|
import { useDrag, useDrop } from 'react-dnd';
|
|
18
19
|
import { getEmptyImage } from 'react-dnd-html5-backend';
|
|
19
20
|
import { getPinningStyle } from "../TableHeader/utils";
|
|
@@ -66,7 +67,8 @@ var Row = function Row(_ref) {
|
|
|
66
67
|
changeHoverRow = _ref.changeHoverRow,
|
|
67
68
|
clearHoverRowIndex = _ref.clearHoverRowIndex,
|
|
68
69
|
hoverRowIndex = _ref.hoverRowIndex,
|
|
69
|
-
dropSide = _ref.dropSide
|
|
70
|
+
dropSide = _ref.dropSide,
|
|
71
|
+
onEditValueChange = _ref.onEditValueChange;
|
|
70
72
|
var dropPreviewLineClassName = useMemo(function () {
|
|
71
73
|
if (hoverRowIndex === row.index) {
|
|
72
74
|
return dropSide === DropSide.Top ? 'showTopBorder' : 'showBottomBorder';
|
|
@@ -146,6 +148,12 @@ var Row = function Row(_ref) {
|
|
|
146
148
|
setSelectedRowDragging(isDragging);
|
|
147
149
|
}
|
|
148
150
|
}, [isDragging, row.getIsSelected()]);
|
|
151
|
+
useUpdateEffect(function () {
|
|
152
|
+
// 鼠标移出,清除border
|
|
153
|
+
if (!isDragging) {
|
|
154
|
+
clearHoverRowIndex();
|
|
155
|
+
}
|
|
156
|
+
}, [isDragging]);
|
|
149
157
|
var rowClickHandler = function rowClickHandler(evt) {
|
|
150
158
|
// 触发单击事件
|
|
151
159
|
onRowMouseClick === null || onRowMouseClick === void 0 || onRowMouseClick(row);
|
|
@@ -253,8 +261,6 @@ var Row = function Row(_ref) {
|
|
|
253
261
|
};
|
|
254
262
|
var rowMouseLeave = function rowMouseLeave() {
|
|
255
263
|
onRowMouseLeave === null || onRowMouseLeave === void 0 || onRowMouseLeave(row);
|
|
256
|
-
// 鼠标移出,清除border
|
|
257
|
-
clearHoverRowIndex === null || clearHoverRowIndex === void 0 || clearHoverRowIndex();
|
|
258
264
|
};
|
|
259
265
|
var handleCellRightClick = function handleCellRightClick(e, cell) {
|
|
260
266
|
onCellContextMenu(e, cell);
|
|
@@ -283,9 +289,7 @@ var Row = function Row(_ref) {
|
|
|
283
289
|
canSelection && !selectRowWhenClick && String(row.id) === String(rowHighLightId) // 多选并且点击行时不选中,高亮状态单独管理
|
|
284
290
|
;
|
|
285
291
|
}, [row.id, row.getIsSelected(), rowSelectedId, selectRowWhenClick, rowHighLightId, canSelection]);
|
|
286
|
-
|
|
287
|
-
// console.log('row render', row.id);
|
|
288
|
-
|
|
292
|
+
console.log('row render');
|
|
289
293
|
var rowCom = function rowCom() {
|
|
290
294
|
var _row;
|
|
291
295
|
return /*#__PURE__*/_jsx("tr", {
|
|
@@ -329,6 +333,7 @@ var Row = function Row(_ref) {
|
|
|
329
333
|
editing: columnEditing,
|
|
330
334
|
dataIndex: accessorKey,
|
|
331
335
|
title: header,
|
|
336
|
+
onEditValueChange: onEditValueChange,
|
|
332
337
|
children: flexRender(cell.column.columnDef.cell, cell.getContext())
|
|
333
338
|
}))
|
|
334
339
|
}), cell.id);
|
|
@@ -70,6 +70,7 @@ type TableBodyPropsType = {
|
|
|
70
70
|
};
|
|
71
71
|
tableTooltip: boolean;
|
|
72
72
|
compactMode: boolean;
|
|
73
|
+
onEditValueChange?: (field: string, value: any, extra?: any) => void;
|
|
73
74
|
};
|
|
74
|
-
declare const TableBody: ({ tableBodyRef, table, tableId, theme, reorderRow, rowSelectedId, setRowSelectedId, rowHighLightId, setRowHighLightId, selectedRowChange, onSelectChange, canSelection, selectionWithoutChecked, tableContainerWidth, selectedRowDragging, setSelectedRowDragging, canRowDrag, rowKey, loading, rowClassName, cellClassName, rowStyle, getCellProps, rowHeight, renderSubComponent, onRowMouseEnter, onRowMouseLeave, onRowMouseClick, onRowMouseDoubleClick, disableDragRowIds, selectRowWhenClick, datas, canEditRowWhenDClick, editingRowId, handleEditRowWhenDClick, dragBeforeStart, shadowColumnInfo, getContextMenu, onClickContextMenu, getRowHoverTipConfig, tableTooltip, compactMode, }: TableBodyPropsType) => import("react/jsx-runtime").JSX.Element;
|
|
75
|
+
declare const TableBody: ({ tableBodyRef, table, tableId, theme, reorderRow, rowSelectedId, setRowSelectedId, rowHighLightId, setRowHighLightId, selectedRowChange, onSelectChange, canSelection, selectionWithoutChecked, tableContainerWidth, selectedRowDragging, setSelectedRowDragging, canRowDrag, rowKey, loading, rowClassName, cellClassName, rowStyle, getCellProps, rowHeight, renderSubComponent, onRowMouseEnter, onRowMouseLeave, onRowMouseClick, onRowMouseDoubleClick, disableDragRowIds, selectRowWhenClick, datas, canEditRowWhenDClick, editingRowId, handleEditRowWhenDClick, dragBeforeStart, shadowColumnInfo, getContextMenu, onClickContextMenu, getRowHoverTipConfig, tableTooltip, compactMode, onEditValueChange, }: TableBodyPropsType) => import("react/jsx-runtime").JSX.Element;
|
|
75
76
|
export default TableBody;
|
|
@@ -71,7 +71,8 @@ var TableBody = function TableBody(_ref) {
|
|
|
71
71
|
onClickContextMenu = _ref.onClickContextMenu,
|
|
72
72
|
getRowHoverTipConfig = _ref.getRowHoverTipConfig,
|
|
73
73
|
tableTooltip = _ref.tableTooltip,
|
|
74
|
-
compactMode = _ref.compactMode
|
|
74
|
+
compactMode = _ref.compactMode,
|
|
75
|
+
onEditValueChange = _ref.onEditValueChange;
|
|
75
76
|
var _useConfig = useConfig(),
|
|
76
77
|
root = _useConfig.root;
|
|
77
78
|
var headerGroups = table.getHeaderGroups();
|
|
@@ -126,6 +127,7 @@ var TableBody = function TableBody(_ref) {
|
|
|
126
127
|
})) || [];
|
|
127
128
|
// console.log('hover :>> ', targetRowIndex, originRowIndex);
|
|
128
129
|
if (tableId === origin.sourceTableId && originRowIndexList.includes(targetRowIndex)) {
|
|
130
|
+
// hover在被拖动的行时,隐藏放置位置
|
|
129
131
|
clearHoverRowIndex();
|
|
130
132
|
} else if (targetRowIndex !== hoverRowIndex) {
|
|
131
133
|
setHoverRowIndex(targetRowIndex);
|
|
@@ -365,7 +367,8 @@ var TableBody = function TableBody(_ref) {
|
|
|
365
367
|
changeHoverRow: changeHoverRow,
|
|
366
368
|
clearHoverRowIndex: clearHoverRowIndex,
|
|
367
369
|
hoverRowIndex: hoverRowIndex,
|
|
368
|
-
dropSide: dropSide
|
|
370
|
+
dropSide: dropSide,
|
|
371
|
+
onEditValueChange: onEditValueChange
|
|
369
372
|
}, row.id);
|
|
370
373
|
});
|
|
371
374
|
};
|
|
@@ -15,5 +15,6 @@ export declare enum ColumnType {
|
|
|
15
15
|
}
|
|
16
16
|
export type ColumnSizing = Record<string, number>;
|
|
17
17
|
export declare const TableContext: React.Context<TableContextType>;
|
|
18
|
+
export declare const CACHE_MAX_AGE: number;
|
|
18
19
|
declare const _default: React.ForwardRefExoticComponent<TableMaxProps & React.RefAttributes<unknown>>;
|
|
19
20
|
export default _default;
|
|
@@ -34,8 +34,9 @@ import customFilterFns from "./components/ColumnFilter/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
|
+
import { useColumnWidth } from "./hooks/useColumnWidth";
|
|
37
38
|
import "./tableMax.less";
|
|
38
|
-
import { downloadExcel, getFormatFilters, getFormatSorting,
|
|
39
|
+
import { downloadExcel, getFormatFilters, getFormatSorting, operationColumnNoTooltips } from "./utils";
|
|
39
40
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
40
41
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
41
42
|
export var ColumnType = /*#__PURE__*/function (ColumnType) {
|
|
@@ -46,10 +47,7 @@ export var ColumnType = /*#__PURE__*/function (ColumnType) {
|
|
|
46
47
|
return ColumnType;
|
|
47
48
|
}({});
|
|
48
49
|
export var TableContext = /*#__PURE__*/createContext({});
|
|
49
|
-
var
|
|
50
|
-
var allColumnWidth = 0;
|
|
51
|
-
var visibleColumnsSizing = {};
|
|
52
|
-
var CACHE_MAX_AGE = 1 * 60 * 60 * 1000;
|
|
50
|
+
export var CACHE_MAX_AGE = 1 * 60 * 60 * 1000;
|
|
53
51
|
var getCurrentRouterName = function getCurrentRouterName() {
|
|
54
52
|
return window.location.pathname.slice(1);
|
|
55
53
|
};
|
|
@@ -184,7 +182,8 @@ var TableMax = function TableMax(_ref) {
|
|
|
184
182
|
showLessItems = _ref$showLessItems === void 0 ? false : _ref$showLessItems,
|
|
185
183
|
_ref$disableColumnDra = _ref.disableColumnDrag,
|
|
186
184
|
disableColumnDrag = _ref$disableColumnDra === void 0 ? false : _ref$disableColumnDra,
|
|
187
|
-
request = _ref.request
|
|
185
|
+
request = _ref.request,
|
|
186
|
+
onEditValueChange = _ref.onEditValueChange;
|
|
188
187
|
var tableMaxRef = useRef(null);
|
|
189
188
|
var columns = useMemo(function () {
|
|
190
189
|
// 给columns配置默认的过滤函数,排序函数,操作列取消tooltip
|
|
@@ -195,14 +194,11 @@ var TableMax = function TableMax(_ref) {
|
|
|
195
194
|
theme = _useConfig.theme,
|
|
196
195
|
tableKeyPrefixCls = _useConfig.tableKeyPrefixCls,
|
|
197
196
|
tableMaxNewPagination = _useConfig.tableMaxNewPagination;
|
|
198
|
-
|
|
199
197
|
// 多选场景下,点击行时是否选中改行。在不展示多选框(selectionWithoutChecked=true)时,会一直为true
|
|
200
198
|
var selectRowWhenClick = useMemo(function () {
|
|
201
199
|
return originSelectRowWhenClick || selectionWithoutChecked;
|
|
202
200
|
}, [originSelectRowWhenClick, selectionWithoutChecked]);
|
|
203
201
|
|
|
204
|
-
// console.log('bingo', userId, theme, tableKeyPrefixCls);
|
|
205
|
-
|
|
206
202
|
/**表格配置信息缓存 */
|
|
207
203
|
var currentUserId = userId || ((_JSON$parse = JSON.parse(localStorage.getItem('poi-permission') || '{}')) === null || _JSON$parse === void 0 || (_JSON$parse = _JSON$parse.currentUser) === null || _JSON$parse === void 0 ? void 0 : _JSON$parse.id);
|
|
208
204
|
var tableKey = "".concat(tableKeyPrefixCls, "-").concat(getCurrentRouterName(), "-").concat(tableId, "-").concat(currentUserId);
|
|
@@ -227,10 +223,6 @@ var TableMax = function TableMax(_ref) {
|
|
|
227
223
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
228
224
|
tableColumns = _useState6[0],
|
|
229
225
|
setTableColumns = _useState6[1];
|
|
230
|
-
// useEffect(() => {
|
|
231
|
-
// console.log('tableColumns :>> ', tableColumns);
|
|
232
|
-
// }, [tableColumns]);
|
|
233
|
-
// const [initTableSizeColumns, setInitTableSizeColumns] = useState([...columns]);
|
|
234
226
|
/**列显隐 */
|
|
235
227
|
var _useState7 = useState(),
|
|
236
228
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
@@ -285,26 +277,28 @@ var TableMax = function TableMax(_ref) {
|
|
|
285
277
|
_useState20 = _slicedToArray(_useState19, 2),
|
|
286
278
|
columnPinning = _useState20[0],
|
|
287
279
|
setColumnPinning = _useState20[1];
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
280
|
+
var _useColumnWidth = useColumnWidth({
|
|
281
|
+
tableMaxRef: tableMaxRef,
|
|
282
|
+
tableId: tableId,
|
|
283
|
+
tableKeyPrefixCls: tableKeyPrefixCls,
|
|
284
|
+
columnVisibleConfig: columnVisibleConfig,
|
|
285
|
+
tableKey: tableKey
|
|
286
|
+
}),
|
|
287
|
+
columnSizing = _useColumnWidth.columnSizing,
|
|
288
|
+
initializeColumnSizing = _useColumnWidth.initializeColumnSizing,
|
|
289
|
+
onColumnSizingChange = _useColumnWidth.onColumnSizingChange,
|
|
290
|
+
tableContainerWidth = _useColumnWidth.tableContainerWidth,
|
|
291
|
+
handleVisibleConfigChange = _useColumnWidth.handleVisibleConfigChange;
|
|
298
292
|
|
|
299
293
|
/**列筛选 */
|
|
300
|
-
var
|
|
301
|
-
|
|
302
|
-
columnFilters =
|
|
303
|
-
setColumnFilters =
|
|
304
|
-
var
|
|
305
|
-
|
|
306
|
-
globalFilter =
|
|
307
|
-
setGlobalFilter =
|
|
294
|
+
var _useState21 = useState(defaultColumnFilters),
|
|
295
|
+
_useState22 = _slicedToArray(_useState21, 2),
|
|
296
|
+
columnFilters = _useState22[0],
|
|
297
|
+
setColumnFilters = _useState22[1];
|
|
298
|
+
var _useState23 = useState(''),
|
|
299
|
+
_useState24 = _slicedToArray(_useState23, 2),
|
|
300
|
+
globalFilter = _useState24[0],
|
|
301
|
+
setGlobalFilter = _useState24[1];
|
|
308
302
|
/**分页 */
|
|
309
303
|
var pagination = useMemo(function () {
|
|
310
304
|
return typeof skipCount === 'number' && pageSize ? {
|
|
@@ -313,111 +307,62 @@ var TableMax = function TableMax(_ref) {
|
|
|
313
307
|
} : undefined;
|
|
314
308
|
}, [skipCount, pageSize]);
|
|
315
309
|
/**是否有分组 */
|
|
316
|
-
var
|
|
317
|
-
|
|
318
|
-
hasGroup =
|
|
319
|
-
setHasGroup =
|
|
310
|
+
var _useState25 = useState(false),
|
|
311
|
+
_useState26 = _slicedToArray(_useState25, 2),
|
|
312
|
+
hasGroup = _useState26[0],
|
|
313
|
+
setHasGroup = _useState26[1];
|
|
320
314
|
|
|
321
315
|
/**是否正在多行拖拽 */
|
|
322
|
-
var
|
|
323
|
-
|
|
324
|
-
selectedRowDragging =
|
|
325
|
-
setSelectedRowDragging =
|
|
316
|
+
var _useState27 = useState(false),
|
|
317
|
+
_useState28 = _slicedToArray(_useState27, 2),
|
|
318
|
+
selectedRowDragging = _useState28[0],
|
|
319
|
+
setSelectedRowDragging = _useState28[1];
|
|
326
320
|
|
|
327
321
|
/**显示筛选开关状态 */
|
|
328
|
-
var
|
|
329
|
-
|
|
330
|
-
enableFilters =
|
|
331
|
-
setEnableFilters =
|
|
322
|
+
var _useState29 = useState(defaultEnableFilters),
|
|
323
|
+
_useState30 = _slicedToArray(_useState29, 2),
|
|
324
|
+
enableFilters = _useState30[0],
|
|
325
|
+
setEnableFilters = _useState30[1];
|
|
332
326
|
|
|
333
327
|
/**表头最多显示几行文字 */
|
|
334
|
-
var
|
|
335
|
-
|
|
336
|
-
headerRowNum =
|
|
337
|
-
setheaderRowNum =
|
|
328
|
+
var _useState31 = useState(defaultHeaderRowNum),
|
|
329
|
+
_useState32 = _slicedToArray(_useState31, 2),
|
|
330
|
+
headerRowNum = _useState32[0],
|
|
331
|
+
setheaderRowNum = _useState32[1];
|
|
338
332
|
var _Form$useForm = Form.useForm(),
|
|
339
333
|
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
|
|
340
334
|
form = _Form$useForm2[0];
|
|
341
335
|
|
|
342
336
|
/**正在编辑的行id*/
|
|
343
|
-
var
|
|
344
|
-
|
|
345
|
-
editingRowId =
|
|
346
|
-
setEditingRowId =
|
|
337
|
+
var _useState33 = useState(''),
|
|
338
|
+
_useState34 = _slicedToArray(_useState33, 2),
|
|
339
|
+
editingRowId = _useState34[0],
|
|
340
|
+
setEditingRowId = _useState34[1];
|
|
347
341
|
var _React$useState = React.useState({}),
|
|
348
342
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
349
343
|
expanded = _React$useState2[0],
|
|
350
344
|
setExpanded = _React$useState2[1];
|
|
351
345
|
|
|
352
346
|
// 固定列是否显示阴影
|
|
353
|
-
var
|
|
347
|
+
var _useState35 = useState({
|
|
354
348
|
left: false,
|
|
355
349
|
right: false
|
|
356
350
|
}),
|
|
357
|
-
|
|
358
|
-
pinShadowVisible =
|
|
359
|
-
setPinShadowVisible =
|
|
360
|
-
var
|
|
361
|
-
|
|
362
|
-
compactMode =
|
|
363
|
-
setCompactMode =
|
|
364
|
-
var
|
|
365
|
-
var _Object$
|
|
366
|
-
|
|
367
|
-
var
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
// 列宽之和
|
|
373
|
-
allColumnWidth = Object.keys(columnsSizeMap).reduce(function (totalWidth, currKey) {
|
|
374
|
-
// eslint-disable-next-line no-param-reassign
|
|
375
|
-
return totalWidth += Number(columnsSizeMap[currKey] || 0);
|
|
376
|
-
}, 0);
|
|
377
|
-
// 剩余容器宽度
|
|
378
|
-
var remainTableContainerWidth = ((_tableMaxRef$current = tableMaxRef.current) === null || _tableMaxRef$current === void 0 ? void 0 : _tableMaxRef$current.clientWidth) - allColumnWidth - 10;
|
|
379
|
-
// 列宽Map(增加空白宽度部分)
|
|
380
|
-
var newColumnSizeMap = _objectSpread({}, columnsSizeMap);
|
|
381
|
-
// 为不存在宽度的列设置列宽
|
|
382
|
-
if (remainColumnCount) {
|
|
383
|
-
// debugger
|
|
384
|
-
var defaultMinSize = 120;
|
|
385
|
-
var defaultMaxSize = 240;
|
|
386
|
-
var aveSize = Math.max(Math.min(remainTableContainerWidth / remainColumnCount, defaultMaxSize), defaultMinSize);
|
|
387
|
-
// 更新初始化列宽Map, 重新计算列宽之和
|
|
388
|
-
allColumnWidth = Object.keys(columnsSizeMap).reduce(function (totalWidth, currKey) {
|
|
389
|
-
newColumnSizeMap[currKey] = newColumnSizeMap[currKey] ? newColumnSizeMap[currKey] : aveSize;
|
|
390
|
-
// eslint-disable-next-line no-param-reassign
|
|
391
|
-
return totalWidth += Number(newColumnSizeMap[currKey] || 0);
|
|
392
|
-
}, 0);
|
|
393
|
-
}
|
|
394
|
-
remainTableContainerWidth = ((_tableMaxRef$current2 = tableMaxRef.current) === null || _tableMaxRef$current2 === void 0 ? void 0 : _tableMaxRef$current2.clientWidth) - allColumnWidth - 10;
|
|
395
|
-
if (remainTableContainerWidth > 0) {
|
|
396
|
-
var count = allColumnCount - (changedColumnKey ? 1 : 0) - (columnsSizeMap[ColumnType.Expander] ? 1 : 0) - (columnsSizeMap[ColumnType.Selection] ? 1 : 0);
|
|
397
|
-
if (count > 0) {
|
|
398
|
-
var aveRemainWidth = count <= 0 ? remainTableContainerWidth : remainTableContainerWidth / count;
|
|
399
|
-
// debugger
|
|
400
|
-
for (var _i = 0, _Object$keys = Object.keys(columnsSizeMap); _i < _Object$keys.length; _i++) {
|
|
401
|
-
var key = _Object$keys[_i];
|
|
402
|
-
if (key !== changedColumnKey && key !== ColumnType.Expander && key !== ColumnType.Selection) {
|
|
403
|
-
newColumnSizeMap[key] += aveRemainWidth;
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
return newColumnSizeMap;
|
|
409
|
-
};
|
|
410
|
-
var onColumnSizingChange = function onColumnSizingChange(data) {
|
|
411
|
-
var _localStorage$getItem, _Object$keys2;
|
|
412
|
-
var changedColumn = data === null || data === void 0 ? void 0 : data();
|
|
413
|
-
setInitColumnsSizing(_objectSpread(_objectSpread({}, initColumnsSizing), changedColumn));
|
|
414
|
-
visibleColumnsSizing = _objectSpread(_objectSpread({}, visibleColumnsSizing), changedColumn);
|
|
415
|
-
var cache = JSON.parse((_localStorage$getItem = localStorage.getItem(tableKey)) !== null && _localStorage$getItem !== void 0 ? _localStorage$getItem : '{}');
|
|
416
|
-
localStorage.setItem(tableKey, JSON.stringify(_objectSpread(_objectSpread({}, cache), {}, {
|
|
417
|
-
columnSizing: _objectSpread(_objectSpread({}, cache.columnSizing), changedColumn),
|
|
418
|
-
editTime: new Date()
|
|
419
|
-
})));
|
|
420
|
-
setColumnSizing(changeColumnSizingHandler(visibleColumnsSizing, (_Object$keys2 = Object.keys(changedColumn)) === null || _Object$keys2 === void 0 ? void 0 : _Object$keys2[0]));
|
|
351
|
+
_useState36 = _slicedToArray(_useState35, 2),
|
|
352
|
+
pinShadowVisible = _useState36[0],
|
|
353
|
+
setPinShadowVisible = _useState36[1];
|
|
354
|
+
var _useState37 = useState(defaultCompactMode),
|
|
355
|
+
_useState38 = _slicedToArray(_useState37, 2),
|
|
356
|
+
compactMode = _useState38[0],
|
|
357
|
+
setCompactMode = _useState38[1];
|
|
358
|
+
var onColumnVisibilityChange = function onColumnVisibilityChange(data) {
|
|
359
|
+
var _Object$values, _Object$keys;
|
|
360
|
+
var isColumnVisible = (_Object$values = Object.values(data === null || data === void 0 ? void 0 : data())) === null || _Object$values === void 0 ? void 0 : _Object$values[0];
|
|
361
|
+
var columnKey = (_Object$keys = Object.keys(data === null || data === void 0 ? void 0 : data())) === null || _Object$keys === void 0 ? void 0 : _Object$keys[0];
|
|
362
|
+
handleVisibleConfigChange(columnKey, isColumnVisible);
|
|
363
|
+
setColumnVisibility(function (prev) {
|
|
364
|
+
return _objectSpread(_objectSpread({}, prev || {}), data === null || data === void 0 ? void 0 : data());
|
|
365
|
+
});
|
|
421
366
|
};
|
|
422
367
|
|
|
423
368
|
// table
|
|
@@ -446,7 +391,7 @@ var TableMax = function TableMax(_ref) {
|
|
|
446
391
|
expanded: expanded,
|
|
447
392
|
columnSizing: columnSizing
|
|
448
393
|
},
|
|
449
|
-
onColumnVisibilityChange:
|
|
394
|
+
onColumnVisibilityChange: onColumnVisibilityChange,
|
|
450
395
|
onColumnOrderChange: setColumnOrder,
|
|
451
396
|
onColumnPinningChange: setColumnPinning,
|
|
452
397
|
getCoreRowModel: getCoreRowModel(),
|
|
@@ -481,12 +426,6 @@ var TableMax = function TableMax(_ref) {
|
|
|
481
426
|
var tableHeaderRef = useRef(null);
|
|
482
427
|
var tableBodyRef = useRef(null);
|
|
483
428
|
|
|
484
|
-
/**表格容器宽度 */
|
|
485
|
-
var _useState43 = useState(),
|
|
486
|
-
_useState44 = _slicedToArray(_useState43, 2),
|
|
487
|
-
tableContainerWidth = _useState44[0],
|
|
488
|
-
setTableContainerWidth = _useState44[1];
|
|
489
|
-
|
|
490
429
|
// 暴露给外部的api
|
|
491
430
|
useImperativeHandle(refInstance, function () {
|
|
492
431
|
return {
|
|
@@ -495,7 +434,8 @@ var TableMax = function TableMax(_ref) {
|
|
|
495
434
|
},
|
|
496
435
|
clearSorting: function clearSorting() {
|
|
497
436
|
return table.resetSorting();
|
|
498
|
-
}
|
|
437
|
+
},
|
|
438
|
+
formInstance: form
|
|
499
439
|
};
|
|
500
440
|
});
|
|
501
441
|
useEffect(function () {
|
|
@@ -523,30 +463,9 @@ var TableMax = function TableMax(_ref) {
|
|
|
523
463
|
|
|
524
464
|
/**根据缓存数据设置一些状态 */
|
|
525
465
|
var setColumnInfoFromCache = function setColumnInfoFromCache(tableColumns) {
|
|
526
|
-
var _localStorage$
|
|
527
|
-
var cache = JSON.parse((_localStorage$
|
|
466
|
+
var _localStorage$getItem;
|
|
467
|
+
var cache = JSON.parse((_localStorage$getItem = localStorage.getItem(tableKey)) !== null && _localStorage$getItem !== void 0 ? _localStorage$getItem : '{}');
|
|
528
468
|
if (cache && cache !== null && cache !== void 0 && cache.editTime && +new Date() - cache.editTime > CACHE_MAX_AGE) {
|
|
529
|
-
//设置列宽
|
|
530
|
-
// 列宽总数、列宽Map
|
|
531
|
-
var _getSizeInfo = getSizeInfo(tableColumns),
|
|
532
|
-
_allCount = _getSizeInfo.allCount,
|
|
533
|
-
_columnSizeMap = _getSizeInfo.columnSizeMap;
|
|
534
|
-
// allColumnCount = allCount;
|
|
535
|
-
// 初始化列宽Map(合并column上设置的、缓存的)
|
|
536
|
-
var _initColumnsSizeMap = _objectSpread({}, _columnSizeMap);
|
|
537
|
-
setInitColumnsSizing(_initColumnsSizeMap);
|
|
538
|
-
var _visibleColumnsSizeMap = {};
|
|
539
|
-
var _notVisibleColumns = Object.keys(columnVisibleConfig).filter(function (key) {
|
|
540
|
-
return !columnVisibleConfig[key];
|
|
541
|
-
});
|
|
542
|
-
allColumnCount = _allCount - _notVisibleColumns.length;
|
|
543
|
-
Object.keys(_initColumnsSizeMap).forEach(function (key) {
|
|
544
|
-
if (!_notVisibleColumns.includes(key)) {
|
|
545
|
-
_visibleColumnsSizeMap[key] = _initColumnsSizeMap[key];
|
|
546
|
-
}
|
|
547
|
-
});
|
|
548
|
-
visibleColumnsSizing = _visibleColumnsSizeMap;
|
|
549
|
-
setColumnSizing(changeColumnSizingHandler(_visibleColumnsSizeMap));
|
|
550
469
|
return;
|
|
551
470
|
}
|
|
552
471
|
var cacheColumnVisibility = cache.columnVisibility,
|
|
@@ -556,39 +475,14 @@ var TableMax = function TableMax(_ref) {
|
|
|
556
475
|
cacheColumnSorting = cache.columnSorting,
|
|
557
476
|
cacheEnableFilters = cache.enableFilters,
|
|
558
477
|
cacheHeaderRowNum = cache.headerRowNum,
|
|
559
|
-
cacheCompactMode = cache.compactMode
|
|
560
|
-
cacheColumnSizing = cache.columnSizing;
|
|
478
|
+
cacheCompactMode = cache.compactMode;
|
|
561
479
|
if (cacheHeaderRowNum) {
|
|
562
480
|
setheaderRowNum(cacheHeaderRowNum);
|
|
563
481
|
}
|
|
564
482
|
setCompactMode(cacheCompactMode === true);
|
|
565
|
-
// console.log('get cache data', cacheCompactMode === true);
|
|
566
|
-
|
|
567
483
|
var newColumnVisibleConfig = _objectSpread(_objectSpread({}, columnVisibleConfig), cacheColumnVisibility);
|
|
568
484
|
setColumnVisibility(newColumnVisibleConfig);
|
|
569
485
|
|
|
570
|
-
//设置列宽
|
|
571
|
-
// 列宽总数、列宽Map
|
|
572
|
-
var _getSizeInfo2 = getSizeInfo(tableColumns),
|
|
573
|
-
allCount = _getSizeInfo2.allCount,
|
|
574
|
-
columnSizeMap = _getSizeInfo2.columnSizeMap;
|
|
575
|
-
// allColumnCount = allCount;
|
|
576
|
-
// 初始化列宽Map(合并column上设置的、缓存的)
|
|
577
|
-
var initColumnsSizeMap = _objectSpread(_objectSpread({}, columnSizeMap), cacheColumnSizing);
|
|
578
|
-
setInitColumnsSizing(initColumnsSizeMap);
|
|
579
|
-
var visibleColumnsSizeMap = {};
|
|
580
|
-
var notVisibleColumns = Object.keys(newColumnVisibleConfig).filter(function (key) {
|
|
581
|
-
return !newColumnVisibleConfig[key];
|
|
582
|
-
});
|
|
583
|
-
allColumnCount = allCount - notVisibleColumns.length;
|
|
584
|
-
Object.keys(initColumnsSizeMap).forEach(function (key) {
|
|
585
|
-
if (!notVisibleColumns.includes(key)) {
|
|
586
|
-
visibleColumnsSizeMap[key] = initColumnsSizeMap[key];
|
|
587
|
-
}
|
|
588
|
-
});
|
|
589
|
-
visibleColumnsSizing = visibleColumnsSizeMap;
|
|
590
|
-
setColumnSizing(changeColumnSizingHandler(visibleColumnsSizeMap));
|
|
591
|
-
|
|
592
486
|
// 筛选项缓存&排序缓存
|
|
593
487
|
var tableColumnIds = tableColumns === null || tableColumns === void 0 ? void 0 : tableColumns.map(function (column) {
|
|
594
488
|
return column.id;
|
|
@@ -623,7 +517,6 @@ var TableMax = function TableMax(_ref) {
|
|
|
623
517
|
}).length === 0) {
|
|
624
518
|
arr = cacheColumnOrder;
|
|
625
519
|
}
|
|
626
|
-
// debugger
|
|
627
520
|
setColumnOrder(arr);
|
|
628
521
|
};
|
|
629
522
|
var setColumnsByProps = useCallback(function () {
|
|
@@ -638,6 +531,7 @@ var TableMax = function TableMax(_ref) {
|
|
|
638
531
|
},
|
|
639
532
|
size: 40,
|
|
640
533
|
tooltip: false,
|
|
534
|
+
enableResizing: false,
|
|
641
535
|
cell: function cell(_ref2) {
|
|
642
536
|
var row = _ref2.row;
|
|
643
537
|
return row.getCanExpand() ? /*#__PURE__*/_jsx("div", {
|
|
@@ -659,6 +553,7 @@ var TableMax = function TableMax(_ref) {
|
|
|
659
553
|
extraColumns.unshift({
|
|
660
554
|
id: ColumnType.Selection,
|
|
661
555
|
tooltip: false,
|
|
556
|
+
enableResizing: false,
|
|
662
557
|
header: function header(_ref3) {
|
|
663
558
|
var table = _ref3.table;
|
|
664
559
|
return /*#__PURE__*/_jsx(Checkbox, {
|
|
@@ -704,6 +599,7 @@ var TableMax = function TableMax(_ref) {
|
|
|
704
599
|
if (!tableMaxRef.current) return;
|
|
705
600
|
// 根据props,自动增加勾选列/展开列
|
|
706
601
|
var newColumns = setColumnsByProps().concat(columns);
|
|
602
|
+
initializeColumnSizing(newColumns);
|
|
707
603
|
setTableColumns(newColumns);
|
|
708
604
|
// 根据缓存进行列设置
|
|
709
605
|
setColumnInfoFromCache(newColumns);
|
|
@@ -715,24 +611,24 @@ var TableMax = function TableMax(_ref) {
|
|
|
715
611
|
}, [columns]);
|
|
716
612
|
|
|
717
613
|
// 列显示隐藏改变,修改初始化列宽Map
|
|
718
|
-
useUpdateEffect(
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
visibleColumnsSizing = visibleColumnsSizeMap;
|
|
730
|
-
}, [columnVisibleConfig]);
|
|
614
|
+
// useUpdateEffect(() => {
|
|
615
|
+
// const visibleColumnsSizeMap = {};
|
|
616
|
+
// const notVisibleColumns = Object.keys(columnVisibleConfig).filter(key => !columnVisibleConfig[key]);
|
|
617
|
+
// allColumnCount = table.getVisibleLeafColumns().length;
|
|
618
|
+
// Object.keys(initColumnsSizing).forEach(key => {
|
|
619
|
+
// if (!notVisibleColumns.includes(key)) {
|
|
620
|
+
// visibleColumnsSizeMap[key] = initColumnsSizing[key];
|
|
621
|
+
// }
|
|
622
|
+
// });
|
|
623
|
+
// visibleColumnsSizing = visibleColumnsSizeMap;
|
|
624
|
+
// }, [columnVisibleConfig]);
|
|
731
625
|
|
|
732
626
|
// 容器宽度改变,重新计算列宽
|
|
733
|
-
useUpdateEffect(
|
|
734
|
-
|
|
735
|
-
|
|
627
|
+
// useUpdateEffect(() => {
|
|
628
|
+
// setColumnSizing(changeColumnSizingHandler(visibleColumnsSizing));
|
|
629
|
+
// // changeColumnSizingHandler(visibleColumnsSizing)
|
|
630
|
+
// }, [tableContainerWidth]);
|
|
631
|
+
|
|
736
632
|
var _rowSelectionChange = useCallback(debounce(function (rowOriginal, row) {
|
|
737
633
|
if (rowSelectionChange) {
|
|
738
634
|
rowSelectionChange(rowOriginal, row);
|
|
@@ -789,17 +685,17 @@ var TableMax = function TableMax(_ref) {
|
|
|
789
685
|
onSortingChange(formatSorting, sortingParameters.join(','), sortedData, sortedRowModel);
|
|
790
686
|
}
|
|
791
687
|
}, [JSON.stringify(sorting), canSorting, manualSorting]);
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
}, [tableId]);
|
|
688
|
+
|
|
689
|
+
// useEffect(() => {
|
|
690
|
+
// const myObserver = new ResizeObserver(entries => {
|
|
691
|
+
// setTableContainerWidth(entries[0].contentRect?.width);
|
|
692
|
+
// });
|
|
693
|
+
// tableMaxRef.current && myObserver.observe(tableMaxRef.current);
|
|
694
|
+
// // 移除监听
|
|
695
|
+
// return () => {
|
|
696
|
+
// tableMaxRef.current && myObserver.disconnect();
|
|
697
|
+
// };
|
|
698
|
+
// }, [tableId]);
|
|
803
699
|
|
|
804
700
|
/**缓存table数据 */
|
|
805
701
|
useUpdateEffect(function () {
|
|
@@ -814,9 +710,10 @@ var TableMax = function TableMax(_ref) {
|
|
|
814
710
|
columnOrder: tableState.columnOrder,
|
|
815
711
|
columnFilters: tableState.columnFilters,
|
|
816
712
|
columnSorting: tableState.sorting,
|
|
713
|
+
columnSizing: columnSizing,
|
|
817
714
|
editTime: new Date()
|
|
818
715
|
}));
|
|
819
|
-
}, [table.getState().columnVisibility, table.getState().columnPinning, table.getState().columnOrder, table.getState().columnFilters, table.getState().sorting, enableFilters, headerRowNum, compactMode]);
|
|
716
|
+
}, [table.getState().columnVisibility, table.getState().columnPinning, table.getState().columnOrder, table.getState().columnFilters, table.getState().sorting, enableFilters, headerRowNum, compactMode, columnSizing]);
|
|
820
717
|
var reorderRow = useCallback(function (fromDatas, toDatas) {
|
|
821
718
|
var draggedRow = fromDatas.draggedRow,
|
|
822
719
|
isMultipleDrag = fromDatas.isMultipleDrag,
|
|
@@ -917,13 +814,13 @@ var TableMax = function TableMax(_ref) {
|
|
|
917
814
|
|
|
918
815
|
// 把row数据填充到表单
|
|
919
816
|
var setFormData = function setFormData(rowOriginal) {
|
|
920
|
-
var _Object$
|
|
817
|
+
var _Object$keys2;
|
|
921
818
|
var formData = {};
|
|
922
819
|
var columnsMap = {};
|
|
923
820
|
tableColumns === null || tableColumns === void 0 || tableColumns.forEach(function (col) {
|
|
924
821
|
columnsMap[col.accessorKey] = col;
|
|
925
822
|
});
|
|
926
|
-
(_Object$
|
|
823
|
+
(_Object$keys2 = Object.keys(rowOriginal)) === null || _Object$keys2 === void 0 || _Object$keys2.forEach(function (item) {
|
|
927
824
|
var _columnsMap$item, _columnsMap$item2;
|
|
928
825
|
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
929
826
|
((_columnsMap$item = columnsMap[item]) === null || _columnsMap$item === void 0 ? void 0 : _columnsMap$item.editComType) === InputType.DatePicker ? formData[item] = rowOriginal[item] ? dayjs(rowOriginal[item]) : null : (_columnsMap$item2 = columnsMap[item]) !== null && _columnsMap$item2 !== void 0 && _columnsMap$item2.shouldConvert ? formData[item] = columnsMap[item].shouldConvert(rowOriginal[item]) : formData[item] = rowOriginal[item];
|
|
@@ -1055,6 +952,10 @@ var TableMax = function TableMax(_ref) {
|
|
|
1055
952
|
getPinShadowInfo();
|
|
1056
953
|
}, [getPinShadowInfo]);
|
|
1057
954
|
|
|
955
|
+
// useEffect(() => {
|
|
956
|
+
// console.log(table.getState().columnSizing, 111);
|
|
957
|
+
// }, [table.getState().columnSizing]);
|
|
958
|
+
|
|
1058
959
|
// 获取展示阴影的列
|
|
1059
960
|
var shadowColumnInfo = useMemo(function () {
|
|
1060
961
|
var _pop, _shift;
|
|
@@ -1130,7 +1031,8 @@ var TableMax = function TableMax(_ref) {
|
|
|
1130
1031
|
onClickContextMenu: onClickContextMenu,
|
|
1131
1032
|
getRowHoverTipConfig: getRowHoverTipConfig,
|
|
1132
1033
|
tableTooltip: tableTooltip,
|
|
1133
|
-
compactMode: compactMode
|
|
1034
|
+
compactMode: compactMode,
|
|
1035
|
+
onEditValueChange: onEditValueChange
|
|
1134
1036
|
};
|
|
1135
1037
|
|
|
1136
1038
|
// console.log('columnsSizeMap render');
|