linkmore-design 1.1.11 → 1.1.13-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 (88) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/Cascader/demos/formItem.d.ts +2 -0
  3. package/dist/LmEditTable/DndContainer.d.ts +4 -3
  4. package/dist/LmEditTable/EditTable.d.ts +2 -0
  5. package/dist/LmEditTable/components/DraggableContainer.d.ts +7 -0
  6. package/dist/LmEditTable/components/index.d.ts +11 -0
  7. package/dist/LmEditTable/sortableItem.d.ts +3 -2
  8. package/dist/LmEditTable/util.d.ts +2 -0
  9. package/dist/LmEditTable/virtual/VirtualRow.d.ts +6 -0
  10. package/dist/LmEditTable/virtual/VirtualRowBack.d.ts +6 -0
  11. package/dist/LmEditTable/virtual/VirtualTable.d.ts +3 -0
  12. package/dist/LmEditTable/virtual/VirtualWrapper.d.ts +3 -0
  13. package/dist/LmEditTable/virtual/context.d.ts +13 -0
  14. package/dist/LmEditTable/virtual/index.d.ts +4 -0
  15. package/dist/Select/demos/formItem.d.ts +2 -0
  16. package/dist/Select/index.d.ts +1 -0
  17. package/dist/TreeSelect/demos/formItem.d.ts +2 -0
  18. package/dist/TreeSelect/index.d.ts +8 -3
  19. package/dist/index.umd.js +629 -226
  20. package/dist/index.umd.min.js +5 -5
  21. package/dist/variables.css +47 -0
  22. package/es/IconFont/index.js +1 -1
  23. package/es/LmEditTable/DndContainer.d.ts +4 -3
  24. package/es/LmEditTable/DndContainer.js +2 -2
  25. package/es/LmEditTable/EditTable.d.ts +2 -0
  26. package/es/LmEditTable/EditTable.js +200 -158
  27. package/es/LmEditTable/components/DraggableContainer.d.ts +7 -0
  28. package/es/LmEditTable/components/DraggableContainer.js +32 -0
  29. package/es/LmEditTable/components/index.d.ts +11 -0
  30. package/es/LmEditTable/components/index.js +5 -0
  31. package/es/LmEditTable/sortableItem.d.ts +3 -2
  32. package/es/LmEditTable/sortableItem.js +15 -4
  33. package/es/LmEditTable/style/index.css +47 -0
  34. package/es/LmEditTable/style/variables.css +47 -0
  35. package/es/LmEditTable/util.d.ts +2 -0
  36. package/es/LmEditTable/util.js +37 -1
  37. package/es/LmEditTable/virtual/VirtualRow.d.ts +6 -0
  38. package/es/LmEditTable/virtual/VirtualRow.js +60 -0
  39. package/es/LmEditTable/virtual/VirtualRowBack.d.ts +6 -0
  40. package/es/LmEditTable/virtual/VirtualRowBack.js +102 -0
  41. package/es/LmEditTable/virtual/VirtualTable.d.ts +3 -0
  42. package/es/LmEditTable/virtual/VirtualTable.js +54 -0
  43. package/es/LmEditTable/virtual/VirtualWrapper.d.ts +3 -0
  44. package/es/LmEditTable/virtual/VirtualWrapper.js +60 -0
  45. package/es/LmEditTable/virtual/context.d.ts +13 -0
  46. package/es/LmEditTable/virtual/context.js +54 -0
  47. package/es/LmEditTable/virtual/index.d.ts +4 -0
  48. package/es/LmEditTable/virtual/index.js +4 -0
  49. package/es/Select/index.d.ts +1 -0
  50. package/es/Select/index.js +38 -4
  51. package/es/TreeSelect/index.d.ts +8 -3
  52. package/es/TreeSelect/index.js +74 -1
  53. package/es/hooks/useEvent/index.js +1 -1
  54. package/es/styles/variables.css +47 -0
  55. package/lib/IconFont/index.js +1 -1
  56. package/lib/LmEditTable/DndContainer.d.ts +4 -3
  57. package/lib/LmEditTable/DndContainer.js +4 -3
  58. package/lib/LmEditTable/EditTable.d.ts +2 -0
  59. package/lib/LmEditTable/EditTable.js +195 -153
  60. package/lib/LmEditTable/components/DraggableContainer.d.ts +7 -0
  61. package/lib/LmEditTable/components/DraggableContainer.js +45 -0
  62. package/lib/LmEditTable/components/index.d.ts +11 -0
  63. package/lib/LmEditTable/components/index.js +21 -0
  64. package/lib/LmEditTable/sortableItem.d.ts +3 -2
  65. package/lib/LmEditTable/sortableItem.js +18 -5
  66. package/lib/LmEditTable/style/index.css +47 -0
  67. package/lib/LmEditTable/style/variables.css +47 -0
  68. package/lib/LmEditTable/util.d.ts +2 -0
  69. package/lib/LmEditTable/util.js +40 -0
  70. package/lib/LmEditTable/virtual/VirtualRow.d.ts +6 -0
  71. package/lib/LmEditTable/virtual/VirtualRow.js +73 -0
  72. package/lib/LmEditTable/virtual/VirtualRowBack.d.ts +6 -0
  73. package/lib/LmEditTable/virtual/VirtualRowBack.js +115 -0
  74. package/lib/LmEditTable/virtual/VirtualTable.d.ts +3 -0
  75. package/lib/LmEditTable/virtual/VirtualTable.js +71 -0
  76. package/lib/LmEditTable/virtual/VirtualWrapper.d.ts +3 -0
  77. package/lib/LmEditTable/virtual/VirtualWrapper.js +73 -0
  78. package/lib/LmEditTable/virtual/context.d.ts +13 -0
  79. package/lib/LmEditTable/virtual/context.js +64 -0
  80. package/lib/LmEditTable/virtual/index.d.ts +4 -0
  81. package/lib/LmEditTable/virtual/index.js +31 -0
  82. package/lib/Select/index.d.ts +1 -0
  83. package/lib/Select/index.js +37 -3
  84. package/lib/TreeSelect/index.d.ts +8 -3
  85. package/lib/TreeSelect/index.js +78 -1
  86. package/lib/hooks/useEvent/index.js +1 -1
  87. package/lib/styles/variables.css +47 -0
  88. package/package.json +1 -1
@@ -35,8 +35,6 @@ var _immer = require("immer");
35
35
 
36
36
  var _DndContainer = _interopRequireDefault(require("./DndContainer"));
37
37
 
38
- var _sortableBox = _interopRequireDefault(require("./sortableBox"));
39
-
40
38
  var _sortableBoxCol = _interopRequireDefault(require("./sortableBoxCol"));
41
39
 
42
40
  var _sortableItem = _interopRequireDefault(require("./sortableItem"));
@@ -49,8 +47,12 @@ var _UploadOss = _interopRequireDefault(require("../UploadOss"));
49
47
 
50
48
  var _util = require("./util");
51
49
 
50
+ var _components = require("./components");
51
+
52
52
  var _classnames = _interopRequireDefault(require("classnames"));
53
53
 
54
+ var _virtual = require("./virtual");
55
+
54
56
  var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
55
57
  function adopt(value) {
56
58
  return value instanceof P ? value : new P(function (resolve) {
@@ -105,7 +107,8 @@ var EditableContext = /*#__PURE__*/_react.default.createContext(null); // 表格
105
107
 
106
108
  var EditableRow = function EditableRow(_a) {
107
109
  var index = _a.index,
108
- props = __rest(_a, ["index"]);
110
+ virtual = _a.virtual,
111
+ props = __rest(_a, ["index", "virtual"]);
109
112
 
110
113
  var _Form$useForm = _linkmoreDesign.Form.useForm(),
111
114
  _Form$useForm2 = (0, _slicedToArray2.default)(_Form$useForm, 1),
@@ -116,7 +119,7 @@ var EditableRow = function EditableRow(_a) {
116
119
  component: false
117
120
  }, /*#__PURE__*/_react.default.createElement(EditableContext.Provider, {
118
121
  value: form
119
- }, /*#__PURE__*/_react.default.createElement("tr", Object.assign({}, props))));
122
+ }, virtual ? /*#__PURE__*/_react.default.createElement(_virtual.VirtualRow, Object.assign({}, props)) : /*#__PURE__*/_react.default.createElement("tr", Object.assign({}, props))));
120
123
  };
121
124
 
122
125
  var EditableSortRow = function EditableSortRow(_a) {
@@ -271,6 +274,15 @@ var Opetate = function Opetate(_ref) {
271
274
  options = _ref$options === void 0 ? ['add', 'delete'] : _ref$options,
272
275
  getLength = _ref.getLength,
273
276
  quickOpetateClearAll = _ref.quickOpetateClearAll;
277
+
278
+ var appendChildren = function appendChildren() {
279
+ handleAdd === null || handleAdd === void 0 ? void 0 : handleAdd(record, true);
280
+ };
281
+
282
+ var appendAdd = function appendAdd() {
283
+ handleAdd === null || handleAdd === void 0 ? void 0 : handleAdd(record);
284
+ };
285
+
274
286
  return /*#__PURE__*/_react.default.createElement("div", {
275
287
  style: {
276
288
  display: 'flex',
@@ -291,7 +303,27 @@ var Opetate = function Opetate(_ref) {
291
303
  onClick: function onClick() {
292
304
  return handleDelete(record[rowKey]);
293
305
  }
294
- }), options.includes('add') && /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Button, {
306
+ }), (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, {
307
+ placement: "bottom",
308
+ overlayClassName: "lm_table_append_add_popover",
309
+ open: open,
310
+ title: null,
311
+ content: /*#__PURE__*/_react.default.createElement("ul", null, /*#__PURE__*/_react.default.createElement("li", {
312
+ onClick: appendAdd
313
+ }, "\u6DFB\u52A0\u5E73\u7EA7"), /*#__PURE__*/_react.default.createElement("li", {
314
+ onClick: appendChildren
315
+ }, "\u6DFB\u52A0\u5B50\u7EA7")),
316
+ trigger: "hover"
317
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Button, {
318
+ type: "link",
319
+ size: "small",
320
+ icon: /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
321
+ type: "lmweb-plus-circle-fill",
322
+ style: {
323
+ fontSize: 16
324
+ }
325
+ })
326
+ })) : /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Button, {
295
327
  type: "link",
296
328
  size: "small",
297
329
  icon: /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
@@ -301,17 +333,10 @@ var Opetate = function Opetate(_ref) {
301
333
  }
302
334
  }),
303
335
  onClick: function onClick() {
304
- return handleAdd(record);
336
+ return handleAdd(record, (options === null || options === void 0 ? void 0 : options.includes('addInChildren')) ? true : false);
305
337
  }
306
338
  }));
307
- }; // const isValidValue = (verifyValue) => {
308
- // const toStringValue = JSON.stringify(verifyValue);
309
- // if (verifyValue === undefined || verifyValue === null || verifyValue === '' || toStringValue === '[]' || toStringValue === '{}') {
310
- // return false;
311
- // }
312
- // return true;
313
- // }
314
-
339
+ };
315
340
  /*
316
341
  表格单元格
317
342
  editEnum: 下拉框时的数据数组(非数组时是配置设置)
@@ -363,6 +388,12 @@ var EditableCell = function EditableCell(props) {
363
388
 
364
389
  var inputRef = (0, _react.useRef)(null);
365
390
  var form = (0, _react.useContext)(EditableContext);
391
+
392
+ var _useState5 = (0, _react.useState)(false),
393
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
394
+ hoverStatus = _useState6[0],
395
+ setHoverStatus = _useState6[1];
396
+
366
397
  (0, _react.useEffect)(function () {
367
398
  var _a;
368
399
 
@@ -373,13 +404,7 @@ var EditableCell = function EditableCell(props) {
373
404
 
374
405
  var toggleEdit = function toggleEdit() {
375
406
  setEditing(!editing); // form.setFieldsValue({ [dataIndex]: record[dataIndex] });
376
- }; // const checkCellRef = useRef(null)
377
- // const focusCapturedRef = useRef(false);
378
- // const curValue = useMemo(() => {
379
- // return record?.dataIndex
380
- // }, [record])
381
- // const curValueIsValid = isValidValue(curValue);
382
- // 校验保存
407
+ }; // 校验保存
383
408
 
384
409
 
385
410
  var save = function save(row) {
@@ -462,15 +487,15 @@ var EditableCell = function EditableCell(props) {
462
487
  /** 快捷刷子,把当前的所有列的值,刷成当前的选中的列 */
463
488
 
464
489
 
465
- var copyKey = function copyKey(e) {
490
+ var copyKey = function copyKey(e, type) {
466
491
  e === null || e === void 0 ? void 0 : e.stopPropagation();
467
492
  var dataIndex = col.dataIndex;
468
- handleCopy === null || handleCopy === void 0 ? void 0 : handleCopy(dataIndex, record[dataIndex]);
493
+ handleCopy === null || handleCopy === void 0 ? void 0 : handleCopy(dataIndex, record[dataIndex], type, props.rowIndex);
469
494
  };
470
495
 
471
496
  var Control = function Control(con) {
472
497
  var resultComponentProps = (0, _lodash.isFunction)(componentProps) ? componentProps === null || componentProps === void 0 ? void 0 : componentProps(record, col) : componentProps;
473
- var clearAttrComponentProps = (0, _lodash.omit)(resultComponentProps, ['optionOnly', 'isOnlyValue']);
498
+ var clearAttrComponentProps = (0, _lodash.omit)(resultComponentProps, ['optionOnly', 'isOnlyValue', 'quickcopy']);
474
499
 
475
500
  switch (con) {
476
501
  case 'input':
@@ -491,12 +516,6 @@ var EditableCell = function EditableCell(props) {
491
516
  noStyle: true
492
517
  }, /*#__PURE__*/_react.default.cloneElement(resultComponentProps.addonAfter, {
493
518
  onChange: handleFormItemChange
494
- })) : null,
495
- suffix: resultComponentProps.quickcopy ? /*#__PURE__*/_react.default.createElement("span", {
496
- className: 'lm_table_quickcopy'
497
- }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
498
- onClick: copyKey,
499
- type: 'lmweb-icon_m_brush'
500
519
  })) : null
501
520
  }));
502
521
 
@@ -579,7 +598,7 @@ var EditableCell = function EditableCell(props) {
579
598
 
580
599
  case 'switch':
581
600
  return /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Switch, Object.assign({
582
- size: 'small'
601
+ size: "small"
583
602
  }, clearAttrComponentProps, {
584
603
  onChange: handleFormItemChange
585
604
  }));
@@ -668,8 +687,7 @@ var EditableCell = function EditableCell(props) {
668
687
  }
669
688
 
670
689
  return childNode;
671
- }, [col, isEdit, editing, getLength]); // const [childNode, setChildNode] = useState(getMemoChildNode);
672
- // 出现死循环找我
690
+ }, [col, isEdit, editing, getLength]); // 出现死循环找我
673
691
 
674
692
  (0, _react.useEffect)(function () {
675
693
  var editable = col.editable,
@@ -677,22 +695,55 @@ var EditableCell = function EditableCell(props) {
677
695
 
678
696
  if (isEdit && editable) {
679
697
  form.setFieldsValue((0, _defineProperty2.default)({}, dataIndex, editable === 'date' ? (0, _moment.default)(record[dataIndex]) : record[dataIndex]));
680
- } // if (
681
- // (isEdit && editable && record[dataIndex]) ||
682
- // (isHoverEdit && editable && record[dataIndex])
683
- // ) {
684
- // form.setFieldsValue({
685
- // [dataIndex]: editable === 'date' ? moment(record[dataIndex]) : record[dataIndex],
686
- // })
687
- // }
688
-
698
+ }
689
699
  }, [record]);
700
+
701
+ var handleTdHover = function handleTdHover() {
702
+ setHoverStatus(true);
703
+ };
704
+
705
+ var handleTdMouseOut = function handleTdMouseOut() {
706
+ setHoverStatus(false);
707
+ };
708
+
690
709
  return /*#__PURE__*/_react.default.createElement("td", Object.assign({}, (0, _lodash.omit)(clearProps, ['dataIndex']), {
691
710
  className: (0, _classnames.default)(clearProps === null || clearProps === void 0 ? void 0 : clearProps.className, 'lm_custom_cell_td'),
711
+ onMouseEnter: componentProps.quickcopy ? handleTdHover : undefined,
712
+ onMouseLeave: componentProps.quickcopy ? handleTdMouseOut : undefined,
692
713
  key: "r".concat(rowIndex, "_c").concat(colIndex)
693
- }), getMemoChildNode);
714
+ }), hoverStatus && props.rowIndex > 0 && /*#__PURE__*/_react.default.createElement("span", {
715
+ className: 'quick_copy_warp quick_copy_up',
716
+ onClick: function onClick(e) {
717
+ return copyKey(e, 'up');
718
+ }
719
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
720
+ type: 'lmweb-icon_up'
721
+ })), getMemoChildNode, hoverStatus && props.rowIndex < props.getLength - 1 && /*#__PURE__*/_react.default.createElement("span", {
722
+ className: 'quick_copy_warp quick_copy_down',
723
+ onClick: function onClick(e) {
724
+ return copyKey(e, 'down');
725
+ }
726
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
727
+ type: 'lmweb-icon_down'
728
+ })));
694
729
  };
730
+ /** true 不刷新, false 刷新 */
731
+
732
+
733
+ var MemoEditableCell = /*#__PURE__*/(0, _react.memo)(EditableCell, function (prev, next) {
734
+ var pickProps = ['record', 'colIndex'];
735
+ var p = (0, _lodash.pick)(prev, pickProps);
736
+ var n = (0, _lodash.pick)(next, pickProps); // console.log(prev, next, '22', checkMemoShouldUploadSpecialFun(prev, next), isEqual(p, n))
737
+ // console.log(prev, next, '-sss')
738
+
739
+ /** TODO: 在record中带有children,子列表数据修改之后,会导致父级的record对比不一样 */
695
740
 
741
+ if (!(0, _util.checkMemoShouldUploadSpecialFun)(prev, next)) {
742
+ return false;
743
+ }
744
+
745
+ return (0, _lodash.isEqual)(p, n);
746
+ });
696
747
  var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
697
748
  var defaultData = props.value,
698
749
  columns = props.columns,
@@ -710,6 +761,7 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
710
761
  _props$quickOpetateCl = props.quickOpetateClearAll,
711
762
  quickOpetateClearAll = _props$quickOpetateCl === void 0 ? true : _props$quickOpetateCl,
712
763
  rowSelection = props.rowSelection,
764
+ virtual = props.virtual,
713
765
  sortOpen = props.sortOpen,
714
766
  colSortOpen = props.colSortOpen,
715
767
  filterChange = props.filterChange,
@@ -718,7 +770,8 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
718
770
  recordCreatorProps = props.recordCreatorProps,
719
771
  _props$shouldUpdate = props.shouldUpdate,
720
772
  shouldUpdate = _props$shouldUpdate === void 0 ? false : _props$shouldUpdate,
721
- 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([]);
773
+ resetProps = __rest(props // const [dataSource, setDataSource] = useState([]);
774
+ , ["value", "columns", "isEdit", "isAdd", "onChange", "rowKey", "rowHoverEdit", "isUseForm", "isHoverEdit", "useQuickOpetate", "quickOpetateClearAll", "rowSelection", "virtual", "sortOpen", "colSortOpen", "filterChange", "size", "recordCreatorProps", "shouldUpdate"]); // const [dataSource, setDataSource] = useState([]);
722
775
 
723
776
 
724
777
  var _useControllableValue = (0, _ahooks.useControllableValue)({
@@ -730,20 +783,15 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
730
783
  setDataSource = _useControllableValue2[1]; // const [count, setCount] = useState(0);
731
784
 
732
785
 
733
- var _useState5 = (0, _react.useState)({}),
734
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
735
- _valid = _useState6[0],
736
- setValid = _useState6[1];
737
-
738
- var _useState7 = (0, _react.useState)([]),
786
+ var _useState7 = (0, _react.useState)({}),
739
787
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
740
- localRowSelectList = _useState8[0],
741
- setLocalRowSelectList = _useState8[1];
788
+ _valid = _useState8[0],
789
+ setValid = _useState8[1];
742
790
 
743
791
  var _useState9 = (0, _react.useState)([]),
744
792
  _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
745
- sortEditTable = _useState10[0],
746
- setCallBackFalg = _useState10[1];
793
+ localRowSelectList = _useState10[0],
794
+ setLocalRowSelectList = _useState10[1];
747
795
  /** 当前展开的列 */
748
796
 
749
797
 
@@ -752,20 +800,10 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
752
800
  expandedRowKeys = _useState12[0],
753
801
  setExpandedRowKeys = _useState12[1];
754
802
 
755
- var dataSourceRef = (0, _react.useRef)([]);
756
- var sortDataSorceRef = (0, _react.useRef)([]);
757
- var deepDataSourceRef = (0, _react.useRef)([]);
758
-
759
- var onSortEnd = function onSortEnd(active, over) {
760
- var cloneArr = (0, _toConsumableArray2.default)(dataSourceRef.current);
761
- var oldIndex = cloneArr.findIndex(function (v) {
762
- return v[_rowKey] === active;
763
- });
764
- var newIndex = cloneArr.findIndex(function (v) {
765
- return v[_rowKey] === over;
766
- });
767
- setDataSource((0, _sortable.arrayMove)(cloneArr, oldIndex, newIndex));
768
- };
803
+ var dataSourceRef = (0, _react.useRef)(dataSource);
804
+ var deepDataSourceRef = (0, _react.useRef)((0, _util.deepDataSourcePreKeys)(dataSource, _rowKey));
805
+ dataSourceRef.current = dataSource;
806
+ deepDataSourceRef.current = (0, _util.deepDataSourcePreKeys)(dataSource, _rowKey);
769
807
 
770
808
  var onColSortEnd = function onColSortEnd(active, over) {
771
809
  var _a;
@@ -803,29 +841,9 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
803
841
  });
804
842
  setDataSource(res); // onChange?.(res)
805
843
  };
806
-
807
- (0, _react.useEffect)(function () {
808
- var _a;
809
-
810
- dataSourceRef.current = dataSource;
811
- deepDataSourceRef.current = (0, _util.deepDataSourcePreKeys)(dataSource, _rowKey);
812
-
813
- if (sortOpen) {
814
- var dataSourceKeys = dataSource === null || dataSource === void 0 ? void 0 : dataSource.map(function (item) {
815
- return item[_rowKey];
816
- }).join(',');
817
- var setCallBackFalgKeys = ((_a = sortDataSorceRef.current) === null || _a === void 0 ? void 0 : _a.map(function (item) {
818
- return item[_rowKey];
819
- }).join(',')) || '';
820
-
821
- if (dataSourceKeys !== setCallBackFalgKeys) {
822
- setCallBackFalg(dataSource);
823
- sortDataSorceRef.current = dataSource;
824
- }
825
- }
826
- }, [dataSource]);
827
844
  /** 本地缓存一个选择数据 */
828
845
 
846
+
829
847
  (0, _react.useEffect)(function () {
830
848
  if (rowSelection) {
831
849
  var selectedRowKeys = rowSelection.selectedRowKeys;
@@ -976,17 +994,31 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
976
994
  /** 快捷添加 */
977
995
 
978
996
 
979
- var handleTableRowAdd = function handleTableRowAdd(record) {
997
+ var handleTableRowAdd = function handleTableRowAdd(record, isAppendInChindren) {
980
998
  var _a, _b;
981
999
 
982
1000
  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;
983
1001
  var res = (0, _immer.produce)(dataSourceRef.current, function (draft) {
1002
+ var _a, _b, _c, _d;
1003
+
984
1004
  if (preKeys.length > 1) {
985
1005
  var deeps = function deeps(children) {
986
1006
  children === null || children === void 0 ? void 0 : children.forEach(function (item, index) {
1007
+ var _a;
1008
+
987
1009
  if (preKeys === null || preKeys === void 0 ? void 0 : preKeys.includes(item[_rowKey])) {
988
1010
  if (item[_rowKey] === record[_rowKey]) {
989
- children.splice(index + 1, 0, (0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now())));
1011
+ if (isAppendInChindren) {
1012
+ if (item === null || item === void 0 ? void 0 : item.children) {
1013
+ (_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())));
1014
+ } else {
1015
+ item.children = [(0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now()))];
1016
+ }
1017
+
1018
+ !expandedRowKeys.includes(item[_rowKey]) && setExpandedRowKeys([].concat((0, _toConsumableArray2.default)(expandedRowKeys), [item[_rowKey]]));
1019
+ } else {
1020
+ children.splice(index + 1, 0, (0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now())));
1021
+ }
990
1022
  } else if (item.children) {
991
1023
  deeps(item.children);
992
1024
  }
@@ -1001,17 +1033,29 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1001
1033
  });
1002
1034
 
1003
1035
  if (index !== -1) {
1004
- draft.splice(index + 1, 0, (0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now())));
1036
+ if (isAppendInChindren) {
1037
+ if ((_a = draft[index].children) === null || _a === void 0 ? void 0 : _a.length) {
1038
+ (_b = draft[index].children) === null || _b === void 0 ? void 0 : _b.push((0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now())));
1039
+ } else {
1040
+ draft[index].children = [(0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now()))];
1041
+ }
1042
+
1043
+ !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]]));
1044
+ } else {
1045
+ draft.splice(index + 1, 0, (0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now())));
1046
+ }
1005
1047
  }
1006
1048
  }
1007
1049
  });
1008
1050
  setDataSource(res);
1009
1051
  };
1010
1052
 
1011
- var handleCopy = function handleCopy(key, value) {
1053
+ var handleCopy = function handleCopy(key, value, type, rowIndex) {
1012
1054
  var res = (0, _immer.produce)(dataSourceRef.current, function (draft) {
1013
- draft === null || draft === void 0 ? void 0 : draft.forEach(function (item) {
1014
- return item[key] = value;
1055
+ draft === null || draft === void 0 ? void 0 : draft.forEach(function (item, index) {
1056
+ if (type === 'up' && index < rowIndex || type === 'down' && index > rowIndex) {
1057
+ item[key] = value;
1058
+ }
1015
1059
  });
1016
1060
  });
1017
1061
  setDataSource(res);
@@ -1038,9 +1082,9 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1038
1082
 
1039
1083
  var DisableOptions = (0, _react.useMemo)(function () {
1040
1084
  var newColumns = columns === null || columns === void 0 ? void 0 : columns.map(function (item) {
1041
- var _ref3 = item.componentProps || {},
1042
- optionOnly = _ref3.optionOnly,
1043
- options = _ref3.options;
1085
+ var _ref5 = item.componentProps || {},
1086
+ optionOnly = _ref5.optionOnly,
1087
+ options = _ref5.options;
1044
1088
 
1045
1089
  if (optionOnly && options) {
1046
1090
  var dataIndex = item.dataIndex;
@@ -1124,19 +1168,6 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1124
1168
  }
1125
1169
 
1126
1170
  var newCol = Object.assign(Object.assign({}, col), {
1127
- shouldCellUpdate: function shouldCellUpdate(record, prevRecord) {
1128
- var _a;
1129
-
1130
- var dataIndex = col.dataIndex,
1131
- editable = col.editable,
1132
- relevanceCols = col.relevanceCols;
1133
-
1134
- 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) {
1135
- return true;
1136
- }
1137
-
1138
- return record[dataIndex] !== prevRecord[dataIndex];
1139
- },
1140
1171
  onCell: function onCell(record, rowIndex) {
1141
1172
  return {
1142
1173
  getLength: dataSource.length,
@@ -1176,20 +1207,19 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1176
1207
  return mapColumns(col, index);
1177
1208
  });
1178
1209
  return res;
1179
- }, [columns, isAdd, sortOpen, useQuickOpetate, sortEditTable, dataSource, (0, _toConsumableArray2.default)(memoOptions)]);
1180
- var DraggableContainer = (0, _react.useCallback)(function (_a) {
1181
- var _b;
1210
+ }, [columns, isAdd, sortOpen, useQuickOpetate, dataSource, (0, _toConsumableArray2.default)(memoOptions)]);
1182
1211
 
1183
- var props = __rest(_a, []);
1212
+ var onSortEnd = function onSortEnd(active, over) {
1213
+ var cloneArr = (0, _toConsumableArray2.default)(dataSourceRef.current);
1214
+ var oldIndex = cloneArr.findIndex(function (v) {
1215
+ return v[_rowKey] === active;
1216
+ });
1217
+ var newIndex = cloneArr.findIndex(function (v) {
1218
+ return v[_rowKey] === over;
1219
+ });
1220
+ setDataSource((0, _sortable.arrayMove)(cloneArr, oldIndex, newIndex));
1221
+ };
1184
1222
 
1185
- return /*#__PURE__*/_react.default.createElement(_DndContainer.default, {
1186
- move: onSortEnd
1187
- }, /*#__PURE__*/_react.default.createElement(_sortableBox.default, {
1188
- items: (_b = dataSourceRef.current) === null || _b === void 0 ? void 0 : _b.map(function (item) {
1189
- return item[_rowKey];
1190
- })
1191
- }, /*#__PURE__*/_react.default.createElement("tbody", Object.assign({}, props))));
1192
- }, [sortEditTable]);
1193
1223
  var colDraggableContainer = (0, _react.useCallback)(function (_a) {
1194
1224
  var _b;
1195
1225
 
@@ -1207,34 +1237,6 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1207
1237
  }, child);
1208
1238
  }));
1209
1239
  }, [columns]);
1210
- var config = (0, _react.useMemo)(function () {
1211
- var component = {
1212
- body: Object.assign({
1213
- row: sortOpen ? EditableSortRow : EditableRow,
1214
- cell: EditableCell
1215
- }, sortOpen ? {
1216
- wrapper: DraggableContainer
1217
- } : {})
1218
- };
1219
-
1220
- if (colSortOpen) {
1221
- component['header'] = {
1222
- row: colDraggableContainer
1223
- };
1224
- }
1225
-
1226
- return Object.assign({
1227
- pagination: false,
1228
- tableLayout: 'fixed',
1229
- scroll: {
1230
- x: '100%'
1231
- },
1232
- rowKey: function rowKey(record) {
1233
- return record[_rowKey] || record.index || Math.random();
1234
- },
1235
- components: component
1236
- }, resetProps);
1237
- }, [resultColumns, dataSource, sortOpen, colSortOpen, size]);
1238
1240
  (0, _react.useImperativeHandle)(ref, function () {
1239
1241
  return {
1240
1242
  setRow: handleSave,
@@ -1246,6 +1248,46 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1246
1248
  var isShowAddAction = (0, _react.useMemo)(function () {
1247
1249
  return isEdit && isAdd || isHoverEdit && isAdd;
1248
1250
  }, [isEdit, isAdd, isHoverEdit]);
1251
+ var config = (0, _react.useRef)(Object.assign({
1252
+ pagination: false,
1253
+ tableLayout: 'fixed',
1254
+ scroll: {
1255
+ x: '100%'
1256
+ },
1257
+ rowKey: function rowKey(record) {
1258
+ return record[_rowKey] || record.index || Math.random();
1259
+ },
1260
+ components: {
1261
+ table: virtual ? _virtual.VirtualTable : null,
1262
+ body: Object.assign({
1263
+ row: function row(rowProps) {
1264
+ return sortOpen ? EditableSortRow(Object.assign(Object.assign({}, rowProps), {
1265
+ virtual: virtual
1266
+ })) : EditableRow(Object.assign(Object.assign({}, rowProps), {
1267
+ virtual: virtual
1268
+ }));
1269
+ },
1270
+ cell: MemoEditableCell
1271
+ }, sortOpen ? {
1272
+ wrapper: function wrapper(wrapperProps) {
1273
+ var _a;
1274
+
1275
+ return (0, _components.DraggableContainer)(Object.assign(Object.assign({}, wrapperProps), {
1276
+ virtual: virtual,
1277
+ keys: (_a = dataSourceRef.current) === null || _a === void 0 ? void 0 : _a.map(function (item) {
1278
+ return item[_rowKey];
1279
+ }),
1280
+ onSortEnd: onSortEnd
1281
+ }));
1282
+ }
1283
+ } : virtual ? {
1284
+ wrapper: _virtual.VirtualWrapper
1285
+ } : {}),
1286
+ header: {
1287
+ row: colSortOpen ? colDraggableContainer : null
1288
+ }
1289
+ }
1290
+ }, resetProps));
1249
1291
 
1250
1292
  if (colSortOpen) {
1251
1293
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -1256,7 +1298,7 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1256
1298
  items: columns.reduce(function (acc, item) {
1257
1299
  return [].concat((0, _toConsumableArray2.default)(acc), [item.dataIndex]);
1258
1300
  }, [])
1259
- }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Table, Object.assign({}, config, {
1301
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Table, Object.assign({}, config.current, {
1260
1302
  size: size || 'small',
1261
1303
  columns: resultColumns,
1262
1304
  rowClassName: "editable-row",
@@ -1290,7 +1332,7 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1290
1332
 
1291
1333
  return /*#__PURE__*/_react.default.createElement("div", {
1292
1334
  className: "lm_editTable_warpper"
1293
- }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Table, Object.assign({}, config, {
1335
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Table, Object.assign({}, config.current, {
1294
1336
  size: size || 'small',
1295
1337
  columns: resultColumns,
1296
1338
  rowClassName: "editable-row",
@@ -0,0 +1,7 @@
1
+ declare const DraggableContainer: ({ keys, onSortEnd, virtual, ...props }: {
2
+ [x: string]: any;
3
+ keys: any;
4
+ onSortEnd: any;
5
+ virtual: any;
6
+ }) => JSX.Element;
7
+ export default DraggableContainer;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _DndContainer = _interopRequireDefault(require("../DndContainer"));
13
+
14
+ var _sortableBox = _interopRequireDefault(require("../sortableBox"));
15
+
16
+ var _virtual = require("../virtual");
17
+
18
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
19
+ var t = {};
20
+
21
+ for (var p in s) {
22
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
23
+ }
24
+
25
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
26
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
27
+ }
28
+ return t;
29
+ };
30
+
31
+ var DraggableContainer = function DraggableContainer(_a) {
32
+ var keys = _a.keys,
33
+ onSortEnd = _a.onSortEnd,
34
+ virtual = _a.virtual,
35
+ props = __rest(_a, ["keys", "onSortEnd", "virtual"]);
36
+
37
+ return /*#__PURE__*/_react.default.createElement(_DndContainer.default, {
38
+ move: onSortEnd
39
+ }, /*#__PURE__*/_react.default.createElement(_sortableBox.default, {
40
+ items: keys
41
+ }, virtual ? /*#__PURE__*/_react.default.createElement(_virtual.VirtualWrapper, Object.assign({}, props)) : /*#__PURE__*/_react.default.createElement("tbody", Object.assign({}, props))));
42
+ };
43
+
44
+ var _default = DraggableContainer;
45
+ exports.default = _default;
@@ -0,0 +1,11 @@
1
+ import DraggableContainer from './DraggableContainer';
2
+ export { DraggableContainer };
3
+ declare const _default: {
4
+ DraggableContainer: ({ keys, onSortEnd, virtual, ...props }: {
5
+ [x: string]: any;
6
+ keys: any;
7
+ onSortEnd: any;
8
+ virtual: any;
9
+ }) => JSX.Element;
10
+ };
11
+ export default _default;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "DraggableContainer", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _DraggableContainer.default;
12
+ }
13
+ });
14
+ exports.default = void 0;
15
+
16
+ var _DraggableContainer = _interopRequireDefault(require("./DraggableContainer"));
17
+
18
+ var _default = {
19
+ DraggableContainer: _DraggableContainer.default
20
+ };
21
+ exports.default = _default;
@@ -1,2 +1,3 @@
1
- declare const SortableItem: (props: any) => JSX.Element;
2
- export default SortableItem;
1
+ import React from 'react';
2
+ declare const _default: React.MemoExoticComponent<(props: any) => JSX.Element>;
3
+ export default _default;