linkmore-design 1.0.54 → 1.0.55

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 (99) 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/CardTable/fns/index.d.ts +1 -5
  6. package/dist/IconFont/index.d.ts +1 -1
  7. package/dist/LmFilter/{components → baseFilter}/fuzzySearch.d.ts +0 -0
  8. package/dist/LmFilter/utils.d.ts +1 -0
  9. package/dist/QuickMenu/demos/basic.d.ts +2 -0
  10. package/dist/QuickMenu/index.d.ts +14 -0
  11. package/dist/QuickMenu/style/index.d.ts +1 -0
  12. package/dist/Tag/demos/ExigencyTag.d.ts +2 -0
  13. package/dist/Tag/index.d.ts +4 -0
  14. package/dist/Upload/demos/picture-little.d.ts +3 -0
  15. package/dist/Upload/index.d.ts +5 -1
  16. package/dist/_util/domTarget.d.ts +7 -0
  17. package/dist/_util/throttleByAnimationFrame.d.ts +8 -0
  18. package/dist/index.d.ts +1 -0
  19. package/dist/index.umd.js +548 -8
  20. package/dist/index.umd.min.js +4 -4
  21. package/es/Affix/index.d.ts +54 -0
  22. package/es/Affix/index.js +326 -0
  23. package/es/Affix/style/index.css +505 -0
  24. package/es/Affix/style/index.d.ts +1 -0
  25. package/es/Affix/style/index.js +1 -0
  26. package/es/Affix/utils.d.ts +15 -0
  27. package/es/Affix/utils.js +83 -0
  28. package/es/CardTable/fns/index.js +6 -5
  29. package/es/Descriptions/style/index.css +10 -8
  30. package/es/IconFont/index.js +3 -2
  31. package/es/LmFilter/baseFilter/fuzzySearch.js +53 -0
  32. package/es/LmFilter/baseFilter/index.js +1 -1
  33. package/es/LmFilter/clearFilter/index.js +3 -1
  34. package/es/LmFilter/components/CascaderFilter.js +17 -41
  35. package/es/LmFilter/components/DateFilter.js +12 -20
  36. package/es/LmFilter/components/DropdownFIlter.js +78 -10
  37. package/es/LmFilter/components/index.js +56 -13
  38. package/es/LmFilter/hooks/useDelayedFn.js +8 -6
  39. package/es/LmFilter/style/style.css +16 -0
  40. package/es/LmFilter/utils.js +16 -0
  41. package/es/LmFilter/wrapper/FilterRoot.js +6 -0
  42. package/es/QuickMenu/index.d.ts +14 -0
  43. package/es/QuickMenu/index.js +169 -0
  44. package/es/QuickMenu/style/index.css +560 -0
  45. package/es/QuickMenu/style/index.d.ts +1 -0
  46. package/es/QuickMenu/style/index.js +1 -0
  47. package/es/Tag/index.d.ts +4 -0
  48. package/es/Tag/index.js +48 -2
  49. package/es/Tag/style/index.css +4 -1
  50. package/es/Upload/index.d.ts +5 -1
  51. package/es/Upload/index.js +7 -2
  52. package/es/Upload/style/index.css +35 -0
  53. package/es/_util/domTarget.d.ts +7 -0
  54. package/es/_util/domTarget.js +20 -0
  55. package/es/_util/throttleByAnimationFrame.d.ts +8 -0
  56. package/es/_util/throttleByAnimationFrame.js +58 -0
  57. package/es/index.d.ts +1 -0
  58. package/es/index.js +2 -1
  59. package/lib/Affix/index.d.ts +54 -0
  60. package/lib/Affix/index.js +349 -0
  61. package/lib/Affix/style/index.css +505 -0
  62. package/lib/Affix/style/index.d.ts +1 -0
  63. package/lib/Affix/style/index.js +3 -0
  64. package/lib/Affix/utils.d.ts +15 -0
  65. package/lib/Affix/utils.js +104 -0
  66. package/lib/CardTable/fns/index.js +6 -5
  67. package/lib/Descriptions/style/index.css +10 -8
  68. package/lib/IconFont/index.js +3 -2
  69. package/lib/LmFilter/baseFilter/fuzzySearch.js +53 -0
  70. package/lib/LmFilter/baseFilter/index.js +1 -1
  71. package/lib/LmFilter/clearFilter/index.js +3 -1
  72. package/lib/LmFilter/components/CascaderFilter.js +17 -41
  73. package/lib/LmFilter/components/DateFilter.js +12 -20
  74. package/lib/LmFilter/components/DropdownFIlter.js +78 -10
  75. package/lib/LmFilter/components/index.js +56 -13
  76. package/lib/LmFilter/hooks/useDelayedFn.js +8 -6
  77. package/lib/LmFilter/style/style.css +16 -0
  78. package/lib/LmFilter/utils.js +16 -0
  79. package/lib/LmFilter/wrapper/FilterRoot.js +6 -0
  80. package/lib/QuickMenu/index.d.ts +14 -0
  81. package/lib/QuickMenu/index.js +187 -0
  82. package/lib/QuickMenu/style/index.css +560 -0
  83. package/lib/QuickMenu/style/index.d.ts +1 -0
  84. package/lib/QuickMenu/style/index.js +3 -0
  85. package/lib/Tag/index.d.ts +4 -0
  86. package/lib/Tag/index.js +48 -1
  87. package/lib/Tag/style/index.css +4 -1
  88. package/lib/Upload/index.d.ts +5 -1
  89. package/lib/Upload/index.js +8 -2
  90. package/lib/Upload/style/index.css +35 -0
  91. package/lib/_util/domTarget.d.ts +7 -0
  92. package/lib/_util/domTarget.js +31 -0
  93. package/lib/_util/throttleByAnimationFrame.d.ts +8 -0
  94. package/lib/_util/throttleByAnimationFrame.js +72 -0
  95. package/lib/index.d.ts +1 -0
  96. package/lib/index.js +9 -1
  97. package/package.json +5 -2
  98. package/es/LmFilter/components/fuzzySearch.js +0 -37
  99. package/lib/LmFilter/components/fuzzySearch.js +0 -37
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _InputSearchClose = _interopRequireDefault(require("../components/InputSearchClose"));
15
+
16
+ var FuzzySearch = function FuzzySearch(_ref) {
17
+ var instance = _ref.instance;
18
+ var inputRef = (0, _react.useRef)(null);
19
+ var state = instance.state,
20
+ setFilterValue = instance.setFilterValue,
21
+ size = instance.size,
22
+ placeholder = instance.placeholder,
23
+ searchKey = instance.searchKey; // 默认值
24
+
25
+ var defaultValue = (0, _react.useMemo)(function () {
26
+ var _state$basicFilter;
27
+
28
+ return ((_state$basicFilter = state.basicFilter) === null || _state$basicFilter === void 0 ? void 0 : _state$basicFilter[searchKey]) || '';
29
+ }, [state.basicFilter]);
30
+
31
+ var onSearch = function onSearch(val) {
32
+ setFilterValue(val, searchKey);
33
+ };
34
+
35
+ (0, _react.useEffect)(function () {
36
+ if (!defaultValue) {
37
+ inputRef.current.setValue('');
38
+ }
39
+ }, [state.basicFilter]);
40
+ return /*#__PURE__*/_react.default.createElement("div", {
41
+ className: "lm_filter_search"
42
+ }, /*#__PURE__*/_react.default.createElement(_InputSearchClose.default, {
43
+ ref: inputRef,
44
+ allowClear: true,
45
+ defaultValue: defaultValue,
46
+ size: size,
47
+ placeholder: placeholder,
48
+ onSearch: onSearch
49
+ }));
50
+ };
51
+
52
+ var _default = FuzzySearch;
53
+ exports.default = _default;
@@ -9,7 +9,7 @@ exports.default = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
- var _fuzzySearch = _interopRequireDefault(require("../components/fuzzySearch"));
12
+ var _fuzzySearch = _interopRequireDefault(require("./fuzzySearch"));
13
13
 
14
14
  var _components = _interopRequireDefault(require("../components"));
15
15
 
@@ -17,8 +17,10 @@ var LmFilterClear = /*#__PURE__*/_react.default.memo(function (_ref) {
17
17
  dispatch = instance.dispatch;
18
18
 
19
19
  var handleClear = function handleClear() {
20
- // dispatch();
21
20
  console.log('state', state);
21
+ dispatch({
22
+ type: 'reset'
23
+ });
22
24
  };
23
25
 
24
26
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -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,13 @@ 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", {
220
+ }, getLabel(filterValue, item)), /*#__PURE__*/_react.default.createElement("div", {
153
221
  className: "filter_item_icon"
154
- }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
222
+ }, item.type !== 'date' || active ? /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
155
223
  type: active ? 'lmweb-close-circle-fill' : 'lmweb-down',
156
224
  className: "addonAfter",
157
225
  onClick: handleClear
158
- }))));
226
+ }) : null)));
159
227
  });
160
228
 
161
229
  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
@@ -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
 
@@ -30,6 +30,9 @@
30
30
  background-color: var(--color-4);
31
31
  }
32
32
  .lm_filter_basic_item .filter_item_value {
33
+ display: inline-flex;
34
+ align-items: center;
35
+ gap: 4px;
33
36
  color: var(--text-color);
34
37
  transition: 0.3s;
35
38
  }
@@ -50,6 +53,13 @@
50
53
  .lm_filter_basic_item.active .filter_item_icon {
51
54
  transform: rotateX(180deg);
52
55
  }
56
+ .ant-dropdown.filter_dropdown_container_cascader > div {
57
+ transform: translateY(-4px);
58
+ }
59
+ .ant-dropdown.filter_dropdown_container_date .ant-picker {
60
+ visibility: hidden;
61
+ transform: translateY(-28px);
62
+ }
53
63
  .ant-dropdown .filter_dropdown {
54
64
  display: flex;
55
65
  flex-flow: column;
@@ -187,3 +197,9 @@
187
197
  .ant-dropdown .filter_dropdown .ant-checkbox-wrapper .ant-checkbox {
188
198
  top: initial;
189
199
  }
200
+ .lm_filter_dropdown_picker {
201
+ padding: 0 !important;
202
+ }
203
+ .lm_filter_dropdown_picker .ant-picker-range-arrow {
204
+ display: none;
205
+ }
@@ -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/toConsumableArray"));
15
+
13
16
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/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
  }
@@ -44,6 +44,12 @@ var reducer = function reducer(state, action) {
44
44
  resize: resize
45
45
  });
46
46
 
47
+ case 'reset':
48
+ // 一键清空
49
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
50
+ basicFilter: {}
51
+ });
52
+
47
53
  default:
48
54
  throw new Error();
49
55
  }
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ interface IMenuData {
3
+ menuId: string;
4
+ title: string | React.ReactNode;
5
+ }
6
+ export interface IQuickMenuProps {
7
+ className?: string;
8
+ style?: React.CSSProperties;
9
+ top?: number;
10
+ menuData: IMenuData[];
11
+ warpElement: any;
12
+ }
13
+ declare const LMQuickMenu: React.FC<IQuickMenuProps>;
14
+ export default LMQuickMenu;