linkmore-design 1.0.54 → 1.0.57
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/Button/index.d.ts +4 -0
- package/dist/CardTable/card/PictureTextRowOperate.d.ts +7 -0
- package/dist/CardTable/fns/index.d.ts +1 -5
- package/dist/CustomTableOption/cardSort.d.ts +4 -0
- package/dist/CustomTableOption/index.d.ts +1 -0
- package/dist/DatePicker/PickerButton.d.ts +2 -0
- package/dist/DatePicker/PickerTag.d.ts +2 -0
- package/dist/DatePicker/demos/basic.d.ts +2 -0
- package/dist/DatePicker/generatePicker/generateRangePicker.d.ts +4 -0
- package/dist/DatePicker/generatePicker/generateSinglePicker.d.ts +14 -0
- package/dist/DatePicker/generatePicker/index.d.ts +106 -0
- package/dist/DatePicker/generatePicker/interface.d.ts +12 -0
- package/dist/DatePicker/index.d.ts +17 -0
- package/dist/DatePicker/style/index.d.ts +1 -0
- package/dist/DatePicker/util.d.ts +14 -0
- package/dist/IconFont/index.d.ts +1 -1
- package/dist/LmEditTable/demos/basic copy.d.ts +2 -0
- package/dist/LmFilter/Controls/CheckboxTags.d.ts +6 -0
- package/dist/LmFilter/Controls/index.d.ts +2 -0
- package/dist/LmFilter/LmFilter.d.ts +4 -1
- package/dist/LmFilter/{components → baseFilter}/fuzzySearch.d.ts +0 -0
- package/dist/LmFilter/complexFilter/drawer.d.ts +4 -0
- package/dist/LmFilter/complexFilter/index.d.ts +3 -1
- package/dist/LmFilter/complexFilter/valueDrawer.d.ts +4 -0
- package/dist/LmFilter/localization.d.ts +8 -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/Switch/demos/table.d.ts +2 -0
- package/dist/Switch/index.d.ts +2 -1
- 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/motion.d.ts +8 -0
- package/dist/_util/statusUtils.d.ts +6 -0
- package/dist/_util/throttleByAnimationFrame.d.ts +8 -0
- package/dist/_util/type.d.ts +9 -0
- package/dist/_util/warning.d.ts +6 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.umd.js +10843 -131
- package/dist/index.umd.min.js +6 -6
- 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/Button/index.d.ts +4 -0
- package/es/Button/index.js +1 -1
- package/es/CardTable/body/TableBodyCell.js +3 -0
- package/es/CardTable/card/PictureTextRow.js +13 -50
- package/es/CardTable/card/PictureTextRowOperate.js +130 -0
- package/es/CardTable/fns/index.js +6 -5
- package/es/CardTable/style/index.css +158 -10
- package/es/CustomTableOption/cardSort.d.ts +4 -0
- package/es/CustomTableOption/cardSort.js +222 -0
- package/es/CustomTableOption/index.d.ts +1 -0
- package/es/CustomTableOption/index.js +35 -11
- package/es/CustomTableOption/style/index.css +3 -0
- package/es/DatePicker/PickerButton.d.ts +2 -0
- package/es/DatePicker/PickerButton.js +8 -0
- package/es/DatePicker/PickerTag.d.ts +2 -0
- package/es/DatePicker/PickerTag.js +7 -0
- package/es/DatePicker/generatePicker/generateRangePicker.d.ts +4 -0
- package/es/DatePicker/generatePicker/generateRangePicker.js +142 -0
- package/es/DatePicker/generatePicker/generateSinglePicker.d.ts +14 -0
- package/es/DatePicker/generatePicker/generateSinglePicker.js +170 -0
- package/es/DatePicker/generatePicker/index.d.ts +106 -0
- package/es/DatePicker/generatePicker/index.js +84 -0
- package/es/DatePicker/generatePicker/interface.d.ts +12 -0
- package/es/DatePicker/generatePicker/interface.js +1 -0
- package/es/DatePicker/index.d.ts +17 -0
- package/es/DatePicker/index.js +7 -0
- package/es/DatePicker/style/index.css +505 -0
- package/es/DatePicker/style/index.d.ts +1 -0
- package/es/DatePicker/style/index.js +1 -0
- package/es/DatePicker/util.d.ts +14 -0
- package/es/DatePicker/util.js +111 -0
- package/es/Descriptions/style/index.css +10 -8
- package/es/IconFont/index.js +3 -2
- package/es/LmEditTable/DragHandle.js +1 -1
- package/es/LmEditTable/EditTable.js +27 -35
- package/es/LmFilter/Controls/CheckboxTags.js +53 -0
- package/es/LmFilter/Controls/index.js +47 -0
- package/es/LmFilter/LmFilter.js +17 -5
- 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/complexFilter/drawer.js +376 -0
- package/es/LmFilter/complexFilter/index.js +50 -3
- package/es/LmFilter/complexFilter/valueDrawer.js +238 -0
- package/es/LmFilter/components/CascaderFilter.js +17 -41
- package/es/LmFilter/components/DateFilter.js +12 -20
- package/es/LmFilter/components/DropdownFIlter.js +79 -12
- package/es/LmFilter/components/index.js +56 -13
- package/es/LmFilter/filterFns/index.js +22 -3
- package/es/LmFilter/hooks/useDelayedFn.js +8 -6
- package/es/LmFilter/localization.d.ts +8 -0
- package/es/LmFilter/localization.js +12 -0
- package/es/LmFilter/style/style.css +27 -4
- package/es/LmFilter/utils.js +16 -0
- package/es/LmFilter/wrapper/FilterRoot.js +62 -6
- package/es/LmTable/Table.js +9 -4
- package/es/QuickMenu/index.d.ts +14 -0
- package/es/QuickMenu/index.js +171 -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/Switch/index.d.ts +2 -1
- package/es/Switch/index.js +33 -1
- package/es/Switch/style/index.css +41 -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/motion.d.ts +8 -0
- package/es/_util/motion.js +60 -0
- package/es/_util/statusUtils.d.ts +6 -0
- package/es/_util/statusUtils.js +12 -0
- package/es/_util/throttleByAnimationFrame.d.ts +8 -0
- package/es/_util/throttleByAnimationFrame.js +58 -0
- package/es/_util/type.d.ts +9 -0
- package/es/_util/type.js +15 -0
- package/es/_util/warning.d.ts +6 -0
- package/es/_util/warning.js +17 -0
- package/es/index.d.ts +4 -0
- package/es/index.js +3 -1
- package/es/message/index.d.ts +5 -5
- 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/Button/index.d.ts +4 -0
- package/lib/Button/index.js +1 -1
- package/lib/CardTable/body/TableBodyCell.js +3 -0
- package/lib/CardTable/card/PictureTextRow.js +13 -50
- package/lib/CardTable/card/PictureTextRowOperate.js +130 -0
- package/lib/CardTable/fns/index.js +6 -5
- package/lib/CardTable/style/index.css +158 -10
- package/lib/CustomTableOption/cardSort.d.ts +4 -0
- package/lib/CustomTableOption/cardSort.js +242 -0
- package/lib/CustomTableOption/index.d.ts +1 -0
- package/lib/CustomTableOption/index.js +36 -11
- package/lib/CustomTableOption/style/index.css +3 -0
- package/lib/DatePicker/PickerButton.d.ts +2 -0
- package/lib/DatePicker/PickerButton.js +19 -0
- package/lib/DatePicker/PickerTag.d.ts +2 -0
- package/lib/DatePicker/PickerTag.js +18 -0
- package/lib/DatePicker/generatePicker/generateRangePicker.d.ts +4 -0
- package/lib/DatePicker/generatePicker/generateRangePicker.js +168 -0
- package/lib/DatePicker/generatePicker/generateSinglePicker.d.ts +14 -0
- package/lib/DatePicker/generatePicker/generateSinglePicker.js +196 -0
- package/lib/DatePicker/generatePicker/index.d.ts +106 -0
- package/lib/DatePicker/generatePicker/index.js +102 -0
- package/lib/DatePicker/generatePicker/interface.d.ts +12 -0
- package/lib/DatePicker/generatePicker/interface.js +5 -0
- package/lib/DatePicker/index.d.ts +17 -0
- package/lib/DatePicker/index.js +21 -0
- package/lib/DatePicker/style/index.css +505 -0
- package/lib/DatePicker/style/index.d.ts +1 -0
- package/lib/DatePicker/style/index.js +3 -0
- package/lib/DatePicker/util.d.ts +14 -0
- package/lib/DatePicker/util.js +122 -0
- package/lib/Descriptions/style/index.css +10 -8
- package/lib/IconFont/index.js +3 -2
- package/lib/LmEditTable/DragHandle.js +1 -1
- package/lib/LmEditTable/EditTable.js +26 -36
- package/lib/LmFilter/Controls/CheckboxTags.js +53 -0
- package/lib/LmFilter/Controls/index.js +47 -0
- package/lib/LmFilter/LmFilter.js +17 -5
- 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/complexFilter/drawer.js +376 -0
- package/lib/LmFilter/complexFilter/index.js +50 -3
- package/lib/LmFilter/complexFilter/valueDrawer.js +238 -0
- package/lib/LmFilter/components/CascaderFilter.js +17 -41
- package/lib/LmFilter/components/DateFilter.js +12 -20
- package/lib/LmFilter/components/DropdownFIlter.js +79 -12
- package/lib/LmFilter/components/index.js +56 -13
- package/lib/LmFilter/filterFns/index.js +22 -3
- package/lib/LmFilter/hooks/useDelayedFn.js +8 -6
- package/lib/LmFilter/localization.d.ts +8 -0
- package/lib/LmFilter/localization.js +19 -0
- package/lib/LmFilter/style/style.css +27 -4
- package/lib/LmFilter/utils.js +16 -0
- package/lib/LmFilter/wrapper/FilterRoot.js +62 -6
- package/lib/LmTable/Table.js +9 -4
- package/lib/QuickMenu/index.d.ts +14 -0
- package/lib/QuickMenu/index.js +189 -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/Switch/index.d.ts +2 -1
- package/lib/Switch/index.js +34 -1
- package/lib/Switch/style/index.css +41 -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/motion.d.ts +8 -0
- package/lib/_util/motion.js +71 -0
- package/lib/_util/statusUtils.d.ts +6 -0
- package/lib/_util/statusUtils.js +29 -0
- package/lib/_util/throttleByAnimationFrame.d.ts +8 -0
- package/lib/_util/throttleByAnimationFrame.js +72 -0
- package/lib/_util/type.d.ts +9 -0
- package/lib/_util/type.js +27 -0
- package/lib/_util/warning.d.ts +6 -0
- package/lib/_util/warning.js +35 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +17 -1
- package/lib/message/index.d.ts +5 -5
- package/package.json +5 -2
- package/es/LmFilter/components/fuzzySearch.js +0 -37
- package/lib/LmFilter/components/fuzzySearch.js +0 -37
|
@@ -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,12 @@ 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: "
|
|
152
|
-
},
|
|
153
|
-
className: "filter_item_icon"
|
|
154
|
-
}, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
|
|
220
|
+
}, getLabel(filterValue, item)), /*#__PURE__*/_react.default.createElement("div", {
|
|
221
|
+
className: "filter_item_icon addon_after"
|
|
222
|
+
}, item.type !== 'date' || active ? /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
|
|
155
223
|
type: active ? 'lmweb-close-circle-fill' : 'lmweb-down',
|
|
156
|
-
className: "addonAfter",
|
|
157
224
|
onClick: handleClear
|
|
158
|
-
}))));
|
|
225
|
+
}) : null)));
|
|
159
226
|
});
|
|
160
227
|
|
|
161
228
|
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
|
|
@@ -11,8 +11,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
11
11
|
|
|
12
12
|
var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
13
|
|
|
14
|
-
var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
|
|
15
|
-
|
|
16
14
|
var _utils = require("../utils");
|
|
17
15
|
|
|
18
16
|
// 核心参数集合
|
|
@@ -20,7 +18,7 @@ var CoreOptions = function CoreOptions(_ref) {
|
|
|
20
18
|
var state = _ref.state,
|
|
21
19
|
dispatch = _ref.dispatch,
|
|
22
20
|
props = _ref.props;
|
|
23
|
-
|
|
21
|
+
var onChange = props.onChange; // 设置筛选的值 item => Object || Array => [{label: '', value: ''}, ...]
|
|
24
22
|
|
|
25
23
|
var setFilterValue = function setFilterValue(item, field) {
|
|
26
24
|
var basicFilter = (0, _objectSpread3.default)((0, _objectSpread3.default)({}, state.basicFilter), {}, (0, _defineProperty2.default)({}, field, item));
|
|
@@ -34,6 +32,27 @@ var CoreOptions = function CoreOptions(_ref) {
|
|
|
34
32
|
type: 'changeBasicFilter',
|
|
35
33
|
basicFilter: basicFilter
|
|
36
34
|
});
|
|
35
|
+
|
|
36
|
+
var formatVK = function formatVK() {
|
|
37
|
+
var obj = {};
|
|
38
|
+
Object.entries(basicFilter).forEach(function (item) {
|
|
39
|
+
if (Array.isArray(item[1])) {
|
|
40
|
+
obj[item[0]] = item[1].map(function (v) {
|
|
41
|
+
return v.value;
|
|
42
|
+
});
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
obj[item[0]] = item[1].value;
|
|
47
|
+
});
|
|
48
|
+
return obj;
|
|
49
|
+
}; // 触发外部事件
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
53
|
+
basicFilter: basicFilter,
|
|
54
|
+
formatVK: formatVK()
|
|
55
|
+
});
|
|
37
56
|
}; // 根据字段查找过滤的数据, 不存在时返回默认值
|
|
38
57
|
|
|
39
58
|
|
|
@@ -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
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DefaultLocalization = void 0;
|
|
7
|
+
// export interface LM_Localization {
|
|
8
|
+
// fieldName: string,
|
|
9
|
+
// operator: number,
|
|
10
|
+
// }
|
|
11
|
+
var DefaultLocalization = {
|
|
12
|
+
globalQuery: {
|
|
13
|
+
filter: []
|
|
14
|
+
},
|
|
15
|
+
filterQuery: {
|
|
16
|
+
filter: []
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
exports.DefaultLocalization = DefaultLocalization;
|
|
@@ -10,6 +10,9 @@
|
|
|
10
10
|
.lm_filter_wrapper .lm_filter_container .lm_filter .lm_filter_search {
|
|
11
11
|
max-width: 140px;
|
|
12
12
|
}
|
|
13
|
+
.lm_filter_wrapper .lm_filter_container .lm_filter .lm_filter_complex {
|
|
14
|
+
display: inline-flex;
|
|
15
|
+
}
|
|
13
16
|
.lm_filter_basic_item {
|
|
14
17
|
display: inline-flex;
|
|
15
18
|
align-items: center;
|
|
@@ -30,6 +33,9 @@
|
|
|
30
33
|
background-color: var(--color-4);
|
|
31
34
|
}
|
|
32
35
|
.lm_filter_basic_item .filter_item_value {
|
|
36
|
+
display: inline-flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
gap: 4px;
|
|
33
39
|
color: var(--text-color);
|
|
34
40
|
transition: 0.3s;
|
|
35
41
|
}
|
|
@@ -38,18 +44,29 @@
|
|
|
38
44
|
color: var(--text-color);
|
|
39
45
|
transition: 0.3s;
|
|
40
46
|
}
|
|
41
|
-
.lm_filter_basic_item .filter_item_icon
|
|
42
|
-
color: var(--
|
|
47
|
+
.lm_filter_basic_item .filter_item_icon.addon_before {
|
|
48
|
+
color: var(--font-color);
|
|
43
49
|
}
|
|
44
|
-
.lm_filter_basic_item.expand .filter_item_icon {
|
|
50
|
+
.lm_filter_basic_item.expand .filter_item_icon.addon_after {
|
|
45
51
|
transform: rotateX(180deg);
|
|
46
52
|
}
|
|
47
53
|
.lm_filter_basic_item.active .filter_item_value {
|
|
48
54
|
color: var(--primary-color);
|
|
49
55
|
}
|
|
50
|
-
.lm_filter_basic_item.active .filter_item_icon {
|
|
56
|
+
.lm_filter_basic_item.active .filter_item_icon.addon_after {
|
|
51
57
|
transform: rotateX(180deg);
|
|
52
58
|
}
|
|
59
|
+
.lm_filter_basic_item.active.lm_filter_complex_item .filter_item_icon,
|
|
60
|
+
.lm_filter_basic_item.active.lm_filter_complex_item .filter_item_label {
|
|
61
|
+
color: var(--primary-color);
|
|
62
|
+
}
|
|
63
|
+
.ant-dropdown.filter_dropdown_container_cascader > div {
|
|
64
|
+
transform: translateY(-4px);
|
|
65
|
+
}
|
|
66
|
+
.ant-dropdown.filter_dropdown_container_date .ant-picker {
|
|
67
|
+
visibility: hidden;
|
|
68
|
+
transform: translateY(-28px);
|
|
69
|
+
}
|
|
53
70
|
.ant-dropdown .filter_dropdown {
|
|
54
71
|
display: flex;
|
|
55
72
|
flex-flow: column;
|
|
@@ -187,3 +204,9 @@
|
|
|
187
204
|
.ant-dropdown .filter_dropdown .ant-checkbox-wrapper .ant-checkbox {
|
|
188
205
|
top: initial;
|
|
189
206
|
}
|
|
207
|
+
.lm_filter_dropdown_picker {
|
|
208
|
+
padding: 0 !important;
|
|
209
|
+
}
|
|
210
|
+
.lm_filter_dropdown_picker .ant-picker-range-arrow {
|
|
211
|
+
display: none;
|
|
212
|
+
}
|
package/lib/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/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
|
}
|
|
@@ -25,7 +25,10 @@ var _filterFns = _interopRequireDefault(require("../filterFns"));
|
|
|
25
25
|
var reducer = function reducer(state, action) {
|
|
26
26
|
var basicFilter = action.basicFilter,
|
|
27
27
|
resize = action.resize,
|
|
28
|
-
rows = action.rows
|
|
28
|
+
rows = action.rows,
|
|
29
|
+
complexDrawer = action.complexDrawer,
|
|
30
|
+
valueDrawer = action.valueDrawer,
|
|
31
|
+
complexFilter = action.complexFilter;
|
|
29
32
|
|
|
30
33
|
switch (action.type) {
|
|
31
34
|
case 'changeBasicFilter':
|
|
@@ -43,16 +46,69 @@ var reducer = function reducer(state, action) {
|
|
|
43
46
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
44
47
|
resize: resize
|
|
45
48
|
});
|
|
49
|
+
// 高级筛选
|
|
50
|
+
|
|
51
|
+
case 'changeComplexFilter':
|
|
52
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
53
|
+
complexFilter: complexFilter
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
case 'changeComplexDrawer':
|
|
57
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
58
|
+
complexDrawer: complexDrawer
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
case 'changeValueDrawer':
|
|
62
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
63
|
+
valueDrawer: valueDrawer
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
case 'reset':
|
|
67
|
+
// 一键清空
|
|
68
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
69
|
+
basicFilter: {}
|
|
70
|
+
});
|
|
46
71
|
|
|
47
72
|
default:
|
|
48
73
|
throw new Error();
|
|
49
74
|
}
|
|
50
|
-
}; //
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
75
|
+
}; // const getRows = ({ fieldName, value }, arr) => {
|
|
76
|
+
// const findItem = arr.find(item => {
|
|
77
|
+
// return item.field === fieldName;
|
|
78
|
+
// })
|
|
79
|
+
// switch (findItem.type) {
|
|
80
|
+
// case 'input':
|
|
81
|
+
// return value;
|
|
82
|
+
// case 'select':
|
|
83
|
+
// return findItem.data.find(v => v.value === value);
|
|
84
|
+
// case 'checkbox':
|
|
85
|
+
// return findItem.data.find(v => [value].includes(v.value));
|
|
86
|
+
// default:
|
|
87
|
+
// break;
|
|
88
|
+
// }
|
|
89
|
+
// };
|
|
90
|
+
// 仅在初始化时触发一次
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
var getInitialState = function getInitialState(_ref) {
|
|
94
|
+
var localization = _ref.localization;
|
|
95
|
+
var globalQuery = localization.globalQuery,
|
|
96
|
+
filterQuery = localization.filterQuery;
|
|
97
|
+
var basicFilter = {};
|
|
98
|
+
filterQuery.filter.forEach(function (item) {
|
|
99
|
+
basicFilter[item.fieldName] = item.value;
|
|
100
|
+
});
|
|
54
101
|
return {
|
|
55
|
-
basicFilter:
|
|
102
|
+
basicFilter: basicFilter,
|
|
103
|
+
complexFilter: {},
|
|
104
|
+
complexDrawer: {
|
|
105
|
+
visible: false,
|
|
106
|
+
data: {}
|
|
107
|
+
},
|
|
108
|
+
valueDrawer: {
|
|
109
|
+
visible: false,
|
|
110
|
+
data: {}
|
|
111
|
+
}
|
|
56
112
|
};
|
|
57
113
|
};
|
|
58
114
|
|