linkmore-design 1.0.34 → 1.0.37

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 (167) hide show
  1. package/dist/CardTable/utils.d.ts +1 -1
  2. package/dist/Cascader/demos/basic.d.ts +2 -0
  3. package/dist/Cascader/index.d.ts +4 -0
  4. package/dist/Cascader/style/index.d.ts +1 -0
  5. package/dist/Form/demos/basic.d.ts +2 -0
  6. package/dist/Form/demos/drawer1152-triple.d.ts +3 -0
  7. package/dist/Form/demos/drawer440-double.d.ts +3 -0
  8. package/dist/Form/demos/drawer440.d.ts +3 -0
  9. package/dist/Form/demos/drawer720-double.d.ts +3 -0
  10. package/dist/Form/demos/modal416.d.ts +3 -0
  11. package/dist/Form/demos/modal552-double.d.ts +3 -0
  12. package/dist/Form/index.d.ts +24 -0
  13. package/dist/Form/style/index.d.ts +1 -0
  14. package/dist/IconFont/font/iconfont.d.ts +0 -0
  15. package/dist/IconFont/index.d.ts +1 -1
  16. package/dist/Input/demos/after.d.ts +1 -1
  17. package/dist/Input/demos/base.d.ts +1 -1
  18. package/dist/Input/demos/basic.d.ts +1 -1
  19. package/dist/Input/demos/color.d.ts +1 -1
  20. package/dist/Input/demos/combination.d.ts +1 -1
  21. package/dist/Input/demos/import.d.ts +1 -1
  22. package/dist/Input/demos/line.d.ts +1 -1
  23. package/dist/Input/demos/password.d.ts +1 -1
  24. package/dist/Input/demos/size.d.ts +1 -1
  25. package/dist/Input/index.d.ts +10 -2
  26. package/dist/LmSelect/GhostSelect.d.ts +2 -0
  27. package/dist/LmSelect/NormalSelect.d.ts +11 -0
  28. package/dist/LmSelect/demos/basic.d.ts +2 -0
  29. package/dist/LmSelect/demos/checkbox.d.ts +2 -0
  30. package/dist/LmSelect/demos/ghost.d.ts +2 -0
  31. package/dist/LmSelect/index.d.ts +14 -0
  32. package/dist/LmSelect/style/index.d.ts +1 -0
  33. package/dist/LmSelect/useCheckboxOptions.d.ts +1 -0
  34. package/dist/LmSelect/utils.d.ts +10 -0
  35. package/dist/LmTable/demos/getData.d.ts +2 -0
  36. package/dist/Tooltip/demos/basic.d.ts +2 -0
  37. package/dist/Tooltip/index.d.ts +2 -0
  38. package/dist/Tooltip/style/index.d.ts +1 -0
  39. package/dist/Upload/demos/picture-card.d.ts +3 -0
  40. package/dist/Upload/demos/picture-style.d.ts +4 -0
  41. package/dist/Upload/index.d.ts +4 -0
  42. package/dist/VirtualList/index.d.ts +1 -1
  43. package/dist/hooks/index.d.ts +2 -0
  44. package/dist/hooks/useEvent/index.d.ts +2 -0
  45. package/dist/hooks/useFullscreen/demos/basic.d.ts +2 -0
  46. package/dist/hooks/useFullscreen/index.d.ts +15 -0
  47. package/dist/index.d.ts +5 -1
  48. package/dist/index.umd.js +1385 -278
  49. package/dist/index.umd.min.js +7 -7
  50. package/es/Cascader/index.d.ts +4 -0
  51. package/es/Cascader/index.js +37 -0
  52. package/es/Cascader/style/index.css +520 -0
  53. package/es/Cascader/style/index.d.ts +1 -0
  54. package/es/Cascader/style/index.js +1 -0
  55. package/es/CustomTableOption/columnsSort.js +42 -11
  56. package/es/CustomTableOption/filterSort.js +34 -4
  57. package/es/CustomTableOption/index.js +25 -8
  58. package/es/CustomTableOption/style/index.css +29 -0
  59. package/es/Dropdown/index.js +11 -1
  60. package/es/Dropdown/style/index.css +6 -0
  61. package/es/EditTable/EditTable.js +27 -4
  62. package/es/Form/index.d.ts +24 -0
  63. package/es/Form/index.js +56 -0
  64. package/es/Form/style/index.css +531 -0
  65. package/es/Form/style/index.d.ts +1 -0
  66. package/es/Form/style/index.js +1 -0
  67. package/es/IconFont/font/iconfont.css +1715 -0
  68. package/es/IconFont/font/iconfont.js +48 -0
  69. package/es/IconFont/font/iconfont.ttf +0 -0
  70. package/es/IconFont/font/iconfont.woff +0 -0
  71. package/es/IconFont/font/iconfont.woff2 +0 -0
  72. package/es/IconFont/index.js +2 -2
  73. package/es/Input/index.d.ts +11 -0
  74. package/es/Input/index.js +31 -37
  75. package/es/LmSelect/GhostSelect.d.ts +2 -0
  76. package/es/LmSelect/GhostSelect.js +523 -0
  77. package/es/LmSelect/NormalSelect.d.ts +11 -0
  78. package/es/LmSelect/NormalSelect.js +97 -0
  79. package/es/LmSelect/icon_placeholder.png +0 -0
  80. package/es/LmSelect/index.d.ts +14 -0
  81. package/es/LmSelect/index.js +34 -0
  82. package/es/LmSelect/style/index.css +751 -0
  83. package/es/LmSelect/style/index.d.ts +1 -0
  84. package/es/LmSelect/style/index.js +1 -0
  85. package/es/LmSelect/useCheckboxOptions.d.ts +1 -0
  86. package/es/LmSelect/useCheckboxOptions.js +120 -0
  87. package/es/LmSelect/utils.d.ts +10 -0
  88. package/es/LmSelect/utils.js +66 -0
  89. package/es/LmTable/Table.js +29 -26
  90. package/es/Radio/index.js +3 -2
  91. package/es/Radio/style/style.css +4 -0
  92. package/es/Tooltip/index.d.ts +2 -0
  93. package/es/Tooltip/index.js +3 -0
  94. package/es/Tooltip/style/index.css +505 -0
  95. package/es/Tooltip/style/index.d.ts +1 -0
  96. package/es/Tooltip/style/index.js +1 -0
  97. package/es/Upload/index.d.ts +4 -0
  98. package/es/Upload/index.js +6 -3
  99. package/es/VirtualList/index.js +2 -1
  100. package/es/hooks/index.d.ts +2 -0
  101. package/es/hooks/index.js +2 -0
  102. package/es/hooks/useEvent/index.d.ts +2 -0
  103. package/es/hooks/useEvent/index.js +16 -0
  104. package/es/hooks/useFullscreen/index.d.ts +15 -0
  105. package/es/hooks/useFullscreen/index.js +99 -0
  106. package/es/index.d.ts +5 -1
  107. package/es/index.js +5 -1
  108. package/lib/Cascader/index.d.ts +4 -0
  109. package/lib/Cascader/index.js +50 -0
  110. package/lib/Cascader/style/index.css +520 -0
  111. package/lib/Cascader/style/index.d.ts +1 -0
  112. package/lib/Cascader/style/index.js +3 -0
  113. package/lib/CustomTableOption/columnsSort.js +42 -10
  114. package/lib/CustomTableOption/filterSort.js +33 -3
  115. package/lib/CustomTableOption/index.js +24 -7
  116. package/lib/CustomTableOption/style/index.css +29 -0
  117. package/lib/Dropdown/index.js +12 -1
  118. package/lib/Dropdown/style/index.css +6 -0
  119. package/lib/EditTable/EditTable.js +27 -4
  120. package/lib/Form/index.d.ts +24 -0
  121. package/lib/Form/index.js +75 -0
  122. package/lib/Form/style/index.css +531 -0
  123. package/lib/Form/style/index.d.ts +1 -0
  124. package/lib/Form/style/index.js +3 -0
  125. package/lib/IconFont/font/iconfont.css +1715 -0
  126. package/lib/IconFont/font/iconfont.js +48 -0
  127. package/lib/IconFont/font/iconfont.ttf +0 -0
  128. package/lib/IconFont/font/iconfont.woff +0 -0
  129. package/lib/IconFont/font/iconfont.woff2 +0 -0
  130. package/lib/IconFont/index.js +2 -2
  131. package/lib/Input/index.d.ts +11 -0
  132. package/lib/Input/index.js +24 -15
  133. package/lib/LmSelect/GhostSelect.d.ts +2 -0
  134. package/lib/LmSelect/GhostSelect.js +545 -0
  135. package/lib/LmSelect/NormalSelect.d.ts +11 -0
  136. package/lib/LmSelect/NormalSelect.js +116 -0
  137. package/lib/LmSelect/icon_placeholder.png +0 -0
  138. package/lib/LmSelect/index.d.ts +14 -0
  139. package/lib/LmSelect/index.js +50 -0
  140. package/lib/LmSelect/style/index.css +751 -0
  141. package/lib/LmSelect/style/index.d.ts +1 -0
  142. package/lib/LmSelect/style/index.js +3 -0
  143. package/lib/LmSelect/useCheckboxOptions.d.ts +1 -0
  144. package/lib/LmSelect/useCheckboxOptions.js +139 -0
  145. package/lib/LmSelect/utils.d.ts +10 -0
  146. package/lib/LmSelect/utils.js +103 -0
  147. package/lib/LmTable/Table.js +29 -26
  148. package/lib/Radio/index.js +3 -2
  149. package/lib/Radio/style/style.css +4 -0
  150. package/lib/Tooltip/index.d.ts +2 -0
  151. package/lib/Tooltip/index.js +15 -0
  152. package/lib/Tooltip/style/index.css +505 -0
  153. package/lib/Tooltip/style/index.d.ts +1 -0
  154. package/lib/Tooltip/style/index.js +3 -0
  155. package/lib/Upload/index.d.ts +4 -0
  156. package/lib/Upload/index.js +6 -3
  157. package/lib/VirtualList/index.js +2 -1
  158. package/lib/hooks/index.d.ts +2 -0
  159. package/lib/hooks/index.js +23 -0
  160. package/lib/hooks/useEvent/index.d.ts +2 -0
  161. package/lib/hooks/useEvent/index.js +25 -0
  162. package/lib/hooks/useFullscreen/index.d.ts +15 -0
  163. package/lib/hooks/useFullscreen/index.js +113 -0
  164. package/lib/index.d.ts +5 -1
  165. package/lib/index.js +33 -1
  166. package/package.json +5 -4
  167. package/typings/index.d.ts +1 -1
@@ -2,11 +2,12 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
2
  import React, { useState, useMemo, useEffect, useImperativeHandle, forwardRef } from 'react';
3
3
  import { DndContext, closestCenter, KeyboardSensor, PointerSensor, useSensor, useSensors } from '@dnd-kit/core';
4
4
  import { arrayMove, useSortable, SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy } from '@dnd-kit/sortable';
5
- import { Checkbox } from 'linkmore-design';
5
+ import { Checkbox, Input } from 'linkmore-design';
6
6
  import { HolderOutlined } from '@ant-design/icons';
7
7
  import { CSS } from '@dnd-kit/utilities';
8
8
  import { cloneDeep } from 'lodash';
9
9
  var UNLLVALUE = [null, undefined];
10
+ var Search = Input.Search;
10
11
 
11
12
  var SortItem = function SortItem(props) {
12
13
  var _a, _b;
@@ -56,6 +57,18 @@ var FilterSort = /*#__PURE__*/forwardRef(function (_ref, ref) {
56
57
  _useState4 = _slicedToArray(_useState3, 2),
57
58
  colStateValue = _useState4[0],
58
59
  setColStateValue = _useState4[1];
60
+ /** 正在输入的查询条件 */
61
+
62
+
63
+ var _useState5 = useState(''),
64
+ _useState6 = _slicedToArray(_useState5, 2),
65
+ searchIngValue = _useState6[0],
66
+ setSearchIngValue = _useState6[1];
67
+
68
+ var _useState7 = useState(''),
69
+ _useState8 = _slicedToArray(_useState7, 2),
70
+ searchValue = _useState8[0],
71
+ setSearchValue = _useState8[1];
59
72
 
60
73
  var sortMenu = useMemo(function () {
61
74
  var cloneCol = cloneDeep(localFilter);
@@ -66,8 +79,12 @@ var FilterSort = /*#__PURE__*/forwardRef(function (_ref, ref) {
66
79
  item.order = order !== undefined && order !== null ? order : UNLLVALUE.includes(item.order) ? index : item.order;
67
80
  item.show = ((_b = filterStateValue[item.field]) === null || _b === void 0 ? void 0 : _b.show) === false ? false : UNLLVALUE.includes(item.show) ? true : !!item.show;
68
81
  });
69
- return cloneCol;
70
- }, [localFilter, colStateValue]);
82
+ return cloneCol.filter(function (item) {
83
+ var _a;
84
+
85
+ return ((_a = item.title) === null || _a === void 0 ? void 0 : _a.indexOf(searchValue)) > -1;
86
+ });
87
+ }, [localFilter, colStateValue, searchValue]);
71
88
  var isCheckAll = useMemo(function () {
72
89
  var showLength = localFilter.filter(function (item) {
73
90
  return item.show !== false;
@@ -77,6 +94,12 @@ var FilterSort = /*#__PURE__*/forwardRef(function (_ref, ref) {
77
94
  checkAll: showLength.length === localFilter.length
78
95
  };
79
96
  }, [localFilter]);
97
+ /** 将当前输入的值,进行最后赋值,作自动计算使用 */
98
+
99
+ var handleSearch = function handleSearch() {
100
+ setSearchValue(searchIngValue);
101
+ };
102
+
80
103
  useEffect(function () {
81
104
  console.log(localFilter, 'localFilter');
82
105
  }, [localFilter]);
@@ -101,7 +124,6 @@ var FilterSort = /*#__PURE__*/forwardRef(function (_ref, ref) {
101
124
  var newIndex = items.findIndex(function (s) {
102
125
  return s.field === over.id;
103
126
  });
104
- console.log(arrayMove(items, oldIndex, newIndex), 77);
105
127
  return arrayMove(items, oldIndex, newIndex).map(function (item, index) {
106
128
  return Object.assign(Object.assign({}, item), {
107
129
  order: index
@@ -163,6 +185,14 @@ var FilterSort = /*#__PURE__*/forwardRef(function (_ref, ref) {
163
185
  return /*#__PURE__*/React.createElement("div", {
164
186
  className: 'lm_custom_option_columns'
165
187
  }, /*#__PURE__*/React.createElement("div", {
188
+ className: 'global_search'
189
+ }, /*#__PURE__*/React.createElement(Search, {
190
+ value: searchIngValue,
191
+ onChange: function onChange(e) {
192
+ return setSearchIngValue(e.target.value);
193
+ },
194
+ onSearch: handleSearch
195
+ })), /*#__PURE__*/React.createElement("div", {
166
196
  className: 'global_setting'
167
197
  }, /*#__PURE__*/React.createElement(Checkbox, {
168
198
  indeterminate: isCheckAll.indeterminate,
@@ -1,6 +1,6 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
2
  import React, { forwardRef, useState, useEffect, useRef } from 'react';
3
- import { Drawer, Tabs, Radio, IconFont, Space, Button } from 'linkmore-design';
3
+ import { Drawer, Tabs, Radio, IconFont, Space, Button, Switch } from 'linkmore-design';
4
4
  import ColumnsSort from './columnsSort';
5
5
  import FilterSort from './filterSort';
6
6
  import classNames from 'classnames';
@@ -35,15 +35,22 @@ var LMCustomTableOption = /*#__PURE__*/forwardRef(function (props, ref) {
35
35
  _useState2 = _slicedToArray(_useState, 2),
36
36
  visible = _useState2[0],
37
37
  setVisible = _useState2[1];
38
+ /** 是否记住页面使用状态 */
38
39
 
39
- var _useState3 = useState({
40
+
41
+ var _useState3 = useState(false),
42
+ _useState4 = _slicedToArray(_useState3, 2),
43
+ saveSetting = _useState4[0],
44
+ setSaveSetting = _useState4[1];
45
+
46
+ var _useState5 = useState({
40
47
  filter: [],
41
48
  columns: [],
42
49
  size: 'small'
43
50
  }),
44
- _useState4 = _slicedToArray(_useState3, 2),
45
- lmOptions = _useState4[0],
46
- setLmOptions = _useState4[1];
51
+ _useState6 = _slicedToArray(_useState5, 2),
52
+ lmOptions = _useState6[0],
53
+ setLmOptions = _useState6[1];
47
54
 
48
55
  var openSetting = function openSetting() {
49
56
  setVisible(true);
@@ -55,7 +62,7 @@ var LMCustomTableOption = /*#__PURE__*/forwardRef(function (props, ref) {
55
62
  columns: props.columns,
56
63
  size: props.size || 'small'
57
64
  });
58
- }, []);
65
+ }, [props.filter, props.columns, props.size]);
59
66
  /** 提交按钮 */
60
67
 
61
68
  var onOk = function onOk() {
@@ -75,7 +82,8 @@ var LMCustomTableOption = /*#__PURE__*/forwardRef(function (props, ref) {
75
82
  ColStateValue: ColStateValue,
76
83
  filterData: filterData,
77
84
  filterStateValue: filterStateValue,
78
- size: lmOptions.size
85
+ size: lmOptions.size,
86
+ saveSetting: saveSetting
79
87
  });
80
88
  setVisible(false);
81
89
  };
@@ -130,7 +138,6 @@ var LMCustomTableOption = /*#__PURE__*/forwardRef(function (props, ref) {
130
138
  size: e.target.value
131
139
  }));
132
140
  },
133
- direction: 'row',
134
141
  className: 'lm_size_radio_group',
135
142
  value: lmOptions.size
136
143
  }, optionsWithDisabled.map(function (item) {
@@ -138,10 +145,20 @@ var LMCustomTableOption = /*#__PURE__*/forwardRef(function (props, ref) {
138
145
  className: 'lm_custom_size_warp',
139
146
  key: item.value
140
147
  }, /*#__PURE__*/React.createElement("img", {
148
+ onClick: function onClick() {
149
+ return setLmOptions(Object.assign(Object.assign({}, lmOptions), {
150
+ size: item.value
151
+ }));
152
+ },
141
153
  src: item.imgUrl
142
154
  }), /*#__PURE__*/React.createElement(Radio, {
143
155
  value: item.value
144
156
  }, item.label));
157
+ })), /*#__PURE__*/React.createElement("div", {
158
+ className: 'save_setting'
159
+ }, /*#__PURE__*/React.createElement("span", null, "\u662F\u5426\u8BB0\u4F4F\u9875\u9762\u4F7F\u7528\u72B6\u6001"), /*#__PURE__*/React.createElement(Switch, {
160
+ checked: saveSetting,
161
+ onChange: setSaveSetting
145
162
  }))))));
146
163
  });
147
164
  export default LMCustomTableOption;
@@ -503,6 +503,15 @@ html {
503
503
  .card_cell_content:hover .card_cell_body .card_cell_checkbox {
504
504
  opacity: 1;
505
505
  }
506
+ .lm_custom-table-option.lm_drawer .ant-drawer-body {
507
+ padding: 0 0 24px 0;
508
+ }
509
+ .lm_custom-table-option.lm_drawer .ant-drawer-body .ant-tabs-nav-wrap {
510
+ padding: 0 24px;
511
+ }
512
+ .lm_custom-table-option.lm_drawer .ant-drawer-body .ant-tabs-content-holder {
513
+ padding: 0 24px;
514
+ }
506
515
  .lm_custom_option_columns .global_setting {
507
516
  height: 44px;
508
517
  background-color: var(--color-4);
@@ -516,6 +525,10 @@ html {
516
525
  .lm_custom_option_columns .global_setting .lm-checkbox > span {
517
526
  font-size: 12px;
518
527
  }
528
+ .lm_custom_option_columns .global_setting > span {
529
+ color: var(--primary-color);
530
+ cursor: pointer;
531
+ }
519
532
  .lm_custom_option_columns .fixed_title {
520
533
  color: var(--color-45);
521
534
  font-size: 12px;
@@ -549,6 +562,9 @@ html {
549
562
  .lm_custom_size_warp {
550
563
  display: flex;
551
564
  flex-direction: column;
565
+ align-items: center;
566
+ justify-content: center;
567
+ cursor: pointer;
552
568
  }
553
569
  .lm_custom_size_warp > img {
554
570
  width: 100px;
@@ -562,3 +578,16 @@ html {
562
578
  align-items: center;
563
579
  justify-content: space-between;
564
580
  }
581
+ .save_setting {
582
+ height: 68px;
583
+ margin-top: 24px;
584
+ border-top: 1px solid var(--color-6);
585
+ border-bottom: 1px solid var(--color-6);
586
+ display: flex;
587
+ align-items: center;
588
+ justify-content: space-between;
589
+ font-size: 12px;
590
+ }
591
+ .global_search {
592
+ margin-bottom: 16px;
593
+ }
@@ -16,6 +16,7 @@ var __rest = this && this.__rest || function (s, e) {
16
16
  };
17
17
 
18
18
  import React, { useRef, useEffect, useState } from 'react';
19
+ import { IconFont } from 'linkmore-design';
19
20
  import classNames from 'classnames';
20
21
  var prefixCls = 'lm_dropdown';
21
22
 
@@ -72,7 +73,8 @@ var LMDropdown = CLMDropdown;
72
73
 
73
74
  LMDropdown.Button = function (props) {
74
75
  var _props$dropdownmatchw2 = props.dropdownmatchwidth,
75
- dropdownmatchwidth = _props$dropdownmatchw2 === void 0 ? false : _props$dropdownmatchw2;
76
+ dropdownmatchwidth = _props$dropdownmatchw2 === void 0 ? false : _props$dropdownmatchw2,
77
+ icon = props.icon;
76
78
  var dropdownRef = useRef(null);
77
79
 
78
80
  var _useState3 = useState(''),
@@ -94,6 +96,10 @@ LMDropdown.Button = function (props) {
94
96
 
95
97
  if (!dropdownmatchwidth) {
96
98
  return /*#__PURE__*/React.createElement(_Dropdown.Button, Object.assign({}, props, {
99
+ icon: icon || /*#__PURE__*/React.createElement(IconFont, {
100
+ className: 'lm_default_icon',
101
+ type: 'lmweb-down'
102
+ }),
97
103
  overlayClassName: classNames(props.overlayClassName, 'lm_dropdown_overlay'),
98
104
  className: classNames(props.className, 'lm_dropdown_button', props.disabled ? 'disabled' : '')
99
105
  }));
@@ -102,6 +108,10 @@ LMDropdown.Button = function (props) {
102
108
  return /*#__PURE__*/React.createElement("div", {
103
109
  ref: dropdownRef
104
110
  }, /*#__PURE__*/React.createElement(_Dropdown.Button, Object.assign({}, props, {
111
+ icon: icon || /*#__PURE__*/React.createElement(IconFont, {
112
+ className: 'lm_default_icon',
113
+ type: 'lmweb-down'
114
+ }),
105
115
  overlayClassName: classNames(props.overlayClassName, 'lm_dropdown_overlay'),
106
116
  overlayStyle: minwidth ? Object.assign({
107
117
  minWidth: minwidth
@@ -551,6 +551,12 @@ html {
551
551
  .lm_dropdown_button .ant-btn.ant-btn-sm {
552
552
  font-size: 12px;
553
553
  }
554
+ .lm_dropdown_button .ant-btn .anticon {
555
+ font-size: 16px;
556
+ }
557
+ .lm_dropdown_button .ant-btn .lm_default_icon {
558
+ color: var(--text-color);
559
+ }
554
560
  .lm_dropdown_button:hover {
555
561
  color: var(--primary-hover-color) !important;
556
562
  border: 1px solid var(--primary-hover-color);
@@ -211,6 +211,16 @@ var EditableRow = function EditableRow(_ref3) {
211
211
  value: form
212
212
  }, /*#__PURE__*/_react.default.createElement("tr", props)));
213
213
  };
214
+
215
+ var isValidValue = function isValidValue(verifyValue) {
216
+ var toStringValue = JSON.stringify(verifyValue);
217
+
218
+ if (verifyValue === undefined || verifyValue === null || verifyValue === '' || toStringValue === '[]' || toStringValue === '{}') {
219
+ return false;
220
+ }
221
+
222
+ return true;
223
+ };
214
224
  /*
215
225
  表格单元格
216
226
  editEnum: 下拉框时的数据数组(非数组时是配置设置)
@@ -243,6 +253,8 @@ var EditableCell = function EditableCell(props) {
243
253
  setEditing = _useState2[1];
244
254
 
245
255
  var focusCapturedRef = (0, _react.useRef)(false);
256
+ var curValue = (0, _lodash.get)(record, dataIndex);
257
+ var curValueIsValid = isValidValue(curValue);
246
258
 
247
259
  var getDefaultChildNode = function getDefaultChildNode() {
248
260
  var focusCaptured = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
@@ -260,8 +272,18 @@ var EditableCell = function EditableCell(props) {
260
272
  }
261
273
  }
262
274
 
263
- if (focusCaptured) {
264
- if (isHoverEdit && editable) {
275
+ if (isHoverEdit && editable) {
276
+ if (focusCaptured) {
277
+ childNode = /*#__PURE__*/_react.default.createElement(_form.default.Item, (0, _extends2.default)({
278
+ style: {
279
+ margin: 0
280
+ }
281
+ }, itemProps, {
282
+ name: dataIndex
283
+ }), Control(editable));
284
+ }
285
+
286
+ if (!curValueIsValid) {
265
287
  childNode = /*#__PURE__*/_react.default.createElement(_form.default.Item, (0, _extends2.default)({
266
288
  style: {
267
289
  margin: 0
@@ -474,7 +496,7 @@ var EditableCell = function EditableCell(props) {
474
496
  var isOpenEdit = isEdit && focusCapturedRef.current || isHoverEdit && focusCapturedRef.current;
475
497
  var classNames = (0, _classnames.default)({
476
498
  'lm_base_editTable_cell': true,
477
- 'lm_base_editTable_cell_edit': isOpenEdit
499
+ 'lm_base_editTable_cell_edit': isOpenEdit || isHoverEdit && !curValueIsValid
478
500
  });
479
501
  var extensionConfig = {};
480
502
 
@@ -493,7 +515,8 @@ var EditableCell = function EditableCell(props) {
493
515
  var rowValue = (0, _lodash.get)(record, rowKey);
494
516
  reWriteOriginSource(rowKey, rowValue, dataIndex, nextValue);
495
517
  } else {
496
- var newChildNode = getDefaultChildNode(false); // setChildNode(newChildNode);
518
+ var newChildNode = getDefaultChildNode(false);
519
+ setChildNode(newChildNode);
497
520
  }
498
521
  };
499
522
 
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import { Form as AntdForm, FormInstance, FormProps, List } from 'antd';
3
+ import useFormInstance from 'antd/lib/form/hooks/useFormInstance';
4
+ import { FormProvider } from 'antd/lib/form/context';
5
+ import { useForm, useWatch } from 'antd/lib/form/Form';
6
+ declare const Reform: <Values = any>(props: FormProps<Values> & {
7
+ children?: React.ReactNode;
8
+ } & {
9
+ ref?: React.Ref<FormInstance<Values>>;
10
+ }) => React.ReactElement;
11
+ declare type InternalFormType = typeof Reform;
12
+ interface FormInterface extends InternalFormType {
13
+ useForm: typeof useForm;
14
+ useFormInstance: typeof useFormInstance;
15
+ useWatch: typeof useWatch;
16
+ Item: typeof AntdForm.Item;
17
+ List: typeof List;
18
+ ErrorList: typeof AntdForm.ErrorList;
19
+ Provider: typeof FormProvider;
20
+ /** @deprecated Only for warning usage. Do not use. */
21
+ create: () => void;
22
+ }
23
+ declare const Form: FormInterface;
24
+ export default Form;
@@ -0,0 +1,56 @@
1
+ import "antd/es/list/style";
2
+ import _List from "antd/es/list";
3
+ import "antd/es/form/style";
4
+ import _Form from "antd/es/form";
5
+
6
+ var __rest = this && this.__rest || function (s, e) {
7
+ var t = {};
8
+
9
+ for (var p in s) {
10
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
11
+ }
12
+
13
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
14
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
15
+ }
16
+ return t;
17
+ };
18
+
19
+ import React from 'react';
20
+ import classnames from 'classnames';
21
+ import useFormInstance from 'antd/lib/form/hooks/useFormInstance';
22
+ import { FormProvider } from 'antd/lib/form/context';
23
+ import { useForm, useWatch } from 'antd/lib/form/Form';
24
+ var classNamePrefix = 'lm_form';
25
+
26
+ var LMForm = function LMForm(props, ref) {
27
+ var children = props.children,
28
+ className = props.className,
29
+ restProps = __rest(props, ["children", "className"]);
30
+
31
+ return /*#__PURE__*/React.createElement(_Form, Object.assign({
32
+ ref: ref,
33
+ className: classnames(classNamePrefix, className),
34
+ colon: false
35
+ }, restProps), children);
36
+ };
37
+
38
+ var Reform = /*#__PURE__*/React.forwardRef(LMForm);
39
+ var Form = Reform;
40
+ Form.Item = _Form.Item;
41
+ Form.List = _List;
42
+ Form.ErrorList = _Form.ErrorList;
43
+ Form.useForm = useForm;
44
+ Form.useFormInstance = useFormInstance;
45
+ Form.useWatch = useWatch;
46
+ Form.Provider = FormProvider;
47
+
48
+ Form.create = function () {
49
+ warning(false, 'Form', 'antd v4 removed `Form.create`. Please remove or use `@ant-design/compatible` instead.');
50
+ };
51
+
52
+ export default Form;
53
+
54
+ function warning(arg0, arg1, arg2) {
55
+ throw new Error('Function not implemented.');
56
+ }