linkmore-design 1.0.55 → 1.0.58

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 (192) hide show
  1. package/dist/Button/index.d.ts +4 -0
  2. package/dist/CardTable/LmCardTable.d.ts +1 -0
  3. package/dist/CardTable/card/PictureTextRowOperate.d.ts +7 -0
  4. package/dist/CustomTableOption/cardSort.d.ts +4 -0
  5. package/dist/CustomTableOption/index.d.ts +1 -0
  6. package/dist/DatePicker/PickerButton.d.ts +2 -0
  7. package/dist/DatePicker/PickerTag.d.ts +2 -0
  8. package/dist/DatePicker/demos/basic.d.ts +2 -0
  9. package/dist/DatePicker/generatePicker/generateRangePicker.d.ts +4 -0
  10. package/dist/DatePicker/generatePicker/generateSinglePicker.d.ts +14 -0
  11. package/dist/DatePicker/generatePicker/index.d.ts +106 -0
  12. package/dist/DatePicker/generatePicker/interface.d.ts +12 -0
  13. package/dist/DatePicker/index.d.ts +17 -0
  14. package/dist/DatePicker/style/index.d.ts +1 -0
  15. package/dist/DatePicker/util.d.ts +14 -0
  16. package/dist/Empty/demos/custom.d.ts +2 -0
  17. package/dist/Empty/empty.d.ts +2 -0
  18. package/dist/Empty/index.d.ts +18 -3
  19. package/dist/Empty/simple.d.ts +2 -0
  20. package/dist/LmEditTable/demos/basic copy.d.ts +2 -0
  21. package/dist/LmFilter/Controls/CheckboxTags.d.ts +6 -0
  22. package/dist/LmFilter/Controls/index.d.ts +2 -0
  23. package/dist/LmFilter/LmFilter.d.ts +4 -1
  24. package/dist/LmFilter/complexFilter/drawer.d.ts +4 -0
  25. package/dist/LmFilter/complexFilter/index.d.ts +3 -1
  26. package/dist/LmFilter/complexFilter/valueDrawer.d.ts +4 -0
  27. package/dist/LmFilter/localization.d.ts +8 -0
  28. package/dist/LmFilter/utils.d.ts +1 -1
  29. package/dist/Switch/demos/table.d.ts +2 -0
  30. package/dist/Switch/index.d.ts +2 -1
  31. package/dist/_util/motion.d.ts +8 -0
  32. package/dist/_util/statusUtils.d.ts +6 -0
  33. package/dist/_util/type.d.ts +9 -0
  34. package/dist/_util/warning.d.ts +6 -0
  35. package/dist/index.d.ts +3 -0
  36. package/dist/index.umd.js +10609 -284
  37. package/dist/index.umd.min.js +6 -6
  38. package/es/Button/index.d.ts +4 -0
  39. package/es/Button/index.js +1 -1
  40. package/es/CardTable/LmCardTable.js +4 -1
  41. package/es/CardTable/body/TableBodyCell.js +3 -0
  42. package/es/CardTable/card/PictureTextRow.js +19 -51
  43. package/es/CardTable/card/PictureTextRowOperate.js +130 -0
  44. package/es/CardTable/style/index.css +165 -10
  45. package/es/CustomTableOption/cardSort.d.ts +4 -0
  46. package/es/CustomTableOption/cardSort.js +219 -0
  47. package/es/CustomTableOption/columnsSort.js +2 -4
  48. package/es/CustomTableOption/filterSort.js +0 -3
  49. package/es/CustomTableOption/index.d.ts +1 -0
  50. package/es/CustomTableOption/index.js +37 -13
  51. package/es/CustomTableOption/style/index.css +3 -0
  52. package/es/DatePicker/PickerButton.d.ts +2 -0
  53. package/es/DatePicker/PickerButton.js +8 -0
  54. package/es/DatePicker/PickerTag.d.ts +2 -0
  55. package/es/DatePicker/PickerTag.js +7 -0
  56. package/es/DatePicker/generatePicker/generateRangePicker.d.ts +4 -0
  57. package/es/DatePicker/generatePicker/generateRangePicker.js +142 -0
  58. package/es/DatePicker/generatePicker/generateSinglePicker.d.ts +14 -0
  59. package/es/DatePicker/generatePicker/generateSinglePicker.js +170 -0
  60. package/es/DatePicker/generatePicker/index.d.ts +106 -0
  61. package/es/DatePicker/generatePicker/index.js +84 -0
  62. package/es/DatePicker/generatePicker/interface.d.ts +12 -0
  63. package/es/DatePicker/generatePicker/interface.js +1 -0
  64. package/es/DatePicker/index.d.ts +17 -0
  65. package/es/DatePicker/index.js +7 -0
  66. package/es/DatePicker/style/index.css +505 -0
  67. package/es/DatePicker/style/index.d.ts +1 -0
  68. package/es/DatePicker/style/index.js +1 -0
  69. package/es/DatePicker/util.d.ts +14 -0
  70. package/es/DatePicker/util.js +111 -0
  71. package/es/Empty/empty.d.ts +2 -0
  72. package/es/Empty/empty.js +55 -0
  73. package/es/Empty/index.d.ts +18 -3
  74. package/es/Empty/index.js +100 -1
  75. package/es/Empty/simple.d.ts +2 -0
  76. package/es/Empty/simple.js +36 -0
  77. package/es/Empty/style/index.css +44 -0
  78. package/es/IconFont/index.js +1 -1
  79. package/es/LmEditTable/DragHandle.js +1 -1
  80. package/es/LmEditTable/EditTable.js +27 -35
  81. package/es/LmFilter/Controls/CheckboxTags.js +53 -0
  82. package/es/LmFilter/Controls/index.js +77 -0
  83. package/es/LmFilter/LmFilter.js +17 -5
  84. package/es/LmFilter/complexFilter/drawer.js +362 -0
  85. package/es/LmFilter/complexFilter/index.js +50 -3
  86. package/es/LmFilter/complexFilter/valueDrawer.js +238 -0
  87. package/es/LmFilter/components/CascaderFilter.js +19 -32
  88. package/es/LmFilter/components/CheckboxFilter.js +13 -21
  89. package/es/LmFilter/components/DateFilter.js +50 -22
  90. package/es/LmFilter/components/DropdownFIlter.js +45 -25
  91. package/es/LmFilter/components/SelectFilter.js +2 -3
  92. package/es/LmFilter/components/index.js +5 -61
  93. package/es/LmFilter/filterFns/index.js +22 -3
  94. package/es/LmFilter/localization.d.ts +8 -0
  95. package/es/LmFilter/localization.js +12 -0
  96. package/es/LmFilter/style/style.css +13 -5
  97. package/es/LmFilter/utils.js +63 -14
  98. package/es/LmFilter/wrapper/FilterRoot.js +40 -3
  99. package/es/LmTable/Table.js +15 -8
  100. package/es/QuickMenu/index.js +5 -3
  101. package/es/Switch/index.d.ts +2 -1
  102. package/es/Switch/index.js +33 -1
  103. package/es/Switch/style/index.css +41 -0
  104. package/es/_util/motion.d.ts +8 -0
  105. package/es/_util/motion.js +60 -0
  106. package/es/_util/statusUtils.d.ts +6 -0
  107. package/es/_util/statusUtils.js +12 -0
  108. package/es/_util/type.d.ts +9 -0
  109. package/es/_util/type.js +15 -0
  110. package/es/_util/warning.d.ts +6 -0
  111. package/es/_util/warning.js +17 -0
  112. package/es/index.d.ts +3 -0
  113. package/es/index.js +2 -1
  114. package/es/message/index.d.ts +5 -5
  115. package/lib/Button/index.d.ts +4 -0
  116. package/lib/Button/index.js +1 -1
  117. package/lib/CardTable/LmCardTable.js +4 -1
  118. package/lib/CardTable/body/TableBodyCell.js +3 -0
  119. package/lib/CardTable/card/PictureTextRow.js +19 -51
  120. package/lib/CardTable/card/PictureTextRowOperate.js +130 -0
  121. package/lib/CardTable/style/index.css +165 -10
  122. package/lib/CustomTableOption/cardSort.d.ts +4 -0
  123. package/lib/CustomTableOption/cardSort.js +239 -0
  124. package/lib/CustomTableOption/columnsSort.js +2 -4
  125. package/lib/CustomTableOption/filterSort.js +0 -3
  126. package/lib/CustomTableOption/index.d.ts +1 -0
  127. package/lib/CustomTableOption/index.js +38 -13
  128. package/lib/CustomTableOption/style/index.css +3 -0
  129. package/lib/DatePicker/PickerButton.d.ts +2 -0
  130. package/lib/DatePicker/PickerButton.js +19 -0
  131. package/lib/DatePicker/PickerTag.d.ts +2 -0
  132. package/lib/DatePicker/PickerTag.js +18 -0
  133. package/lib/DatePicker/generatePicker/generateRangePicker.d.ts +4 -0
  134. package/lib/DatePicker/generatePicker/generateRangePicker.js +168 -0
  135. package/lib/DatePicker/generatePicker/generateSinglePicker.d.ts +14 -0
  136. package/lib/DatePicker/generatePicker/generateSinglePicker.js +196 -0
  137. package/lib/DatePicker/generatePicker/index.d.ts +106 -0
  138. package/lib/DatePicker/generatePicker/index.js +102 -0
  139. package/lib/DatePicker/generatePicker/interface.d.ts +12 -0
  140. package/lib/DatePicker/generatePicker/interface.js +5 -0
  141. package/lib/DatePicker/index.d.ts +17 -0
  142. package/lib/DatePicker/index.js +21 -0
  143. package/lib/DatePicker/style/index.css +505 -0
  144. package/lib/DatePicker/style/index.d.ts +1 -0
  145. package/lib/DatePicker/style/index.js +3 -0
  146. package/lib/DatePicker/util.d.ts +14 -0
  147. package/lib/DatePicker/util.js +122 -0
  148. package/lib/Empty/empty.d.ts +2 -0
  149. package/lib/Empty/empty.js +66 -0
  150. package/lib/Empty/index.d.ts +18 -3
  151. package/lib/Empty/index.js +107 -1
  152. package/lib/Empty/simple.d.ts +2 -0
  153. package/lib/Empty/simple.js +47 -0
  154. package/lib/Empty/style/index.css +44 -0
  155. package/lib/IconFont/index.js +1 -1
  156. package/lib/LmEditTable/DragHandle.js +1 -1
  157. package/lib/LmEditTable/EditTable.js +26 -36
  158. package/lib/LmFilter/Controls/CheckboxTags.js +53 -0
  159. package/lib/LmFilter/Controls/index.js +77 -0
  160. package/lib/LmFilter/LmFilter.js +17 -5
  161. package/lib/LmFilter/complexFilter/drawer.js +362 -0
  162. package/lib/LmFilter/complexFilter/index.js +50 -3
  163. package/lib/LmFilter/complexFilter/valueDrawer.js +238 -0
  164. package/lib/LmFilter/components/CascaderFilter.js +19 -32
  165. package/lib/LmFilter/components/CheckboxFilter.js +13 -21
  166. package/lib/LmFilter/components/DateFilter.js +50 -22
  167. package/lib/LmFilter/components/DropdownFIlter.js +45 -25
  168. package/lib/LmFilter/components/SelectFilter.js +2 -3
  169. package/lib/LmFilter/components/index.js +5 -61
  170. package/lib/LmFilter/filterFns/index.js +22 -3
  171. package/lib/LmFilter/localization.d.ts +8 -0
  172. package/lib/LmFilter/localization.js +19 -0
  173. package/lib/LmFilter/style/style.css +13 -5
  174. package/lib/LmFilter/utils.js +63 -14
  175. package/lib/LmFilter/wrapper/FilterRoot.js +40 -3
  176. package/lib/LmTable/Table.js +15 -8
  177. package/lib/QuickMenu/index.js +4 -2
  178. package/lib/Switch/index.d.ts +2 -1
  179. package/lib/Switch/index.js +34 -1
  180. package/lib/Switch/style/index.css +41 -0
  181. package/lib/_util/motion.d.ts +8 -0
  182. package/lib/_util/motion.js +71 -0
  183. package/lib/_util/statusUtils.d.ts +6 -0
  184. package/lib/_util/statusUtils.js +29 -0
  185. package/lib/_util/type.d.ts +9 -0
  186. package/lib/_util/type.js +27 -0
  187. package/lib/_util/warning.d.ts +6 -0
  188. package/lib/_util/warning.js +35 -0
  189. package/lib/index.d.ts +3 -0
  190. package/lib/index.js +9 -1
  191. package/lib/message/index.d.ts +5 -5
  192. package/package.json +1 -1
@@ -21,14 +21,15 @@ var _linkmoreDesign = require("linkmore-design");
21
21
 
22
22
  var _InputSearchClose = _interopRequireDefault(require("./InputSearchClose"));
23
23
 
24
+ var _hooks = require("../hooks");
25
+
24
26
  // 重置级联弹框
25
27
  var DropdownRender = function DropdownRender(_ref) {
26
28
  var dom = _ref.dom,
27
29
  instance = _ref.instance,
28
30
  item = _ref.item,
29
31
  setOptions = _ref.setOptions,
30
- checkedValues = _ref.checkedValues,
31
- setCheckedValues = _ref.setCheckedValues;
32
+ checkedValues = _ref.checkedValues;
32
33
  var _instance$filterValue = instance.filterValue,
33
34
  filterValue = _instance$filterValue === void 0 ? [] : _instance$filterValue,
34
35
  setFilterValue = instance.setFilterValue,
@@ -37,6 +38,7 @@ var DropdownRender = function DropdownRender(_ref) {
37
38
  var _item$data = item.data,
38
39
  filters = _item$data === void 0 ? [] : _item$data;
39
40
  var inputRef = (0, _react.useRef)(null);
41
+ var delayedFn = (0, _hooks.useDelayedFn)();
40
42
 
41
43
  var handleFilter = function handleFilter(val) {
42
44
  var serachValues = filters.filter(function (v) {
@@ -48,28 +50,23 @@ var DropdownRender = function DropdownRender(_ref) {
48
50
 
49
51
  var handleSure = function handleSure() {
50
52
  setFilterValue(checkedValues);
51
- setVisible(false);
53
+ setVisible === null || setVisible === void 0 ? void 0 : setVisible(false);
52
54
  }; // 取消
53
55
 
54
56
 
55
57
  var handleReset = function handleReset() {
56
- setVisible === null || setVisible === void 0 ? void 0 : setVisible(false);
58
+ return setVisible === null || setVisible === void 0 ? void 0 : setVisible(false);
57
59
  };
58
60
 
59
61
  (0, _react.useEffect)(function () {
60
62
  if (visible) {
61
- var _inputRef$current2, _inputRef$current2$se;
63
+ delayedFn(function () {
64
+ var _inputRef$current, _inputRef$current$foc;
62
65
 
63
- setTimeout(function () {
64
- var _inputRef$current;
65
-
66
- (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus({
66
+ return (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : (_inputRef$current$foc = _inputRef$current.focus) === null || _inputRef$current$foc === void 0 ? void 0 : _inputRef$current$foc.call(_inputRef$current, {
67
67
  cursor: 'all'
68
68
  });
69
- }, 200);
70
- setCheckedValues(filterValue);
71
- (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : (_inputRef$current2$se = _inputRef$current2.setValue) === null || _inputRef$current2$se === void 0 ? void 0 : _inputRef$current2$se.call(_inputRef$current2, '');
72
- handleFilter('');
69
+ });
73
70
  }
74
71
  }, [visible]);
75
72
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -99,7 +96,9 @@ var CascaderFilter = function CascaderFilter(_ref2) {
99
96
  filterValue = _instance$filterValue2 === void 0 ? [] : _instance$filterValue2,
100
97
  setFilterValue = instance.setFilterValue,
101
98
  visible = instance.visible,
102
- setVisible = instance.setVisible;
99
+ setVisible = instance.setVisible,
100
+ _instance$children = instance.children,
101
+ children = _instance$children === void 0 ? /*#__PURE__*/_react.default.createElement("div", null) : _instance$children;
103
102
  var _itemProps$data = itemProps.data,
104
103
  filters = _itemProps$data === void 0 ? [] : _itemProps$data;
105
104
 
@@ -113,27 +112,12 @@ var CascaderFilter = function CascaderFilter(_ref2) {
113
112
  checkedValues = _useState4[0],
114
113
  setCheckedValues = _useState4[1];
115
114
 
116
- var checkedKeys = (0, _react.useMemo)(function () {
117
- return checkedValues.map(function (v) {
118
- return v.value;
119
- });
120
- }, [checkedValues]);
121
115
  var defaultValue = (0, _react.useMemo)(function () {
122
- var flatKeys = function flatKeys(arr) {
123
- return arr.map(function (v) {
124
- return v.value;
125
- });
126
- };
127
-
128
- var nKey = filterValue.map(function (v) {
129
- return Array.isArray(v) ? flatKeys(v) : v.value;
130
- });
131
- return nKey;
116
+ return filterValue;
132
117
  }, [filterValue]);
133
118
 
134
119
  var onChange = function onChange(item, selectedOptions) {
135
- console.log('item', item, '===', selectedOptions);
136
- setCheckedValues(selectedOptions);
120
+ setCheckedValues(item);
137
121
  };
138
122
 
139
123
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_cascader.default, {
@@ -142,6 +126,9 @@ var CascaderFilter = function CascaderFilter(_ref2) {
142
126
  onChange: onChange,
143
127
  defaultValue: defaultValue,
144
128
  open: visible,
129
+ onDropdownVisibleChange: function onDropdownVisibleChange(vis) {
130
+ return setVisible(vis);
131
+ },
145
132
  dropdownRender: function dropdownRender(dom) {
146
133
  return /*#__PURE__*/_react.default.createElement(DropdownRender, {
147
134
  dom: dom,
@@ -152,7 +139,7 @@ var CascaderFilter = function CascaderFilter(_ref2) {
152
139
  setOptions: setOptions
153
140
  });
154
141
  }
155
- }, /*#__PURE__*/_react.default.createElement("div", null)));
142
+ }, children));
156
143
  };
157
144
 
158
145
  var _default = CascaderFilter;
@@ -44,20 +44,16 @@ var CheckboxFilter = function CheckboxFilter(_ref) {
44
44
  setVisible = instance.setVisible;
45
45
  var _itemProps$data = itemProps.data,
46
46
  filters = _itemProps$data === void 0 ? [] : _itemProps$data;
47
- var inputRef = (0, _react.useRef)(); // 选中的数据项: [{}, {}, ...];
47
+ var inputRef = (0, _react.useRef)(); // 选中的数据项: [key, key, ...];
48
48
 
49
49
  var _useState = (0, _react.useState)(filterValue),
50
50
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
51
51
  checkedValues = _useState2[0],
52
52
  setCheckedValues = _useState2[1]; // 选中的数据的键
53
+ // const checkedKeys = useMemo(() => checkedValues.map(v => v), [checkedValues]);
54
+ // 搜索后的筛选项
53
55
 
54
56
 
55
- var checkedKeys = (0, _react.useMemo)(function () {
56
- return checkedValues.map(function (v) {
57
- return v.value;
58
- });
59
- }, [checkedValues]); // 搜索后的筛选项
60
-
61
57
  var _useState3 = (0, _react.useState)(filters),
62
58
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
63
59
  options = _useState4[0],
@@ -74,7 +70,7 @@ var CheckboxFilter = function CheckboxFilter(_ref) {
74
70
  return isAll && options.every(function (_ref2) {
75
71
  var value = _ref2.value;
76
72
  return checkedValues.some(function (v) {
77
- return v.value === value;
73
+ return v === value;
78
74
  });
79
75
  });
80
76
  }, [checkedValues, options]); // 是否半选: 存在选中的数据 && 未全选
@@ -94,20 +90,17 @@ var CheckboxFilter = function CheckboxFilter(_ref) {
94
90
 
95
91
  var onChange = function onChange(e, item) {
96
92
  e.preventDefault();
97
- var nValue = checkedValues.some(function (_ref3) {
98
- var value = _ref3.value;
93
+ var nValue = checkedValues.some(function (value) {
99
94
  return value === item.value;
100
- }) ? checkedValues.filter(function (_ref4) {
101
- var value = _ref4.value;
95
+ }) ? checkedValues.filter(function (value) {
102
96
  return value !== item.value;
103
- }) : (0, _utils.uniqueFunc)([].concat((0, _toConsumableArray2.default)(checkedValues), [item]), 'value');
97
+ }) : (0, _utils.uniqueFunc)([].concat((0, _toConsumableArray2.default)(checkedValues), [item.value]), 'value');
104
98
  setCheckedValues(nValue);
105
99
  }; // 全选事件
106
100
 
107
101
 
108
102
  var onCheckAllChange = function onCheckAllChange() {
109
- var nValue = checkAll ? checkedValues.filter(function (_ref5) {
110
- var value = _ref5.value;
103
+ var nValue = checkAll ? checkedValues.filter(function (value) {
111
104
  return !options.some(function (v) {
112
105
  return v.value === value;
113
106
  });
@@ -159,18 +152,17 @@ var CheckboxFilter = function CheckboxFilter(_ref) {
159
152
  }, "\u5168\u90E8"), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("span", {
160
153
  className: "filter_tip"
161
154
  }, "\u5DF2\u9009: ", checkedValues.length)))), /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Checkbox.Group, {
162
- value: checkedKeys,
155
+ value: checkedValues,
163
156
  className: "filter_body"
164
157
  }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.VirtualList, {
165
158
  options: options,
166
159
  className: "filter_list"
167
- }, function (_ref6) {
168
- var item = _ref6.item,
169
- resetProps = (0, _objectWithoutProperties2.default)(_ref6, _excluded);
160
+ }, function (_ref3) {
161
+ var item = _ref3.item,
162
+ resetProps = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
170
163
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, resetProps, {
171
164
  className: (0, _classnames.default)('filter_item', {
172
- checked: checkedValues.some(function (_ref7) {
173
- var value = _ref7.value;
165
+ checked: checkedValues.some(function (value) {
174
166
  return value === item.value;
175
167
  })
176
168
  }),
@@ -19,15 +19,28 @@ var _react = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _linkmoreDesign = require("linkmore-design");
21
21
 
22
+ var _moment = _interopRequireDefault(require("moment"));
23
+
22
24
  var _utils = require("../utils");
23
25
 
24
26
  var RangePicker = function RangePicker(_ref) {
25
- var filterValue = _ref.filterValue,
26
- setFilterValue = _ref.setFilterValue,
27
+ var instance = _ref.instance,
27
28
  onChange = _ref.onChange,
28
- itemProps = _ref.itemProps,
29
- visible = _ref.visible;
30
- // 最近的时间段, 值为JSON转换后的字符串
29
+ itemProps = _ref.itemProps;
30
+ var filterValue = instance.filterValue,
31
+ setFilterValue = instance.setFilterValue,
32
+ visible = instance.visible,
33
+ setVisible = instance.setVisible;
34
+ var defaultValue = (0, _react.useMemo)(function () {
35
+ var nValue;
36
+
37
+ if ((0, _utils.getIsHas)(filterValue)) {
38
+ nValue = [(0, _moment.default)(filterValue[0]), (0, _moment.default)(filterValue[1])];
39
+ }
40
+
41
+ return nValue;
42
+ }, [filterValue]); // 最近的时间段, 值为JSON转换后的字符串
43
+
31
44
  var ranges = (0, _react.useMemo)(function () {
32
45
  return Object.entries((0, _utils.getRanges)()).map(function (item, i) {
33
46
  return {
@@ -82,17 +95,17 @@ var RangePicker = function RangePicker(_ref) {
82
95
  color: 'var(--text-color)'
83
96
  }
84
97
  }),
85
- placeholder: ['开始日期', '结束日期'],
86
- style: {
87
- width: 210
88
- }
98
+ placeholder: ['开始日期', '结束日期']
89
99
  }, itemProps, {
100
+ value: defaultValue,
90
101
  onChange: handleOnChange,
91
102
  open: visible,
103
+ onOpenChange: function onOpenChange(vis) {
104
+ return setVisible(vis);
105
+ },
92
106
  panelRender: panelRender,
93
107
  dropdownClassName: "lm_filter_dropdown_picker",
94
- bordered: false,
95
- size: "small",
108
+ size: "middle",
96
109
  inputReadOnly: true
97
110
  })));
98
111
  }; // 日期范围选择器
@@ -103,11 +116,25 @@ var DatePickerFilter = function DatePickerFilter(_ref2) {
103
116
  itemProps = _ref2.item;
104
117
  var filterValue = instance.filterValue,
105
118
  setFilterValue = instance.setFilterValue,
106
- visible = instance.visible;
107
- var _itemProps$props = itemProps.props,
108
- props = _itemProps$props === void 0 ? {
109
- picker: 'date'
110
- } : _itemProps$props; // 选中时间段的触发
119
+ visible = instance.visible,
120
+ setVisible = instance.setVisible;
121
+ var props = itemProps.props;
122
+
123
+ var _ref3 = props || {},
124
+ _ref3$picker = _ref3.picker,
125
+ picker = _ref3$picker === void 0 ? 'date' : _ref3$picker;
126
+
127
+ var defaultValue = (0, _react.useMemo)(function () {
128
+ var nValue; // 周/月/季/年 需要处理回显
129
+
130
+ if (picker !== 'date') return nValue;
131
+
132
+ if (filterValue) {
133
+ nValue = (0, _moment.default)(filterValue);
134
+ }
135
+
136
+ return nValue;
137
+ }, [filterValue]); // 选中时间段的触发
111
138
 
112
139
  var onChange = function onChange(dates, dateStrings) {
113
140
  setFilterValue((0, _utils.getIsHas)(dateStrings) ? dateStrings : null);
@@ -115,21 +142,22 @@ var DatePickerFilter = function DatePickerFilter(_ref2) {
115
142
 
116
143
  if (['range', 'rangePicker'].includes(itemProps.dateType || itemProps.datetype)) {
117
144
  return /*#__PURE__*/_react.default.createElement(RangePicker, {
118
- filterValue: filterValue,
119
- setFilterValue: setFilterValue,
145
+ instance: instance,
120
146
  onChange: onChange,
121
- itemProps: props,
122
- visible: visible
147
+ itemProps: props
123
148
  });
124
149
  }
125
150
 
126
151
  return /*#__PURE__*/_react.default.createElement(_datePicker.default, (0, _extends2.default)({
127
152
  placeholder: "\u9009\u62E9\u65F6\u95F4"
128
153
  }, props, {
154
+ defaultValue: defaultValue,
129
155
  onChange: onChange,
130
156
  open: visible,
131
- bordered: false,
132
- size: "small",
157
+ onOpenChange: function onOpenChange(vis) {
158
+ return setVisible(vis);
159
+ },
160
+ size: "middle",
133
161
  inputReadOnly: true,
134
162
  dropdownClassName: "lm_filter_dropdown_picker"
135
163
  }));
@@ -100,57 +100,78 @@ var getPlacehodler = function getPlacehodler(props) {
100
100
 
101
101
 
102
102
  var getLabel = function getLabel(filterValue, item) {
103
- var _val;
103
+ var _data$find;
104
104
 
105
- var val = filterValue;
106
- var type = item.type; // 不存在筛选时
105
+ var type = item.type,
106
+ data = item.data; // 不存在筛选时
107
107
 
108
- if (!(0, _utils.getIsHas)(val)) {
108
+ if (!(0, _utils.getIsHas)(filterValue)) {
109
109
  return getPlacehodler(item);
110
- } // 存在筛选数据时
110
+ } // 存在筛选数据时 ⬇️
111
+ // 级联数据转换平级结构
111
112
 
112
113
 
113
- if (Array.isArray(val)) {
114
+ if (['cascader'].includes(type)) {
115
+ var nArr = (0, _utils.getFlatItem)(filterValue, data);
116
+ var labels = nArr.map(function (v) {
117
+ return v.label;
118
+ });
119
+
120
+ switch (labels.length) {
121
+ case 1:
122
+ return labels[0];
123
+
124
+ case 2:
125
+ return "".concat(labels[0], "\u3001").concat(labels[1]);
126
+
127
+ default:
128
+ return "".concat(labels[0], "\u3001+").concat(labels.length - 1, "...");
129
+ }
130
+ }
131
+
132
+ if (Array.isArray(filterValue)) {
133
+ var _data$filter;
134
+
114
135
  // 日期
115
136
  if (['date'].includes(type)) {
116
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, val[0], /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
137
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, filterValue[0], /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
117
138
  type: "lmweb-swap-right",
118
139
  style: {
119
140
  fontSize: 14,
120
141
  color: 'var(--text-color)'
121
142
  }
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);
143
+ }), filterValue[1]);
132
144
  } // 多选
133
145
 
134
146
 
135
- switch (val.length) {
147
+ var _labels = data === null || data === void 0 ? void 0 : (_data$filter = data.filter(function (v) {
148
+ return filterValue.includes(v.value);
149
+ })) === null || _data$filter === void 0 ? void 0 : _data$filter.map(function (v) {
150
+ return v.label;
151
+ });
152
+
153
+ switch (_labels.length) {
136
154
  case 1:
137
- return val[0].label;
155
+ return _labels[0];
138
156
 
139
157
  case 2:
140
- return "".concat(val[0].label, "\u3001").concat(val[1].label);
158
+ return "".concat(_labels[0], "\u3001").concat(_labels[1]);
141
159
 
142
160
  default:
143
- return "".concat(val[0].label, "\u3001+").concat(val.length - 1, "...");
161
+ return "".concat(_labels[0], "\u3001+").concat(_labels.length - 1, "...");
144
162
  }
145
163
  } // 输入框
146
164
 
147
165
 
148
166
  if (['input', 'date'].includes(type)) {
149
- return val;
167
+ return filterValue;
150
168
  } // 单选框
151
169
 
152
170
 
153
- return (_val = val) === null || _val === void 0 ? void 0 : _val.label;
171
+ var label = (_data$find = data.find(function (v) {
172
+ return v.value === filterValue;
173
+ })) === null || _data$find === void 0 ? void 0 : _data$find.label;
174
+ return label;
154
175
  };
155
176
  /*
156
177
  * css样式控制
@@ -218,10 +239,9 @@ var DropdownFilter = /*#__PURE__*/_react.default.memo(function (_ref2) {
218
239
  }, item === null || item === void 0 ? void 0 : item.title, ":"), /*#__PURE__*/_react.default.createElement("div", {
219
240
  className: "filter_item_value"
220
241
  }, getLabel(filterValue, item)), /*#__PURE__*/_react.default.createElement("div", {
221
- className: "filter_item_icon"
242
+ className: "filter_item_icon addon_after"
222
243
  }, item.type !== 'date' || active ? /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
223
244
  type: active ? 'lmweb-close-circle-fill' : 'lmweb-down',
224
- className: "addonAfter",
225
245
  onClick: handleClear
226
246
  }) : null)));
227
247
  });
@@ -53,7 +53,6 @@ var SelectFilter = function SelectFilter(_ref) {
53
53
 
54
54
  var handleFilter = function handleFilter() {
55
55
  var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
56
- console.log('val', val);
57
56
  var serachValues = filters.filter(function (v) {
58
57
  return v.label.indexOf(val) > -1;
59
58
  });
@@ -63,7 +62,7 @@ var SelectFilter = function SelectFilter(_ref) {
63
62
 
64
63
  var onChange = function onChange(e, obj) {
65
64
  e.preventDefault();
66
- setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue(obj);
65
+ setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue(obj.value);
67
66
  }; // 展开下拉时触发: 赋值 && 聚焦 && 重置显示内容
68
67
 
69
68
 
@@ -98,7 +97,7 @@ var SelectFilter = function SelectFilter(_ref) {
98
97
  resetProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
99
98
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, resetProps, {
100
99
  className: (0, _classnames.default)('filter_item', {
101
- checked: item.value === (filterValue === null || filterValue === void 0 ? void 0 : filterValue.value)
100
+ checked: item.value === filterValue
102
101
  }),
103
102
  onClick: function onClick(e) {
104
103
  return onChange(e, item);
@@ -55,72 +55,16 @@ var FilterControl = /*#__PURE__*/_react.default.memo(function (props) {
55
55
  }),
56
56
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
57
57
  aliveValue = _useState2[0],
58
- setAliveValue = _useState2[1]; // 单独使用时将值转换为行数据
58
+ setAliveValue = _useState2[1]; // 单独使用 检查是否受控模式
59
59
 
60
60
 
61
61
  var transformFilterValue = (0, _react.useMemo)(function () {
62
- // 检查是否受控模式
63
- var checkedValue = value || aliveValue;
64
- var getOptions = (resetItem === null || resetItem === void 0 ? void 0 : resetItem.data) || [];
65
- var nValue = checkedValue;
66
-
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);
76
- })) || [];
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;
95
- }, [value, aliveValue, resetItem.data, resetItem.type]); // 单独使用时抛出选中的值: val => obj || Array
62
+ return value || aliveValue;
63
+ }, [value, aliveValue]); // 单独使用时抛出选中的值
96
64
 
97
65
  var handleChange = function handleChange(val) {
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
-
122
- setAliveValue === null || setAliveValue === void 0 ? void 0 : setAliveValue(nValue);
123
- onChange === null || onChange === void 0 ? void 0 : onChange(nValue);
66
+ setAliveValue === null || setAliveValue === void 0 ? void 0 : setAliveValue(val);
67
+ onChange === null || onChange === void 0 ? void 0 : onChange(val);
124
68
  }; // 重组instance
125
69
 
126
70
 
@@ -11,8 +11,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
11
11
 
12
12
  var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
13
13
 
14
- var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
15
-
16
14
  var _utils = require("../utils");
17
15
 
18
16
  // 核心参数集合
@@ -20,9 +18,11 @@ 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) {
24
+ var _Object$entries;
25
+
26
26
  var basicFilter = (0, _objectSpread3.default)((0, _objectSpread3.default)({}, state.basicFilter), {}, (0, _defineProperty2.default)({}, field, item));
27
27
 
28
28
  if (!(0, _utils.getIsHas)(item)) {
@@ -34,6 +34,25 @@ var CoreOptions = function CoreOptions(_ref) {
34
34
  type: 'changeBasicFilter',
35
35
  basicFilter: basicFilter
36
36
  });
37
+ dispatch({
38
+ type: 'changeComplexFilter',
39
+ complexFilter: {}
40
+ }); // 基础筛选清空高级筛选
41
+ // 抛出给外部存储
42
+
43
+ var filterQuery = (_Object$entries = Object.entries(basicFilter)) === null || _Object$entries === void 0 ? void 0 : _Object$entries.map(function (v) {
44
+ return {
45
+ fieldName: v[0],
46
+ value: v[1],
47
+ operator: 0
48
+ };
49
+ }); // 触发外部事件
50
+
51
+ onChange === null || onChange === void 0 ? void 0 : onChange({
52
+ basicFilter: basicFilter,
53
+ filterQuery: filterQuery,
54
+ type: 'basic'
55
+ });
37
56
  }; // 根据字段查找过滤的数据, 不存在时返回默认值
38
57
 
39
58
 
@@ -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,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DefaultLocalization = void 0;
7
+ // export interface LM_Localization {
8
+ // fieldName: string,
9
+ // operator: number,
10
+ // }
11
+ var DefaultLocalization = {
12
+ globalQuery: {
13
+ filter: []
14
+ },
15
+ filterQuery: {
16
+ filter: []
17
+ }
18
+ };
19
+ exports.DefaultLocalization = DefaultLocalization;
@@ -10,7 +10,11 @@
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 {
17
+ font-size: 12px;
14
18
  display: inline-flex;
15
19
  align-items: center;
16
20
  line-height: 1;
@@ -41,24 +45,28 @@
41
45
  color: var(--text-color);
42
46
  transition: 0.3s;
43
47
  }
44
- .lm_filter_basic_item .filter_item_icon:hover {
45
- color: var(--primary-color);
48
+ .lm_filter_basic_item .filter_item_icon.addon_before {
49
+ color: var(--font-color);
46
50
  }
47
- .lm_filter_basic_item.expand .filter_item_icon {
51
+ .lm_filter_basic_item.expand .filter_item_icon.addon_after {
48
52
  transform: rotateX(180deg);
49
53
  }
50
54
  .lm_filter_basic_item.active .filter_item_value {
51
55
  color: var(--primary-color);
52
56
  }
53
- .lm_filter_basic_item.active .filter_item_icon {
57
+ .lm_filter_basic_item.active .filter_item_icon.addon_after {
54
58
  transform: rotateX(180deg);
55
59
  }
60
+ .lm_filter_basic_item.active.lm_filter_complex_item .filter_item_icon,
61
+ .lm_filter_basic_item.active.lm_filter_complex_item .filter_item_label {
62
+ color: var(--primary-color);
63
+ }
56
64
  .ant-dropdown.filter_dropdown_container_cascader > div {
57
65
  transform: translateY(-4px);
58
66
  }
59
67
  .ant-dropdown.filter_dropdown_container_date .ant-picker {
60
68
  visibility: hidden;
61
- transform: translateY(-28px);
69
+ transform: translateY(-36px);
62
70
  }
63
71
  .ant-dropdown .filter_dropdown {
64
72
  display: flex;