linkmore-design 1.0.54 → 1.0.57

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 (235) hide show
  1. package/dist/Affix/demos/basic.d.ts +2 -0
  2. package/dist/Affix/index.d.ts +54 -0
  3. package/dist/Affix/style/index.d.ts +1 -0
  4. package/dist/Affix/utils.d.ts +15 -0
  5. package/dist/Button/index.d.ts +4 -0
  6. package/dist/CardTable/card/PictureTextRowOperate.d.ts +7 -0
  7. package/dist/CardTable/fns/index.d.ts +1 -5
  8. package/dist/CustomTableOption/cardSort.d.ts +4 -0
  9. package/dist/CustomTableOption/index.d.ts +1 -0
  10. package/dist/DatePicker/PickerButton.d.ts +2 -0
  11. package/dist/DatePicker/PickerTag.d.ts +2 -0
  12. package/dist/DatePicker/demos/basic.d.ts +2 -0
  13. package/dist/DatePicker/generatePicker/generateRangePicker.d.ts +4 -0
  14. package/dist/DatePicker/generatePicker/generateSinglePicker.d.ts +14 -0
  15. package/dist/DatePicker/generatePicker/index.d.ts +106 -0
  16. package/dist/DatePicker/generatePicker/interface.d.ts +12 -0
  17. package/dist/DatePicker/index.d.ts +17 -0
  18. package/dist/DatePicker/style/index.d.ts +1 -0
  19. package/dist/DatePicker/util.d.ts +14 -0
  20. package/dist/IconFont/index.d.ts +1 -1
  21. package/dist/LmEditTable/demos/basic copy.d.ts +2 -0
  22. package/dist/LmFilter/Controls/CheckboxTags.d.ts +6 -0
  23. package/dist/LmFilter/Controls/index.d.ts +2 -0
  24. package/dist/LmFilter/LmFilter.d.ts +4 -1
  25. package/dist/LmFilter/{components → baseFilter}/fuzzySearch.d.ts +0 -0
  26. package/dist/LmFilter/complexFilter/drawer.d.ts +4 -0
  27. package/dist/LmFilter/complexFilter/index.d.ts +3 -1
  28. package/dist/LmFilter/complexFilter/valueDrawer.d.ts +4 -0
  29. package/dist/LmFilter/localization.d.ts +8 -0
  30. package/dist/LmFilter/utils.d.ts +1 -0
  31. package/dist/QuickMenu/demos/basic.d.ts +2 -0
  32. package/dist/QuickMenu/index.d.ts +14 -0
  33. package/dist/QuickMenu/style/index.d.ts +1 -0
  34. package/dist/Switch/demos/table.d.ts +2 -0
  35. package/dist/Switch/index.d.ts +2 -1
  36. package/dist/Tag/demos/ExigencyTag.d.ts +2 -0
  37. package/dist/Tag/index.d.ts +4 -0
  38. package/dist/Upload/demos/picture-little.d.ts +3 -0
  39. package/dist/Upload/index.d.ts +5 -1
  40. package/dist/_util/domTarget.d.ts +7 -0
  41. package/dist/_util/motion.d.ts +8 -0
  42. package/dist/_util/statusUtils.d.ts +6 -0
  43. package/dist/_util/throttleByAnimationFrame.d.ts +8 -0
  44. package/dist/_util/type.d.ts +9 -0
  45. package/dist/_util/warning.d.ts +6 -0
  46. package/dist/index.d.ts +4 -0
  47. package/dist/index.umd.js +10843 -131
  48. package/dist/index.umd.min.js +6 -6
  49. package/es/Affix/index.d.ts +54 -0
  50. package/es/Affix/index.js +326 -0
  51. package/es/Affix/style/index.css +505 -0
  52. package/es/Affix/style/index.d.ts +1 -0
  53. package/es/Affix/style/index.js +1 -0
  54. package/es/Affix/utils.d.ts +15 -0
  55. package/es/Affix/utils.js +83 -0
  56. package/es/Button/index.d.ts +4 -0
  57. package/es/Button/index.js +1 -1
  58. package/es/CardTable/body/TableBodyCell.js +3 -0
  59. package/es/CardTable/card/PictureTextRow.js +13 -50
  60. package/es/CardTable/card/PictureTextRowOperate.js +130 -0
  61. package/es/CardTable/fns/index.js +6 -5
  62. package/es/CardTable/style/index.css +158 -10
  63. package/es/CustomTableOption/cardSort.d.ts +4 -0
  64. package/es/CustomTableOption/cardSort.js +222 -0
  65. package/es/CustomTableOption/index.d.ts +1 -0
  66. package/es/CustomTableOption/index.js +35 -11
  67. package/es/CustomTableOption/style/index.css +3 -0
  68. package/es/DatePicker/PickerButton.d.ts +2 -0
  69. package/es/DatePicker/PickerButton.js +8 -0
  70. package/es/DatePicker/PickerTag.d.ts +2 -0
  71. package/es/DatePicker/PickerTag.js +7 -0
  72. package/es/DatePicker/generatePicker/generateRangePicker.d.ts +4 -0
  73. package/es/DatePicker/generatePicker/generateRangePicker.js +142 -0
  74. package/es/DatePicker/generatePicker/generateSinglePicker.d.ts +14 -0
  75. package/es/DatePicker/generatePicker/generateSinglePicker.js +170 -0
  76. package/es/DatePicker/generatePicker/index.d.ts +106 -0
  77. package/es/DatePicker/generatePicker/index.js +84 -0
  78. package/es/DatePicker/generatePicker/interface.d.ts +12 -0
  79. package/es/DatePicker/generatePicker/interface.js +1 -0
  80. package/es/DatePicker/index.d.ts +17 -0
  81. package/es/DatePicker/index.js +7 -0
  82. package/es/DatePicker/style/index.css +505 -0
  83. package/es/DatePicker/style/index.d.ts +1 -0
  84. package/es/DatePicker/style/index.js +1 -0
  85. package/es/DatePicker/util.d.ts +14 -0
  86. package/es/DatePicker/util.js +111 -0
  87. package/es/Descriptions/style/index.css +10 -8
  88. package/es/IconFont/index.js +3 -2
  89. package/es/LmEditTable/DragHandle.js +1 -1
  90. package/es/LmEditTable/EditTable.js +27 -35
  91. package/es/LmFilter/Controls/CheckboxTags.js +53 -0
  92. package/es/LmFilter/Controls/index.js +47 -0
  93. package/es/LmFilter/LmFilter.js +17 -5
  94. package/es/LmFilter/baseFilter/fuzzySearch.js +53 -0
  95. package/es/LmFilter/baseFilter/index.js +1 -1
  96. package/es/LmFilter/clearFilter/index.js +3 -1
  97. package/es/LmFilter/complexFilter/drawer.js +376 -0
  98. package/es/LmFilter/complexFilter/index.js +50 -3
  99. package/es/LmFilter/complexFilter/valueDrawer.js +238 -0
  100. package/es/LmFilter/components/CascaderFilter.js +17 -41
  101. package/es/LmFilter/components/DateFilter.js +12 -20
  102. package/es/LmFilter/components/DropdownFIlter.js +79 -12
  103. package/es/LmFilter/components/index.js +56 -13
  104. package/es/LmFilter/filterFns/index.js +22 -3
  105. package/es/LmFilter/hooks/useDelayedFn.js +8 -6
  106. package/es/LmFilter/localization.d.ts +8 -0
  107. package/es/LmFilter/localization.js +12 -0
  108. package/es/LmFilter/style/style.css +27 -4
  109. package/es/LmFilter/utils.js +16 -0
  110. package/es/LmFilter/wrapper/FilterRoot.js +62 -6
  111. package/es/LmTable/Table.js +9 -4
  112. package/es/QuickMenu/index.d.ts +14 -0
  113. package/es/QuickMenu/index.js +171 -0
  114. package/es/QuickMenu/style/index.css +560 -0
  115. package/es/QuickMenu/style/index.d.ts +1 -0
  116. package/es/QuickMenu/style/index.js +1 -0
  117. package/es/Switch/index.d.ts +2 -1
  118. package/es/Switch/index.js +33 -1
  119. package/es/Switch/style/index.css +41 -0
  120. package/es/Tag/index.d.ts +4 -0
  121. package/es/Tag/index.js +48 -2
  122. package/es/Tag/style/index.css +4 -1
  123. package/es/Upload/index.d.ts +5 -1
  124. package/es/Upload/index.js +7 -2
  125. package/es/Upload/style/index.css +35 -0
  126. package/es/_util/domTarget.d.ts +7 -0
  127. package/es/_util/domTarget.js +20 -0
  128. package/es/_util/motion.d.ts +8 -0
  129. package/es/_util/motion.js +60 -0
  130. package/es/_util/statusUtils.d.ts +6 -0
  131. package/es/_util/statusUtils.js +12 -0
  132. package/es/_util/throttleByAnimationFrame.d.ts +8 -0
  133. package/es/_util/throttleByAnimationFrame.js +58 -0
  134. package/es/_util/type.d.ts +9 -0
  135. package/es/_util/type.js +15 -0
  136. package/es/_util/warning.d.ts +6 -0
  137. package/es/_util/warning.js +17 -0
  138. package/es/index.d.ts +4 -0
  139. package/es/index.js +3 -1
  140. package/es/message/index.d.ts +5 -5
  141. package/lib/Affix/index.d.ts +54 -0
  142. package/lib/Affix/index.js +349 -0
  143. package/lib/Affix/style/index.css +505 -0
  144. package/lib/Affix/style/index.d.ts +1 -0
  145. package/lib/Affix/style/index.js +3 -0
  146. package/lib/Affix/utils.d.ts +15 -0
  147. package/lib/Affix/utils.js +104 -0
  148. package/lib/Button/index.d.ts +4 -0
  149. package/lib/Button/index.js +1 -1
  150. package/lib/CardTable/body/TableBodyCell.js +3 -0
  151. package/lib/CardTable/card/PictureTextRow.js +13 -50
  152. package/lib/CardTable/card/PictureTextRowOperate.js +130 -0
  153. package/lib/CardTable/fns/index.js +6 -5
  154. package/lib/CardTable/style/index.css +158 -10
  155. package/lib/CustomTableOption/cardSort.d.ts +4 -0
  156. package/lib/CustomTableOption/cardSort.js +242 -0
  157. package/lib/CustomTableOption/index.d.ts +1 -0
  158. package/lib/CustomTableOption/index.js +36 -11
  159. package/lib/CustomTableOption/style/index.css +3 -0
  160. package/lib/DatePicker/PickerButton.d.ts +2 -0
  161. package/lib/DatePicker/PickerButton.js +19 -0
  162. package/lib/DatePicker/PickerTag.d.ts +2 -0
  163. package/lib/DatePicker/PickerTag.js +18 -0
  164. package/lib/DatePicker/generatePicker/generateRangePicker.d.ts +4 -0
  165. package/lib/DatePicker/generatePicker/generateRangePicker.js +168 -0
  166. package/lib/DatePicker/generatePicker/generateSinglePicker.d.ts +14 -0
  167. package/lib/DatePicker/generatePicker/generateSinglePicker.js +196 -0
  168. package/lib/DatePicker/generatePicker/index.d.ts +106 -0
  169. package/lib/DatePicker/generatePicker/index.js +102 -0
  170. package/lib/DatePicker/generatePicker/interface.d.ts +12 -0
  171. package/lib/DatePicker/generatePicker/interface.js +5 -0
  172. package/lib/DatePicker/index.d.ts +17 -0
  173. package/lib/DatePicker/index.js +21 -0
  174. package/lib/DatePicker/style/index.css +505 -0
  175. package/lib/DatePicker/style/index.d.ts +1 -0
  176. package/lib/DatePicker/style/index.js +3 -0
  177. package/lib/DatePicker/util.d.ts +14 -0
  178. package/lib/DatePicker/util.js +122 -0
  179. package/lib/Descriptions/style/index.css +10 -8
  180. package/lib/IconFont/index.js +3 -2
  181. package/lib/LmEditTable/DragHandle.js +1 -1
  182. package/lib/LmEditTable/EditTable.js +26 -36
  183. package/lib/LmFilter/Controls/CheckboxTags.js +53 -0
  184. package/lib/LmFilter/Controls/index.js +47 -0
  185. package/lib/LmFilter/LmFilter.js +17 -5
  186. package/lib/LmFilter/baseFilter/fuzzySearch.js +53 -0
  187. package/lib/LmFilter/baseFilter/index.js +1 -1
  188. package/lib/LmFilter/clearFilter/index.js +3 -1
  189. package/lib/LmFilter/complexFilter/drawer.js +376 -0
  190. package/lib/LmFilter/complexFilter/index.js +50 -3
  191. package/lib/LmFilter/complexFilter/valueDrawer.js +238 -0
  192. package/lib/LmFilter/components/CascaderFilter.js +17 -41
  193. package/lib/LmFilter/components/DateFilter.js +12 -20
  194. package/lib/LmFilter/components/DropdownFIlter.js +79 -12
  195. package/lib/LmFilter/components/index.js +56 -13
  196. package/lib/LmFilter/filterFns/index.js +22 -3
  197. package/lib/LmFilter/hooks/useDelayedFn.js +8 -6
  198. package/lib/LmFilter/localization.d.ts +8 -0
  199. package/lib/LmFilter/localization.js +19 -0
  200. package/lib/LmFilter/style/style.css +27 -4
  201. package/lib/LmFilter/utils.js +16 -0
  202. package/lib/LmFilter/wrapper/FilterRoot.js +62 -6
  203. package/lib/LmTable/Table.js +9 -4
  204. package/lib/QuickMenu/index.d.ts +14 -0
  205. package/lib/QuickMenu/index.js +189 -0
  206. package/lib/QuickMenu/style/index.css +560 -0
  207. package/lib/QuickMenu/style/index.d.ts +1 -0
  208. package/lib/QuickMenu/style/index.js +3 -0
  209. package/lib/Switch/index.d.ts +2 -1
  210. package/lib/Switch/index.js +34 -1
  211. package/lib/Switch/style/index.css +41 -0
  212. package/lib/Tag/index.d.ts +4 -0
  213. package/lib/Tag/index.js +48 -1
  214. package/lib/Tag/style/index.css +4 -1
  215. package/lib/Upload/index.d.ts +5 -1
  216. package/lib/Upload/index.js +8 -2
  217. package/lib/Upload/style/index.css +35 -0
  218. package/lib/_util/domTarget.d.ts +7 -0
  219. package/lib/_util/domTarget.js +31 -0
  220. package/lib/_util/motion.d.ts +8 -0
  221. package/lib/_util/motion.js +71 -0
  222. package/lib/_util/statusUtils.d.ts +6 -0
  223. package/lib/_util/statusUtils.js +29 -0
  224. package/lib/_util/throttleByAnimationFrame.d.ts +8 -0
  225. package/lib/_util/throttleByAnimationFrame.js +72 -0
  226. package/lib/_util/type.d.ts +9 -0
  227. package/lib/_util/type.js +27 -0
  228. package/lib/_util/warning.d.ts +6 -0
  229. package/lib/_util/warning.js +35 -0
  230. package/lib/index.d.ts +4 -0
  231. package/lib/index.js +17 -1
  232. package/lib/message/index.d.ts +5 -5
  233. package/package.json +5 -2
  234. package/es/LmFilter/components/fuzzySearch.js +0 -37
  235. package/lib/LmFilter/components/fuzzySearch.js +0 -37
@@ -118,53 +118,30 @@ var CascaderFilter = function CascaderFilter(_ref2) {
118
118
  return v.value;
119
119
  });
120
120
  }, [checkedValues]);
121
-
122
- var onChange = function onChange(item, selectedOptions) {
123
- console.log('item', item, selectedOptions);
124
- var nValue = [];
125
-
126
- if (selectedOptions.length === 1) {
127
- nValue = selectedOptions[0][1] ? [selectedOptions[0][1]] : selectedOptions[0][0].children;
128
- }
129
-
130
- if (selectedOptions.length > 1) {
131
- var arr = selectedOptions.map(function (v) {
132
- return v[1] ? v[1] : v[0].children;
121
+ var defaultValue = (0, _react.useMemo)(function () {
122
+ var flatKeys = function flatKeys(arr) {
123
+ return arr.map(function (v) {
124
+ return v.value;
133
125
  });
134
- nValue = arr.flat(2);
135
- }
126
+ };
136
127
 
137
- console.log('nValue', nValue);
138
- setCheckedValues(nValue); // setFilterValue(nValue);
139
- // if (!item.length) {
140
- // setCheckedValues(itemProps.multiple ? [] : '');
141
- // setFilterValue(undefined);
142
- // return;
143
- // }
144
- // if (itemProps.multiple) {
145
- // const arr = [];
146
- // selectedOptions.map((vals) => {
147
- // return vals.length > 1
148
- // ? arr.push(vals.map((v) => v.label).join('/'))
149
- // : vals[0].children.map((v) => arr.push(`${vals[0].label}/${v.label}`));
150
- // });
151
- // const showLabel = arr.length < 3 ? arr.join('、') : `${arr[0]}、+${arr.length}`;
152
- // setCheckedValues(item);
153
- // } else {
154
- // setFilterValue(item);
155
- // setCheckedValues(item);
156
- // }
128
+ var nKey = filterValue.map(function (v) {
129
+ return Array.isArray(v) ? flatKeys(v) : v.value;
130
+ });
131
+ return nKey;
132
+ }, [filterValue]);
133
+
134
+ var onChange = function onChange(item, selectedOptions) {
135
+ console.log('item', item, '===', selectedOptions);
136
+ setCheckedValues(selectedOptions);
157
137
  };
158
138
 
159
139
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_cascader.default, {
160
140
  multiple: true,
161
- options: options // value={checkedValues}
162
- ,
141
+ options: options,
163
142
  onChange: onChange,
143
+ defaultValue: defaultValue,
164
144
  open: visible,
165
- getPopupContainer: function getPopupContainer(triggerNode) {
166
- return triggerNode;
167
- },
168
145
  dropdownRender: function dropdownRender(dom) {
169
146
  return /*#__PURE__*/_react.default.createElement(DropdownRender, {
170
147
  dom: dom,
@@ -174,8 +151,7 @@ var CascaderFilter = function CascaderFilter(_ref2) {
174
151
  setCheckedValues: setCheckedValues,
175
152
  setOptions: setOptions
176
153
  });
177
- } // onDropdownVisibleChange={(v) => setVisible(v)}
178
-
154
+ }
179
155
  }, /*#__PURE__*/_react.default.createElement("div", null)));
180
156
  };
181
157
 
@@ -19,8 +19,6 @@ var _react = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _linkmoreDesign = require("linkmore-design");
21
21
 
22
- var _moment = _interopRequireDefault(require("moment"));
23
-
24
22
  var _utils = require("../utils");
25
23
 
26
24
  var RangePicker = function RangePicker(_ref) {
@@ -29,10 +27,7 @@ var RangePicker = function RangePicker(_ref) {
29
27
  onChange = _ref.onChange,
30
28
  itemProps = _ref.itemProps,
31
29
  visible = _ref.visible;
32
- var value = (0, _react.useMemo)(function () {
33
- return filterValue ? [(0, _moment.default)(filterValue[0]), (0, _moment.default)(filterValue[1])] : null;
34
- }, [filterValue]); // 最近的时间段, 值为JSON转换后的字符串
35
-
30
+ // 最近的时间段, 值为JSON转换后的字符串
36
31
  var ranges = (0, _react.useMemo)(function () {
37
32
  return Object.entries((0, _utils.getRanges)()).map(function (item, i) {
38
33
  return {
@@ -44,7 +39,7 @@ var RangePicker = function RangePicker(_ref) {
44
39
  }, []); // 选中时间段的触发
45
40
 
46
41
  var handleOnChange = function handleOnChange(dates, dateStrings) {
47
- onChange(dates, getIsHas(dateStrings.filter(function (v) {
42
+ onChange(dates, (0, _utils.getIsHas)(dateStrings.filter(function (v) {
48
43
  return !!v;
49
44
  })) ? dateStrings : null);
50
45
  }; // 最近的时间触发事件
@@ -92,7 +87,6 @@ var RangePicker = function RangePicker(_ref) {
92
87
  width: 210
93
88
  }
94
89
  }, itemProps, {
95
- value: value,
96
90
  onChange: handleOnChange,
97
91
  open: visible,
98
92
  panelRender: panelRender,
@@ -100,7 +94,7 @@ var RangePicker = function RangePicker(_ref) {
100
94
  bordered: false,
101
95
  size: "small",
102
96
  inputReadOnly: true
103
- }), /*#__PURE__*/_react.default.createElement("div", null)));
97
+ })));
104
98
  }; // 日期范围选择器
105
99
 
106
100
 
@@ -110,18 +104,16 @@ var DatePickerFilter = function DatePickerFilter(_ref2) {
110
104
  var filterValue = instance.filterValue,
111
105
  setFilterValue = instance.setFilterValue,
112
106
  visible = instance.visible;
113
- var props = itemProps.props,
114
- dateType = itemProps.dateType; // 对日期格式的转换, 日期组件仅接收moment格式
115
-
116
- var value = (0, _react.useMemo)(function () {
117
- return filterValue ? (0, _moment.default)(filterValue) : null;
118
- }, [filterValue]); // 选中时间段的触发
107
+ var _itemProps$props = itemProps.props,
108
+ props = _itemProps$props === void 0 ? {
109
+ picker: 'date'
110
+ } : _itemProps$props; // 选中时间段的触发
119
111
 
120
112
  var onChange = function onChange(dates, dateStrings) {
121
- setFilterValue(getIsHas(dateStrings) ? dateStrings : null);
113
+ setFilterValue((0, _utils.getIsHas)(dateStrings) ? dateStrings : null);
122
114
  };
123
115
 
124
- if (dateType === 'rangePicker') {
116
+ if (['range', 'rangePicker'].includes(itemProps.dateType || itemProps.datetype)) {
125
117
  return /*#__PURE__*/_react.default.createElement(RangePicker, {
126
118
  filterValue: filterValue,
127
119
  setFilterValue: setFilterValue,
@@ -134,13 +126,13 @@ var DatePickerFilter = function DatePickerFilter(_ref2) {
134
126
  return /*#__PURE__*/_react.default.createElement(_datePicker.default, (0, _extends2.default)({
135
127
  placeholder: "\u9009\u62E9\u65F6\u95F4"
136
128
  }, props, {
137
- value: value,
138
129
  onChange: onChange,
139
130
  open: visible,
140
131
  bordered: false,
141
132
  size: "small",
142
- inputReadOnly: true
143
- }), /*#__PURE__*/_react.default.createElement("div", null));
133
+ inputReadOnly: true,
134
+ dropdownClassName: "lm_filter_dropdown_picker"
135
+ }));
144
136
  };
145
137
 
146
138
  var _default = DatePickerFilter;
@@ -19,6 +19,8 @@ var _classnames = _interopRequireDefault(require("classnames"));
19
19
 
20
20
  var _linkmoreDesign = require("linkmore-design");
21
21
 
22
+ var _icons = require("@ant-design/icons");
23
+
22
24
  var _InputFilter = _interopRequireDefault(require("./InputFilter"));
23
25
 
24
26
  var _SelectFilter = _interopRequireDefault(require("./SelectFilter"));
@@ -61,13 +63,75 @@ var FilterControl = function FilterControl(_ref) {
61
63
  return widgets[type] || null;
62
64
  };
63
65
 
64
- var getLabel = function getLabel(val) {
66
+ var getPlacehodler = function getPlacehodler(props) {
67
+ var type = props.type,
68
+ dateType = props.dateType,
69
+ itemProps = props.props; // 日期显示的处理
70
+
71
+ if (['date'].includes(type)) {
72
+ if (['range', 'rangePicker'].includes(props.dateType || props.datetype)) {
73
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "\u5F00\u59CB\u65E5\u671F", /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
74
+ type: "lmweb-swap-right",
75
+ style: {
76
+ fontSize: 14
77
+ }
78
+ }), "\u7ED3\u675F\u65E5\u671F", /*#__PURE__*/_react.default.createElement(_icons.CalendarOutlined, {
79
+ style: {
80
+ fontSize: 12
81
+ }
82
+ }));
83
+ }
84
+
85
+ var placeholder = {
86
+ 'week': '周',
87
+ 'month': '月份',
88
+ 'quarter': '季度',
89
+ 'year': '年份'
90
+ };
91
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "\u9009\u62E9", placeholder[itemProps === null || itemProps === void 0 ? void 0 : itemProps.picker] || '日期', /*#__PURE__*/_react.default.createElement(_icons.CalendarOutlined, {
92
+ style: {
93
+ fontSize: 12
94
+ }
95
+ }));
96
+ }
97
+
98
+ return '全部';
99
+ }; // 根据不同的类型展示文本内容
100
+
101
+
102
+ var getLabel = function getLabel(filterValue, item) {
103
+ var _val;
104
+
105
+ var val = filterValue;
106
+ var type = item.type; // 不存在筛选时
107
+
65
108
  if (!(0, _utils.getIsHas)(val)) {
66
- return '全部';
109
+ return getPlacehodler(item);
67
110
  } // 存在筛选数据时
68
111
 
69
112
 
70
113
  if (Array.isArray(val)) {
114
+ // 日期
115
+ if (['date'].includes(type)) {
116
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, val[0], /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
117
+ type: "lmweb-swap-right",
118
+ style: {
119
+ fontSize: 14,
120
+ color: 'var(--text-color)'
121
+ }
122
+ }), val[1]);
123
+ } // 级联数据转换平级结构
124
+
125
+
126
+ if (['cascader'].includes(type)) {
127
+ var _filterValue$map;
128
+
129
+ val = (_filterValue$map = filterValue.map(function (v) {
130
+ return v[1] ? v[1] : v[0].children;
131
+ })) === null || _filterValue$map === void 0 ? void 0 : _filterValue$map.flat(2);
132
+ } // 多选
133
+
134
+
71
135
  switch (val.length) {
72
136
  case 1:
73
137
  return val[0].label;
@@ -78,12 +142,18 @@ var getLabel = function getLabel(val) {
78
142
  default:
79
143
  return "".concat(val[0].label, "\u3001+").concat(val.length - 1, "...");
80
144
  }
81
- }
145
+ } // 输入框
146
+
147
+
148
+ if (['input', 'date'].includes(type)) {
149
+ return val;
150
+ } // 单选框
151
+
82
152
 
83
- return (val === null || val === void 0 ? void 0 : val.label) || val;
153
+ return (_val = val) === null || _val === void 0 ? void 0 : _val.label;
84
154
  };
85
155
  /*
86
- * 样式控制
156
+ * css样式控制
87
157
  * expand: 展开样式
88
158
  * active: 选中样式
89
159
  */
@@ -147,15 +217,12 @@ var DropdownFilter = /*#__PURE__*/_react.default.memo(function (_ref2) {
147
217
  className: "filter_item_label"
148
218
  }, item === null || item === void 0 ? void 0 : item.title, ":"), /*#__PURE__*/_react.default.createElement("div", {
149
219
  className: "filter_item_value"
150
- }, /*#__PURE__*/_react.default.createElement("span", {
151
- className: "checked"
152
- }, getLabel(filterValue))), /*#__PURE__*/_react.default.createElement("div", {
153
- className: "filter_item_icon"
154
- }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
220
+ }, getLabel(filterValue, item)), /*#__PURE__*/_react.default.createElement("div", {
221
+ className: "filter_item_icon addon_after"
222
+ }, item.type !== 'date' || active ? /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
155
223
  type: active ? 'lmweb-close-circle-fill' : 'lmweb-down',
156
- className: "addonAfter",
157
224
  onClick: handleClear
158
- }))));
225
+ }) : null)));
159
226
  });
160
227
 
161
228
  var _default = DropdownFilter;
@@ -31,8 +31,10 @@ var _excluded = ["instance", "item", "value", "onChange", "options"],
31
31
  * 其余参数皆为单独使用时传入
32
32
  */
33
33
  var FilterControl = /*#__PURE__*/_react.default.memo(function (props) {
34
- var instance = props.instance,
35
- item = props.item,
34
+ var _props$instance = props.instance,
35
+ instance = _props$instance === void 0 ? {} : _props$instance,
36
+ _props$item = props.item,
37
+ item = _props$item === void 0 ? {} : _props$item,
36
38
  value = props.value,
37
39
  onChange = props.onChange,
38
40
  options = props.options,
@@ -58,24 +60,65 @@ var FilterControl = /*#__PURE__*/_react.default.memo(function (props) {
58
60
 
59
61
  var transformFilterValue = (0, _react.useMemo)(function () {
60
62
  // 检查是否受控模式
61
- var nValue = value || aliveValue;
63
+ var checkedValue = value || aliveValue;
62
64
  var getOptions = (resetItem === null || resetItem === void 0 ? void 0 : resetItem.data) || [];
65
+ var nValue = checkedValue;
63
66
 
64
- if (!Array.isArray((0, _utils.getValueForType)(resetItem.type))) {
65
- return (getOptions === null || getOptions === void 0 ? void 0 : getOptions.find(function (v) {
66
- return v.value === nValue;
67
- })) || '';
68
- } else {
69
- return (getOptions === null || getOptions === void 0 ? void 0 : getOptions.filter(function (v) {
70
- return nValue.includes(v.value);
67
+ if (['select'].includes(resetItem.type)) {
68
+ nValue = getOptions === null || getOptions === void 0 ? void 0 : getOptions.find(function (v) {
69
+ return v.value === checkedValue;
70
+ });
71
+ }
72
+
73
+ if (['checkbox'].includes(resetItem.type)) {
74
+ nValue = (getOptions === null || getOptions === void 0 ? void 0 : getOptions.filter(function (v) {
75
+ return checkedValue.includes(v.value);
71
76
  })) || [];
72
77
  }
78
+
79
+ if (['cascader'].includes(resetItem.type)) {
80
+ // 查询值
81
+ // const getRow = (val, arr) => {
82
+ // let nRow = '';
83
+ // arr.forEach(item => {
84
+ // nRow = item.value === val ? item : getRow(val, item.children);
85
+ // })
86
+ // return nRow;
87
+ // };
88
+ // checkedValue?.map(v => {
89
+ // return Array.isArray(v) ? getRow(v) : getRow(v);
90
+ // })
91
+ return '';
92
+ }
93
+
94
+ return nValue;
73
95
  }, [value, aliveValue, resetItem.data, resetItem.type]); // 单独使用时抛出选中的值: val => obj || Array
74
96
 
75
97
  var handleChange = function handleChange(val) {
76
- var nValue = Array.isArray(val) ? val.map(function (v) {
77
- return v.value;
78
- }) : val.value;
98
+ var nValue = val;
99
+
100
+ if (['cascader'].includes(resetItem.type)) {
101
+ var flatKeys = function flatKeys(arr) {
102
+ return arr.map(function (v) {
103
+ return v.value;
104
+ });
105
+ };
106
+
107
+ nValue = val.map(function (v) {
108
+ return Array.isArray(v) ? flatKeys(v) : v.value;
109
+ });
110
+ }
111
+
112
+ if (['select'].includes(resetItem.type)) {
113
+ nValue = val.value;
114
+ }
115
+
116
+ if (['checkbox'].includes(resetItem.type)) {
117
+ nValue = val.map(function (v) {
118
+ return v.value;
119
+ });
120
+ }
121
+
79
122
  setAliveValue === null || setAliveValue === void 0 ? void 0 : setAliveValue(nValue);
80
123
  onChange === null || onChange === void 0 ? void 0 : onChange(nValue);
81
124
  }; // 重组instance
@@ -11,8 +11,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/es
11
11
 
12
12
  var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
13
13
 
14
- var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectDestructuringEmpty"));
15
-
16
14
  var _utils = require("../utils");
17
15
 
18
16
  // 核心参数集合
@@ -20,7 +18,7 @@ var CoreOptions = function CoreOptions(_ref) {
20
18
  var state = _ref.state,
21
19
  dispatch = _ref.dispatch,
22
20
  props = _ref.props;
23
- (0, _objectDestructuringEmpty2.default)(props); // 设置筛选的值 item => Object || Array => [{label: '', value: ''}, ...]
21
+ var onChange = props.onChange; // 设置筛选的值 item => Object || Array => [{label: '', value: ''}, ...]
24
22
 
25
23
  var setFilterValue = function setFilterValue(item, field) {
26
24
  var basicFilter = (0, _objectSpread3.default)((0, _objectSpread3.default)({}, state.basicFilter), {}, (0, _defineProperty2.default)({}, field, item));
@@ -34,6 +32,27 @@ var CoreOptions = function CoreOptions(_ref) {
34
32
  type: 'changeBasicFilter',
35
33
  basicFilter: basicFilter
36
34
  });
35
+
36
+ var formatVK = function formatVK() {
37
+ var obj = {};
38
+ Object.entries(basicFilter).forEach(function (item) {
39
+ if (Array.isArray(item[1])) {
40
+ obj[item[0]] = item[1].map(function (v) {
41
+ return v.value;
42
+ });
43
+ return;
44
+ }
45
+
46
+ obj[item[0]] = item[1].value;
47
+ });
48
+ return obj;
49
+ }; // 触发外部事件
50
+
51
+
52
+ onChange === null || onChange === void 0 ? void 0 : onChange({
53
+ basicFilter: basicFilter,
54
+ formatVK: formatVK()
55
+ });
37
56
  }; // 根据字段查找过滤的数据, 不存在时返回默认值
38
57
 
39
58
 
@@ -13,12 +13,14 @@ var _lodash = require("lodash");
13
13
  var useDelayedFn = function useDelayedFn() {
14
14
  var wait = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 200;
15
15
  var delayedQuery = (0, _react.useCallback)((0, _lodash.debounce)(function (fn) {
16
- if (typeof fn === 'function') {
17
- fn === null || fn === void 0 ? void 0 : fn();
18
- } else {
19
- fn;
20
- }
21
- }, wait), []);
16
+ typeof fn === 'function' ? fn === null || fn === void 0 ? void 0 : fn() : fn;
17
+ }, wait), []); // 防止异步任务数导致的内存泄漏
18
+
19
+ (0, _react.useEffect)(function () {
20
+ return function () {
21
+ delayedQuery.cancel();
22
+ };
23
+ }, []);
22
24
  return delayedQuery;
23
25
  };
24
26
 
@@ -0,0 +1,8 @@
1
+ export declare const DefaultLocalization: {
2
+ globalQuery: {
3
+ filter: any[];
4
+ };
5
+ filterQuery: {
6
+ filter: any[];
7
+ };
8
+ };
@@ -0,0 +1,12 @@
1
+ // export interface LM_Localization {
2
+ // fieldName: string,
3
+ // operator: number,
4
+ // }
5
+ export var DefaultLocalization = {
6
+ globalQuery: {
7
+ filter: []
8
+ },
9
+ filterQuery: {
10
+ filter: []
11
+ }
12
+ };
@@ -10,6 +10,9 @@
10
10
  .lm_filter_wrapper .lm_filter_container .lm_filter .lm_filter_search {
11
11
  max-width: 140px;
12
12
  }
13
+ .lm_filter_wrapper .lm_filter_container .lm_filter .lm_filter_complex {
14
+ display: inline-flex;
15
+ }
13
16
  .lm_filter_basic_item {
14
17
  display: inline-flex;
15
18
  align-items: center;
@@ -30,6 +33,9 @@
30
33
  background-color: var(--color-4);
31
34
  }
32
35
  .lm_filter_basic_item .filter_item_value {
36
+ display: inline-flex;
37
+ align-items: center;
38
+ gap: 4px;
33
39
  color: var(--text-color);
34
40
  transition: 0.3s;
35
41
  }
@@ -38,18 +44,29 @@
38
44
  color: var(--text-color);
39
45
  transition: 0.3s;
40
46
  }
41
- .lm_filter_basic_item .filter_item_icon:hover {
42
- color: var(--primary-color);
47
+ .lm_filter_basic_item .filter_item_icon.addon_before {
48
+ color: var(--font-color);
43
49
  }
44
- .lm_filter_basic_item.expand .filter_item_icon {
50
+ .lm_filter_basic_item.expand .filter_item_icon.addon_after {
45
51
  transform: rotateX(180deg);
46
52
  }
47
53
  .lm_filter_basic_item.active .filter_item_value {
48
54
  color: var(--primary-color);
49
55
  }
50
- .lm_filter_basic_item.active .filter_item_icon {
56
+ .lm_filter_basic_item.active .filter_item_icon.addon_after {
51
57
  transform: rotateX(180deg);
52
58
  }
59
+ .lm_filter_basic_item.active.lm_filter_complex_item .filter_item_icon,
60
+ .lm_filter_basic_item.active.lm_filter_complex_item .filter_item_label {
61
+ color: var(--primary-color);
62
+ }
63
+ .ant-dropdown.filter_dropdown_container_cascader > div {
64
+ transform: translateY(-4px);
65
+ }
66
+ .ant-dropdown.filter_dropdown_container_date .ant-picker {
67
+ visibility: hidden;
68
+ transform: translateY(-28px);
69
+ }
53
70
  .ant-dropdown .filter_dropdown {
54
71
  display: flex;
55
72
  flex-flow: column;
@@ -187,3 +204,9 @@
187
204
  .ant-dropdown .filter_dropdown .ant-checkbox-wrapper .ant-checkbox {
188
205
  top: initial;
189
206
  }
207
+ .lm_filter_dropdown_picker {
208
+ padding: 0 !important;
209
+ }
210
+ .lm_filter_dropdown_picker .ant-picker-range-arrow {
211
+ display: none;
212
+ }
@@ -5,11 +5,14 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.getFlat = getFlat;
8
9
  exports.getIsHas = getIsHas;
9
10
  exports.getRanges = getRanges;
10
11
  exports.getValueForType = getValueForType;
11
12
  exports.uniqueFunc = uniqueFunc;
12
13
 
14
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
15
+
13
16
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/typeof"));
14
17
 
15
18
  var _dayjs = _interopRequireDefault(require("dayjs"));
@@ -52,4 +55,17 @@ function getRanges() {
52
55
  '近一月': [(0, _dayjs.default)().subtract(1, 'month').format('YYYY-MM-DD'), (0, _dayjs.default)().format('YYYY-MM-DD')],
53
56
  '近一年': [(0, _dayjs.default)().subtract(1, 'year').format('YYYY-MM-DD'), (0, _dayjs.default)().format('YYYY-MM-DD')]
54
57
  };
58
+ }
59
+
60
+ function getFlat(arr) {
61
+ var nValue = [];
62
+ arr.forEach(function (item) {
63
+ if (item.length > 1) {
64
+ var suf = item.splice(1);
65
+ getFlat(suf);
66
+ } else {
67
+ nValue.push.apply(nValue, (0, _toConsumableArray2.default)(item[0].children));
68
+ }
69
+ });
70
+ return nValue;
55
71
  }
@@ -25,7 +25,10 @@ var _filterFns = _interopRequireDefault(require("../filterFns"));
25
25
  var reducer = function reducer(state, action) {
26
26
  var basicFilter = action.basicFilter,
27
27
  resize = action.resize,
28
- rows = action.rows;
28
+ rows = action.rows,
29
+ complexDrawer = action.complexDrawer,
30
+ valueDrawer = action.valueDrawer,
31
+ complexFilter = action.complexFilter;
29
32
 
30
33
  switch (action.type) {
31
34
  case 'changeBasicFilter':
@@ -43,16 +46,69 @@ var reducer = function reducer(state, action) {
43
46
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
44
47
  resize: resize
45
48
  });
49
+ // 高级筛选
50
+
51
+ case 'changeComplexFilter':
52
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
53
+ complexFilter: complexFilter
54
+ });
55
+
56
+ case 'changeComplexDrawer':
57
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
58
+ complexDrawer: complexDrawer
59
+ });
60
+
61
+ case 'changeValueDrawer':
62
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
63
+ valueDrawer: valueDrawer
64
+ });
65
+
66
+ case 'reset':
67
+ // 一键清空
68
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
69
+ basicFilter: {}
70
+ });
46
71
 
47
72
  default:
48
73
  throw new Error();
49
74
  }
50
- }; // 仅在初始化时触发一次
51
-
52
-
53
- var getInitialState = function getInitialState(props) {
75
+ }; // const getRows = ({ fieldName, value }, arr) => {
76
+ // const findItem = arr.find(item => {
77
+ // return item.field === fieldName;
78
+ // })
79
+ // switch (findItem.type) {
80
+ // case 'input':
81
+ // return value;
82
+ // case 'select':
83
+ // return findItem.data.find(v => v.value === value);
84
+ // case 'checkbox':
85
+ // return findItem.data.find(v => [value].includes(v.value));
86
+ // default:
87
+ // break;
88
+ // }
89
+ // };
90
+ // 仅在初始化时触发一次
91
+
92
+
93
+ var getInitialState = function getInitialState(_ref) {
94
+ var localization = _ref.localization;
95
+ var globalQuery = localization.globalQuery,
96
+ filterQuery = localization.filterQuery;
97
+ var basicFilter = {};
98
+ filterQuery.filter.forEach(function (item) {
99
+ basicFilter[item.fieldName] = item.value;
100
+ });
54
101
  return {
55
- basicFilter: {}
102
+ basicFilter: basicFilter,
103
+ complexFilter: {},
104
+ complexDrawer: {
105
+ visible: false,
106
+ data: {}
107
+ },
108
+ valueDrawer: {
109
+ visible: false,
110
+ data: {}
111
+ }
56
112
  };
57
113
  };
58
114