linkmore-design 1.0.49 → 1.0.50

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 (98) hide show
  1. package/dist/CardTable/fns/index.d.ts +9 -0
  2. package/dist/CardTable/hooks/usePagination.d.ts +19 -0
  3. package/dist/CardTable/toolbar/TablePagination.d.ts +4 -0
  4. package/dist/CardTable/toolbar/ToolBarBottom.d.ts +3 -0
  5. package/dist/List/demos/basic.d.ts +2 -0
  6. package/dist/List/index.d.ts +2 -0
  7. package/dist/List/style/index.d.ts +1 -0
  8. package/dist/LmEditTable/DndContainer.d.ts +5 -0
  9. package/dist/LmEditTable/DragHandle.d.ts +4 -0
  10. package/dist/LmEditTable/EditTable.d.ts +31 -0
  11. package/dist/LmEditTable/demos/Editbasic.d.ts +2 -0
  12. package/dist/LmEditTable/demos/basic.d.ts +2 -0
  13. package/dist/LmEditTable/demos/formEditTable.d.ts +2 -0
  14. package/dist/LmEditTable/demos/hoverEdit.d.ts +2 -0
  15. package/dist/LmEditTable/index.d.ts +2 -0
  16. package/dist/LmEditTable/sortableBox.d.ts +5 -0
  17. package/dist/LmEditTable/sortableItem.d.ts +2 -0
  18. package/dist/LmEditTable/style/index.d.ts +1 -0
  19. package/dist/index.d.ts +2 -0
  20. package/dist/index.umd.js +993 -55
  21. package/dist/index.umd.min.js +6 -6
  22. package/es/CardTable/card/PictureTextColumn.js +11 -6
  23. package/es/CardTable/card/PictureTextRow.js +11 -6
  24. package/es/CardTable/fns/index.js +106 -0
  25. package/es/CardTable/hooks/usePagination.js +128 -0
  26. package/es/CardTable/index.js +3 -0
  27. package/es/CardTable/style/style.css +13 -1
  28. package/es/CardTable/table/TableRoot.js +43 -64
  29. package/es/CardTable/table/TableWrapper.js +4 -0
  30. package/es/CardTable/toolbar/TablePagination.js +62 -0
  31. package/es/CardTable/toolbar/ToolBarBottom.js +47 -0
  32. package/es/CustomTableOption/columnsSort.js +5 -5
  33. package/es/CustomTableOption/filterSort.js +3 -3
  34. package/es/CustomTableOption/index.js +1 -2
  35. package/es/Input/style/style.css +21 -1
  36. package/es/List/index.d.ts +2 -0
  37. package/es/List/index.js +3 -0
  38. package/es/List/style/index.css +505 -0
  39. package/es/List/style/index.d.ts +1 -0
  40. package/es/List/style/index.js +1 -0
  41. package/es/LmEditTable/DndContainer.d.ts +5 -0
  42. package/es/LmEditTable/DndContainer.js +35 -0
  43. package/es/LmEditTable/DragHandle.d.ts +4 -0
  44. package/es/LmEditTable/DragHandle.js +22 -0
  45. package/es/LmEditTable/EditTable.d.ts +31 -0
  46. package/es/LmEditTable/EditTable.js +892 -0
  47. package/es/LmEditTable/index.d.ts +2 -0
  48. package/es/LmEditTable/index.js +2 -0
  49. package/es/LmEditTable/sortableBox.d.ts +5 -0
  50. package/es/LmEditTable/sortableBox.js +13 -0
  51. package/es/LmEditTable/sortableItem.d.ts +2 -0
  52. package/es/LmEditTable/sortableItem.js +43 -0
  53. package/es/LmEditTable/style/index.d.ts +1 -0
  54. package/es/LmEditTable/style/index.js +1 -0
  55. package/es/LmEditTable/style/style.css +574 -0
  56. package/es/LmTable/Table.js +15 -3
  57. package/es/Select/style/index.css +3 -0
  58. package/es/index.d.ts +2 -0
  59. package/es/index.js +3 -1
  60. package/lib/CardTable/card/PictureTextColumn.js +11 -6
  61. package/lib/CardTable/card/PictureTextRow.js +11 -6
  62. package/lib/CardTable/fns/index.js +106 -0
  63. package/lib/CardTable/hooks/usePagination.js +128 -0
  64. package/lib/CardTable/index.js +3 -0
  65. package/lib/CardTable/style/style.css +13 -1
  66. package/lib/CardTable/table/TableRoot.js +43 -64
  67. package/lib/CardTable/table/TableWrapper.js +4 -0
  68. package/lib/CardTable/toolbar/TablePagination.js +62 -0
  69. package/lib/CardTable/toolbar/ToolBarBottom.js +47 -0
  70. package/lib/CustomTableOption/columnsSort.js +5 -5
  71. package/lib/CustomTableOption/filterSort.js +3 -3
  72. package/lib/CustomTableOption/index.js +1 -2
  73. package/lib/Input/style/style.css +21 -1
  74. package/lib/List/index.d.ts +2 -0
  75. package/lib/List/index.js +15 -0
  76. package/lib/List/style/index.css +505 -0
  77. package/lib/List/style/index.d.ts +1 -0
  78. package/lib/List/style/index.js +3 -0
  79. package/lib/LmEditTable/DndContainer.d.ts +5 -0
  80. package/lib/LmEditTable/DndContainer.js +49 -0
  81. package/lib/LmEditTable/DragHandle.d.ts +4 -0
  82. package/lib/LmEditTable/DragHandle.js +37 -0
  83. package/lib/LmEditTable/EditTable.d.ts +31 -0
  84. package/lib/LmEditTable/EditTable.js +925 -0
  85. package/lib/LmEditTable/index.d.ts +2 -0
  86. package/lib/LmEditTable/index.js +13 -0
  87. package/lib/LmEditTable/sortableBox.d.ts +5 -0
  88. package/lib/LmEditTable/sortableBox.js +24 -0
  89. package/lib/LmEditTable/sortableItem.d.ts +2 -0
  90. package/lib/LmEditTable/sortableItem.js +55 -0
  91. package/lib/LmEditTable/style/index.d.ts +1 -0
  92. package/lib/LmEditTable/style/index.js +3 -0
  93. package/lib/LmEditTable/style/style.css +574 -0
  94. package/lib/LmTable/Table.js +15 -3
  95. package/lib/Select/style/index.css +3 -0
  96. package/lib/index.d.ts +2 -0
  97. package/lib/index.js +17 -1
  98. package/package.json +2 -1
@@ -0,0 +1,925 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
14
+ require("antd/es/date-picker/style");
15
+
16
+ var _datePicker = _interopRequireDefault(require("antd/es/date-picker"));
17
+
18
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
+
20
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
21
+
22
+ require("antd/es/form/style");
23
+
24
+ var _form = _interopRequireDefault(require("antd/es/form"));
25
+
26
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
27
+
28
+ var _icons = require("@ant-design/icons");
29
+
30
+ var _dayjs = _interopRequireDefault(require("dayjs"));
31
+
32
+ var _sortable = require("@dnd-kit/sortable");
33
+
34
+ var _linkmoreDesign = require("linkmore-design");
35
+
36
+ var _lodash = require("lodash");
37
+
38
+ var _react = _interopRequireWildcard(require("react"));
39
+
40
+ var _immer = require("immer");
41
+
42
+ var _DndContainer = _interopRequireDefault(require("./DndContainer"));
43
+
44
+ var _sortableBox = _interopRequireDefault(require("./sortableBox"));
45
+
46
+ var _sortableItem = _interopRequireDefault(require("./sortableItem"));
47
+
48
+ var _DragHandle = _interopRequireDefault(require("./DragHandle"));
49
+
50
+ var _UploadOss = _interopRequireDefault(require("../UploadOss"));
51
+
52
+ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
53
+ function adopt(value) {
54
+ return value instanceof P ? value : new P(function (resolve) {
55
+ resolve(value);
56
+ });
57
+ }
58
+
59
+ return new (P || (P = Promise))(function (resolve, reject) {
60
+ function fulfilled(value) {
61
+ try {
62
+ step(generator.next(value));
63
+ } catch (e) {
64
+ reject(e);
65
+ }
66
+ }
67
+
68
+ function rejected(value) {
69
+ try {
70
+ step(generator["throw"](value));
71
+ } catch (e) {
72
+ reject(e);
73
+ }
74
+ }
75
+
76
+ function step(result) {
77
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
78
+ }
79
+
80
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
81
+ });
82
+ };
83
+
84
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
85
+ var t = {};
86
+
87
+ for (var p in s) {
88
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
89
+ }
90
+
91
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
92
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
93
+ }
94
+ return t;
95
+ };
96
+ /* eslint-disable no-unused-vars */
97
+
98
+
99
+ var UploadBtn = _UploadOss.default.UploadBtn;
100
+
101
+ var EditableContext = /*#__PURE__*/_react.default.createContext(null); // 表格行
102
+
103
+
104
+ var EditableRow = function EditableRow(_a) {
105
+ var index = _a.index,
106
+ props = __rest(_a, ["index"]);
107
+
108
+ var _Form$useForm = _form.default.useForm(),
109
+ _Form$useForm2 = (0, _slicedToArray2.default)(_Form$useForm, 1),
110
+ form = _Form$useForm2[0];
111
+
112
+ return /*#__PURE__*/_react.default.createElement(_form.default, {
113
+ form: form,
114
+ component: false
115
+ }, /*#__PURE__*/_react.default.createElement(EditableContext.Provider, {
116
+ value: form
117
+ }, /*#__PURE__*/_react.default.createElement("tr", Object.assign({}, props))));
118
+ };
119
+
120
+ var EditableSortRow = function EditableSortRow(_a) {
121
+ var index = _a.index,
122
+ props = __rest(_a, ["index"]);
123
+
124
+ var _Form$useForm3 = _form.default.useForm(),
125
+ _Form$useForm4 = (0, _slicedToArray2.default)(_Form$useForm3, 1),
126
+ form = _Form$useForm4[0];
127
+
128
+ return /*#__PURE__*/_react.default.createElement(_form.default, {
129
+ form: form,
130
+ component: false
131
+ }, /*#__PURE__*/_react.default.createElement(EditableContext.Provider, {
132
+ value: form
133
+ }, /*#__PURE__*/_react.default.createElement(_sortableItem.default, Object.assign({}, props))));
134
+ };
135
+
136
+ var UploadSingle = function UploadSingle(props) {
137
+ var value = props.value,
138
+ onChange = props.onChange,
139
+ editEnum = props.editEnum;
140
+
141
+ var handleDelete = function handleDelete() {
142
+ onChange === null || onChange === void 0 ? void 0 : onChange();
143
+ };
144
+
145
+ return /*#__PURE__*/_react.default.createElement("div", {
146
+ className: "upload_single"
147
+ }, value ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
148
+ type: "lmweb-link",
149
+ style: {
150
+ fontSize: 14,
151
+ color: '#1890ff'
152
+ }
153
+ }), /*#__PURE__*/_react.default.createElement("a", {
154
+ href: "".concat(value === null || value === void 0 ? void 0 : value.externalUrl, "/").concat(value === null || value === void 0 ? void 0 : value.filePath).concat(value === null || value === void 0 ? void 0 : value.realFileName),
155
+ target: "_blank",
156
+ rel: "noreferrer"
157
+ }, value === null || value === void 0 ? void 0 : value.fileName), /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
158
+ type: "lmweb-delete",
159
+ style: {
160
+ fontSize: 14,
161
+ color: '#1890ff'
162
+ },
163
+ onClick: handleDelete
164
+ })) : /*#__PURE__*/_react.default.createElement(UploadBtn, Object.assign({}, editEnum, {
165
+ value: value,
166
+ onChange: onChange
167
+ })));
168
+ };
169
+
170
+ var InputRange = function InputRange(_a) {
171
+ var _a$value = _a.value,
172
+ value = _a$value === void 0 ? ['', ''] : _a$value,
173
+ onChange = _a.onChange,
174
+ editEnum = __rest(_a, ["value", "onChange"]); // 输入值改变
175
+
176
+
177
+ var handleInput = function handleInput(e, type) {
178
+ var v = e.target.value;
179
+ var nValue = (0, _toConsumableArray2.default)(value);
180
+
181
+ if (type === 'prev') {
182
+ nValue[0] = v;
183
+ }
184
+
185
+ if (type === 'next') {
186
+ nValue[1] = v;
187
+ }
188
+
189
+ onChange(nValue);
190
+ };
191
+
192
+ return /*#__PURE__*/_react.default.createElement("div", {
193
+ className: "lm_editTable_wrapperRange"
194
+ }, /*#__PURE__*/_react.default.createElement("div", {
195
+ className: "inputRange"
196
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Input, Object.assign({
197
+ value: value === null || value === void 0 ? void 0 : value[0],
198
+ placeholder: "\u8BF7\u8F93\u5165",
199
+ onChange: function onChange(e) {
200
+ return handleInput(e, 'prev');
201
+ }
202
+ }, editEnum)), "~", /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Input, Object.assign({
203
+ value: value === null || value === void 0 ? void 0 : value[1],
204
+ placeholder: "\u8BF7\u8F93\u5165",
205
+ onChange: function onChange(e) {
206
+ return handleInput(e, 'next');
207
+ }
208
+ }, editEnum))));
209
+ }; // 操作列
210
+
211
+
212
+ var Opetate = function Opetate(_ref) {
213
+ var record = _ref.record,
214
+ rowKey = _ref.rowKey,
215
+ handleAdd = _ref.handleAdd,
216
+ handleDelete = _ref.handleDelete;
217
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Button, {
218
+ type: "link",
219
+ size: "small",
220
+ icon: /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
221
+ type: "lmweb-minus-circle",
222
+ style: {
223
+ fontSize: 16
224
+ }
225
+ }),
226
+ onClick: function onClick() {
227
+ return handleDelete(record[rowKey]);
228
+ }
229
+ }), /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Button, {
230
+ type: "link",
231
+ size: "small",
232
+ icon: /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
233
+ type: "lmweb-plus-circle",
234
+ style: {
235
+ fontSize: 16
236
+ }
237
+ }),
238
+ onClick: function onClick() {
239
+ return handleAdd(record);
240
+ }
241
+ }));
242
+ }; // const isValidValue = (verifyValue) => {
243
+ // const toStringValue = JSON.stringify(verifyValue);
244
+ // if (verifyValue === undefined || verifyValue === null || verifyValue === '' || toStringValue === '[]' || toStringValue === '{}') {
245
+ // return false;
246
+ // }
247
+ // return true;
248
+ // }
249
+
250
+ /*
251
+ 表格单元格
252
+ editEnum: 下拉框时的数据数组(非数组时是配置设置)
253
+ valueType: 编辑框配置(多选)
254
+ */
255
+
256
+
257
+ var EditableCell = function EditableCell(props) {
258
+ var _props$record = props.record,
259
+ record = _props$record === void 0 ? {} : _props$record,
260
+ rowKey = props.rowKey,
261
+ isEdit = props.isEdit,
262
+ _props$col = props.col,
263
+ col = _props$col === void 0 ? {} : _props$col,
264
+ handleTableRowDelete = props.handleTableRowDelete,
265
+ handleTableRowAdd = props.handleTableRowAdd,
266
+ getLength = props.getLength,
267
+ isHoverEdit = props.isHoverEdit,
268
+ editEnum = props.editEnum,
269
+ valueType = props.valueType,
270
+ children = props.children,
271
+ handleSave = props.handleSave,
272
+ handleAdd = props.handleAdd,
273
+ handleDelete = props.handleDelete,
274
+ itemProps = props.itemProps,
275
+ setValid = props.setValid,
276
+ reWriteOriginSource = props.reWriteOriginSource,
277
+ restProps = __rest(props, ["record", "rowKey", "isEdit", "col", "handleTableRowDelete", "handleTableRowAdd", "getLength", "isHoverEdit", "editEnum", "valueType", "children", "handleSave", "handleAdd", "handleDelete", "itemProps", "setValid", "reWriteOriginSource"]);
278
+ /** 去除移入移出功能,保留最纯粹的功能,优化性能 */
279
+
280
+
281
+ var onMouseEnter = restProps.onMouseEnter,
282
+ onMouseLeave = restProps.onMouseLeave,
283
+ clearProps = __rest(restProps, ["onMouseEnter", "onMouseLeave"]);
284
+
285
+ var _col$componentProps = col.componentProps,
286
+ componentProps = _col$componentProps === void 0 ? {} : _col$componentProps;
287
+ var checkCellRef = (0, _react.useRef)(null); // const focusCapturedRef = useRef(false);
288
+ // const curValue = useMemo(() => {
289
+ // return record?.dataIndex
290
+ // }, [record])
291
+ // const curValueIsValid = isValidValue(curValue);
292
+ // 校验保存
293
+
294
+ var save = function save(row) {
295
+ return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regenerator.default.mark(function _callee() {
296
+ var values;
297
+ return _regenerator.default.wrap(function _callee$(_context) {
298
+ while (1) {
299
+ switch (_context.prev = _context.next) {
300
+ case 0:
301
+ console.log(row, 'rrr', form.getFieldsValue(), record);
302
+ _context.prev = 1;
303
+ _context.t0 = row;
304
+
305
+ if (_context.t0) {
306
+ _context.next = 7;
307
+ break;
308
+ }
309
+
310
+ _context.next = 6;
311
+ return form.getFieldsValue();
312
+
313
+ case 6:
314
+ _context.t0 = _context.sent;
315
+
316
+ case 7:
317
+ values = _context.t0;
318
+ console.log(Object.assign(Object.assign({}, values), (0, _defineProperty2.default)({}, rowKey, record === null || record === void 0 ? void 0 : record[rowKey])), 'vvvv');
319
+ console.time('testForEach');
320
+ handleSave(Object.assign(Object.assign({}, values), (0, _defineProperty2.default)({}, rowKey, record === null || record === void 0 ? void 0 : record[rowKey])));
321
+ console.timeEnd('testForEach');
322
+ _context.next = 14;
323
+ return form.validateFields();
324
+
325
+ case 14:
326
+ _context.next = 18;
327
+ break;
328
+
329
+ case 16:
330
+ _context.prev = 16;
331
+ _context.t1 = _context["catch"](1);
332
+
333
+ case 18:
334
+ case "end":
335
+ return _context.stop();
336
+ }
337
+ }
338
+ }, _callee, null, [[1, 16]]);
339
+ }));
340
+ }; // 触发保存
341
+
342
+
343
+ var handleFormItemChange = function handleFormItemChange(e) {
344
+ save === null || save === void 0 ? void 0 : save();
345
+ };
346
+
347
+ var Control = function Control(con) {
348
+ switch (con) {
349
+ case 'input':
350
+ return /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Input, Object.assign({
351
+ onPressEnter: handleFormItemChange,
352
+ onBlur: handleFormItemChange,
353
+ ref: checkCellRef,
354
+ placeholder: "\u8BF7\u8F93\u5165"
355
+ }, componentProps, {
356
+ addonBefore: componentProps.addonBefore ? /*#__PURE__*/_react.default.createElement(_form.default.Item, {
357
+ name: [col.dataIndex, 'addonBeforeValue'],
358
+ noStyle: true
359
+ }, /*#__PURE__*/_react.default.cloneElement(componentProps.addonBefore, {
360
+ onChange: handleFormItemChange
361
+ })) : null,
362
+ addonAfter: componentProps.addonAfter ? /*#__PURE__*/_react.default.createElement(_form.default.Item, {
363
+ name: [col.dataIndex, 'addonAfterValue'],
364
+ noStyle: true
365
+ }, /*#__PURE__*/_react.default.cloneElement(componentProps.addonAfter, {
366
+ onChange: handleFormItemChange
367
+ })) : null
368
+ }));
369
+
370
+ case 'inputRange':
371
+ return /*#__PURE__*/_react.default.createElement(InputRange, Object.assign({
372
+ onChange: handleFormItemChange,
373
+ ref: checkCellRef
374
+ }, componentProps));
375
+
376
+ case 'number':
377
+ return /*#__PURE__*/_react.default.createElement(_linkmoreDesign.InputNumber, Object.assign({
378
+ onPressEnter: handleFormItemChange,
379
+ onBlur: handleFormItemChange,
380
+ style: {
381
+ width: (editEnum === null || editEnum === void 0 ? void 0 : editEnum.width) || '100%'
382
+ },
383
+ placeholder: "\u8BF7\u8F93\u5165",
384
+ ref: checkCellRef
385
+ }, componentProps));
386
+
387
+ case 'date':
388
+ // @ts-ignore
389
+ return /*#__PURE__*/_react.default.createElement(_datePicker.default, Object.assign({
390
+ onChange: handleFormItemChange,
391
+ ref: checkCellRef
392
+ }, componentProps));
393
+
394
+ case 'select':
395
+ return /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Select, Object.assign({
396
+ showSearch: true,
397
+ allowClear: true,
398
+ placeholder: "\u8BF7\u9009\u62E9",
399
+ ref: checkCellRef,
400
+ filterOption: function filterOption(input, option) {
401
+ var _a, _b;
402
+
403
+ return ((_b = (_a = option.children) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === null || _b === void 0 ? void 0 : _b.indexOf(input.toLowerCase())) >= 0;
404
+ }
405
+ }, componentProps, {
406
+ onChange: handleFormItemChange
407
+ }));
408
+
409
+ case 'multiple':
410
+ return /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Select, Object.assign({
411
+ mode: "multiple",
412
+ showSearch: true,
413
+ allowClear: true,
414
+ placeholder: "\u8BF7\u9009\u62E9",
415
+ ref: checkCellRef,
416
+ filterOption: function filterOption(input, option) {
417
+ var _a;
418
+
419
+ return ((_a = option.children) === null || _a === void 0 ? void 0 : _a.toLowerCase().indexOf(input.toLowerCase())) >= 0;
420
+ },
421
+ onChange: handleFormItemChange,
422
+ onDeselect: handleFormItemChange
423
+ }, componentProps));
424
+
425
+ case 'checkbox':
426
+ return /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Checkbox.Group, Object.assign({
427
+ onChange: handleFormItemChange,
428
+ ref: checkCellRef
429
+ }, componentProps));
430
+
431
+ case 'radio':
432
+ return /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Radio.Group, Object.assign({
433
+ onChange: handleFormItemChange,
434
+ ref: checkCellRef
435
+ }, componentProps), editEnum === null || editEnum === void 0 ? void 0 : editEnum.map(function (v) {
436
+ return /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Radio, {
437
+ key: v.value,
438
+ value: v.value
439
+ }, v.label);
440
+ }));
441
+
442
+ case 'switch':
443
+ return /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Switch, {
444
+ onChange: handleFormItemChange
445
+ });
446
+
447
+ case 'upload':
448
+ return /*#__PURE__*/_react.default.createElement(UploadSingle, {
449
+ editEnum: componentProps,
450
+ ref: checkCellRef,
451
+ onChange: handleFormItemChange
452
+ });
453
+
454
+ case 'operate':
455
+ case 'lm_edit_opetate':
456
+ return /*#__PURE__*/_react.default.createElement(Opetate, Object.assign({
457
+ record: record,
458
+ rowKey: rowKey,
459
+ ref: checkCellRef,
460
+ handleAdd: handleTableRowAdd,
461
+ handleDelete: handleTableRowDelete,
462
+ getLength: getLength
463
+ }, componentProps));
464
+
465
+ case 'render':
466
+ {
467
+ var render = componentProps.render;
468
+ return render === null || render === void 0 ? void 0 : render(Object.assign(Object.assign({}, record), {
469
+ onChange: save
470
+ }));
471
+ }
472
+
473
+ default:
474
+ return /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Input, Object.assign({
475
+ onPressEnter: handleFormItemChange,
476
+ onBlur: handleFormItemChange,
477
+ ref: checkCellRef
478
+ }, componentProps));
479
+ }
480
+ };
481
+
482
+ var getMemoChildNode = (0, _react.useMemo)(function () {
483
+ var editable = col.editable,
484
+ dataIndex = col.dataIndex,
485
+ formProps = col.formProps,
486
+ componentProps = col.componentProps;
487
+ var childNode = children;
488
+
489
+ if (isEdit && editable) {
490
+ childNode = /*#__PURE__*/_react.default.createElement(_form.default.Item, Object.assign({
491
+ style: {
492
+ margin: 0
493
+ }
494
+ }, formProps, {
495
+ name: dataIndex
496
+ }), Control(editable));
497
+
498
+ if (editable === 'input' && ((componentProps === null || componentProps === void 0 ? void 0 : componentProps.addonBefore) || (componentProps === null || componentProps === void 0 ? void 0 : componentProps.addonAfter))) {
499
+ childNode = /*#__PURE__*/_react.default.createElement(_form.default.Item, Object.assign({
500
+ style: {
501
+ margin: 0
502
+ }
503
+ }, formProps, {
504
+ name: [dataIndex, 'value']
505
+ }), Control(editable));
506
+ }
507
+ }
508
+
509
+ return childNode;
510
+ }, [col, isEdit]); // const [childNode, setChildNode] = useState(getMemoChildNode);
511
+
512
+ var form = (0, _react.useContext)(EditableContext); // 出现死循环找我
513
+
514
+ (0, _react.useEffect)(function () {
515
+ var editable = col.editable,
516
+ dataIndex = col.dataIndex;
517
+
518
+ if (isEdit && editable && record[dataIndex] || isHoverEdit && editable && record[dataIndex]) {
519
+ form.setFieldsValue((0, _defineProperty2.default)({}, dataIndex, editable === 'date' ? (0, _dayjs.default)(record[dataIndex]) : record[dataIndex]));
520
+ }
521
+ }, [record]); // const isOpenEdit = (isEdit && focusCapturedRef.current) || (isHoverEdit && focusCapturedRef.current);
522
+ // const classNames = cx({
523
+ // 'lm_base_editTable_cell': true,
524
+ // 'lm_base_editTable_cell_edit': isOpenEdit || (isHoverEdit && !curValueIsValid),
525
+ // });
526
+ // const extensionConfig = {};
527
+ // const mouseEnterCell = () => {
528
+ // focusCapturedRef.current = true;
529
+ // const newChildNode = getMemoChildNode;
530
+ // setChildNode(newChildNode);
531
+ // };
532
+ // const mouseLeaveCell = () => {
533
+ // focusCapturedRef.current = false;
534
+ // const nextValue = form.getFieldValue(dataIndex);
535
+ // const prevValue = get(record, dataIndex);
536
+ // if (!eq(prevValue, nextValue)) {
537
+ // const rowValue = get(record, rowKey);
538
+ // reWriteOriginSource(rowKey, rowValue, dataIndex, nextValue);
539
+ // } else {
540
+ // const newChildNode = getDefaultChildNode(false);
541
+ // setChildNode(newChildNode);
542
+ // }
543
+ // };
544
+ // if (isHoverEdit && record?.editable) {
545
+ // console.log('ssssbbb')
546
+ // set(extensionConfig, 'onMouseEnter', mouseEnterCell);
547
+ // set(extensionConfig, 'onMouseLeave', mouseLeaveCell);
548
+ // }
549
+
550
+ return /*#__PURE__*/_react.default.createElement("td", Object.assign({}, clearProps, {
551
+ key: "".concat(record[rowKey], "_").concat(record.dataIndex)
552
+ }), getMemoChildNode); // return <td {...restProps} className={classNames} {...extensionConfig} key={`${get(record, rowKey)}_${dataIndex}`}>{childNode}</td>
553
+ };
554
+
555
+ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
556
+ var defaultData = props.value,
557
+ columns = props.columns,
558
+ isEdit = props.isEdit,
559
+ _props$isAdd = props.isAdd,
560
+ isAdd = _props$isAdd === void 0 ? false : _props$isAdd,
561
+ onChange = props.onChange,
562
+ _props$rowKey = props.rowKey,
563
+ _rowKey = _props$rowKey === void 0 ? '_ID' : _props$rowKey,
564
+ rowHoverEdit = props.rowHoverEdit,
565
+ _props$isUseForm = props.isUseForm,
566
+ isUseForm = _props$isUseForm === void 0 ? true : _props$isUseForm,
567
+ isHoverEdit = props.isHoverEdit,
568
+ useQuickOpetate = props.useQuickOpetate,
569
+ rowSelection = props.rowSelection,
570
+ sortOpen = props.sortOpen,
571
+ _props$size = props.size,
572
+ size = _props$size === void 0 ? 'small' : _props$size,
573
+ resetProps = __rest(props, ["value", "columns", "isEdit", "isAdd", "onChange", "rowKey", "rowHoverEdit", "isUseForm", "isHoverEdit", "useQuickOpetate", "rowSelection", "sortOpen", "size"]);
574
+
575
+ var _useState = (0, _react.useState)([]),
576
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
577
+ dataSource = _useState2[0],
578
+ setDataSource = _useState2[1]; // const [count, setCount] = useState(0);
579
+
580
+
581
+ var _useState3 = (0, _react.useState)({}),
582
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
583
+ _valid = _useState4[0],
584
+ setValid = _useState4[1];
585
+
586
+ var _useState5 = (0, _react.useState)([]),
587
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
588
+ localRowSelectList = _useState6[0],
589
+ setLocalRowSelectList = _useState6[1];
590
+
591
+ var _useState7 = (0, _react.useState)([]),
592
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
593
+ sortEditTable = _useState8[0],
594
+ setCallBackFalg = _useState8[1];
595
+
596
+ var dataSourceRef = (0, _react.useRef)([]);
597
+ var sortDataSorceRef = (0, _react.useRef)([]);
598
+
599
+ var onSortEnd = function onSortEnd(active, over) {
600
+ var cloneArr = (0, _toConsumableArray2.default)(dataSourceRef.current);
601
+ var oldIndex = cloneArr.findIndex(function (v) {
602
+ return v[_rowKey] === active;
603
+ });
604
+ var newIndex = cloneArr.findIndex(function (v) {
605
+ return v[_rowKey] === over;
606
+ });
607
+ onChange === null || onChange === void 0 ? void 0 : onChange((0, _sortable.arrayMove)(cloneArr, oldIndex, newIndex));
608
+ }; // 删除
609
+
610
+
611
+ var handleDelete = function handleDelete(key) {
612
+ var nValue = dataSource.filter(function (item) {
613
+ return item[_rowKey] !== key;
614
+ });
615
+ onChange === null || onChange === void 0 ? void 0 : onChange(nValue);
616
+ };
617
+ /** 点击添加按钮添加 */
618
+
619
+
620
+ var handleAdd = function handleAdd(row) {
621
+ var res = (0, _immer.produce)(dataSourceRef.current, function (draft) {
622
+ draft.push((0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now())));
623
+ });
624
+ setDataSource(res);
625
+ onChange === null || onChange === void 0 ? void 0 : onChange(res);
626
+ };
627
+
628
+ (0, _react.useEffect)(function () {
629
+ var _a;
630
+
631
+ dataSourceRef.current = dataSource;
632
+
633
+ if (sortOpen) {
634
+ var dataSourceKeys = dataSource.map(function (item) {
635
+ return item[_rowKey];
636
+ }).join(',');
637
+ var setCallBackFalgKeys = ((_a = sortDataSorceRef.current) === null || _a === void 0 ? void 0 : _a.map(function (item) {
638
+ return item[_rowKey];
639
+ }).join(',')) || '';
640
+
641
+ if (dataSourceKeys !== setCallBackFalgKeys) {
642
+ setCallBackFalg(dataSource);
643
+ sortDataSorceRef.current = dataSource;
644
+ }
645
+ }
646
+ }, [dataSource]);
647
+ /** 本地缓存一个选择数据 */
648
+
649
+ (0, _react.useEffect)(function () {
650
+ if (rowSelection) {
651
+ var selectedRowKeys = rowSelection.selectedRowKeys;
652
+
653
+ if (selectedRowKeys) {
654
+ setLocalRowSelectList(localRowSelectList || []);
655
+ }
656
+ }
657
+ }, [rowSelection]);
658
+
659
+ var editTableRowChange = function editTableRowChange(selectRows) {
660
+ var _a;
661
+
662
+ setLocalRowSelectList(selectRows);
663
+ (_a = rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.onChange) === null || _a === void 0 ? void 0 : _a.call(rowSelection, selectRows);
664
+ };
665
+
666
+ var handleSave = function handleSave(row) {
667
+ var res = (0, _immer.produce)(dataSourceRef.current, function (draft) {
668
+ var index = draft.findIndex(function (item) {
669
+ return row[_rowKey] === item[_rowKey];
670
+ });
671
+
672
+ if (index !== -1) {
673
+ draft[index] = row;
674
+ }
675
+ });
676
+ console.time('b');
677
+
678
+ if (onChange) {
679
+ onChange === null || onChange === void 0 ? void 0 : onChange(res);
680
+ } else {
681
+ setDataSource(res);
682
+ }
683
+
684
+ console.timeEnd('b');
685
+ };
686
+
687
+ var reWriteOriginSource = function reWriteOriginSource(rowKey, rowValue, dataIndex, nextValue) {
688
+ setDataSource(function (prevDataSource) {
689
+ return prevDataSource.map(function (item) {
690
+ if ((0, _lodash.get)(item, rowKey) === rowValue) {
691
+ (0, _lodash.set)(item, dataIndex, nextValue);
692
+ }
693
+
694
+ return item;
695
+ });
696
+ });
697
+ }; // 校验保存
698
+ // const save = async (row) => {
699
+ // try {
700
+ // const values = row || (await form.getFieldsValue())
701
+ // handleSave({ ...record, ...values })
702
+ // await form.validateFields()
703
+ // // 清空异常校验
704
+ // setValid((old) => {
705
+ // const obj = { ...old }
706
+ // delete obj[record[rowKey]]
707
+ // return obj
708
+ // })
709
+ // } catch (errInfo) {
710
+ // // 加入异常校验
711
+ // setValid((old) => ({ ...old, [record[rowKey]]: errInfo.errorFields }))
712
+ // }
713
+ // }
714
+
715
+
716
+ var handleTableRowDelete = function handleTableRowDelete(key) {
717
+ var res = (0, _immer.produce)(dataSourceRef.current, function (draft) {
718
+ var index = draft.findIndex(function (item) {
719
+ return key === item[_rowKey];
720
+ });
721
+
722
+ if (index !== -1) {
723
+ draft.splice(index, 1);
724
+ }
725
+ });
726
+
727
+ if (onChange) {
728
+ onChange === null || onChange === void 0 ? void 0 : onChange(res);
729
+ } else {
730
+ setDataSource(res);
731
+ } // setDataSource(res)
732
+ // onChange?.(res)
733
+
734
+ };
735
+
736
+ var handleTableRowAdd = function handleTableRowAdd(record) {
737
+ var res = (0, _immer.produce)(dataSourceRef.current, function (draft) {
738
+ var index = draft.findIndex(function (item) {
739
+ return record[_rowKey] === item[_rowKey];
740
+ });
741
+
742
+ if (index !== -1) {
743
+ draft.splice(index + 1, 0, (0, _defineProperty2.default)({}, _rowKey, "".concat(Date.now())));
744
+ }
745
+ });
746
+
747
+ if (onChange) {
748
+ onChange === null || onChange === void 0 ? void 0 : onChange(res);
749
+ } else {
750
+ setDataSource(res);
751
+ }
752
+ };
753
+
754
+ var resultColumns = (0, _react.useMemo)(function () {
755
+ var localColumns = [sortOpen ? {
756
+ title: '',
757
+ dataIndex: 'sort',
758
+ width: 32,
759
+ maxWidth: 32,
760
+ render: function render(_, record) {
761
+ return /*#__PURE__*/_react.default.createElement(_DragHandle.default, {
762
+ id: record[_rowKey] || record.id
763
+ });
764
+ }
765
+ } : null].concat((0, _toConsumableArray2.default)(columns), [useQuickOpetate ? {
766
+ title: '操作',
767
+ dataIndex: 'lm_edit_opetate',
768
+ width: 68,
769
+ fixed: 'right',
770
+ editable: 'lm_edit_opetate'
771
+ } : null]).filter(function (item) {
772
+ return item;
773
+ });
774
+ localColumns = localColumns.map(function (item, index) {
775
+ return Object.assign(Object.assign({}, item), {
776
+ order: [null, undefined].includes(item.order) ? index : item.order
777
+ });
778
+ }).sort(function (a, b) {
779
+ return a.order - b.order;
780
+ });
781
+ var leftColumns = [];
782
+ var mainColumns = [];
783
+ var rightColumns = [];
784
+ localColumns.forEach(function (item) {
785
+ if ((item === null || item === void 0 ? void 0 : item.fixed) === 'left') {
786
+ leftColumns.push(item);
787
+ } else if ((item === null || item === void 0 ? void 0 : item.fixed) === 'right') {
788
+ rightColumns.push(item);
789
+ } else {
790
+ mainColumns.push(item);
791
+ }
792
+ });
793
+ localColumns = [].concat(leftColumns, mainColumns, rightColumns);
794
+ var res = localColumns.map(function (col) {
795
+ if (!col.editable) {
796
+ return col;
797
+ }
798
+
799
+ return Object.assign(Object.assign({}, col), {
800
+ shouldCellUpdate: function shouldCellUpdate(record, prevRecord) {
801
+ var dataIndex = col.dataIndex;
802
+
803
+ if (col === null || col === void 0 ? void 0 : col.fixed) {
804
+ return true;
805
+ }
806
+
807
+ return record[dataIndex] === prevRecord[dataIndex] ? false : true;
808
+ },
809
+ onCell: function onCell(record) {
810
+ return {
811
+ getLength: function getLength() {
812
+ return dataSource.length;
813
+ },
814
+ rowKey: _rowKey,
815
+ record: record,
816
+ col: col,
817
+ handleTableRowDelete: handleTableRowDelete,
818
+ handleTableRowAdd: handleTableRowAdd,
819
+ editable: col.editable,
820
+ dataIndex: col.dataIndex,
821
+ itemProps: col.itemProps,
822
+ setValid: setValid,
823
+ isEdit: isEdit,
824
+ isHoverEdit: isHoverEdit,
825
+ handleAdd: handleAdd,
826
+ handleDelete: handleDelete,
827
+ editEnum: typeof col.editEnum === 'function' ? col.editEnum(record) : col.editEnum,
828
+ valueType: typeof col.valueType === 'function' ? col.valueType(record) : col.valueType,
829
+ handleSave: handleSave,
830
+ reWriteOriginSource: reWriteOriginSource
831
+ };
832
+ }
833
+ });
834
+ });
835
+ return res;
836
+ }, [columns, isAdd, sortOpen, useQuickOpetate, sortEditTable]);
837
+ var DraggableContainer = (0, _react.useCallback)(function (_a) {
838
+ var _b;
839
+
840
+ var props = __rest(_a, []);
841
+
842
+ return /*#__PURE__*/_react.default.createElement(_DndContainer.default, {
843
+ move: onSortEnd
844
+ }, /*#__PURE__*/_react.default.createElement(_sortableBox.default, {
845
+ items: (_b = dataSourceRef.current) === null || _b === void 0 ? void 0 : _b.map(function (item) {
846
+ return item[_rowKey];
847
+ })
848
+ }, /*#__PURE__*/_react.default.createElement("tbody", Object.assign({}, props)))) // <tbody {...props} />
849
+ ;
850
+ }, [sortEditTable]);
851
+ var config = (0, _react.useMemo)(function () {
852
+ return Object.assign({
853
+ pagination: false,
854
+ tableLayout: 'fixed',
855
+ scroll: {
856
+ x: '100%'
857
+ },
858
+ rowKey: function rowKey(record) {
859
+ return record[_rowKey] || record.index || Math.random();
860
+ },
861
+ components: {
862
+ body: Object.assign({
863
+ row: sortOpen ? EditableSortRow : EditableRow,
864
+ cell: EditableCell // wrapper: DraggableContainer
865
+
866
+ }, sortOpen ? {
867
+ wrapper: DraggableContainer
868
+ } : {})
869
+ }
870
+ }, resetProps);
871
+ }, [resultColumns, dataSource, sortOpen, size]);
872
+ (0, _react.useEffect)(function () {
873
+ setDataSource(defaultData === null || defaultData === void 0 ? void 0 : defaultData.map(function (v, idx) {
874
+ return Object.assign(Object.assign({}, v), (0, _defineProperty2.default)({}, _rowKey, v[_rowKey] || "v".concat(idx + 1)));
875
+ }));
876
+ }, [defaultData]);
877
+ (0, _react.useImperativeHandle)(ref, function () {
878
+ return {
879
+ setRow: handleSave,
880
+ valid: function valid() {
881
+ return _valid;
882
+ }
883
+ };
884
+ });
885
+ var isShowAddAction = (0, _react.useMemo)(function () {
886
+ return isEdit && isAdd || isHoverEdit && isAdd;
887
+ }, [isEdit, isAdd, isHoverEdit]); // @ts-ignore
888
+
889
+ return /*#__PURE__*/_react.default.createElement("div", {
890
+ className: "lm_editTable_warpper"
891
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Table, Object.assign({}, config, {
892
+ size: size || 'small',
893
+ columns: resultColumns,
894
+ rowClassName: "editable-row",
895
+ bordered: true,
896
+ pagination: false,
897
+ // components={tableComponents}
898
+ rowSelection: !rowSelection ? undefined : {
899
+ fixed: true,
900
+ type: 'checkbox',
901
+ columnWidth: 36,
902
+ selectedRowKeys: localRowSelectList.map(function (v) {
903
+ return v[_rowKey];
904
+ }),
905
+ onChange: function onChange(selectedRowKeys, selectedRows) {
906
+ editTableRowChange(selectedRows);
907
+ }
908
+ },
909
+ dataSource: dataSource
910
+ })), isShowAddAction && /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Button, {
911
+ className: "lm_editTable_add_bar",
912
+ type: "dashed",
913
+ block: true,
914
+ onClick: handleAdd,
915
+ style: {
916
+ marginTop: 8
917
+ }
918
+ }, /*#__PURE__*/_react.default.createElement(_icons.PlusCircleOutlined, {
919
+ className: "lm_editTable_add_icon"
920
+ }), "\u65B0\u589E"));
921
+ });
922
+
923
+ var _default = /*#__PURE__*/(0, _react.memo)(EditTable);
924
+
925
+ exports.default = _default;