@arim-aisdc/public-components 0.0.37 → 0.0.38

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.
@@ -75,13 +75,22 @@ export function Filter(_ref) {
75
75
  getFilterOptionsFn = columnDef.getFilterOptionsFn;
76
76
 
77
77
  // 获取最新的筛选值
78
- var columnFilterValue = column.getFilterValue();
78
+ // const columnFilterValue: any = column.getFilterValue();
79
+ var _useState = useState(column.getFilterValue()),
80
+ _useState2 = _slicedToArray(_useState, 2),
81
+ columnFilterValue = _useState2[0],
82
+ setColumnFilterValue = _useState2[1];
83
+ useEffect(function () {
84
+ if (JSON.stringify(column.getFilterValue()) !== JSON.stringify(columnFilterValue)) {
85
+ setColumnFilterValue(column.getFilterValue());
86
+ }
87
+ }, [JSON.stringify(column.getFilterValue())]);
79
88
 
80
89
  // 接口可选值
81
- var _useState = useState([]),
82
- _useState2 = _slicedToArray(_useState, 2),
83
- apiOptions = _useState2[0],
84
- setApiOptions = _useState2[1];
90
+ var _useState3 = useState([]),
91
+ _useState4 = _slicedToArray(_useState3, 2),
92
+ apiOptions = _useState4[0],
93
+ setApiOptions = _useState4[1];
85
94
  // 调用接口获取可选值
86
95
  var fetchOptions = /*#__PURE__*/function () {
87
96
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(inputValue) {
@@ -154,6 +163,25 @@ export function Filter(_ref) {
154
163
  };
155
164
  });
156
165
  }, [column.getFacetedUniqueValues(), filterOptions, manualFiltering, apiOptions]);
166
+
167
+ // 修改表格筛选参数(防抖)
168
+ var changeFilterValueWithDebounce = useCallback(debounce(function (value) {
169
+ var newValue = value;
170
+ if (value === null || Array.isArray(value) && value.length === 0) {
171
+ // 值为null或空数组时,清除过滤条件。
172
+ newValue = undefined;
173
+ }
174
+ console.log('handleChangeFilterValue with debounce :>> ', newValue);
175
+ column.setFilterValue(newValue);
176
+ }, 500), [column]);
177
+
178
+ // 修改表格筛选参数(防抖)
179
+ var handleChangeFilterValueWithDebounce = function handleChangeFilterValueWithDebounce(value) {
180
+ changeFilterValueWithDebounce(value);
181
+ setColumnFilterValue(value);
182
+ };
183
+
184
+ // 修改表格筛选参数
157
185
  var handleChangeFilterValue = function handleChangeFilterValue(value) {
158
186
  var newValue = value;
159
187
  if (value === null || Array.isArray(value) && value.length === 0) {
@@ -161,11 +189,9 @@ export function Filter(_ref) {
161
189
  newValue = undefined;
162
190
  }
163
191
  console.log('handleChangeFilterValue :>> ', newValue);
192
+ setColumnFilterValue(newValue);
164
193
  column.setFilterValue(newValue);
165
194
  };
166
- var handleInputChange = function handleInputChange(e) {
167
- handleChangeFilterValue(e.target.value);
168
- };
169
195
  var filterComponent = function filterComponent(type) {
170
196
  var _columnDef$filterComP, _columnDef$filterComP2, _columnDef$filterComP3, _column$getFacetedMin, _column$getFacetedMin2, _columnDef$cell, _column$getFacetedMin3, _column$getFacetedMin4, _columnDef$cell2;
171
197
  switch (type) {
@@ -196,14 +222,11 @@ export function Filter(_ref) {
196
222
  },
197
223
  children: [/*#__PURE__*/_jsx("div", {
198
224
  children: /*#__PURE__*/_jsx(_InputNumber, {
199
- // min={Number(column.getFacetedMinMaxValues()?.[0] ?? '')}
200
- // max={Number(column.getFacetedMinMaxValues()?.[1] ?? '')}
201
- // value={(columnFilterValue as [number, number])?.[0] ?? ''}
202
225
  placeholder: "".concat((_column$getFacetedMin = column.getFacetedMinMaxValues()) !== null && _column$getFacetedMin !== void 0 && _column$getFacetedMin[0] ? "(".concat((_column$getFacetedMin2 = column.getFacetedMinMaxValues()) === null || _column$getFacetedMin2 === void 0 ? void 0 : _column$getFacetedMin2[0], ")") : ''),
203
226
  controls: false,
204
227
  onChange: function onChange(value) {
205
228
  var min = columnDef.unitsChangeFn && typeof value === 'number' ? columnDef.unitsChangeFn(value) : value;
206
- column.setFilterValue(function (old) {
229
+ handleChangeFilterValueWithDebounce(function (old) {
207
230
  if (noValue(min) && noValue(old === null || old === void 0 ? void 0 : old[1])) {
208
231
  return undefined;
209
232
  }
@@ -218,14 +241,11 @@ export function Filter(_ref) {
218
241
  })
219
242
  }), /*#__PURE__*/_jsx("div", {
220
243
  children: /*#__PURE__*/_jsx(_InputNumber, {
221
- // min={Number(column.getFacetedMinMaxValues()?.[0] ?? '')}
222
- // max={Number(column.getFacetedMinMaxValues()?.[1] ?? '')}
223
- // value={(columnFilterValue as [number, number])?.[1] ?? ''}
224
244
  placeholder: "".concat((_column$getFacetedMin3 = column.getFacetedMinMaxValues()) !== null && _column$getFacetedMin3 !== void 0 && _column$getFacetedMin3[1] ? "(".concat((_column$getFacetedMin4 = column.getFacetedMinMaxValues()) === null || _column$getFacetedMin4 === void 0 ? void 0 : _column$getFacetedMin4[1], ")") : ''),
225
245
  controls: false,
226
246
  onChange: function onChange(value) {
227
247
  var max = columnDef.unitsChangeFn && typeof value === 'number' ? columnDef.unitsChangeFn(value) : value;
228
- column.setFilterValue(function (old) {
248
+ handleChangeFilterValueWithDebounce(function (old) {
229
249
  if (noValue(old === null || old === void 0 ? void 0 : old[0]) && noValue(max)) {
230
250
  return undefined;
231
251
  }
@@ -250,7 +270,7 @@ export function Filter(_ref) {
250
270
  },
251
271
  onChange: function onChange(value) {
252
272
  var res = columnDef.unitsChangeFn ? columnDef.unitsChangeFn(value) : value;
253
- handleChangeFilterValue(res);
273
+ handleChangeFilterValueWithDebounce(res);
254
274
  },
255
275
  value: columnDef.unitsChangeFn && columnDef.cell ? columnDef.cell({
256
276
  getValue: function getValue() {
@@ -270,7 +290,7 @@ export function Filter(_ref) {
270
290
  return ((_optionStringValue$to = optionStringValue.toUpperCase()) === null || _optionStringValue$to === void 0 ? void 0 : _optionStringValue$to.indexOf(inputStringValue.toUpperCase().trim())) !== -1;
271
291
  },
272
292
  onSearch: onSearch,
273
- onChange: handleChangeFilterValue,
293
+ onChange: handleChangeFilterValueWithDebounce,
274
294
  style: {
275
295
  width: '100%',
276
296
  borderRadius: '2px',
@@ -281,7 +301,9 @@ export function Filter(_ref) {
281
301
  });
282
302
  case FilterType.Input:
283
303
  return /*#__PURE__*/_jsx(_Input, {
284
- onChange: handleInputChange,
304
+ onChange: function onChange(e) {
305
+ return handleChangeFilterValueWithDebounce(e.target.value);
306
+ },
285
307
  style: {
286
308
  borderRadius: '2px'
287
309
  },
@@ -113,7 +113,7 @@ export type TableMaxProps = {
113
113
  * 筛选参数变化时触发的函数
114
114
  */
115
115
  getColumnFiltersData?: (columnFilters: ColumnFiltersState, tableId: string, filteredData: any[], filteredRowModel: RowModel<any>) => void;
116
- /**筛选参数变化时触发的函数,前端筛选、后端筛选时都会触发 */
116
+ /**筛选参数变化时触发的函数,前端筛选、后端筛选时都会触发(修改参数时加了防抖) */
117
117
  onFilteringChange?: (params: {
118
118
  tableId: string;
119
119
  filteredData: any[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arim-aisdc/public-components",
3
- "version": "0.0.37",
3
+ "version": "0.0.38",
4
4
  "description": "前端组件库",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",