linkmore-design 1.0.49 → 1.0.53

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