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.
- package/dist/Affix/demos/basic.d.ts +2 -0
- package/dist/Affix/index.d.ts +54 -0
- package/dist/Affix/style/index.d.ts +1 -0
- package/dist/Affix/utils.d.ts +15 -0
- package/dist/CardTable/fns/index.d.ts +1 -5
- package/dist/IconFont/index.d.ts +1 -1
- package/dist/LmFilter/{components → baseFilter}/fuzzySearch.d.ts +0 -0
- package/dist/LmFilter/utils.d.ts +1 -0
- package/dist/QuickMenu/demos/basic.d.ts +2 -0
- package/dist/QuickMenu/index.d.ts +14 -0
- package/dist/QuickMenu/style/index.d.ts +1 -0
- package/dist/Tag/demos/ExigencyTag.d.ts +2 -0
- package/dist/Tag/index.d.ts +4 -0
- package/dist/Upload/demos/picture-little.d.ts +3 -0
- package/dist/Upload/index.d.ts +5 -1
- package/dist/_util/domTarget.d.ts +7 -0
- package/dist/_util/throttleByAnimationFrame.d.ts +8 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.umd.js +548 -8
- package/dist/index.umd.min.js +4 -4
- package/es/Affix/index.d.ts +54 -0
- package/es/Affix/index.js +326 -0
- package/es/Affix/style/index.css +505 -0
- package/es/Affix/style/index.d.ts +1 -0
- package/es/Affix/style/index.js +1 -0
- package/es/Affix/utils.d.ts +15 -0
- package/es/Affix/utils.js +83 -0
- package/es/CardTable/fns/index.js +6 -5
- package/es/Descriptions/style/index.css +10 -8
- package/es/IconFont/index.js +3 -2
- package/es/LmFilter/baseFilter/fuzzySearch.js +53 -0
- package/es/LmFilter/baseFilter/index.js +1 -1
- package/es/LmFilter/clearFilter/index.js +3 -1
- package/es/LmFilter/components/CascaderFilter.js +17 -41
- package/es/LmFilter/components/DateFilter.js +12 -20
- package/es/LmFilter/components/DropdownFIlter.js +78 -10
- package/es/LmFilter/components/index.js +56 -13
- package/es/LmFilter/hooks/useDelayedFn.js +8 -6
- package/es/LmFilter/style/style.css +16 -0
- package/es/LmFilter/utils.js +16 -0
- package/es/LmFilter/wrapper/FilterRoot.js +6 -0
- package/es/QuickMenu/index.d.ts +14 -0
- package/es/QuickMenu/index.js +169 -0
- package/es/QuickMenu/style/index.css +560 -0
- package/es/QuickMenu/style/index.d.ts +1 -0
- package/es/QuickMenu/style/index.js +1 -0
- package/es/Tag/index.d.ts +4 -0
- package/es/Tag/index.js +48 -2
- package/es/Tag/style/index.css +4 -1
- package/es/Upload/index.d.ts +5 -1
- package/es/Upload/index.js +7 -2
- package/es/Upload/style/index.css +35 -0
- package/es/_util/domTarget.d.ts +7 -0
- package/es/_util/domTarget.js +20 -0
- package/es/_util/throttleByAnimationFrame.d.ts +8 -0
- package/es/_util/throttleByAnimationFrame.js +58 -0
- package/es/index.d.ts +1 -0
- package/es/index.js +2 -1
- package/lib/Affix/index.d.ts +54 -0
- package/lib/Affix/index.js +349 -0
- package/lib/Affix/style/index.css +505 -0
- package/lib/Affix/style/index.d.ts +1 -0
- package/lib/Affix/style/index.js +3 -0
- package/lib/Affix/utils.d.ts +15 -0
- package/lib/Affix/utils.js +104 -0
- package/lib/CardTable/fns/index.js +6 -5
- package/lib/Descriptions/style/index.css +10 -8
- package/lib/IconFont/index.js +3 -2
- package/lib/LmFilter/baseFilter/fuzzySearch.js +53 -0
- package/lib/LmFilter/baseFilter/index.js +1 -1
- package/lib/LmFilter/clearFilter/index.js +3 -1
- package/lib/LmFilter/components/CascaderFilter.js +17 -41
- package/lib/LmFilter/components/DateFilter.js +12 -20
- package/lib/LmFilter/components/DropdownFIlter.js +78 -10
- package/lib/LmFilter/components/index.js +56 -13
- package/lib/LmFilter/hooks/useDelayedFn.js +8 -6
- package/lib/LmFilter/style/style.css +16 -0
- package/lib/LmFilter/utils.js +16 -0
- package/lib/LmFilter/wrapper/FilterRoot.js +6 -0
- package/lib/QuickMenu/index.d.ts +14 -0
- package/lib/QuickMenu/index.js +187 -0
- package/lib/QuickMenu/style/index.css +560 -0
- package/lib/QuickMenu/style/index.d.ts +1 -0
- package/lib/QuickMenu/style/index.js +3 -0
- package/lib/Tag/index.d.ts +4 -0
- package/lib/Tag/index.js +48 -1
- package/lib/Tag/style/index.css +4 -1
- package/lib/Upload/index.d.ts +5 -1
- package/lib/Upload/index.js +8 -2
- package/lib/Upload/style/index.css +35 -0
- package/lib/_util/domTarget.d.ts +7 -0
- package/lib/_util/domTarget.js +31 -0
- package/lib/_util/throttleByAnimationFrame.d.ts +8 -0
- package/lib/_util/throttleByAnimationFrame.js +72 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +9 -1
- package/package.json +5 -2
- package/es/LmFilter/components/fuzzySearch.js +0 -37
- 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("
|
|
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
|
-
|
|
123
|
-
|
|
124
|
-
|
|
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
|
-
|
|
135
|
-
}
|
|
126
|
+
};
|
|
136
127
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
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
|
|
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
|
-
}
|
|
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
|
-
|
|
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
|
-
})
|
|
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
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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 (
|
|
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
|
-
|
|
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
|
|
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 ||
|
|
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("
|
|
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
|
-
|
|
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
|
|
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 (
|
|
65
|
-
|
|
66
|
-
return v.value ===
|
|
67
|
-
})
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
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 =
|
|
77
|
-
|
|
78
|
-
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
+
}
|
package/es/LmFilter/utils.js
CHANGED
|
@@ -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
|
}
|
|
@@ -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;
|