@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.
Files changed (25) hide show
  1. package/dist/components/BaseInfo/BaseInfo.d.ts +1 -1
  2. package/dist/components/CustomForm/CustomForm.js +3 -0
  3. package/dist/components/TableMax/TableBody/Row.d.ts +3 -2
  4. package/dist/components/TableMax/TableBody/Row.js +12 -7
  5. package/dist/components/TableMax/TableBody/index.d.ts +2 -1
  6. package/dist/components/TableMax/TableBody/index.js +5 -2
  7. package/dist/components/TableMax/TableMax.d.ts +1 -0
  8. package/dist/components/TableMax/TableMax.js +107 -205
  9. package/dist/components/TableMax/components/ColumnEdit/components/numberRange/index.d.ts +2 -1
  10. package/dist/components/TableMax/components/ColumnEdit/components/numberRange/index.js +4 -1
  11. package/dist/components/TableMax/components/ColumnEdit/components/remoteSelect/index.d.ts +11 -0
  12. package/dist/components/TableMax/components/ColumnEdit/components/remoteSelect/index.js +106 -0
  13. package/dist/components/TableMax/components/ColumnEdit/index.d.ts +4 -0
  14. package/dist/components/TableMax/components/ColumnEdit/index.js +34 -15
  15. package/dist/components/TableMax/components/ColumnFilter/MultipleSelect/index.js +2 -5
  16. package/dist/components/TableMax/components/ColumnFilter/SingleSelect/index.js +3 -6
  17. package/dist/components/TableMax/components/ColumnSort/customSortFns.d.ts +8 -8
  18. package/dist/components/TableMax/components/CustomDragerLayer/index.js +22 -5
  19. package/dist/components/TableMax/components/CustomDragerLayer/index.less +19 -1
  20. package/dist/components/TableMax/hooks/useColumnWidth.d.ts +18 -0
  21. package/dist/components/TableMax/hooks/useColumnWidth.js +351 -0
  22. package/dist/components/TableMax/type.d.ts +13 -4
  23. package/dist/components/TableMax/utils.d.ts +1 -0
  24. package/dist/components/TableMax/utils.js +7 -0
  25. 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 | JSX.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, getSizeInfo, operationColumnNoTooltips } from "./utils";
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 allColumnCount = 0;
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
- var _useState21 = useState({}),
290
- _useState22 = _slicedToArray(_useState21, 2),
291
- columnSizing = _useState22[0],
292
- setColumnSizing = _useState22[1];
293
- // 初始化列宽(缓存合并column的size)
294
- var _useState23 = useState({}),
295
- _useState24 = _slicedToArray(_useState23, 2),
296
- initColumnsSizing = _useState24[0],
297
- setInitColumnsSizing = _useState24[1];
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 _useState25 = useState(defaultColumnFilters),
301
- _useState26 = _slicedToArray(_useState25, 2),
302
- columnFilters = _useState26[0],
303
- setColumnFilters = _useState26[1];
304
- var _useState27 = useState(''),
305
- _useState28 = _slicedToArray(_useState27, 2),
306
- globalFilter = _useState28[0],
307
- setGlobalFilter = _useState28[1];
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 _useState29 = useState(false),
317
- _useState30 = _slicedToArray(_useState29, 2),
318
- hasGroup = _useState30[0],
319
- setHasGroup = _useState30[1];
310
+ var _useState25 = useState(false),
311
+ _useState26 = _slicedToArray(_useState25, 2),
312
+ hasGroup = _useState26[0],
313
+ setHasGroup = _useState26[1];
320
314
 
321
315
  /**是否正在多行拖拽 */
322
- var _useState31 = useState(false),
323
- _useState32 = _slicedToArray(_useState31, 2),
324
- selectedRowDragging = _useState32[0],
325
- setSelectedRowDragging = _useState32[1];
316
+ var _useState27 = useState(false),
317
+ _useState28 = _slicedToArray(_useState27, 2),
318
+ selectedRowDragging = _useState28[0],
319
+ setSelectedRowDragging = _useState28[1];
326
320
 
327
321
  /**显示筛选开关状态 */
328
- var _useState33 = useState(defaultEnableFilters),
329
- _useState34 = _slicedToArray(_useState33, 2),
330
- enableFilters = _useState34[0],
331
- setEnableFilters = _useState34[1];
322
+ var _useState29 = useState(defaultEnableFilters),
323
+ _useState30 = _slicedToArray(_useState29, 2),
324
+ enableFilters = _useState30[0],
325
+ setEnableFilters = _useState30[1];
332
326
 
333
327
  /**表头最多显示几行文字 */
334
- var _useState35 = useState(defaultHeaderRowNum),
335
- _useState36 = _slicedToArray(_useState35, 2),
336
- headerRowNum = _useState36[0],
337
- setheaderRowNum = _useState36[1];
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 _useState37 = useState(''),
344
- _useState38 = _slicedToArray(_useState37, 2),
345
- editingRowId = _useState38[0],
346
- setEditingRowId = _useState38[1];
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 _useState39 = useState({
347
+ var _useState35 = useState({
354
348
  left: false,
355
349
  right: false
356
350
  }),
357
- _useState40 = _slicedToArray(_useState39, 2),
358
- pinShadowVisible = _useState40[0],
359
- setPinShadowVisible = _useState40[1];
360
- var _useState41 = useState(defaultCompactMode),
361
- _useState42 = _slicedToArray(_useState41, 2),
362
- compactMode = _useState42[0],
363
- setCompactMode = _useState42[1];
364
- var changeColumnSizingHandler = function changeColumnSizingHandler(columnsSizeMap, changedColumnKey) {
365
- var _Object$keys$filter, _tableMaxRef$current, _tableMaxRef$current2;
366
- // 列宽数量(存在宽度)
367
- var hasColumnCount = ((_Object$keys$filter = Object.keys(columnsSizeMap).filter(function (item) {
368
- return !!columnsSizeMap[item];
369
- })) === null || _Object$keys$filter === void 0 ? void 0 : _Object$keys$filter.length) || 0;
370
- // 列宽数量(不存在宽度)
371
- var remainColumnCount = allColumnCount - hasColumnCount;
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: setColumnVisibility,
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$getItem2;
527
- var cache = JSON.parse((_localStorage$getItem2 = localStorage.getItem(tableKey)) !== null && _localStorage$getItem2 !== void 0 ? _localStorage$getItem2 : '{}');
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(function () {
719
- var visibleColumnsSizeMap = {};
720
- var notVisibleColumns = Object.keys(columnVisibleConfig).filter(function (key) {
721
- return !columnVisibleConfig[key];
722
- });
723
- allColumnCount = table.getCenterVisibleLeafColumns().length;
724
- Object.keys(initColumnsSizing).forEach(function (key) {
725
- if (!notVisibleColumns.includes(key)) {
726
- visibleColumnsSizeMap[key] = initColumnsSizing[key];
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(function () {
734
- changeColumnSizingHandler(visibleColumnsSizing);
735
- }, [tableContainerWidth]);
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
- useEffect(function () {
793
- var myObserver = new ResizeObserver(function (entries) {
794
- var _entries$0$contentRec;
795
- setTableContainerWidth((_entries$0$contentRec = entries[0].contentRect) === null || _entries$0$contentRec === void 0 ? void 0 : _entries$0$contentRec.width);
796
- });
797
- tableMaxRef.current && myObserver.observe(tableMaxRef.current);
798
- // 移除监听
799
- return function () {
800
- tableMaxRef.current && myObserver.disconnect();
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$keys3;
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$keys3 = Object.keys(rowOriginal)) === null || _Object$keys3 === void 0 || _Object$keys3.forEach(function (item) {
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');