linkmore-design 1.0.14 → 1.0.17
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/index.umd.js +1029 -508
- package/dist/index.umd.min.js +6 -6
- package/es/Button/index.js +3 -1
- package/es/Button/style/style.css +4 -1
- package/es/CkFilter/baseFilter/filterMenu.js +11 -0
- package/es/CkFilter/complexFilter/drawer.js +42 -2
- package/es/CkFilter/components/CascaderFilter.js +132 -0
- package/es/CkFilter/components/CheckboxTags.js +53 -0
- package/es/CkFilter/components/Controls.js +43 -0
- package/es/CkFilter/components/CustomModal.js +230 -0
- package/es/CkFilter/components/filterTypes.js +154 -1
- package/es/CkFilter/components/modal.js +36 -67
- package/es/CkFilter/components/modalBack.js +261 -0
- package/es/CkFilter/context.js +1 -1
- package/es/CkFilter/customFilter/drawer.js +4 -1
- package/es/CkFilter/filter.js +3 -3
- package/es/CkFilter/style/style.css +68 -26
- package/es/PopTable/style/style.css +1 -4
- package/es/ProTable/Table.js +23 -10
- package/es/ProTable/autosize.js +170 -0
- package/es/ProTable/detectElementResize.js +225 -0
- package/es/ProTable/style/style.css +7 -0
- package/es/Radio/style/style.css +7 -0
- package/es/TabBar/style/style.css +0 -1
- package/lib/Button/index.js +3 -1
- package/lib/Button/style/style.css +4 -1
- package/lib/CkFilter/baseFilter/filterMenu.js +11 -0
- package/lib/CkFilter/complexFilter/drawer.js +42 -2
- package/lib/CkFilter/components/CascaderFilter.js +132 -0
- package/lib/CkFilter/components/CheckboxTags.js +53 -0
- package/lib/CkFilter/components/Controls.js +43 -0
- package/lib/CkFilter/components/CustomModal.js +230 -0
- package/lib/CkFilter/components/filterTypes.js +154 -1
- package/lib/CkFilter/components/modal.js +36 -67
- package/lib/CkFilter/components/modalBack.js +261 -0
- package/lib/CkFilter/context.js +1 -1
- package/lib/CkFilter/customFilter/drawer.js +4 -1
- package/lib/CkFilter/filter.js +3 -3
- package/lib/CkFilter/style/style.css +68 -26
- package/lib/PopTable/style/style.css +1 -4
- package/lib/ProTable/Table.js +23 -10
- package/lib/ProTable/autosize.js +170 -0
- package/lib/ProTable/detectElementResize.js +225 -0
- package/lib/ProTable/style/style.css +7 -0
- package/lib/Radio/style/style.css +7 -0
- package/lib/TabBar/style/style.css +0 -1
- package/package.json +1 -1
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = createDetectElementResize;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Detect Element Resize.
|
|
10
|
+
* https://github.com/sdecima/javascript-detect-element-resize
|
|
11
|
+
* Sebastian Decima
|
|
12
|
+
*
|
|
13
|
+
* Forked from version 0.5.3; includes the following modifications:
|
|
14
|
+
* 1) Guard against unsafe 'window' and 'document' references (to support SSR).
|
|
15
|
+
* 2) Defer initialization code via a top-level function wrapper (to support SSR).
|
|
16
|
+
* 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.
|
|
17
|
+
* 4) Add nonce for style element.
|
|
18
|
+
* 5) Added support for injecting custom window object
|
|
19
|
+
**/
|
|
20
|
+
function createDetectElementResize(nonce, hostWindow) {
|
|
21
|
+
// Check `document` and `window` in case of server-side rendering
|
|
22
|
+
var _window;
|
|
23
|
+
|
|
24
|
+
if (typeof hostWindow !== 'undefined') {
|
|
25
|
+
_window = hostWindow;
|
|
26
|
+
} else if (typeof window !== 'undefined') {
|
|
27
|
+
_window = window;
|
|
28
|
+
} else if (typeof self !== 'undefined') {
|
|
29
|
+
_window = self;
|
|
30
|
+
} else {
|
|
31
|
+
_window = global;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
var attachEvent = typeof _window.document !== 'undefined' && _window.document.attachEvent;
|
|
35
|
+
|
|
36
|
+
if (!attachEvent) {
|
|
37
|
+
var requestFrame = function () {
|
|
38
|
+
var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame || function (fn) {
|
|
39
|
+
return _window.setTimeout(fn, 20);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
return function (fn) {
|
|
43
|
+
return raf(fn);
|
|
44
|
+
};
|
|
45
|
+
}();
|
|
46
|
+
|
|
47
|
+
var cancelFrame = function () {
|
|
48
|
+
var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout;
|
|
49
|
+
return function (id) {
|
|
50
|
+
return cancel(id);
|
|
51
|
+
};
|
|
52
|
+
}();
|
|
53
|
+
|
|
54
|
+
var resetTriggers = function resetTriggers(element) {
|
|
55
|
+
var triggers = element.__resizeTriggers__,
|
|
56
|
+
expand = triggers.firstElementChild,
|
|
57
|
+
contract = triggers.lastElementChild,
|
|
58
|
+
expandChild = expand.firstElementChild;
|
|
59
|
+
contract.scrollLeft = contract.scrollWidth;
|
|
60
|
+
contract.scrollTop = contract.scrollHeight;
|
|
61
|
+
expandChild.style.width = expand.offsetWidth + 1 + 'px';
|
|
62
|
+
expandChild.style.height = expand.offsetHeight + 1 + 'px';
|
|
63
|
+
expand.scrollLeft = expand.scrollWidth;
|
|
64
|
+
expand.scrollTop = expand.scrollHeight;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
var checkTriggers = function checkTriggers(element) {
|
|
68
|
+
return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
var scrollListener = function scrollListener(e) {
|
|
72
|
+
// Don't measure (which forces) reflow for scrolls that happen inside of children!
|
|
73
|
+
if (e.target.className && typeof e.target.className.indexOf === 'function' && e.target.className.indexOf('contract-trigger') < 0 && e.target.className.indexOf('expand-trigger') < 0) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
var element = this;
|
|
78
|
+
resetTriggers(this);
|
|
79
|
+
|
|
80
|
+
if (this.__resizeRAF__) {
|
|
81
|
+
cancelFrame(this.__resizeRAF__);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
this.__resizeRAF__ = requestFrame(function () {
|
|
85
|
+
if (checkTriggers(element)) {
|
|
86
|
+
element.__resizeLast__.width = element.offsetWidth;
|
|
87
|
+
element.__resizeLast__.height = element.offsetHeight;
|
|
88
|
+
|
|
89
|
+
element.__resizeListeners__.forEach(function (fn) {
|
|
90
|
+
fn.call(element, e);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
/* Detect CSS Animations support to detect element display/re-attach */
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
var animation = false,
|
|
99
|
+
keyframeprefix = '',
|
|
100
|
+
animationstartevent = 'animationstart',
|
|
101
|
+
domPrefixes = 'Webkit Moz O ms'.split(' '),
|
|
102
|
+
startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),
|
|
103
|
+
pfx = '';
|
|
104
|
+
{
|
|
105
|
+
var elm = _window.document.createElement('fakeelement');
|
|
106
|
+
|
|
107
|
+
if (elm.style.animationName !== undefined) {
|
|
108
|
+
animation = true;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (animation === false) {
|
|
112
|
+
for (var i = 0; i < domPrefixes.length; i++) {
|
|
113
|
+
if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {
|
|
114
|
+
pfx = domPrefixes[i];
|
|
115
|
+
keyframeprefix = '-' + pfx.toLowerCase() + '-';
|
|
116
|
+
animationstartevent = startEvents[i];
|
|
117
|
+
animation = true;
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
var animationName = 'resizeanim';
|
|
124
|
+
var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';
|
|
125
|
+
var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
var createStyles = function createStyles(doc) {
|
|
129
|
+
if (!doc.getElementById('detectElementResize')) {
|
|
130
|
+
//opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360
|
|
131
|
+
var css = (animationKeyframes ? animationKeyframes : '') + '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',
|
|
132
|
+
head = doc.head || doc.getElementsByTagName('head')[0],
|
|
133
|
+
style = doc.createElement('style');
|
|
134
|
+
style.id = 'detectElementResize';
|
|
135
|
+
style.type = 'text/css';
|
|
136
|
+
|
|
137
|
+
if (nonce != null) {
|
|
138
|
+
style.setAttribute('nonce', nonce);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
if (style.styleSheet) {
|
|
142
|
+
style.styleSheet.cssText = css;
|
|
143
|
+
} else {
|
|
144
|
+
style.appendChild(doc.createTextNode(css));
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
head.appendChild(style);
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
var addResizeListener = function addResizeListener(element, fn) {
|
|
152
|
+
if (attachEvent) {
|
|
153
|
+
element.attachEvent('onresize', fn);
|
|
154
|
+
} else {
|
|
155
|
+
if (!element.__resizeTriggers__) {
|
|
156
|
+
var doc = element.ownerDocument;
|
|
157
|
+
|
|
158
|
+
var elementStyle = _window.getComputedStyle(element);
|
|
159
|
+
|
|
160
|
+
if (elementStyle && elementStyle.position == 'static') {
|
|
161
|
+
element.style.position = 'relative';
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
createStyles(doc);
|
|
165
|
+
element.__resizeLast__ = {};
|
|
166
|
+
element.__resizeListeners__ = [];
|
|
167
|
+
(element.__resizeTriggers__ = doc.createElement('div')).className = 'resize-triggers';
|
|
168
|
+
var expandTrigger = doc.createElement('div');
|
|
169
|
+
expandTrigger.className = 'expand-trigger';
|
|
170
|
+
expandTrigger.appendChild(doc.createElement('div'));
|
|
171
|
+
var contractTrigger = doc.createElement('div');
|
|
172
|
+
contractTrigger.className = 'contract-trigger';
|
|
173
|
+
|
|
174
|
+
element.__resizeTriggers__.appendChild(expandTrigger);
|
|
175
|
+
|
|
176
|
+
element.__resizeTriggers__.appendChild(contractTrigger);
|
|
177
|
+
|
|
178
|
+
element.appendChild(element.__resizeTriggers__);
|
|
179
|
+
resetTriggers(element);
|
|
180
|
+
element.addEventListener('scroll', scrollListener, true);
|
|
181
|
+
/* Listen for a css animation to detect element display/re-attach */
|
|
182
|
+
|
|
183
|
+
if (animationstartevent) {
|
|
184
|
+
element.__resizeTriggers__.__animationListener__ = function animationListener(e) {
|
|
185
|
+
if (e.animationName == animationName) {
|
|
186
|
+
resetTriggers(element);
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
element.__resizeTriggers__.addEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
element.__resizeListeners__.push(fn);
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
var removeResizeListener = function removeResizeListener(element, fn) {
|
|
199
|
+
if (attachEvent) {
|
|
200
|
+
element.detachEvent('onresize', fn);
|
|
201
|
+
} else {
|
|
202
|
+
element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);
|
|
203
|
+
|
|
204
|
+
if (!element.__resizeListeners__.length) {
|
|
205
|
+
element.removeEventListener('scroll', scrollListener, true);
|
|
206
|
+
|
|
207
|
+
if (element.__resizeTriggers__.__animationListener__) {
|
|
208
|
+
element.__resizeTriggers__.removeEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);
|
|
209
|
+
|
|
210
|
+
element.__resizeTriggers__.__animationListener__ = null;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
try {
|
|
214
|
+
element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);
|
|
215
|
+
} catch (e) {// Preact compat; see developit/preact-compat/issues/228
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
return {
|
|
222
|
+
addResizeListener: addResizeListener,
|
|
223
|
+
removeResizeListener: removeResizeListener
|
|
224
|
+
};
|
|
225
|
+
}
|
package/es/Radio/style/style.css
CHANGED
|
@@ -34,6 +34,13 @@
|
|
|
34
34
|
color: var(--font-color);
|
|
35
35
|
vertical-align: middle;
|
|
36
36
|
}
|
|
37
|
+
.lm-radio-group .ant-radio-button-wrapper .anticon {
|
|
38
|
+
font-size: 16px;
|
|
39
|
+
vertical-align: middle;
|
|
40
|
+
}
|
|
41
|
+
.lm-radio-group .ant-radio-button-wrapper:hover {
|
|
42
|
+
color: var(--primary-color);
|
|
43
|
+
}
|
|
37
44
|
.lm-radio-group .ant-radio-button-wrapper > span:last-child {
|
|
38
45
|
display: inline-block;
|
|
39
46
|
font-size: 12px;
|
package/lib/Button/index.js
CHANGED
|
@@ -41,7 +41,9 @@ var LMButton = function LMButton(props) {
|
|
|
41
41
|
hover = _props$hover === void 0 ? false : _props$hover,
|
|
42
42
|
restProps = __rest(props, ["children", "className", "size", "type", "hover"]);
|
|
43
43
|
|
|
44
|
-
var classs = (0, _classnames.default)('lm-button', className,
|
|
44
|
+
var classs = (0, _classnames.default)('lm-button', className, {
|
|
45
|
+
'lm-button-icon-only': !children
|
|
46
|
+
}, (0, _defineProperty2.default)({}, "lm-button-".concat(size), size), (0, _defineProperty2.default)({}, "lm-button-".concat(type), type), (0, _defineProperty2.default)({}, "lm-button-".concat(type, "-hover"), type && hover));
|
|
45
47
|
return /*#__PURE__*/_react.default.createElement(_button.default, Object.assign({}, restProps, {
|
|
46
48
|
className: classs,
|
|
47
49
|
size: size,
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
vertical-align: middle;
|
|
8
8
|
}
|
|
9
9
|
.ant-btn.lm-button .anticon {
|
|
10
|
-
font-size:
|
|
10
|
+
font-size: 12px;
|
|
11
11
|
line-height: 0;
|
|
12
12
|
}
|
|
13
13
|
.ant-btn.lm-button .anticon + span {
|
|
@@ -96,3 +96,6 @@
|
|
|
96
96
|
border: 0 !important;
|
|
97
97
|
background: transparent !important;
|
|
98
98
|
}
|
|
99
|
+
.ant-btn.lm-button-icon-only .anticon {
|
|
100
|
+
font-size: 16px;
|
|
101
|
+
}
|
|
@@ -160,6 +160,17 @@ var FilterMenu = function FilterMenu(props) {
|
|
|
160
160
|
}
|
|
161
161
|
};
|
|
162
162
|
|
|
163
|
+
if (['cascader'].includes(type)) {
|
|
164
|
+
return /*#__PURE__*/_react.default.createElement(_filterTypes.default, (0, _extends2.default)({}, props, {
|
|
165
|
+
itemProps: comProps,
|
|
166
|
+
filters: data,
|
|
167
|
+
isFiltering: isFiltering,
|
|
168
|
+
getFilterValue: filterValue,
|
|
169
|
+
setFilterValue: setFilterValue,
|
|
170
|
+
handleClear: handleClear
|
|
171
|
+
}));
|
|
172
|
+
}
|
|
173
|
+
|
|
163
174
|
if (type === 'date') {
|
|
164
175
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
165
176
|
className: (0, _classnames.default)('filter_item', {
|
|
@@ -27,6 +27,8 @@ var _linkmoreDesign = require("linkmore-design");
|
|
|
27
27
|
|
|
28
28
|
var _react = _interopRequireWildcard(require("react"));
|
|
29
29
|
|
|
30
|
+
var _modal = _interopRequireDefault(require("../components/modal"));
|
|
31
|
+
|
|
30
32
|
var _IconFont = _interopRequireDefault(require("../../IconFont"));
|
|
31
33
|
|
|
32
34
|
var _VirtualList = _interopRequireDefault(require("../../VirtualList"));
|
|
@@ -54,17 +56,55 @@ var ListItemChecked = function ListItemChecked(props) {
|
|
|
54
56
|
return fullData.find(function (v) {
|
|
55
57
|
return v.field === field;
|
|
56
58
|
});
|
|
57
|
-
}, [field, fullData]); //
|
|
59
|
+
}, [field, fullData]); // 级联选择器的选中值
|
|
60
|
+
|
|
61
|
+
var cascaderValue = (0, _react.useMemo)(function () {
|
|
62
|
+
if (getItem.type === 'cascader') {
|
|
63
|
+
return value.value.map(function (v) {
|
|
64
|
+
return v[v.length - 1];
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return value.value;
|
|
69
|
+
}, [props]); // 遍历树结构
|
|
70
|
+
|
|
71
|
+
var deepChildren = function deepChildren(arr, preArr) {
|
|
72
|
+
arr.forEach(function (item) {
|
|
73
|
+
var _item$children;
|
|
74
|
+
|
|
75
|
+
if (cascaderValue.includes(item.value)) {
|
|
76
|
+
preArr.push(item);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if ((_item$children = item.children) === null || _item$children === void 0 ? void 0 : _item$children.length) {
|
|
80
|
+
deepChildren(item.children, preArr);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}; // 选中的数据
|
|
84
|
+
|
|
58
85
|
|
|
59
86
|
var checkedValues = (0, _react.useMemo)(function () {
|
|
60
87
|
var checkedValue = value.value;
|
|
61
88
|
|
|
62
89
|
if (Array.isArray(checkedValue)) {
|
|
90
|
+
if (getItem.type === 'cascader') {
|
|
91
|
+
var arr = [];
|
|
92
|
+
deepChildren(getItem.data, arr);
|
|
93
|
+
return arr;
|
|
94
|
+
}
|
|
95
|
+
|
|
63
96
|
return getItem.data.filter(function (v) {
|
|
64
97
|
return checkedValue.includes(v.value);
|
|
65
98
|
});
|
|
66
99
|
}
|
|
67
100
|
|
|
101
|
+
if (getItem.type === 'input') {
|
|
102
|
+
return cascaderValue ? [{
|
|
103
|
+
value: cascaderValue,
|
|
104
|
+
label: cascaderValue
|
|
105
|
+
}] : [];
|
|
106
|
+
}
|
|
107
|
+
|
|
68
108
|
var filterValue = getItem.data.find(function (v) {
|
|
69
109
|
return v.value === checkedValue;
|
|
70
110
|
});
|
|
@@ -317,7 +357,7 @@ var Index = function Index() {
|
|
|
317
357
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, resetProps, {
|
|
318
358
|
className: "filter_drawer_group_item"
|
|
319
359
|
}), /*#__PURE__*/_react.default.createElement(ListItemChecked, item));
|
|
320
|
-
})), /*#__PURE__*/_react.default.createElement(ListGroup, null))));
|
|
360
|
+
})), /*#__PURE__*/_react.default.createElement(ListGroup, null)), /*#__PURE__*/_react.default.createElement(_modal.default, null)));
|
|
321
361
|
};
|
|
322
362
|
|
|
323
363
|
var _default = Index;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
require("antd/es/cascader/style");
|
|
13
|
+
|
|
14
|
+
var _cascader = _interopRequireDefault(require("antd/es/cascader"));
|
|
15
|
+
|
|
16
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
17
|
+
|
|
18
|
+
require("antd/es/button/style");
|
|
19
|
+
|
|
20
|
+
var _button = _interopRequireDefault(require("antd/es/button"));
|
|
21
|
+
|
|
22
|
+
require("antd/es/input/style");
|
|
23
|
+
|
|
24
|
+
var _input = _interopRequireDefault(require("antd/es/input"));
|
|
25
|
+
|
|
26
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
27
|
+
|
|
28
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
29
|
+
|
|
30
|
+
var _lodash = require("lodash");
|
|
31
|
+
|
|
32
|
+
var CascaderFilter = function CascaderFilter(_ref) {
|
|
33
|
+
var visible = _ref.visible,
|
|
34
|
+
filters = _ref.options,
|
|
35
|
+
getFilterValue = _ref.value,
|
|
36
|
+
setFilterValue = _ref.onChange,
|
|
37
|
+
_ref$props = _ref.props,
|
|
38
|
+
props = _ref$props === void 0 ? {} : _ref$props;
|
|
39
|
+
|
|
40
|
+
var _useState = (0, _react.useState)(filters),
|
|
41
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
42
|
+
options = _useState2[0],
|
|
43
|
+
setOptions = _useState2[1];
|
|
44
|
+
|
|
45
|
+
var _useState3 = (0, _react.useState)(props.multiple ? [] : ''),
|
|
46
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
47
|
+
defaultValue = _useState4[0],
|
|
48
|
+
setDefaultValue = _useState4[1];
|
|
49
|
+
|
|
50
|
+
var _useState5 = (0, _react.useState)(getFilterValue || (props.multiple ? [] : '')),
|
|
51
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
52
|
+
checkedValues = _useState6[0],
|
|
53
|
+
setCheckedValues = _useState6[1];
|
|
54
|
+
|
|
55
|
+
var isSearch = (0, _react.useMemo)(function () {
|
|
56
|
+
return filters.length > 8;
|
|
57
|
+
}, [filters.length]);
|
|
58
|
+
|
|
59
|
+
var handleFilter = function handleFilter(val) {
|
|
60
|
+
setOptions(filters.filter(function (v) {
|
|
61
|
+
return v.label.indexOf(val) > -1;
|
|
62
|
+
}));
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
var dropdownRender = function dropdownRender(menus) {
|
|
66
|
+
var inputRef = (0, _react.useRef)(null); // 确定
|
|
67
|
+
|
|
68
|
+
var handleSure = function handleSure() {
|
|
69
|
+
setFilterValue(checkedValues);
|
|
70
|
+
}; // 清空
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
var handleReset = function handleReset() {
|
|
74
|
+
inputRef.current.input.value = '';
|
|
75
|
+
setFilterValue(undefined);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
79
|
+
className: "filter_cascader_container filter_dropdown",
|
|
80
|
+
style: {
|
|
81
|
+
width: 392
|
|
82
|
+
}
|
|
83
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
84
|
+
className: "filter_header"
|
|
85
|
+
}, /*#__PURE__*/_react.default.createElement(_input.default.Search, {
|
|
86
|
+
ref: inputRef,
|
|
87
|
+
allowClear: true,
|
|
88
|
+
size: "small",
|
|
89
|
+
placeholder: "\u8BF7\u8F93\u5165",
|
|
90
|
+
onSearch: handleFilter // onChange={debounce((e) => handleFilter(e.target.value), 500)}
|
|
91
|
+
|
|
92
|
+
})), menus, isSearch && /*#__PURE__*/_react.default.createElement("div", {
|
|
93
|
+
className: "filter_footer"
|
|
94
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
95
|
+
className: "footer_clear",
|
|
96
|
+
onClick: handleReset
|
|
97
|
+
}, "\u6E05\u7A7A"), /*#__PURE__*/_react.default.createElement(_button.default, {
|
|
98
|
+
type: "primary",
|
|
99
|
+
size: "small",
|
|
100
|
+
onClick: handleSure
|
|
101
|
+
}, "\u786E\u5B9A")));
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
var onChange = function onChange(item, selectedOptions) {
|
|
105
|
+
if (props.multiple) {
|
|
106
|
+
setFilterValue(item); // setFilterValue(item.map((v) => v[v.length - 1]));
|
|
107
|
+
|
|
108
|
+
setCheckedValues(item);
|
|
109
|
+
} else {
|
|
110
|
+
setFilterValue(item);
|
|
111
|
+
setCheckedValues(item);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
(0, _react.useEffect)(function () {
|
|
116
|
+
if (visible) {
|
|
117
|
+
setCheckedValues(getFilterValue || (props.multiple ? [] : ''));
|
|
118
|
+
}
|
|
119
|
+
}, [visible]);
|
|
120
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_cascader.default, (0, _extends2.default)({
|
|
121
|
+
allowClear: true
|
|
122
|
+
}, props, {
|
|
123
|
+
options: options,
|
|
124
|
+
defaultValue: defaultValue,
|
|
125
|
+
value: checkedValues,
|
|
126
|
+
onChange: onChange,
|
|
127
|
+
dropdownRender: dropdownRender
|
|
128
|
+
})));
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
var _default = CascaderFilter;
|
|
132
|
+
exports.default = _default;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
|
+
|
|
16
|
+
var _linkmoreDesign = require("linkmore-design");
|
|
17
|
+
|
|
18
|
+
// 复选标签组件,选中字段,多选
|
|
19
|
+
var CheckboxTags = function CheckboxTags(_ref) {
|
|
20
|
+
var value = _ref.value,
|
|
21
|
+
onChange = _ref.onChange,
|
|
22
|
+
options = _ref.options;
|
|
23
|
+
|
|
24
|
+
var handleClick = function handleClick(item) {
|
|
25
|
+
var oriValue = value || []; // 源数据
|
|
26
|
+
|
|
27
|
+
var has = oriValue === null || oriValue === void 0 ? void 0 : oriValue.includes(item.value); // 是否已被选中
|
|
28
|
+
|
|
29
|
+
var nValue = has ? oriValue.filter(function (v) {
|
|
30
|
+
return v !== item.value;
|
|
31
|
+
}) : [].concat((0, _toConsumableArray2.default)(oriValue), [item.value]);
|
|
32
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(nValue); // 返回选中的数据
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Space, {
|
|
36
|
+
size: 8,
|
|
37
|
+
wrap: true,
|
|
38
|
+
className: "auto_height"
|
|
39
|
+
}, options === null || options === void 0 ? void 0 : options.map(function (v) {
|
|
40
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
41
|
+
key: v.value,
|
|
42
|
+
className: (0, _classnames.default)('checkbox_tag', {
|
|
43
|
+
active: value === null || value === void 0 ? void 0 : value.includes(v.value)
|
|
44
|
+
}),
|
|
45
|
+
onClick: function onClick() {
|
|
46
|
+
return handleClick(v);
|
|
47
|
+
}
|
|
48
|
+
}, v.label);
|
|
49
|
+
})));
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
var _default = CheckboxTags;
|
|
53
|
+
exports.default = _default;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
require("antd/es/input/style");
|
|
11
|
+
|
|
12
|
+
var _input = _interopRequireDefault(require("antd/es/input"));
|
|
13
|
+
|
|
14
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
15
|
+
|
|
16
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
17
|
+
|
|
18
|
+
var _react = _interopRequireDefault(require("react"));
|
|
19
|
+
|
|
20
|
+
var _CheckboxTags = _interopRequireDefault(require("./CheckboxTags"));
|
|
21
|
+
|
|
22
|
+
var _CascaderFilter = _interopRequireDefault(require("./CascaderFilter"));
|
|
23
|
+
|
|
24
|
+
var _excluded = ["type", "options"];
|
|
25
|
+
|
|
26
|
+
var Controls = function Controls(props) {
|
|
27
|
+
var type = props.type,
|
|
28
|
+
options = props.options,
|
|
29
|
+
resetProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
30
|
+
var obj = {
|
|
31
|
+
'select': /*#__PURE__*/_react.default.createElement(_CheckboxTags.default, (0, _extends2.default)({
|
|
32
|
+
options: options
|
|
33
|
+
}, resetProps)),
|
|
34
|
+
'cascader': /*#__PURE__*/_react.default.createElement(_CascaderFilter.default, (0, _extends2.default)({
|
|
35
|
+
options: options
|
|
36
|
+
}, resetProps)),
|
|
37
|
+
'input': /*#__PURE__*/_react.default.createElement(_input.default, resetProps)
|
|
38
|
+
};
|
|
39
|
+
return obj[type] || null;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
var _default = Controls;
|
|
43
|
+
exports.default = _default;
|