linkmore-design 1.0.3 → 1.0.4
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 +478 -166
- package/dist/index.umd.min.js +5 -5
- package/es/ButtonTags/style/style.css +353 -8
- package/es/CkFilter/baseFilter/filterMenu.js +36 -6
- package/es/CkFilter/complexFilter/drawer.js +3 -2
- package/es/CkFilter/components/filterTypes.js +178 -76
- package/es/CkFilter/context.js +11 -2
- package/es/CkFilter/filter.js +50 -12
- package/es/CkFilter/style/style.css +408 -8
- package/es/CustomerService/style/style.css +353 -8
- package/es/EditTable/EditTable.js +177 -73
- package/es/EditTable/style/style.css +353 -8
- package/es/Filter/style/style.css +353 -8
- package/es/IconFont/index.js +1 -1
- package/es/LeftTable/style/style.css +353 -8
- package/es/Modal/exportModal.js +1 -1
- package/es/PopTable/style/style.css +353 -8
- package/es/ProTable/ImgList/cardCell.js +19 -6
- package/es/ProTable/style/style.css +378 -15
- package/es/styles/globalClass.css +63 -0
- package/es/styles/main.css +353 -8
- package/es/styles/resetAntd.css +15 -0
- package/lib/ButtonTags/style/style.css +353 -8
- package/lib/CkFilter/baseFilter/filterMenu.js +36 -6
- package/lib/CkFilter/complexFilter/drawer.js +3 -2
- package/lib/CkFilter/components/filterTypes.js +178 -76
- package/lib/CkFilter/context.js +11 -2
- package/lib/CkFilter/filter.js +50 -12
- package/lib/CkFilter/style/style.css +408 -8
- package/lib/CustomerService/style/style.css +353 -8
- package/lib/EditTable/EditTable.js +177 -73
- package/lib/EditTable/style/style.css +353 -8
- package/lib/Filter/style/style.css +353 -8
- package/lib/IconFont/index.js +1 -1
- package/lib/LeftTable/style/style.css +353 -8
- package/lib/Modal/exportModal.js +1 -1
- package/lib/PopTable/style/style.css +353 -8
- package/lib/ProTable/ImgList/cardCell.js +19 -6
- package/lib/ProTable/style/style.css +378 -15
- package/lib/styles/globalClass.css +63 -0
- package/lib/styles/main.css +353 -8
- package/lib/styles/resetAntd.css +15 -0
- package/package.json +4 -3
|
@@ -51,7 +51,8 @@ var _excluded = ["item"],
|
|
|
51
51
|
_excluded2 = ["item"],
|
|
52
52
|
_excluded3 = ["item"],
|
|
53
53
|
_excluded4 = ["item"],
|
|
54
|
-
_excluded5 = ["
|
|
54
|
+
_excluded5 = ["item"],
|
|
55
|
+
_excluded6 = ["type"];
|
|
55
56
|
|
|
56
57
|
// 输入框过滤器
|
|
57
58
|
var InputFilter = function InputFilter(_ref) {
|
|
@@ -79,7 +80,8 @@ var InputFilter = function InputFilter(_ref) {
|
|
|
79
80
|
|
|
80
81
|
|
|
81
82
|
var SelectFilter = function SelectFilter(_ref2) {
|
|
82
|
-
var filters = _ref2.filters,
|
|
83
|
+
var _ref2$filters = _ref2.filters,
|
|
84
|
+
filters = _ref2$filters === void 0 ? [] : _ref2$filters,
|
|
83
85
|
getFilterValue = _ref2.getFilterValue,
|
|
84
86
|
setFilterValue = _ref2.setFilterValue;
|
|
85
87
|
var inputRef = (0, _react.useRef)(null); // 搜索后的筛选项
|
|
@@ -140,13 +142,90 @@ var SelectFilter = function SelectFilter(_ref2) {
|
|
|
140
142
|
}), !options.length && /*#__PURE__*/_react.default.createElement("div", {
|
|
141
143
|
className: "filter_empty"
|
|
142
144
|
}, "\u6682\u65E0\u6570\u636E")));
|
|
143
|
-
}; //
|
|
145
|
+
}; // 嵌套结构下拉单选过滤器
|
|
144
146
|
|
|
145
147
|
|
|
146
|
-
var
|
|
148
|
+
var NestedFilter = function NestedFilter(_ref4) {
|
|
147
149
|
var filters = _ref4.filters,
|
|
148
150
|
getFilterValue = _ref4.getFilterValue,
|
|
149
151
|
setFilterValue = _ref4.setFilterValue;
|
|
152
|
+
var inputRef = (0, _react.useRef)(null); // 搜索后的筛选项
|
|
153
|
+
|
|
154
|
+
var _useState3 = (0, _react.useState)(filters),
|
|
155
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
156
|
+
options = _useState4[0],
|
|
157
|
+
setOptions = _useState4[1]; // 是否存在搜索, 当数据大于8时存在搜索
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
var isSearch = (0, _react.useMemo)(function () {
|
|
161
|
+
return filters.length > 8;
|
|
162
|
+
}, [filters.length]); // 搜索
|
|
163
|
+
|
|
164
|
+
var handleFilter = function handleFilter(val) {
|
|
165
|
+
setOptions(filters.filter(function (v) {
|
|
166
|
+
return v.label.indexOf(val) > -1;
|
|
167
|
+
}));
|
|
168
|
+
}; // 单选事件
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
var onChange = function onChange(e, item) {
|
|
172
|
+
e.preventDefault();
|
|
173
|
+
setFilterValue(item.value);
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
var handleClick = function handleClick(e, item) {
|
|
177
|
+
e.preventDefault();
|
|
178
|
+
e.stopPropagation();
|
|
179
|
+
setFilterValue(item, 'children');
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
183
|
+
className: "filter_dropdown"
|
|
184
|
+
}, isSearch && /*#__PURE__*/_react.default.createElement("div", {
|
|
185
|
+
className: "filter_header"
|
|
186
|
+
}, /*#__PURE__*/_react.default.createElement(_input.default.Search, {
|
|
187
|
+
ref: inputRef,
|
|
188
|
+
allowClear: true,
|
|
189
|
+
size: "small",
|
|
190
|
+
placeholder: "\u8BF7\u8F93\u5165",
|
|
191
|
+
onSearch: handleFilter,
|
|
192
|
+
onChange: (0, _lodash.debounce)(function (e) {
|
|
193
|
+
return handleFilter(e.target.value);
|
|
194
|
+
}, 500)
|
|
195
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
196
|
+
className: "filter_body"
|
|
197
|
+
}, /*#__PURE__*/_react.default.createElement(_VirtualList.default, {
|
|
198
|
+
options: options,
|
|
199
|
+
className: "filter_list"
|
|
200
|
+
}, function (_ref5) {
|
|
201
|
+
var item = _ref5.item,
|
|
202
|
+
resetProps = (0, _objectWithoutProperties2.default)(_ref5, _excluded2);
|
|
203
|
+
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, resetProps, {
|
|
204
|
+
className: (0, _classnames.default)('filter_item', {
|
|
205
|
+
checked: item.value === getFilterValue
|
|
206
|
+
}),
|
|
207
|
+
onClick: function onClick(e) {
|
|
208
|
+
return onChange(e, item);
|
|
209
|
+
}
|
|
210
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
211
|
+
className: "filter_item-content"
|
|
212
|
+
}, item.label), /*#__PURE__*/_react.default.createElement(_IconFont.default, {
|
|
213
|
+
type: "lmweb-gengduotianchong",
|
|
214
|
+
onClick: function onClick(e) {
|
|
215
|
+
return handleClick(e, item);
|
|
216
|
+
}
|
|
217
|
+
}));
|
|
218
|
+
}), !options.length && /*#__PURE__*/_react.default.createElement("div", {
|
|
219
|
+
className: "filter_empty"
|
|
220
|
+
}, "\u6682\u65E0\u6570\u636E")));
|
|
221
|
+
}; // 自定义筛选下拉选过滤器
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
var CustomFilter = function CustomFilter(_ref6) {
|
|
225
|
+
var _ref6$filters = _ref6.filters,
|
|
226
|
+
filters = _ref6$filters === void 0 ? [] : _ref6$filters,
|
|
227
|
+
getFilterValue = _ref6.getFilterValue,
|
|
228
|
+
setFilterValue = _ref6.setFilterValue;
|
|
150
229
|
|
|
151
230
|
// 单选事件
|
|
152
231
|
var onChange = function onChange(e, item) {
|
|
@@ -171,9 +250,9 @@ var CustomFilter = function CustomFilter(_ref4) {
|
|
|
171
250
|
}, /*#__PURE__*/_react.default.createElement(_VirtualList.default, {
|
|
172
251
|
options: filters,
|
|
173
252
|
className: "filter_list"
|
|
174
|
-
}, function (
|
|
175
|
-
var item =
|
|
176
|
-
resetProps = (0, _objectWithoutProperties2.default)(
|
|
253
|
+
}, function (_ref7) {
|
|
254
|
+
var item = _ref7.item,
|
|
255
|
+
resetProps = (0, _objectWithoutProperties2.default)(_ref7, _excluded3);
|
|
177
256
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, resetProps, {
|
|
178
257
|
className: (0, _classnames.default)('filter_item', {
|
|
179
258
|
checked: item.value === getFilterValue
|
|
@@ -207,22 +286,23 @@ var CustomFilter = function CustomFilter(_ref4) {
|
|
|
207
286
|
}; // 下拉多选过滤器: 要过滤的数据, 当前选中项, 触发过滤, 过滤前的数据
|
|
208
287
|
|
|
209
288
|
|
|
210
|
-
var CheckboxFilter = function CheckboxFilter(
|
|
211
|
-
var filters =
|
|
212
|
-
|
|
213
|
-
|
|
289
|
+
var CheckboxFilter = function CheckboxFilter(_ref8) {
|
|
290
|
+
var _ref8$filters = _ref8.filters,
|
|
291
|
+
filters = _ref8$filters === void 0 ? [] : _ref8$filters,
|
|
292
|
+
getFilterValue = _ref8.getFilterValue,
|
|
293
|
+
setFilterValue = _ref8.setFilterValue;
|
|
214
294
|
var inputRef = (0, _react.useRef)(null);
|
|
215
295
|
|
|
216
|
-
var
|
|
217
|
-
|
|
218
|
-
checkedValues =
|
|
219
|
-
setCheckedValues =
|
|
296
|
+
var _useState5 = (0, _react.useState)(getFilterValue || []),
|
|
297
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
298
|
+
checkedValues = _useState6[0],
|
|
299
|
+
setCheckedValues = _useState6[1]; // 搜索后的筛选项
|
|
220
300
|
|
|
221
301
|
|
|
222
|
-
var
|
|
223
|
-
|
|
224
|
-
options =
|
|
225
|
-
setOptions =
|
|
302
|
+
var _useState7 = (0, _react.useState)(filters),
|
|
303
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
304
|
+
options = _useState8[0],
|
|
305
|
+
setOptions = _useState8[1]; // 是否存在搜索, 当数据大于8时存在搜索
|
|
226
306
|
|
|
227
307
|
|
|
228
308
|
var isSearch = (0, _react.useMemo)(function () {
|
|
@@ -301,9 +381,9 @@ var CheckboxFilter = function CheckboxFilter(_ref6) {
|
|
|
301
381
|
}, /*#__PURE__*/_react.default.createElement(_VirtualList.default, {
|
|
302
382
|
options: options,
|
|
303
383
|
className: "filter_list"
|
|
304
|
-
}, function (
|
|
305
|
-
var item =
|
|
306
|
-
resetProps = (0, _objectWithoutProperties2.default)(
|
|
384
|
+
}, function (_ref9) {
|
|
385
|
+
var item = _ref9.item,
|
|
386
|
+
resetProps = (0, _objectWithoutProperties2.default)(_ref9, _excluded4);
|
|
307
387
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, resetProps, {
|
|
308
388
|
className: (0, _classnames.default)('filter_item', {
|
|
309
389
|
checked: checkedValues.includes(item.value)
|
|
@@ -329,10 +409,10 @@ var CheckboxFilter = function CheckboxFilter(_ref6) {
|
|
|
329
409
|
}; // 更多筛选
|
|
330
410
|
|
|
331
411
|
|
|
332
|
-
var MoreFilter = function MoreFilter(
|
|
333
|
-
var filters =
|
|
334
|
-
getFilterValue =
|
|
335
|
-
setFilterValue =
|
|
412
|
+
var MoreFilter = function MoreFilter(_ref10) {
|
|
413
|
+
var filters = _ref10.filters,
|
|
414
|
+
getFilterValue = _ref10.getFilterValue,
|
|
415
|
+
setFilterValue = _ref10.setFilterValue;
|
|
336
416
|
// 选中的数据
|
|
337
417
|
var checkedValues = (0, _react.useMemo)(function () {
|
|
338
418
|
return getFilterValue;
|
|
@@ -398,9 +478,9 @@ var MoreFilter = function MoreFilter(_ref8) {
|
|
|
398
478
|
}, /*#__PURE__*/_react.default.createElement(_VirtualList.default, {
|
|
399
479
|
options: options,
|
|
400
480
|
className: "filter_list"
|
|
401
|
-
}, function (
|
|
402
|
-
var item =
|
|
403
|
-
resetProps = (0, _objectWithoutProperties2.default)(
|
|
481
|
+
}, function (_ref11) {
|
|
482
|
+
var item = _ref11.item,
|
|
483
|
+
resetProps = (0, _objectWithoutProperties2.default)(_ref11, _excluded5);
|
|
404
484
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, resetProps, {
|
|
405
485
|
className: "filter_item",
|
|
406
486
|
onClick: function onClick(e) {
|
|
@@ -422,16 +502,17 @@ var MoreFilter = function MoreFilter(_ref8) {
|
|
|
422
502
|
}; // 日期范围选择器
|
|
423
503
|
|
|
424
504
|
|
|
425
|
-
var DatePickerFilter = function DatePickerFilter(
|
|
426
|
-
var getFilterValue =
|
|
427
|
-
setFilterValue =
|
|
428
|
-
props =
|
|
505
|
+
var DatePickerFilter = function DatePickerFilter(_ref12) {
|
|
506
|
+
var getFilterValue = _ref12.getFilterValue,
|
|
507
|
+
setFilterValue = _ref12.setFilterValue,
|
|
508
|
+
props = _ref12.props,
|
|
509
|
+
dateType = _ref12.dateType;
|
|
429
510
|
// 对日期格式的转换, 日期组件仅接收moment格式
|
|
430
511
|
var value = (0, _react.useMemo)(function () {
|
|
431
512
|
var nValue;
|
|
432
513
|
|
|
433
514
|
if (getFilterValue) {
|
|
434
|
-
nValue = [(0, _moment.default)(getFilterValue[0]), (0, _moment.default)(getFilterValue[1])];
|
|
515
|
+
nValue = dateType === 'rangePicker' ? [(0, _moment.default)(getFilterValue[0]), (0, _moment.default)(getFilterValue[1])] : (0, _moment.default)(getFilterValue);
|
|
435
516
|
}
|
|
436
517
|
|
|
437
518
|
return nValue;
|
|
@@ -448,59 +529,77 @@ var DatePickerFilter = function DatePickerFilter(_ref10) {
|
|
|
448
529
|
}, []); // 选中时间段的触发
|
|
449
530
|
|
|
450
531
|
var onChange = function onChange(dates, dateStrings) {
|
|
451
|
-
setFilterValue((0, _utils.getIsHas)(dateStrings
|
|
452
|
-
return !!v;
|
|
453
|
-
})) ? dateStrings : null);
|
|
454
|
-
}; // 最近的时间触发事件
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
var handleLastDateOnChange = function handleLastDateOnChange(e) {
|
|
458
|
-
var nValue = JSON.parse(e.target.value);
|
|
459
|
-
setFilterValue(nValue);
|
|
532
|
+
setFilterValue((0, _utils.getIsHas)(dateStrings) ? dateStrings : null);
|
|
460
533
|
};
|
|
461
534
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
535
|
+
if (dateType === 'rangePicker') {
|
|
536
|
+
// 选中时间段的触发
|
|
537
|
+
var handleOnChange = function handleOnChange(dates, dateStrings) {
|
|
538
|
+
onChange(dates, (0, _utils.getIsHas)(dateStrings.filter(function (v) {
|
|
539
|
+
return !!v;
|
|
540
|
+
})) ? dateStrings : null);
|
|
541
|
+
}; // 最近的时间触发事件
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
var handleLastDateOnChange = function handleLastDateOnChange(e) {
|
|
545
|
+
var nValue = JSON.parse(e.target.value);
|
|
546
|
+
setFilterValue(nValue);
|
|
547
|
+
};
|
|
548
|
+
|
|
549
|
+
var panelRender = function panelRender(panelNode) {
|
|
550
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
551
|
+
className: "filter_picker_box"
|
|
552
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
553
|
+
className: "filter_picker_main"
|
|
554
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
555
|
+
className: "filter_picker_header"
|
|
556
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
557
|
+
className: "filter_picker_header_tip"
|
|
558
|
+
}, getFilterValue && "".concat(getFilterValue[0], " - ").concat(getFilterValue[1])), /*#__PURE__*/_react.default.createElement("div", {
|
|
559
|
+
className: "filter_picker_header_operate"
|
|
560
|
+
}, /*#__PURE__*/_react.default.createElement(_radio.default.Group, {
|
|
561
|
+
value: JSON.stringify(getFilterValue),
|
|
562
|
+
onChange: handleLastDateOnChange,
|
|
563
|
+
size: "small"
|
|
564
|
+
}, ranges.map(function (v) {
|
|
565
|
+
return /*#__PURE__*/_react.default.createElement(_radio.default.Button, {
|
|
566
|
+
key: v.label,
|
|
567
|
+
value: v.value
|
|
568
|
+
}, v.label);
|
|
569
|
+
})))), panelNode));
|
|
570
|
+
};
|
|
571
|
+
|
|
572
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_datePicker.default.RangePicker, (0, _extends2.default)({
|
|
573
|
+
picker: "date",
|
|
574
|
+
separator: "\u81F3",
|
|
575
|
+
placeholder: ['开始日期', '结束日期'],
|
|
576
|
+
style: {
|
|
577
|
+
width: 200
|
|
578
|
+
}
|
|
579
|
+
}, props, {
|
|
580
|
+
value: value,
|
|
581
|
+
onChange: handleOnChange,
|
|
582
|
+
panelRender: panelRender,
|
|
583
|
+
dropdownClassName: "filter_dropdown_picker",
|
|
584
|
+
bordered: false,
|
|
476
585
|
size: "small"
|
|
477
|
-
}
|
|
478
|
-
|
|
479
|
-
key: v.label,
|
|
480
|
-
value: v.value
|
|
481
|
-
}, v.label);
|
|
482
|
-
})))), panelNode));
|
|
483
|
-
};
|
|
586
|
+
})));
|
|
587
|
+
}
|
|
484
588
|
|
|
485
|
-
|
|
589
|
+
;
|
|
590
|
+
return /*#__PURE__*/_react.default.createElement(_datePicker.default, (0, _extends2.default)({
|
|
591
|
+
placeholder: "\u9009\u62E9\u65F6\u95F4"
|
|
592
|
+
}, props, {
|
|
486
593
|
value: value,
|
|
487
594
|
onChange: onChange,
|
|
488
|
-
panelRender: panelRender,
|
|
489
|
-
dropdownClassName: "lm_filter_dropdown_picker",
|
|
490
595
|
bordered: false,
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
separator: "\u81F3",
|
|
494
|
-
placeholder: ['开始日期', '结束日期'],
|
|
495
|
-
style: {
|
|
496
|
-
width: 200
|
|
497
|
-
}
|
|
498
|
-
}, props)));
|
|
596
|
+
size: "small"
|
|
597
|
+
}));
|
|
499
598
|
};
|
|
500
599
|
|
|
501
600
|
var FilterComp = function FilterComp(props) {
|
|
502
601
|
var type = props.type,
|
|
503
|
-
resetProps = (0, _objectWithoutProperties2.default)(props,
|
|
602
|
+
resetProps = (0, _objectWithoutProperties2.default)(props, _excluded6);
|
|
504
603
|
|
|
505
604
|
switch (type) {
|
|
506
605
|
case 'input':
|
|
@@ -521,6 +620,9 @@ var FilterComp = function FilterComp(props) {
|
|
|
521
620
|
case 'more':
|
|
522
621
|
return /*#__PURE__*/_react.default.createElement(MoreFilter, resetProps);
|
|
523
622
|
|
|
623
|
+
case 'nested':
|
|
624
|
+
return /*#__PURE__*/_react.default.createElement(NestedFilter, resetProps);
|
|
625
|
+
|
|
524
626
|
default:
|
|
525
627
|
return /*#__PURE__*/_react.default.createElement(CheckboxFilter, resetProps);
|
|
526
628
|
}
|
package/lib/CkFilter/context.js
CHANGED
|
@@ -29,7 +29,7 @@ var initialState = {
|
|
|
29
29
|
searchKey: 'search',
|
|
30
30
|
levelGroupKey: 'levGroup',
|
|
31
31
|
filter: true,
|
|
32
|
-
complex:
|
|
32
|
+
complex: false
|
|
33
33
|
},
|
|
34
34
|
// 初始化数据
|
|
35
35
|
visibleFields: [],
|
|
@@ -44,6 +44,8 @@ var initialState = {
|
|
|
44
44
|
// 一级筛选过滤的内容
|
|
45
45
|
complexFilterValues: {},
|
|
46
46
|
// 高级筛选过滤的内容
|
|
47
|
+
nestedFilterValues: {},
|
|
48
|
+
// 嵌套结构的过滤内容 {objType: {field: 'supplier', value: 's1', label: '一号供应商'}, ...}
|
|
47
49
|
customDrawer: {
|
|
48
50
|
visible: false,
|
|
49
51
|
data: {}
|
|
@@ -72,7 +74,8 @@ var reducer = function reducer(state, action) {
|
|
|
72
74
|
customModal = action.customModal,
|
|
73
75
|
complexDrawer = action.complexDrawer,
|
|
74
76
|
customFilterValues = action.customFilterValues,
|
|
75
|
-
complexFilterValues = action.complexFilterValues
|
|
77
|
+
complexFilterValues = action.complexFilterValues,
|
|
78
|
+
nestedFilterValues = action.nestedFilterValues;
|
|
76
79
|
|
|
77
80
|
switch (action.type) {
|
|
78
81
|
// 仅在初始化时触发
|
|
@@ -131,6 +134,12 @@ var reducer = function reducer(state, action) {
|
|
|
131
134
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
132
135
|
complexFilterValues: complexFilterValues
|
|
133
136
|
});
|
|
137
|
+
// 设置嵌套结构的内容
|
|
138
|
+
|
|
139
|
+
case 'changeNestedFilterValues':
|
|
140
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
141
|
+
nestedFilterValues: nestedFilterValues
|
|
142
|
+
});
|
|
134
143
|
|
|
135
144
|
default:
|
|
136
145
|
throw new Error();
|
package/lib/CkFilter/filter.js
CHANGED
|
@@ -9,6 +9,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports.default = void 0;
|
|
11
11
|
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
15
|
+
|
|
12
16
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
17
|
|
|
14
18
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -31,7 +35,7 @@ var _modal = _interopRequireDefault(require("./components/modal"));
|
|
|
31
35
|
* data
|
|
32
36
|
*
|
|
33
37
|
*/
|
|
34
|
-
var Filter = function
|
|
38
|
+
var Filter = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
35
39
|
var _useContent = (0, _context.useContent)(),
|
|
36
40
|
_useContent2 = (0, _slicedToArray2.default)(_useContent, 2),
|
|
37
41
|
state = _useContent2[0],
|
|
@@ -40,15 +44,9 @@ var Filter = function Filter(props) {
|
|
|
40
44
|
var _state$instance = state.instance,
|
|
41
45
|
custom = _state$instance.custom,
|
|
42
46
|
levelGroup = _state$instance.levelGroup,
|
|
43
|
-
complex = _state$instance.complex;
|
|
44
|
-
(0, _react.useEffect)(function () {
|
|
45
|
-
dispatch({
|
|
46
|
-
type: 'initOptions',
|
|
47
|
-
instance: props
|
|
48
|
-
});
|
|
49
|
-
}, []); // 初始化过滤的值
|
|
47
|
+
complex = _state$instance.complex; // 初始化
|
|
50
48
|
|
|
51
|
-
(0, _react.
|
|
49
|
+
var setOptions = (0, _react.useCallback)(function () {
|
|
52
50
|
var trigger = props.trigger,
|
|
53
51
|
onChange = props.onChange,
|
|
54
52
|
data = props.data,
|
|
@@ -92,13 +90,54 @@ var Filter = function Filter(props) {
|
|
|
92
90
|
}); // 是否立即触发
|
|
93
91
|
|
|
94
92
|
trigger === 'init' && (onChange === null || onChange === void 0 ? void 0 : onChange(filterValues, customFilterValues()));
|
|
93
|
+
}, [dispatch, props]); // 初始化过滤的值
|
|
94
|
+
|
|
95
|
+
(0, _react.useEffect)(function () {
|
|
96
|
+
setOptions();
|
|
95
97
|
}, []);
|
|
96
98
|
(0, _react.useEffect)(function () {
|
|
97
99
|
dispatch({
|
|
98
100
|
type: 'initInstance',
|
|
99
101
|
instance: props
|
|
100
102
|
});
|
|
101
|
-
}, [props]);
|
|
103
|
+
}, [props]); // 外部控制
|
|
104
|
+
|
|
105
|
+
var setFilter = function setFilter(_ref) {
|
|
106
|
+
var _state$instance$onCha, _state$instance2;
|
|
107
|
+
|
|
108
|
+
var field = _ref.field,
|
|
109
|
+
value = _ref.value,
|
|
110
|
+
label = _ref.label,
|
|
111
|
+
relation = _ref.relation;
|
|
112
|
+
var nValue = (0, _objectSpread2.default)({}, state.filterValues);
|
|
113
|
+
delete nValue[relation];
|
|
114
|
+
state.instance.data.find(function (v) {
|
|
115
|
+
return v.field === relation;
|
|
116
|
+
}).data.forEach(function (element) {
|
|
117
|
+
delete nValue[element.value];
|
|
118
|
+
});
|
|
119
|
+
(0, _utils.getIsHas)(value) ? nValue[field] = value : delete nValue[field];
|
|
120
|
+
dispatch({
|
|
121
|
+
type: 'changeFilterValues',
|
|
122
|
+
filterValues: nValue
|
|
123
|
+
});
|
|
124
|
+
label && dispatch({
|
|
125
|
+
type: 'changeNestedFilterValues',
|
|
126
|
+
nestedFilterValues: (0, _defineProperty2.default)({}, relation, {
|
|
127
|
+
value: value,
|
|
128
|
+
label: label,
|
|
129
|
+
field: field
|
|
130
|
+
})
|
|
131
|
+
});
|
|
132
|
+
(_state$instance$onCha = (_state$instance2 = state.instance).onChange) === null || _state$instance$onCha === void 0 ? void 0 : _state$instance$onCha.call(_state$instance2, nValue, state.customFilterValues);
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
(0, _react.useImperativeHandle)(ref, function () {
|
|
136
|
+
return {
|
|
137
|
+
setOptions: setOptions,
|
|
138
|
+
setFilter: setFilter
|
|
139
|
+
};
|
|
140
|
+
});
|
|
102
141
|
return /*#__PURE__*/_react.default.createElement(_context.Context.Provider, {
|
|
103
142
|
value: {
|
|
104
143
|
state: state,
|
|
@@ -109,7 +148,6 @@ var Filter = function Filter(props) {
|
|
|
109
148
|
}, custom && /*#__PURE__*/_react.default.createElement(_customFilter.default, null), levelGroup && /*#__PURE__*/_react.default.createElement(_radioGroup.default, null), (custom || levelGroup) && /*#__PURE__*/_react.default.createElement("div", {
|
|
110
149
|
className: "line"
|
|
111
150
|
}), /*#__PURE__*/_react.default.createElement(_baseFilter.default, null), complex && /*#__PURE__*/_react.default.createElement(_complexFilter.default, null), /*#__PURE__*/_react.default.createElement(_modal.default, null)));
|
|
112
|
-
};
|
|
113
|
-
|
|
151
|
+
});
|
|
114
152
|
var _default = Filter;
|
|
115
153
|
exports.default = _default;
|