linkmore-design 1.1.26 → 1.1.27-alpha.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.
Files changed (105) hide show
  1. package/dist/LmEditTable/DndContainer.d.ts +6 -3
  2. package/dist/LmEditTable/EditTable.d.ts +10 -5
  3. package/dist/LmEditTable/components/DraggableContainer.d.ts +10 -0
  4. package/dist/LmEditTable/components/QuickOpetate.d.ts +12 -0
  5. package/dist/LmEditTable/components/bottomOpetateComponent.d.ts +13 -0
  6. package/dist/LmEditTable/components/index.d.ts +16 -0
  7. package/dist/LmEditTable/hooks/useForkRef.d.ts +2 -0
  8. package/dist/LmEditTable/rowSort/DndContainerRow.d.ts +10 -0
  9. package/dist/LmEditTable/sortableItem.d.ts +3 -2
  10. package/dist/LmEditTable/util.d.ts +7 -0
  11. package/dist/LmEditTable/virtual/VirtualRow.d.ts +7 -0
  12. package/dist/LmEditTable/virtual/VirtualRowBack.d.ts +6 -0
  13. package/dist/LmEditTable/virtual/VirtualTable.d.ts +3 -0
  14. package/dist/LmEditTable/virtual/VirtualWrapper.d.ts +3 -0
  15. package/dist/LmEditTable/virtual/context.d.ts +13 -0
  16. package/dist/LmEditTable/virtual/index.d.ts +4 -0
  17. package/dist/index.d.ts +1 -2
  18. package/dist/index.umd.js +1140 -529
  19. package/dist/index.umd.min.js +8 -8
  20. package/dist/variables.css +65 -0
  21. package/es/InputNumber/index.js +7 -9
  22. package/es/LmEditTable/DndContainer.d.ts +6 -3
  23. package/es/LmEditTable/DndContainer.js +70 -10
  24. package/es/LmEditTable/DragHandle.js +1 -1
  25. package/es/LmEditTable/EditTable.d.ts +10 -5
  26. package/es/LmEditTable/EditTable.js +352 -360
  27. package/es/LmEditTable/components/DraggableContainer.d.ts +10 -0
  28. package/es/LmEditTable/components/DraggableContainer.js +39 -0
  29. package/es/LmEditTable/components/QuickOpetate.d.ts +12 -0
  30. package/es/LmEditTable/components/QuickOpetate.js +82 -0
  31. package/es/LmEditTable/components/bottomOpetateComponent.d.ts +13 -0
  32. package/es/LmEditTable/components/bottomOpetateComponent.js +23 -0
  33. package/es/LmEditTable/components/index.d.ts +16 -0
  34. package/es/LmEditTable/components/index.js +7 -0
  35. package/es/LmEditTable/hooks/useForkRef.d.ts +2 -0
  36. package/es/LmEditTable/hooks/useForkRef.js +22 -0
  37. package/es/LmEditTable/rowSort/DndContainerRow.d.ts +10 -0
  38. package/es/LmEditTable/rowSort/DndContainerRow.js +81 -0
  39. package/es/LmEditTable/sortableItem.d.ts +3 -2
  40. package/es/LmEditTable/sortableItem.js +16 -4
  41. package/es/LmEditTable/sortableItemCol.js +40 -10
  42. package/es/LmEditTable/style/index.css +65 -0
  43. package/es/LmEditTable/style/variables.css +65 -0
  44. package/es/LmEditTable/util.d.ts +7 -0
  45. package/es/LmEditTable/util.js +92 -7
  46. package/es/LmEditTable/virtual/VirtualRow.d.ts +7 -0
  47. package/es/LmEditTable/virtual/VirtualRow.js +62 -0
  48. package/es/LmEditTable/virtual/VirtualRowBack.d.ts +6 -0
  49. package/es/LmEditTable/virtual/VirtualRowBack.js +100 -0
  50. package/es/LmEditTable/virtual/VirtualTable.d.ts +3 -0
  51. package/es/LmEditTable/virtual/VirtualTable.js +54 -0
  52. package/es/LmEditTable/virtual/VirtualWrapper.d.ts +3 -0
  53. package/es/LmEditTable/virtual/VirtualWrapper.js +60 -0
  54. package/es/LmEditTable/virtual/context.d.ts +13 -0
  55. package/es/LmEditTable/virtual/context.js +54 -0
  56. package/es/LmEditTable/virtual/index.d.ts +4 -0
  57. package/es/LmEditTable/virtual/index.js +4 -0
  58. package/es/LmFilter/filterFns/index.js +7 -2
  59. package/es/LmTable/virTual/VirtualRow.js +12 -14
  60. package/es/hooks/useEvent/index.js +1 -1
  61. package/es/index.d.ts +1 -2
  62. package/es/styles/variables.css +65 -0
  63. package/lib/InputNumber/index.js +9 -9
  64. package/lib/LmEditTable/DndContainer.d.ts +6 -3
  65. package/lib/LmEditTable/DndContainer.js +74 -9
  66. package/lib/LmEditTable/DragHandle.js +1 -1
  67. package/lib/LmEditTable/EditTable.d.ts +10 -5
  68. package/lib/LmEditTable/EditTable.js +349 -357
  69. package/lib/LmEditTable/components/DraggableContainer.d.ts +10 -0
  70. package/lib/LmEditTable/components/DraggableContainer.js +52 -0
  71. package/lib/LmEditTable/components/QuickOpetate.d.ts +12 -0
  72. package/lib/LmEditTable/components/QuickOpetate.js +96 -0
  73. package/lib/LmEditTable/components/bottomOpetateComponent.d.ts +13 -0
  74. package/lib/LmEditTable/components/bottomOpetateComponent.js +34 -0
  75. package/lib/LmEditTable/components/index.d.ts +16 -0
  76. package/lib/LmEditTable/components/index.js +37 -0
  77. package/lib/LmEditTable/hooks/useForkRef.d.ts +2 -0
  78. package/lib/LmEditTable/hooks/useForkRef.js +29 -0
  79. package/lib/LmEditTable/rowSort/DndContainerRow.d.ts +10 -0
  80. package/lib/LmEditTable/rowSort/DndContainerRow.js +99 -0
  81. package/lib/LmEditTable/sortableItem.d.ts +3 -2
  82. package/lib/LmEditTable/sortableItem.js +19 -5
  83. package/lib/LmEditTable/sortableItemCol.js +37 -8
  84. package/lib/LmEditTable/style/index.css +65 -0
  85. package/lib/LmEditTable/style/variables.css +65 -0
  86. package/lib/LmEditTable/util.d.ts +7 -0
  87. package/lib/LmEditTable/util.js +97 -6
  88. package/lib/LmEditTable/virtual/VirtualRow.d.ts +7 -0
  89. package/lib/LmEditTable/virtual/VirtualRow.js +78 -0
  90. package/lib/LmEditTable/virtual/VirtualRowBack.d.ts +6 -0
  91. package/lib/LmEditTable/virtual/VirtualRowBack.js +113 -0
  92. package/lib/LmEditTable/virtual/VirtualTable.d.ts +3 -0
  93. package/lib/LmEditTable/virtual/VirtualTable.js +71 -0
  94. package/lib/LmEditTable/virtual/VirtualWrapper.d.ts +3 -0
  95. package/lib/LmEditTable/virtual/VirtualWrapper.js +73 -0
  96. package/lib/LmEditTable/virtual/context.d.ts +13 -0
  97. package/lib/LmEditTable/virtual/context.js +64 -0
  98. package/lib/LmEditTable/virtual/index.d.ts +4 -0
  99. package/lib/LmEditTable/virtual/index.js +31 -0
  100. package/lib/LmFilter/filterFns/index.js +7 -2
  101. package/lib/LmTable/virTual/VirtualRow.js +12 -14
  102. package/lib/hooks/useEvent/index.js +1 -1
  103. package/lib/index.d.ts +1 -2
  104. package/lib/styles/variables.css +65 -0
  105. package/package.json +7 -9
@@ -17,8 +17,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
17
17
 
18
18
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
19
 
20
- var _icons = require("@ant-design/icons");
21
-
22
20
  var _moment = _interopRequireDefault(require("moment"));
23
21
 
24
22
  var _sortable = require("@dnd-kit/sortable");
@@ -35,8 +33,6 @@ var _immer = require("immer");
35
33
 
36
34
  var _DndContainer = _interopRequireDefault(require("./DndContainer"));
37
35
 
38
- var _sortableBox = _interopRequireDefault(require("./sortableBox"));
39
-
40
36
  var _sortableBoxCol = _interopRequireDefault(require("./sortableBoxCol"));
41
37
 
42
38
  var _sortableItem = _interopRequireDefault(require("./sortableItem"));
@@ -49,8 +45,12 @@ var _UploadOss = _interopRequireDefault(require("../UploadOss"));
49
45
 
50
46
  var _util = require("./util");
51
47
 
48
+ var _components = require("./components");
49
+
52
50
  var _classnames = _interopRequireDefault(require("classnames"));
53
51
 
52
+ var _virtual = require("./virtual");
53
+
54
54
  var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
55
55
  function adopt(value) {
56
56
  return value instanceof P ? value : new P(function (resolve) {
@@ -95,8 +95,6 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
95
95
  }
96
96
  return t;
97
97
  };
98
- /* eslint-disable no-unused-vars */
99
-
100
98
 
101
99
  var UploadBtn = _UploadOss.default.UploadBtn;
102
100
 
@@ -105,7 +103,8 @@ var EditableContext = /*#__PURE__*/_react.default.createContext(null); // 表格
105
103
 
106
104
  var EditableRow = function EditableRow(_a) {
107
105
  var index = _a.index,
108
- props = __rest(_a, ["index"]);
106
+ virtual = _a.virtual,
107
+ props = __rest(_a, ["index", "virtual"]);
109
108
 
110
109
  var _Form$useForm = _linkmoreDesign.Form.useForm(),
111
110
  _Form$useForm2 = (0, _slicedToArray2.default)(_Form$useForm, 1),
@@ -116,7 +115,7 @@ var EditableRow = function EditableRow(_a) {
116
115
  component: false
117
116
  }, /*#__PURE__*/_react.default.createElement(EditableContext.Provider, {
118
117
  value: form
119
- }, /*#__PURE__*/_react.default.createElement("tr", Object.assign({}, props))));
118
+ }, virtual ? /*#__PURE__*/_react.default.createElement(_virtual.VirtualRow, Object.assign({}, props)) : /*#__PURE__*/_react.default.createElement("tr", Object.assign({}, props))));
120
119
  };
121
120
 
122
121
  var EditableSortRow = function EditableSortRow(_a) {
@@ -129,6 +128,7 @@ var EditableSortRow = function EditableSortRow(_a) {
129
128
 
130
129
  return /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Form, {
131
130
  form: form,
131
+ disabled: props.disabled || false,
132
132
  component: false
133
133
  }, /*#__PURE__*/_react.default.createElement(EditableContext.Provider, {
134
134
  value: form
@@ -259,88 +259,7 @@ var InputRange = function InputRange(_a) {
259
259
  return handleInput(e, 'next');
260
260
  }
261
261
  }, editEnum))));
262
- }; // 操作列
263
-
264
-
265
- var Opetate = function Opetate(_ref) {
266
- var record = _ref.record,
267
- rowKey = _ref.rowKey,
268
- handleAdd = _ref.handleAdd,
269
- handleDelete = _ref.handleDelete,
270
- _ref$options = _ref.options,
271
- options = _ref$options === void 0 ? ['add', 'delete'] : _ref$options,
272
- getLength = _ref.getLength,
273
- quickOpetateClearAll = _ref.quickOpetateClearAll;
274
-
275
- var appendChildren = function appendChildren() {
276
- handleAdd === null || handleAdd === void 0 ? void 0 : handleAdd(record, true);
277
- };
278
-
279
- var appendAdd = function appendAdd() {
280
- handleAdd === null || handleAdd === void 0 ? void 0 : handleAdd(record);
281
- };
282
-
283
- return /*#__PURE__*/_react.default.createElement("div", {
284
- style: {
285
- display: 'flex',
286
- alignItems: 'center',
287
- justifyContent: 'flex-start',
288
- marginLeft: '-4px'
289
- }
290
- }, options.includes('delete') && /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Button, {
291
- type: "link",
292
- size: "small",
293
- disabled: !quickOpetateClearAll && getLength < 2,
294
- icon: /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
295
- type: "lmweb-minus-circle",
296
- style: {
297
- fontSize: 16
298
- }
299
- }),
300
- onClick: function onClick() {
301
- return handleDelete(record[rowKey]);
302
- }
303
- }), (options === null || options === void 0 ? void 0 : options.includes('add')) && (options === null || options === void 0 ? void 0 : options.includes('addInChildren')) ? /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Popover, {
304
- placement: "bottom",
305
- overlayClassName: 'lm_table_append_add_popover',
306
- open: open,
307
- title: null,
308
- content: /*#__PURE__*/_react.default.createElement("ul", null, /*#__PURE__*/_react.default.createElement("li", {
309
- onClick: appendAdd
310
- }, "\u6DFB\u52A0\u5E73\u7EA7"), /*#__PURE__*/_react.default.createElement("li", {
311
- onClick: appendChildren
312
- }, "\u6DFB\u52A0\u5B50\u7EA7")),
313
- trigger: "hover"
314
- }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Button, {
315
- type: "link",
316
- size: "small",
317
- icon: /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
318
- type: "lmweb-plus-circle-fill",
319
- style: {
320
- fontSize: 16
321
- }
322
- })
323
- })) : (options === null || options === void 0 ? void 0 : options.includes('add')) || (options === null || options === void 0 ? void 0 : options.includes('addInChildren')) ? /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Button, {
324
- type: "link",
325
- size: "small",
326
- icon: /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
327
- type: "lmweb-plus-circle-fill",
328
- style: {
329
- fontSize: 16
330
- }
331
- }),
332
- onClick: function onClick() {
333
- return handleAdd(record, (options === null || options === void 0 ? void 0 : options.includes('addInChildren')) ? true : false);
334
- }
335
- }) : null);
336
- }; // const isValidValue = (verifyValue) => {
337
- // const toStringValue = JSON.stringify(verifyValue);
338
- // if (verifyValue === undefined || verifyValue === null || verifyValue === '' || toStringValue === '[]' || toStringValue === '{}') {
339
- // return false;
340
- // }
341
- // return true;
342
- // }
343
-
262
+ };
344
263
  /*
345
264
  表格单元格
346
265
  editEnum: 下拉框时的数据数组(非数组时是配置设置)
@@ -370,9 +289,7 @@ var EditableCell = function EditableCell(props) {
370
289
  handleDelete = props.handleDelete,
371
290
  handleCopy = props.handleCopy,
372
291
  itemProps = props.itemProps,
373
- setValid = props.setValid,
374
- reWriteOriginSource = props.reWriteOriginSource,
375
- restProps = __rest(props, ["record", "rowKey", "isEdit", "col", "rowIndex", "colIndex", "handleTableRowDelete", "handleTableRowAdd", "quickOpetateClearAll", "getLength", "isHoverEdit", "editEnum", "valueType", "children", "handleSave", "handleAdd", "handleDelete", "handleCopy", "itemProps", "setValid", "reWriteOriginSource"]);
292
+ restProps = __rest(props, ["record", "rowKey", "isEdit", "col", "rowIndex", "colIndex", "handleTableRowDelete", "handleTableRowAdd", "quickOpetateClearAll", "getLength", "isHoverEdit", "editEnum", "valueType", "children", "handleSave", "handleAdd", "handleDelete", "handleCopy", "itemProps"]);
376
293
  /** 去除移入移出功能,保留最纯粹的功能,优化性能 */
377
294
 
378
295
 
@@ -392,6 +309,12 @@ var EditableCell = function EditableCell(props) {
392
309
 
393
310
  var inputRef = (0, _react.useRef)(null);
394
311
  var form = (0, _react.useContext)(EditableContext);
312
+
313
+ var _useState5 = (0, _react.useState)(false),
314
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
315
+ hoverStatus = _useState6[0],
316
+ setHoverStatus = _useState6[1];
317
+
395
318
  (0, _react.useEffect)(function () {
396
319
  var _a;
397
320
 
@@ -402,13 +325,7 @@ var EditableCell = function EditableCell(props) {
402
325
 
403
326
  var toggleEdit = function toggleEdit() {
404
327
  setEditing(!editing); // form.setFieldsValue({ [dataIndex]: record[dataIndex] });
405
- }; // const checkCellRef = useRef(null)
406
- // const focusCapturedRef = useRef(false);
407
- // const curValue = useMemo(() => {
408
- // return record?.dataIndex
409
- // }, [record])
410
- // const curValueIsValid = isValidValue(curValue);
411
- // 校验保存
328
+ }; // 校验保存
412
329
 
413
330
 
414
331
  var save = function save(row) {
@@ -460,13 +377,7 @@ var EditableCell = function EditableCell(props) {
460
377
  case 13:
461
378
  if (col === null || col === void 0 ? void 0 : col.hoverEdit) {
462
379
  toggleEdit();
463
- } // // 清空异常校验
464
- // setValid((old) => {
465
- // const obj = { ...old }
466
- // delete obj[record[rowKey]]
467
- // return obj
468
- // })
469
-
380
+ }
470
381
 
471
382
  _context.next = 18;
472
383
  break;
@@ -491,15 +402,14 @@ var EditableCell = function EditableCell(props) {
491
402
  /** 快捷刷子,把当前的所有列的值,刷成当前的选中的列 */
492
403
 
493
404
 
494
- var copyKey = function copyKey(e) {
405
+ var copyKey = function copyKey(e, type) {
495
406
  e === null || e === void 0 ? void 0 : e.stopPropagation();
496
407
  var dataIndex = col.dataIndex;
497
- handleCopy === null || handleCopy === void 0 ? void 0 : handleCopy(dataIndex, record[dataIndex]);
408
+ handleCopy === null || handleCopy === void 0 ? void 0 : handleCopy(dataIndex, record[dataIndex], type, props.rowIndex);
498
409
  };
499
410
 
500
411
  var Control = function Control(con) {
501
- var _a; // const resultComponentProps = isFunction(componentProps) ? componentProps?.(record, col) : componentProps
502
-
412
+ var _a;
503
413
 
504
414
  var resultComponentProps = (0, _lodash.isFunction)(componentProps) ? componentProps === null || componentProps === void 0 ? void 0 : componentProps(record, col) : componentProps;
505
415
 
@@ -509,7 +419,7 @@ var EditableCell = function EditableCell(props) {
509
419
  });
510
420
  }
511
421
 
512
- var clearAttrComponentProps = (0, _lodash.omit)(resultComponentProps, ['optionOnly', 'isOnlyValue']);
422
+ var clearAttrComponentProps = (0, _lodash.omit)(resultComponentProps, ['optionOnly', 'isOnlyValue', 'quickcopy']);
513
423
 
514
424
  switch (con) {
515
425
  case 'input':
@@ -530,19 +440,12 @@ var EditableCell = function EditableCell(props) {
530
440
  noStyle: true
531
441
  }, /*#__PURE__*/_react.default.cloneElement(resultComponentProps.addonAfter, {
532
442
  onChange: handleFormItemChange
533
- })) : null,
534
- suffix: resultComponentProps.quickcopy ? /*#__PURE__*/_react.default.createElement("span", {
535
- className: 'lm_table_quickcopy'
536
- }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
537
- onClick: copyKey,
538
- type: 'lmweb-icon_m_brush'
539
443
  })) : null
540
444
  }));
541
445
 
542
446
  case 'inputRange':
543
447
  return /*#__PURE__*/_react.default.createElement(InputRange, Object.assign({
544
- onChange: handleFormItemChange,
545
- ref: inputRef
448
+ onChange: handleFormItemChange
546
449
  }, resultComponentProps, {
547
450
  record: record,
548
451
  rowIndex: rowIndex,
@@ -618,7 +521,7 @@ var EditableCell = function EditableCell(props) {
618
521
 
619
522
  case 'switch':
620
523
  return /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Switch, Object.assign({
621
- size: 'small'
524
+ size: "small"
622
525
  }, clearAttrComponentProps, {
623
526
  onChange: handleFormItemChange
624
527
  }));
@@ -632,10 +535,9 @@ var EditableCell = function EditableCell(props) {
632
535
 
633
536
  case 'operate':
634
537
  case 'lm_edit_opetate':
635
- return /*#__PURE__*/_react.default.createElement(Opetate, Object.assign({
538
+ return /*#__PURE__*/_react.default.createElement(_components.QuickOpetate, Object.assign({
636
539
  record: record,
637
540
  rowKey: rowKey,
638
- ref: inputRef,
639
541
  handleAdd: handleTableRowAdd,
640
542
  handleDelete: handleTableRowDelete,
641
543
  getLength: getLength,
@@ -649,7 +551,7 @@ var EditableCell = function EditableCell(props) {
649
551
  var fromData = form.getFieldsValue();
650
552
  return render === null || render === void 0 ? void 0 : render(Object.assign(Object.assign({}, !(0, _util.isObjEmpty)(fromData) ? Object.assign(Object.assign({}, record), (0, _defineProperty2.default)({}, dataIndex, fromData[dataIndex])) : record), {
651
553
  onChange: save
652
- }));
554
+ }), rowIndex);
653
555
  }
654
556
 
655
557
  default:
@@ -686,7 +588,8 @@ var EditableCell = function EditableCell(props) {
686
588
  valuePropName: editable === 'switch' ? 'checked' : 'value',
687
589
  style: {
688
590
  margin: 0
689
- }
591
+ },
592
+ noStyle: formProps ? false : true
690
593
  }, formProps, {
691
594
  name: dataIndex
692
595
  }), Control(editable)));
@@ -698,6 +601,7 @@ var EditableCell = function EditableCell(props) {
698
601
  margin: 0
699
602
  }
700
603
  }, formProps, {
604
+ noStyle: formProps ? false : true,
701
605
  name: [dataIndex, 'value']
702
606
  }), Control(editable)));
703
607
  }
@@ -708,31 +612,68 @@ var EditableCell = function EditableCell(props) {
708
612
  }
709
613
 
710
614
  return childNode;
711
- }, [col, isEdit, editing, getLength]); // const [childNode, setChildNode] = useState(getMemoChildNode);
712
- // 出现死循环找我
615
+ }, [col, isEdit, editing, getLength, record]); // 出现死循环找我
713
616
 
714
617
  (0, _react.useEffect)(function () {
715
618
  var editable = col.editable,
716
619
  dataIndex = col.dataIndex;
717
620
 
718
621
  if (isEdit && editable) {
719
- form.setFieldsValue((0, _defineProperty2.default)({}, dataIndex, editable === 'date' ? (0, _moment.default)(record[dataIndex]) : record[dataIndex]));
720
- } // if (
721
- // (isEdit && editable && record[dataIndex]) ||
722
- // (isHoverEdit && editable && record[dataIndex])
723
- // ) {
724
- // form.setFieldsValue({
725
- // [dataIndex]: editable === 'date' ? moment(record[dataIndex]) : record[dataIndex],
726
- // })
727
- // }
728
-
622
+ form.setFieldsValue((0, _defineProperty2.default)({}, dataIndex, editable === 'date' && record[dataIndex] ? (0, _moment.default)(record[dataIndex]) : record[dataIndex]));
623
+ }
729
624
  }, [record]);
625
+
626
+ var handleTdHover = function handleTdHover() {
627
+ setHoverStatus(true);
628
+ };
629
+
630
+ var handleTdMouseOut = function handleTdMouseOut() {
631
+ setHoverStatus(false);
632
+ };
633
+
730
634
  return /*#__PURE__*/_react.default.createElement("td", Object.assign({}, (0, _lodash.omit)(clearProps, ['dataIndex']), {
731
635
  className: (0, _classnames.default)(clearProps === null || clearProps === void 0 ? void 0 : clearProps.className, 'lm_custom_cell_td'),
636
+ onMouseEnter: componentProps.quickcopy ? handleTdHover : undefined,
637
+ onMouseLeave: componentProps.quickcopy ? handleTdMouseOut : undefined,
732
638
  key: "r".concat(rowIndex, "_c").concat(colIndex)
733
- }), getMemoChildNode);
639
+ }), hoverStatus && props.rowIndex > 0 && /*#__PURE__*/_react.default.createElement("span", {
640
+ className: 'quick_copy_warp quick_copy_up',
641
+ onClick: function onClick(e) {
642
+ return copyKey(e, 'up');
643
+ }
644
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
645
+ type: 'lmweb-icon_up'
646
+ })), getMemoChildNode, hoverStatus && props.rowIndex < props.getLength - 1 && /*#__PURE__*/_react.default.createElement("span", {
647
+ className: 'quick_copy_warp quick_copy_down',
648
+ onClick: function onClick(e) {
649
+ return copyKey(e, 'down');
650
+ }
651
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
652
+ type: 'lmweb-icon_down'
653
+ })));
734
654
  };
655
+ /** true 不刷新, false 刷新 */
656
+
657
+
658
+ var MemoEditableCell = /*#__PURE__*/(0, _react.memo)(EditableCell, function (prev, next) {
659
+ var pickProps = ['record', 'colIndex'];
660
+ var p = (0, _lodash.pick)(prev, pickProps);
661
+ var n = (0, _lodash.pick)(next, pickProps);
662
+
663
+ if (next === null || next === void 0 ? void 0 : next.shouldUpdate) {
664
+ return false;
665
+ } // console.log(!checkMemoShouldUploadSpecialFun(prev, next), isEqual(p, n), '22', prev.record, next.record)
666
+ // console.log('333', checkMemoShouldUploadSpecialFun(prev, next), isEqual(p, n))
667
+
668
+ /** TODO: 在record中带有children,子列表数据修改之后,会导致父级的record对比不一样 */
669
+
670
+
671
+ if (!(0, _util.checkMemoShouldUploadSpecialFun)(prev, next)) {
672
+ return false;
673
+ }
735
674
 
675
+ return (0, _lodash.isEqual)(p, n);
676
+ });
736
677
  var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
737
678
  var _a, _b;
738
679
 
@@ -752,16 +693,21 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
752
693
  _props$quickOpetateCl = props.quickOpetateClearAll,
753
694
  quickOpetateClearAll = _props$quickOpetateCl === void 0 ? true : _props$quickOpetateCl,
754
695
  rowSelection = props.rowSelection,
696
+ virtual = props.virtual,
755
697
  sortOpen = props.sortOpen,
698
+ disabled = props.disabled,
756
699
  colSortOpen = props.colSortOpen,
700
+ _props$indexCol = props.indexCol,
701
+ indexCol = _props$indexCol === void 0 ? false : _props$indexCol,
757
702
  filterChange = props.filterChange,
758
703
  _props$size = props.size,
759
704
  size = _props$size === void 0 ? 'small' : _props$size,
760
705
  recordCreatorProps = props.recordCreatorProps,
761
706
  _props$shouldUpdate = props.shouldUpdate,
762
707
  shouldUpdate = _props$shouldUpdate === void 0 ? false : _props$shouldUpdate,
763
- resetProps = __rest(props, ["value", "columns", "isEdit", "isAdd", "onChange", "rowKey", "rowHoverEdit", "isUseForm", "isHoverEdit", "useQuickOpetate", "quickOpetateClearAll", "rowSelection", "sortOpen", "colSortOpen", "filterChange", "size", "recordCreatorProps", "shouldUpdate"]); // const [dataSource, setDataSource] = useState([]);
764
-
708
+ _props$loading = props.loading,
709
+ loading = _props$loading === void 0 ? false : _props$loading,
710
+ resetProps = __rest(props, ["value", "columns", "isEdit", "isAdd", "onChange", "rowKey", "rowHoverEdit", "isUseForm", "isHoverEdit", "useQuickOpetate", "quickOpetateClearAll", "rowSelection", "virtual", "sortOpen", "disabled", "colSortOpen", "indexCol", "filterChange", "size", "recordCreatorProps", "shouldUpdate", "loading"]);
765
711
 
766
712
  var _useControllableValue = (0, _ahooks.useControllableValue)({
767
713
  value: (0, _util.checkRowKeyByDataSource)(props.value, _rowKey),
@@ -769,14 +715,7 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
769
715
  }),
770
716
  _useControllableValue2 = (0, _slicedToArray2.default)(_useControllableValue, 2),
771
717
  dataSource = _useControllableValue2[0],
772
- setDataSource = _useControllableValue2[1]; // const [count, setCount] = useState(0);
773
-
774
-
775
- var _useState5 = (0, _react.useState)({}),
776
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
777
- _valid = _useState6[0],
778
- setValid = _useState6[1]; // const [localRowSelectList, setLocalRowSelectList] = useState([])
779
-
718
+ setDataSource = _useControllableValue2[1];
780
719
 
781
720
  var transformRowSelect = function transformRowSelect(selectedRowKeys, selectedRows, info) {
782
721
  var _a;
@@ -793,42 +732,28 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
793
732
  _useControllableValue4 = (0, _slicedToArray2.default)(_useControllableValue3, 2),
794
733
  localRowSelectList = _useControllableValue4[0],
795
734
  setLocalRowSelectList = _useControllableValue4[1];
735
+ /** TODO: 当前展开的列 */
736
+
796
737
 
797
738
  var _useState7 = (0, _react.useState)([]),
798
739
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
799
- sortEditTable = _useState8[0],
800
- setCallBackFalg = _useState8[1];
801
- /** 当前展开的列 */
802
-
803
-
804
- var _useState9 = (0, _react.useState)([]),
805
- _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
806
- expandedRowKeys = _useState10[0],
807
- setExpandedRowKeys = _useState10[1];
740
+ expandedRowKeys = _useState8[0],
741
+ setExpandedRowKeys = _useState8[1];
808
742
 
809
- var dataSourceRef = (0, _react.useRef)([]);
810
- var sortDataSorceRef = (0, _react.useRef)([]);
811
- var deepDataSourceRef = (0, _react.useRef)([]);
812
-
813
- var onSortEnd = function onSortEnd(active, over) {
814
- var cloneArr = (0, _toConsumableArray2.default)(dataSourceRef.current);
815
- var oldIndex = cloneArr.findIndex(function (v) {
816
- return v[_rowKey] === active;
817
- });
818
- var newIndex = cloneArr.findIndex(function (v) {
819
- return v[_rowKey] === over;
820
- });
821
- setDataSource((0, _sortable.arrayMove)(cloneArr, oldIndex, newIndex));
822
- };
743
+ var dataSourceRef = (0, _react.useRef)(dataSource);
744
+ var deepDataSourceRef = (0, _react.useRef)((0, _util.deepDataSourcePreKeys)(dataSource, _rowKey));
745
+ dataSourceRef.current = dataSource;
746
+ deepDataSourceRef.current = (0, _util.deepDataSourcePreKeys)(dataSource, _rowKey);
747
+ var tableWarpRef = (0, _react.useRef)(null);
823
748
 
824
749
  var onColSortEnd = function onColSortEnd(active, over) {
825
750
  var _a;
826
751
 
827
752
  var oldIndex = columns.findIndex(function (item) {
828
- return item['dataIndex'] === active;
753
+ return item.dataIndex === active;
829
754
  });
830
755
  var newIndex = columns.findIndex(function (item) {
831
- return item['dataIndex'] === over;
756
+ return item.dataIndex === over;
832
757
  });
833
758
  filterChange === null || filterChange === void 0 ? void 0 : filterChange((_a = (0, _sortable.arrayMove)(columns, oldIndex, newIndex)) === null || _a === void 0 ? void 0 : _a.map(function (item, index) {
834
759
  return Object.assign(Object.assign({}, item), {
@@ -841,55 +766,21 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
841
766
  var handleDelete = function handleDelete(key) {
842
767
  var nValue = dataSource.filter(function (item) {
843
768
  return item[_rowKey] !== key;
844
- }); // onChange?.(nValue)
845
-
769
+ });
846
770
  setDataSource(nValue);
847
771
  };
848
- /** 点击添加按钮添加 */
772
+ /** 点击底部添加按钮添加 */
849
773
 
850
774
 
851
- var handleAdd = function handleAdd(row) {
775
+ var handleAdd = (0, _lodash.debounce)(function (row) {
852
776
  var _a;
853
777
 
854
778
  var addDataInfo = (0, _lodash.isFunction)(recordCreatorProps === null || recordCreatorProps === void 0 ? void 0 : recordCreatorProps.initData) ? (_a = recordCreatorProps === null || recordCreatorProps === void 0 ? void 0 : recordCreatorProps.initData) === null || _a === void 0 ? void 0 : _a.call(recordCreatorProps) : recordCreatorProps === null || recordCreatorProps === void 0 ? void 0 : recordCreatorProps.initData;
855
779
  var res = (0, _immer.produce)(dataSourceRef.current, function (draft) {
856
780
  draft.push(Object.assign((0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now())), addDataInfo || {}));
857
781
  });
858
- setDataSource(res); // onChange?.(res)
859
- };
860
-
861
- (0, _react.useEffect)(function () {
862
- var _a;
863
-
864
- dataSourceRef.current = dataSource;
865
- deepDataSourceRef.current = (0, _util.deepDataSourcePreKeys)(dataSource, _rowKey);
866
-
867
- if (sortOpen) {
868
- var dataSourceKeys = dataSource === null || dataSource === void 0 ? void 0 : dataSource.map(function (item) {
869
- return item[_rowKey];
870
- }).join(',');
871
- var setCallBackFalgKeys = ((_a = sortDataSorceRef.current) === null || _a === void 0 ? void 0 : _a.map(function (item) {
872
- return item[_rowKey];
873
- }).join(',')) || '';
874
-
875
- if (dataSourceKeys !== setCallBackFalgKeys) {
876
- setCallBackFalg(dataSource);
877
- sortDataSorceRef.current = dataSource;
878
- }
879
- }
880
- }, [dataSource]); // /** 本地缓存一个选择数据 */
881
- // useEffect(() => {
882
- // if (rowSelection) {
883
- // const { selectedRowKeys } = rowSelection
884
- // if (selectedRowKeys) {
885
- // setLocalRowSelectList(localRowSelectList || [])
886
- // }
887
- // }
888
- // }, [rowSelection])
889
- // const editTableRowChange = (selectRows) => {
890
- // setLocalRowSelectList(selectRows);
891
- // // (rowSelection?.onChange as any)?.(selectRows)
892
- // }
782
+ setDataSource(res);
783
+ }, 40);
893
784
 
894
785
  var handleSave = function handleSave(row, options) {
895
786
  var _a, _b;
@@ -897,9 +788,9 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
897
788
  var preKeys = (_b = (_a = deepDataSourceRef === null || deepDataSourceRef === void 0 ? void 0 : deepDataSourceRef.current) === null || _a === void 0 ? void 0 : _a[row[_rowKey]]) === null || _b === void 0 ? void 0 : _b.preKeys;
898
789
  var res = (0, _immer.produce)(dataSourceRef.current, function (draft) {
899
790
  if (options === null || options === void 0 ? void 0 : options.only) {
900
- var _ref2 = options === null || options === void 0 ? void 0 : options.only,
901
- key = _ref2.key,
902
- value = _ref2.value;
791
+ var _ref = options === null || options === void 0 ? void 0 : options.only,
792
+ key = _ref.key,
793
+ value = _ref.value;
903
794
 
904
795
  if ((preKeys === null || preKeys === void 0 ? void 0 : preKeys.length) > 1) {
905
796
  var deeps = function deeps(children) {
@@ -962,25 +853,26 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
962
853
  }
963
854
  });
964
855
  setDataSource(res);
965
- };
966
-
967
- var reWriteOriginSource = function reWriteOriginSource(rowKey, rowValue, dataIndex, nextValue) {
968
- setDataSource(function (prevDataSource) {
969
- return prevDataSource === null || prevDataSource === void 0 ? void 0 : prevDataSource.map(function (item) {
970
- if ((0, _lodash.get)(item, rowKey) === rowValue) {
971
- (0, _lodash.set)(item, dataIndex, nextValue);
972
- }
856
+ }; // const reWriteOriginSource = (rowKey: string, rowValue, dataIndex: number, nextValue) => {
857
+ // setDataSource((prevDataSource) => {
858
+ // return prevDataSource?.map((item) => {
859
+ // if (get(item, rowKey) === rowValue) {
860
+ // set(item, dataIndex, nextValue)
861
+ // }
862
+ // return item
863
+ // })
864
+ // })
865
+ // }
866
+ // @ts-ignore
973
867
 
974
- return item;
975
- });
976
- });
977
- }; // @ts-ignore
868
+ /** 删除当前行 */
978
869
 
979
870
 
980
- var handleTableRowDelete = function handleTableRowDelete(key) {
871
+ var handleTableRowDelete = (0, _lodash.debounce)(function (key) {
981
872
  var _a, _b, _c;
982
873
 
983
- var preKeys = (_b = (_a = deepDataSourceRef === null || deepDataSourceRef === void 0 ? void 0 : deepDataSourceRef.current) === null || _a === void 0 ? void 0 : _a[key]) === null || _b === void 0 ? void 0 : _b.preKeys;
874
+ var rkey = (0, _lodash.isObject)(key) ? key[_rowKey] : key;
875
+ var preKeys = (_b = (_a = deepDataSourceRef === null || deepDataSourceRef === void 0 ? void 0 : deepDataSourceRef.current) === null || _a === void 0 ? void 0 : _a[rkey]) === null || _b === void 0 ? void 0 : _b.preKeys;
984
876
 
985
877
  if (preKeys.length > 1) {
986
878
  /** 说明删除的是children中的数据 */
@@ -1001,7 +893,7 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1001
893
  return newData;
1002
894
  };
1003
895
 
1004
- var res = filter(dataSource, key);
896
+ var res = filter(dataSourceRef.current, key);
1005
897
  setDataSource(res);
1006
898
  } else {
1007
899
  if (((_c = dataSourceRef.current) === null || _c === void 0 ? void 0 : _c.length) === 1 && !quickOpetateClearAll) {
@@ -1020,34 +912,76 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1020
912
 
1021
913
  setDataSource(_res);
1022
914
  }
1023
- };
1024
- /** 快捷添加 */
1025
915
 
916
+ return null;
917
+ }, 40);
918
+ /** 替换当前行 */
919
+
920
+ var handleTableRowReplace = (0, _lodash.debounce)(function (record, defaultRecord) {
921
+ var _a, _b;
922
+
923
+ var rkey = (0, _lodash.isObject)(record) ? record[_rowKey] : record;
924
+ var preKeys = (_b = (_a = deepDataSourceRef === null || deepDataSourceRef === void 0 ? void 0 : deepDataSourceRef.current) === null || _a === void 0 ? void 0 : _a[rkey]) === null || _b === void 0 ? void 0 : _b.preKeys; // const res = cloneDeep(dataSourceRef.current)
925
+
926
+ var deep = function deep(children) {
927
+ return children.map(function (item) {
928
+ if (item[_rowKey] === rkey) {
929
+ return defaultRecord;
930
+ } else if (preKeys.includes(item[_rowKey]) && item.children) {
931
+ var child = deep(item.children);
932
+ return Object.assign(Object.assign({}, item), {
933
+ children: child
934
+ });
935
+ } else {
936
+ return item;
937
+ }
938
+ });
939
+ };
940
+
941
+ var res = deep(dataSourceRef.current);
942
+ setDataSource(res);
943
+ }, 40);
944
+ /** 快捷添加 */
1026
945
 
1027
- var handleTableRowAdd = function handleTableRowAdd(record, isAppendInChindren) {
946
+ var handleTableRowAdd = (0, _lodash.debounce)(function (record, isAppendInChindren, defaultRecord) {
1028
947
  var _a, _b;
1029
948
 
1030
- var preKeys = (_b = (_a = deepDataSourceRef === null || deepDataSourceRef === void 0 ? void 0 : deepDataSourceRef.current) === null || _a === void 0 ? void 0 : _a[record[_rowKey]]) === null || _b === void 0 ? void 0 : _b.preKeys;
949
+ var rkey = (0, _lodash.isObject)(record) ? record[_rowKey] : record;
950
+ var preKeys = (_b = (_a = deepDataSourceRef === null || deepDataSourceRef === void 0 ? void 0 : deepDataSourceRef.current) === null || _a === void 0 ? void 0 : _a[rkey]) === null || _b === void 0 ? void 0 : _b.preKeys;
1031
951
  var res = (0, _immer.produce)(dataSourceRef.current, function (draft) {
1032
- var _a, _b, _c, _d;
952
+ var _a, _b, _c, _d, _e;
1033
953
 
1034
- if (preKeys.length > 1) {
954
+ if ((preKeys === null || preKeys === void 0 ? void 0 : preKeys.length) > 1) {
1035
955
  var deeps = function deeps(children) {
1036
956
  children === null || children === void 0 ? void 0 : children.forEach(function (item, index) {
1037
- var _a;
957
+ var _a, _b;
1038
958
 
1039
959
  if (preKeys === null || preKeys === void 0 ? void 0 : preKeys.includes(item[_rowKey])) {
1040
- if (item[_rowKey] === record[_rowKey]) {
960
+ if (item[_rowKey] === rkey) {
1041
961
  if (isAppendInChindren) {
1042
962
  if (item === null || item === void 0 ? void 0 : item.children) {
1043
- (_a = item === null || item === void 0 ? void 0 : item.children) === null || _a === void 0 ? void 0 : _a.push((0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now())));
963
+ if (Array.isArray(defaultRecord)) {
964
+ var _a2;
965
+
966
+ (_a = item === null || item === void 0 ? void 0 : item.children) === null || _a === void 0 ? void 0 : (_a2 = _a).push.apply(_a2, (0, _toConsumableArray2.default)(defaultRecord));
967
+ } else {
968
+ (_b = item === null || item === void 0 ? void 0 : item.children) === null || _b === void 0 ? void 0 : _b.push(defaultRecord || (0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now())));
969
+ }
1044
970
  } else {
1045
- item.children = [(0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now()))];
971
+ if (Array.isArray(defaultRecord)) {
972
+ item.children = (0, _toConsumableArray2.default)(defaultRecord);
973
+ } else {
974
+ item.children = [defaultRecord || (0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now()))];
975
+ }
1046
976
  }
1047
977
 
1048
978
  !expandedRowKeys.includes(item[_rowKey]) && setExpandedRowKeys([].concat((0, _toConsumableArray2.default)(expandedRowKeys), [item[_rowKey]]));
1049
979
  } else {
1050
- children.splice(index + 1, 0, (0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now())));
980
+ if (Array.isArray(defaultRecord)) {
981
+ children.splice.apply(children, [index + 1, 0].concat((0, _toConsumableArray2.default)(defaultRecord)));
982
+ } else {
983
+ children.splice(index + 1, 0, defaultRecord || (0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now())));
984
+ }
1051
985
  }
1052
986
  } else if (item.children) {
1053
987
  deeps(item.children);
@@ -1059,31 +993,44 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1059
993
  deeps(draft);
1060
994
  } else {
1061
995
  var index = draft.findIndex(function (item) {
1062
- return record[_rowKey] === item[_rowKey];
996
+ return rkey === item[_rowKey];
1063
997
  });
1064
998
 
1065
999
  if (index !== -1) {
1066
1000
  if (isAppendInChindren) {
1067
1001
  if ((_a = draft[index].children) === null || _a === void 0 ? void 0 : _a.length) {
1068
- (_b = draft[index].children) === null || _b === void 0 ? void 0 : _b.push((0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now())));
1002
+ if (Array.isArray(defaultRecord)) {
1003
+ var _b2;
1004
+
1005
+ (_b = draft[index].children) === null || _b === void 0 ? void 0 : (_b2 = _b).push.apply(_b2, (0, _toConsumableArray2.default)(defaultRecord));
1006
+ } else {
1007
+ (_c = draft[index].children) === null || _c === void 0 ? void 0 : _c.push(defaultRecord || (0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now())));
1008
+ }
1069
1009
  } else {
1070
- draft[index].children = [(0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now()))];
1010
+ draft[index].children = Array.isArray(defaultRecord) ? (0, _toConsumableArray2.default)(defaultRecord) : [defaultRecord || (0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now()))];
1071
1011
  }
1072
1012
 
1073
- !expandedRowKeys.includes((_c = draft[index]) === null || _c === void 0 ? void 0 : _c[_rowKey]) && setExpandedRowKeys([].concat((0, _toConsumableArray2.default)(expandedRowKeys), [(_d = draft[index]) === null || _d === void 0 ? void 0 : _d[_rowKey]]));
1013
+ !expandedRowKeys.includes((_d = draft[index]) === null || _d === void 0 ? void 0 : _d[_rowKey]) && setExpandedRowKeys([].concat((0, _toConsumableArray2.default)(expandedRowKeys), [(_e = draft[index]) === null || _e === void 0 ? void 0 : _e[_rowKey]]));
1074
1014
  } else {
1075
- draft.splice(index + 1, 0, (0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now())));
1015
+ if (Array.isArray(defaultRecord)) {
1016
+ draft.splice.apply(draft, [index + 1, 0].concat((0, _toConsumableArray2.default)(defaultRecord)));
1017
+ } else {
1018
+ draft.splice(index + 1, 0, defaultRecord || (0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now())));
1019
+ }
1076
1020
  }
1077
1021
  }
1078
1022
  }
1079
1023
  });
1080
1024
  setDataSource(res);
1081
- };
1025
+ }, 50);
1026
+ /** 快捷刷子功能 */
1082
1027
 
1083
- var handleCopy = function handleCopy(key, value) {
1028
+ var handleCopy = function handleCopy(key, value, type, rowIndex) {
1084
1029
  var res = (0, _immer.produce)(dataSourceRef.current, function (draft) {
1085
- draft === null || draft === void 0 ? void 0 : draft.forEach(function (item) {
1086
- return item[key] = value;
1030
+ draft === null || draft === void 0 ? void 0 : draft.forEach(function (item, index) {
1031
+ if (type === 'up' && index < rowIndex || type === 'down' && index > rowIndex) {
1032
+ item[key] = value;
1033
+ }
1087
1034
  });
1088
1035
  });
1089
1036
  setDataSource(res);
@@ -1092,17 +1039,16 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1092
1039
 
1093
1040
 
1094
1041
  var hasDisableOptions = (0, _react.useMemo)(function () {
1095
- // const hasOnlyOptionsDatas = columns.filter(item => item?.['componentProps']?.optionOnly)
1096
1042
  var hasOnlyOptionsDatas = columns.filter(function (item) {
1097
1043
  var _a;
1098
1044
 
1099
1045
  var resultComponentProps = (0, _lodash.isFunction)(item === null || item === void 0 ? void 0 : item.componentProps) ? (_a = item === null || item === void 0 ? void 0 : item.componentProps) === null || _a === void 0 ? void 0 : _a.call(item, {}, item) : item === null || item === void 0 ? void 0 : item.componentProps;
1100
1046
  return resultComponentProps === null || resultComponentProps === void 0 ? void 0 : resultComponentProps.optionOnly;
1101
- });
1047
+ }); // const hasOnlyOptionsDatas = columns.filter((item) => item?.componentProps?.optionOnly)
1102
1048
 
1103
1049
  if (hasOnlyOptionsDatas.length) {
1104
1050
  return hasOnlyOptionsDatas === null || hasOnlyOptionsDatas === void 0 ? void 0 : hasOnlyOptionsDatas.map(function (item) {
1105
- return item['dataIndex'];
1051
+ return item.dataIndex;
1106
1052
  });
1107
1053
  }
1108
1054
 
@@ -1114,12 +1060,11 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1114
1060
  var newColumns = columns === null || columns === void 0 ? void 0 : columns.map(function (item) {
1115
1061
  var _a;
1116
1062
 
1117
- var resultComponentProps = (0, _lodash.isFunction)(item.componentProps) ? (_a = item === null || item === void 0 ? void 0 : item.componentProps) === null || _a === void 0 ? void 0 : _a.call(item, {}, item) : item === null || item === void 0 ? void 0 : item.componentProps;
1118
-
1119
- var _ref5 = resultComponentProps || {},
1120
- optionOnly = _ref5.optionOnly,
1121
- options = _ref5.options; // const { optionOnly, options } = item['componentProps'] || {}
1063
+ var resultComponentProps = (0, _lodash.isFunction)(item.componentProps) ? (_a = item.componentProps) === null || _a === void 0 ? void 0 : _a.call(item, {}, item) : item.componentProps;
1122
1064
 
1065
+ var _ref8 = resultComponentProps || {},
1066
+ optionOnly = _ref8.optionOnly,
1067
+ options = _ref8.options;
1123
1068
 
1124
1069
  if (optionOnly && options) {
1125
1070
  var dataIndex = item.dataIndex;
@@ -1139,7 +1084,7 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1139
1084
  }
1140
1085
 
1141
1086
  return Object.assign(Object.assign({}, item), {
1142
- componentProps: Object.assign(Object.assign({}, item['componentProps']), {
1087
+ componentProps: Object.assign(Object.assign({}, item.componentProps), {
1143
1088
  options: newOptions
1144
1089
  })
1145
1090
  });
@@ -1158,16 +1103,47 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1158
1103
  var rColumns = hasDisableOptions ? DisableOptions : columns;
1159
1104
  var localColumns = [sortOpen ? {
1160
1105
  title: '排序',
1161
- dataIndex: 'sort',
1106
+ dataIndex: '_sort',
1162
1107
  width: 48,
1163
1108
  maxWidth: 48,
1164
1109
  className: 'drag-visible',
1110
+ fixed: 'left',
1165
1111
  render: function render(_, record) {
1166
1112
  return /*#__PURE__*/_react.default.createElement(_DragHandle.default, {
1167
- id: record[_rowKey] || record.id
1113
+ id: (record === null || record === void 0 ? void 0 : record[_rowKey]) || (record === null || record === void 0 ? void 0 : record.id)
1168
1114
  });
1169
1115
  }
1170
- } : null].concat((0, _toConsumableArray2.default)(rColumns), [useQuickOpetate ? {
1116
+ } : null, indexCol ? (0, _lodash.isBoolean)(indexCol) ? {
1117
+ title: '',
1118
+ dataIndex: '_index',
1119
+ width: 48,
1120
+ maxWidth: 48,
1121
+ ellipsis: true,
1122
+ fixed: 'left',
1123
+ render: function render(_, record, index) {
1124
+ var _a, _b, _c;
1125
+
1126
+ console.log(deepDataSourceRef.current, '--deepDataSourceRef.current', _rowKey);
1127
+ return ((_c = (_b = (_a = deepDataSourceRef.current) === null || _a === void 0 ? void 0 : _a[record[_rowKey]]) === null || _b === void 0 ? void 0 : _b['_deepIds']) === null || _c === void 0 ? void 0 : _c.join('-')) || "".concat(index + 1);
1128
+ }
1129
+ } : Object.assign(Object.assign({
1130
+ title: '',
1131
+ dataIndex: '_index',
1132
+ width: 48,
1133
+ ellipsis: true,
1134
+ maxWidth: 48,
1135
+ fixed: 'left'
1136
+ }, indexCol || {}), {
1137
+ render: function render(_, record, index) {
1138
+ var _a, _b, _c, _d, _e, _f;
1139
+
1140
+ if ((0, _lodash.isFunction)(indexCol === null || indexCol === void 0 ? void 0 : indexCol.render)) {
1141
+ return (_a = indexCol === null || indexCol === void 0 ? void 0 : indexCol.render) === null || _a === void 0 ? void 0 : _a.call(indexCol, record, (_c = (_b = deepDataSourceRef.current) === null || _b === void 0 ? void 0 : _b[record[_rowKey]]) === null || _c === void 0 ? void 0 : _c['_deepIds']);
1142
+ }
1143
+
1144
+ return ((_f = (_e = (_d = deepDataSourceRef.current) === null || _d === void 0 ? void 0 : _d[record[_rowKey]]) === null || _e === void 0 ? void 0 : _e['_deepIds']) === null || _f === void 0 ? void 0 : _f.join('-')) || "".concat(index + 1);
1145
+ }
1146
+ }) : null].concat((0, _toConsumableArray2.default)(rColumns), [useQuickOpetate ? {
1171
1147
  title: '操作',
1172
1148
  dataIndex: 'lm_edit_opetate',
1173
1149
  width: 68,
@@ -1178,11 +1154,11 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1178
1154
  options: Array.isArray(useQuickOpetate) ? useQuickOpetate : ['add', 'delete']
1179
1155
  }
1180
1156
  } : null]).filter(function (item) {
1181
- return item && item.show !== false;
1157
+ return item && (item === null || item === void 0 ? void 0 : item.show) !== false;
1182
1158
  });
1183
- localColumns = localColumns.map(function (item, index) {
1159
+ localColumns = localColumns === null || localColumns === void 0 ? void 0 : localColumns.map(function (item, index) {
1184
1160
  return Object.assign(Object.assign({}, item), {
1185
- order: [null, undefined].includes(item['order']) ? index : item['order']
1161
+ order: [null, undefined].includes(item.order) ? index : item.order
1186
1162
  });
1187
1163
  }).sort(function (a, b) {
1188
1164
  return a.order - b.order;
@@ -1205,29 +1181,22 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1205
1181
  var mapColumns = function mapColumns(col, index) {
1206
1182
  var _a, _b;
1207
1183
 
1208
- if (!col.editable && !((_a = col.children) === null || _a === void 0 ? void 0 : _a.length)) {
1209
- return col;
1210
- }
1211
-
1212
- var newCol = Object.assign(Object.assign({}, col), {
1213
- shouldCellUpdate: function shouldCellUpdate(record, prevRecord) {
1214
- var _a;
1215
-
1216
- var dataIndex = col.dataIndex,
1217
- editable = col.editable,
1218
- relevanceCols = col.relevanceCols,
1219
- componentProps = col.componentProps;
1184
+ if (!col.editable && !((_a = col.children) === null || _a === void 0 ? void 0 : _a.length) && (col === null || col === void 0 ? void 0 : col.dataIndex) === '_sort') {
1185
+ var fn = col === null || col === void 0 ? void 0 : col.render;
1186
+ return Object.assign(Object.assign({}, col), {
1187
+ render: function render(text, record, i) {
1188
+ var _a;
1220
1189
 
1221
- if (componentProps && (0, _lodash.isFunction)(componentProps)) {
1222
- return true;
1190
+ return fn === null || fn === void 0 ? void 0 : fn((_a = dataSource[i]) === null || _a === void 0 ? void 0 : _a[col.dataIndex], dataSource[i], i);
1223
1191
  }
1192
+ });
1193
+ }
1224
1194
 
1225
- if ((col === null || col === void 0 ? void 0 : col.fixed) || hasDisableOptions && hasDisableOptions.includes(dataIndex) || ((_a = col.componentProps) === null || _a === void 0 ? void 0 : _a.options) || editable === 'render' || !!relevanceCols || !!shouldUpdate || !!record.children) {
1226
- return true;
1227
- }
1195
+ if (isEdit && (col === null || col === void 0 ? void 0 : col.render) && (col === null || col === void 0 ? void 0 : col.editable) === 'render') {
1196
+ delete col.render;
1197
+ }
1228
1198
 
1229
- return record[dataIndex] !== prevRecord[dataIndex];
1230
- },
1199
+ var newCol = Object.assign(Object.assign({}, col), {
1231
1200
  onCell: function onCell(record, rowIndex) {
1232
1201
  return {
1233
1202
  getLength: dataSource.length,
@@ -1242,7 +1211,7 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1242
1211
  editable: col.editable,
1243
1212
  dataIndex: col.dataIndex,
1244
1213
  itemProps: col.itemProps,
1245
- setValid: setValid,
1214
+ shouldUpdate: shouldUpdate,
1246
1215
  isEdit: isEdit,
1247
1216
  isHoverEdit: isHoverEdit,
1248
1217
  handleAdd: handleAdd,
@@ -1250,8 +1219,7 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1250
1219
  handleCopy: handleCopy,
1251
1220
  editEnum: typeof col.editEnum === 'function' ? col.editEnum(record) : col.editEnum,
1252
1221
  valueType: typeof col.valueType === 'function' ? col.valueType(record) : col.valueType,
1253
- handleSave: handleSave,
1254
- reWriteOriginSource: reWriteOriginSource
1222
+ handleSave: handleSave
1255
1223
  };
1256
1224
  }
1257
1225
  });
@@ -1263,24 +1231,23 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1263
1231
  return newCol;
1264
1232
  };
1265
1233
 
1266
- var res = localColumns.map(function (col, index) {
1234
+ var res = localColumns === null || localColumns === void 0 ? void 0 : localColumns.map(function (col, index) {
1267
1235
  return mapColumns(col, index);
1268
1236
  });
1269
1237
  return res;
1270
- }, [columns, isAdd, sortOpen, useQuickOpetate, sortEditTable, dataSource, (0, _toConsumableArray2.default)(memoOptions)]);
1271
- var DraggableContainer = (0, _react.useCallback)(function (_a) {
1272
- var _b;
1238
+ }, [columns, isAdd, sortOpen, useQuickOpetate, dataSource, (0, _toConsumableArray2.default)(memoOptions)]);
1273
1239
 
1274
- var props = __rest(_a, []);
1240
+ var onSortEnd = function onSortEnd(active, over) {
1241
+ var cloneArr = (0, _toConsumableArray2.default)(dataSourceRef.current);
1242
+ var oldIndex = cloneArr.findIndex(function (v) {
1243
+ return v[_rowKey] === active;
1244
+ });
1245
+ var newIndex = cloneArr.findIndex(function (v) {
1246
+ return v[_rowKey] === over;
1247
+ });
1248
+ setDataSource((0, _sortable.arrayMove)(cloneArr, oldIndex, newIndex));
1249
+ };
1275
1250
 
1276
- return /*#__PURE__*/_react.default.createElement(_DndContainer.default, {
1277
- move: onSortEnd
1278
- }, /*#__PURE__*/_react.default.createElement(_sortableBox.default, {
1279
- items: (_b = dataSourceRef.current) === null || _b === void 0 ? void 0 : _b.map(function (item) {
1280
- return item[_rowKey];
1281
- })
1282
- }, /*#__PURE__*/_react.default.createElement("tbody", Object.assign({}, props))));
1283
- }, [sortEditTable]);
1284
1251
  var colDraggableContainer = (0, _react.useCallback)(function (_a) {
1285
1252
  var _b;
1286
1253
 
@@ -1298,40 +1265,18 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1298
1265
  }, child);
1299
1266
  }));
1300
1267
  }, [columns]);
1301
- var config = (0, _react.useMemo)(function () {
1302
- var component = {
1303
- body: Object.assign({
1304
- row: sortOpen ? EditableSortRow : EditableRow,
1305
- cell: EditableCell
1306
- }, sortOpen ? {
1307
- wrapper: DraggableContainer
1308
- } : {})
1309
- };
1310
-
1311
- if (colSortOpen) {
1312
- component['header'] = {
1313
- row: colDraggableContainer
1314
- };
1315
- }
1316
-
1317
- return Object.assign({
1318
- pagination: false,
1319
- tableLayout: 'fixed',
1320
- scroll: {
1321
- x: '100%'
1322
- },
1323
- rowKey: function rowKey(record) {
1324
- return record[_rowKey] || record.index || Math.random();
1325
- },
1326
- components: component
1327
- }, resetProps);
1328
- }, [resultColumns, dataSource, sortOpen, colSortOpen, size]);
1329
1268
  (0, _react.useImperativeHandle)(ref, function () {
1330
1269
  return {
1331
1270
  setRow: handleSave,
1332
1271
  getCheckboxRecords: function getCheckboxRecords() {
1333
1272
  return localRowSelectList.selectedRows;
1334
1273
  },
1274
+ deleteRowData: function deleteRowData(data) {
1275
+ return handleTableRowDelete(data);
1276
+ },
1277
+ addRowData: function addRowData(data, defaultValue, addInChild) {
1278
+ return addInChild === 'replace' ? handleTableRowReplace(data, defaultValue) : handleTableRowAdd(data, addInChild, defaultValue);
1279
+ },
1335
1280
  clearSelect: function clearSelect() {
1336
1281
  setLocalRowSelectList({
1337
1282
  selectedRows: []
@@ -1341,32 +1286,80 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1341
1286
  setLocalRowSelectList({
1342
1287
  selectedRows: value
1343
1288
  });
1344
- },
1345
- valid: function valid() {
1346
- return _valid;
1347
1289
  }
1348
1290
  };
1349
1291
  });
1350
1292
  var isShowAddAction = (0, _react.useMemo)(function () {
1351
1293
  return isEdit && isAdd || isHoverEdit && isAdd;
1352
1294
  }, [isEdit, isAdd, isHoverEdit]);
1295
+ var config = (0, _react.useRef)(Object.assign({
1296
+ pagination: false,
1297
+ tableLayout: 'fixed',
1298
+ scroll: {
1299
+ x: '100%'
1300
+ },
1301
+ rowKey: function rowKey(record) {
1302
+ return record[_rowKey] || record.index || Math.random();
1303
+ },
1304
+ components: {
1305
+ table: virtual ? _virtual.VirtualTable : null,
1306
+ body: Object.assign({
1307
+ row: function row(rowProps) {
1308
+ return sortOpen ? EditableSortRow(Object.assign(Object.assign({}, rowProps), {
1309
+ virtual: virtual
1310
+ })) : EditableRow(Object.assign(Object.assign({}, rowProps), {
1311
+ virtual: virtual
1312
+ }));
1313
+ },
1314
+ cell: MemoEditableCell
1315
+ }, sortOpen ? {
1316
+ wrapper: function wrapper(wrapperProps) {
1317
+ var _a, _b, _c;
1318
+
1319
+ return (0, _components.DraggableContainer)(Object.assign(Object.assign({}, wrapperProps), {
1320
+ virtual: virtual,
1321
+ keys: (_a = dataSourceRef.current) === null || _a === void 0 ? void 0 : _a.map(function (item) {
1322
+ return item[_rowKey];
1323
+ }),
1324
+ options: dataSourceRef.current,
1325
+ rowKey: _rowKey,
1326
+ onSortEnd: onSortEnd,
1327
+ tableWidth: (_c = (_b = tableWarpRef === null || tableWarpRef === void 0 ? void 0 : tableWarpRef.current) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect()) === null || _c === void 0 ? void 0 : _c.width
1328
+ }));
1329
+ }
1330
+ } : virtual ? {
1331
+ wrapper: _virtual.VirtualWrapper
1332
+ } : {}),
1333
+ header: {
1334
+ row: colSortOpen ? colDraggableContainer : null
1335
+ }
1336
+ },
1337
+ onRow: function onRow(record, index) {
1338
+ return {
1339
+ disabled: disabled
1340
+ };
1341
+ }
1342
+ }, resetProps));
1353
1343
 
1354
1344
  if (colSortOpen) {
1355
1345
  return /*#__PURE__*/_react.default.createElement("div", {
1356
- className: "lm_editTable_warpper"
1346
+ className: "lm_editTable_warpper",
1347
+ ref: tableWarpRef
1357
1348
  }, /*#__PURE__*/_react.default.createElement(_DndContainer.default, {
1349
+ rowKey: _rowKey,
1350
+ options: resultColumns,
1358
1351
  move: onColSortEnd
1359
1352
  }, /*#__PURE__*/_react.default.createElement(_sortableBoxCol.default, {
1360
1353
  items: columns.reduce(function (acc, item) {
1361
1354
  return [].concat((0, _toConsumableArray2.default)(acc), [item.dataIndex]);
1362
1355
  }, [])
1363
- }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Table, Object.assign({}, config, {
1356
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Table, Object.assign({}, config.current, {
1357
+ loading: loading,
1364
1358
  size: size || 'small',
1365
1359
  columns: resultColumns,
1366
1360
  rowClassName: "editable-row",
1367
1361
  bordered: true,
1368
1362
  pagination: false,
1369
- // components={tableComponents}
1370
1363
  rowSelection: !rowSelection ? undefined : Object.assign(Object.assign({
1371
1364
  fixed: true,
1372
1365
  type: 'checkbox',
@@ -1376,36 +1369,39 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1376
1369
  return (0, _lodash.isObject)(v) ? v[_rowKey] : v;
1377
1370
  }),
1378
1371
  onChange: function onChange(selectedRowKeys, selectedRows, info) {
1379
- // editTableRowChange(selectedRowKeys, selectedRows, info)
1380
1372
  setLocalRowSelectList(selectedRowKeys, selectedRows, info);
1381
1373
  }
1382
1374
  }),
1383
1375
  dataSource: dataSource
1384
- })))), isShowAddAction && /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Button, {
1385
- className: "lm_editTable_add_bar",
1386
- type: "dashed",
1387
- onClick: handleAdd,
1388
- style: {
1389
- marginTop: 8
1390
- }
1391
- }, /*#__PURE__*/_react.default.createElement(_icons.PlusCircleOutlined, {
1392
- className: "lmweb-plus"
1393
- }), "\u65B0\u589E"));
1376
+ })))), /*#__PURE__*/_react.default.createElement(_components.BottomOpetateComponent, {
1377
+ disabled: disabled,
1378
+ isShowAddAction: isShowAddAction,
1379
+ recordCreatorProps: recordCreatorProps,
1380
+ handleAdd: handleAdd
1381
+ }));
1394
1382
  } // @ts-ignore
1395
1383
 
1396
1384
 
1397
1385
  return /*#__PURE__*/_react.default.createElement("div", {
1398
- className: "lm_editTable_warpper"
1399
- }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Table, Object.assign({}, config, {
1386
+ className: "lm_editTable_warpper",
1387
+ ref: tableWarpRef
1388
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Table, Object.assign({}, config.current, {
1400
1389
  size: size || 'small',
1401
1390
  columns: resultColumns,
1402
1391
  rowClassName: "editable-row",
1403
1392
  bordered: true,
1393
+ loading: loading,
1404
1394
  pagination: false,
1405
1395
  // components={tableComponents}
1406
1396
  expandable: (resetProps === null || resetProps === void 0 ? void 0 : resetProps.expandable) || {
1407
1397
  expandedRowKeys: expandedRowKeys,
1408
1398
  fixed: true,
1399
+ // indentSize: 0,
1400
+ expandIconColumnIndex: (0, _util.checkExpandIconColumnIndex)({
1401
+ rowSelection: rowSelection,
1402
+ sortOpen: sortOpen,
1403
+ indexCol: indexCol
1404
+ }) || 0,
1409
1405
  onExpandedRowsChange: function onExpandedRowsChange(expandedRows) {
1410
1406
  return setExpandedRowKeys(expandedRows);
1411
1407
  }
@@ -1423,16 +1419,12 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1423
1419
  }
1424
1420
  }),
1425
1421
  dataSource: dataSource
1426
- })), isShowAddAction && /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Button, {
1427
- className: "lm_editTable_add_bar",
1428
- type: "dashed",
1429
- onClick: (recordCreatorProps === null || recordCreatorProps === void 0 ? void 0 : recordCreatorProps.customAddClick) || handleAdd,
1430
- style: Object.assign({
1431
- marginTop: 8
1432
- }, (recordCreatorProps === null || recordCreatorProps === void 0 ? void 0 : recordCreatorProps.style) || {})
1433
- }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
1434
- type: "lmweb-plus"
1435
- }), (recordCreatorProps === null || recordCreatorProps === void 0 ? void 0 : recordCreatorProps.creatorButtonText) || '新增'));
1422
+ })), /*#__PURE__*/_react.default.createElement(_components.BottomOpetateComponent, {
1423
+ disabled: disabled,
1424
+ isShowAddAction: isShowAddAction,
1425
+ recordCreatorProps: recordCreatorProps,
1426
+ handleAdd: handleAdd
1427
+ }));
1436
1428
  });
1437
1429
 
1438
1430
  var _default = /*#__PURE__*/(0, _react.memo)(EditTable);