vxe-table 4.16.20 → 4.17.0-beta.1

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.
Files changed (78) hide show
  1. package/README.md +2 -0
  2. package/es/grid/src/grid.js +8 -0
  3. package/es/index.css +1 -1
  4. package/es/index.min.css +1 -1
  5. package/es/style.css +1 -1
  6. package/es/style.min.css +1 -1
  7. package/es/table/module/filter/hook.js +109 -59
  8. package/es/table/module/filter/panel.js +46 -26
  9. package/es/table/render/index.js +93 -9
  10. package/es/table/src/column.js +2 -0
  11. package/es/table/src/columnInfo.js +14 -6
  12. package/es/table/src/header.js +118 -3
  13. package/es/table/src/props.js +2 -0
  14. package/es/table/src/table.js +31 -28
  15. package/es/table/src/util.js +8 -5
  16. package/es/table/style.css +2 -1
  17. package/es/table/style.min.css +1 -1
  18. package/es/ui/index.js +4 -1
  19. package/es/ui/src/log.js +1 -1
  20. package/es/ui/src/vn.js +11 -0
  21. package/es/vxe-table/style.css +2 -1
  22. package/es/vxe-table/style.min.css +1 -1
  23. package/lib/grid/src/grid.js +12 -0
  24. package/lib/grid/src/grid.min.js +1 -1
  25. package/lib/index.css +1 -1
  26. package/lib/index.min.css +1 -1
  27. package/lib/index.umd.js +513 -136
  28. package/lib/index.umd.min.js +1 -1
  29. package/lib/style.css +1 -1
  30. package/lib/style.min.css +1 -1
  31. package/lib/table/module/filter/hook.js +124 -67
  32. package/lib/table/module/filter/hook.min.js +1 -1
  33. package/lib/table/module/filter/panel.js +60 -26
  34. package/lib/table/module/filter/panel.min.js +1 -1
  35. package/lib/table/render/index.js +109 -8
  36. package/lib/table/render/index.min.js +1 -1
  37. package/lib/table/src/column.js +2 -0
  38. package/lib/table/src/column.min.js +1 -1
  39. package/lib/table/src/columnInfo.js +18 -5
  40. package/lib/table/src/columnInfo.min.js +1 -1
  41. package/lib/table/src/header.js +133 -3
  42. package/lib/table/src/header.min.js +1 -1
  43. package/lib/table/src/props.js +2 -0
  44. package/lib/table/src/props.min.js +1 -1
  45. package/lib/table/src/table.js +11 -11
  46. package/lib/table/src/table.min.js +1 -1
  47. package/lib/table/src/util.js +18 -14
  48. package/lib/table/src/util.min.js +1 -1
  49. package/lib/table/style/style.css +2 -1
  50. package/lib/table/style/style.min.css +1 -1
  51. package/lib/ui/index.js +4 -1
  52. package/lib/ui/index.min.js +1 -1
  53. package/lib/ui/src/log.js +1 -1
  54. package/lib/ui/src/log.min.js +1 -1
  55. package/lib/ui/src/vn.js +12 -0
  56. package/lib/ui/src/vn.min.js +1 -1
  57. package/lib/vxe-table/style/style.css +2 -1
  58. package/lib/vxe-table/style/style.min.css +1 -1
  59. package/package.json +1 -1
  60. package/packages/grid/src/grid.ts +8 -0
  61. package/packages/table/module/filter/hook.ts +111 -65
  62. package/packages/table/module/filter/panel.ts +57 -29
  63. package/packages/table/render/index.ts +110 -15
  64. package/packages/table/src/column.ts +2 -0
  65. package/packages/table/src/columnInfo.ts +19 -7
  66. package/packages/table/src/header.ts +137 -8
  67. package/packages/table/src/props.ts +2 -0
  68. package/packages/table/src/table.ts +32 -28
  69. package/packages/table/src/util.ts +8 -5
  70. package/packages/ui/index.ts +3 -0
  71. package/packages/ui/src/vn.ts +12 -0
  72. package/styles/components/table-module/filter.scss +4 -1
  73. /package/es/{iconfont.1758850674944.ttf → iconfont.1759043328183.ttf} +0 -0
  74. /package/es/{iconfont.1758850674944.woff → iconfont.1759043328183.woff} +0 -0
  75. /package/es/{iconfont.1758850674944.woff2 → iconfont.1759043328183.woff2} +0 -0
  76. /package/lib/{iconfont.1758850674944.ttf → iconfont.1759043328183.ttf} +0 -0
  77. /package/lib/{iconfont.1758850674944.woff → iconfont.1759043328183.woff} +0 -0
  78. /package/lib/{iconfont.1758850674944.woff2 → iconfont.1759043328183.woff2} +0 -0
@@ -1,9 +1,9 @@
1
1
  import XEUtils from 'xe-utils';
2
2
  import { VxeUI } from '../../ui';
3
3
  import { toFilters } from './util';
4
- import { getFuncText } from '../../ui/src/utils';
4
+ import { isEnableConf, getFuncText } from '../../ui/src/utils';
5
5
  import { warnLog, errLog } from '../../ui/src/log';
6
- const { getI18n, formats } = VxeUI;
6
+ const { getI18n, formats, renderer } = VxeUI;
7
7
  export class ColumnInfo {
8
8
  /* eslint-disable @typescript-eslint/no-use-before-define */
9
9
  constructor($xeTable, _vm, { renderHeader, renderCell, renderFooter, renderData } = {}) {
@@ -11,9 +11,13 @@ export class ColumnInfo {
11
11
  const $xeGrid = $xeTable.xeGrid;
12
12
  const $xeGantt = $xeTable.xeGantt;
13
13
  const $xeGGWrapper = $xeGrid || $xeGantt;
14
- const { field, editRender } = _vm;
14
+ const { field, editRender, filterRender } = _vm;
15
+ const colId = _vm.colId || XEUtils.uniqueId('col_');
15
16
  const formatter = _vm.formatter;
16
17
  const visible = XEUtils.isBoolean(_vm.visible) ? _vm.visible : true;
18
+ const flCompConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
19
+ const ctFilterOptions = flCompConf ? flCompConf.createTableFilterOptions : null;
20
+ const filters = toFilters(_vm.filters, colId);
17
21
  const types = ['seq', 'checkbox', 'radio', 'expand', 'html'];
18
22
  if (_vm.type && types.indexOf(_vm.type) === -1) {
19
23
  warnLog('vxe.error.errProp', [`type=${_vm.type}`, types.join(', ')]);
@@ -87,12 +91,13 @@ export class ColumnInfo {
87
91
  sortable: _vm.sortable,
88
92
  sortBy: _vm.sortBy,
89
93
  sortType: _vm.sortType,
90
- filters: toFilters(_vm.filters),
94
+ filters: filters,
91
95
  filterMultiple: XEUtils.isBoolean(_vm.filterMultiple) ? _vm.filterMultiple : true,
92
96
  filterMethod: _vm.filterMethod,
93
97
  filterResetMethod: _vm.filterResetMethod,
94
98
  filterRecoverMethod: _vm.filterRecoverMethod,
95
- filterRender: _vm.filterRender,
99
+ filterRender: filterRender,
100
+ floatingFilters: _vm.floatingFilters,
96
101
  rowGroupNode: _vm.rowGroupNode,
97
102
  treeNode: _vm.treeNode,
98
103
  dragSort: _vm.dragSort,
@@ -111,7 +116,7 @@ export class ColumnInfo {
111
116
  // 自定义参数
112
117
  params: _vm.params,
113
118
  // 渲染属性
114
- id: _vm.colId || XEUtils.uniqueId('col_'),
119
+ id: colId,
115
120
  parentId: null,
116
121
  visible,
117
122
  // 内部属性(一旦被使用,将导致不可升级版本)
@@ -154,6 +159,9 @@ export class ColumnInfo {
154
159
  // 单元格插槽,只对 grid 有效
155
160
  slots: _vm.slots
156
161
  });
162
+ if (ctFilterOptions && (!filters || !filters.length)) {
163
+ this.filters = toFilters(ctFilterOptions({ $table: $xeTable, column: this }), colId);
164
+ }
157
165
  if ($xeGGWrapper) {
158
166
  const { computeProxyOpts } = $xeGGWrapper.getComputeMaps();
159
167
  const proxyOpts = computeProxyOpts.value;
@@ -2,7 +2,9 @@ import { h, ref, inject, nextTick, watch, onMounted, onUnmounted } from 'vue';
2
2
  import { defineVxeComponent } from '../../ui/src/comp';
3
3
  import XEUtils from 'xe-utils';
4
4
  import { VxeUI } from '../../ui';
5
+ import { isEnableConf } from '../../ui/src/utils';
5
6
  import { getCalcHeight, convertHeaderColumnToRows, convertHeaderToGridRows } from './util';
7
+ import { getSlotVNs } from '../../ui/src/vn';
6
8
  const { renderer, renderEmptyElement } = VxeUI;
7
9
  const renderType = 'header';
8
10
  function getColumnFirstChild(column) {
@@ -34,7 +36,7 @@ export default defineVxeComponent({
34
36
  setup(props) {
35
37
  const $xeTable = inject('$xeTable', {});
36
38
  const { xID, props: tableProps, reactData: tableReactData, internalData: tableInternalData } = $xeTable;
37
- const { computeColumnOpts, computeColumnDragOpts, computeCellOpts, computeMouseOpts, computeHeaderCellOpts, computeDefaultRowHeight, computeVirtualXOpts } = $xeTable.getComputeMaps();
39
+ const { computeColumnOpts, computeColumnDragOpts, computeCellOpts, computeMouseOpts, computeHeaderCellOpts, computeDefaultRowHeight, computeVirtualXOpts, computeFloatingFilterOpts } = $xeTable.getComputeMaps();
38
40
  const headerColumn = ref([]);
39
41
  const refElem = ref();
40
42
  const refHeaderScroll = ref();
@@ -238,10 +240,114 @@ export default defineVxeComponent({
238
240
  ]);
239
241
  });
240
242
  };
241
- const renderHeads = (isGroup, isOptimizeMode, headerGroups) => {
243
+ const renderFilterRows = (isOptimizeMode, cols) => {
244
+ const $xeGrid = $xeTable.xeGrid;
245
+ const $xeGantt = $xeTable.xeGantt;
242
246
  const { fixedType } = props;
247
+ const { showHeaderOverflow: allColumnHeaderOverflow, headerAlign: allHeaderAlign, align: allAlign } = tableProps;
248
+ const { currentColumn, overflowX } = tableReactData;
249
+ const { fullColumnIdData } = tableInternalData;
250
+ const cellOpts = computeCellOpts.value;
251
+ const defaultRowHeight = computeDefaultRowHeight.value;
252
+ const headerCellOpts = computeHeaderCellOpts.value;
253
+ const currCellHeight = getCalcHeight(headerCellOpts.height) || defaultRowHeight;
254
+ return cols.map((column, $columnIndex) => {
255
+ const { type, showHeaderOverflow, headerAlign, align, filters, editRender, cellRender, floatingFilters, filterRender, slots } = column;
256
+ const colid = column.id;
257
+ const colRest = fullColumnIdData[colid] || {};
258
+ const renderOpts = editRender || cellRender;
259
+ const flSlot = slots ? (slots.floatingFilter || slots['floating-filter']) : null;
260
+ const compConf = renderOpts ? renderer.get(renderOpts.name) : null;
261
+ const flCompConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
262
+ const rtFloatingFilter = flCompConf ? flCompConf.renderTableFloatingFilter : null;
263
+ const fixedHiddenColumn = overflowX && (fixedType ? column.fixed !== fixedType : !!column.fixed);
264
+ const isPadding = XEUtils.isBoolean(headerCellOpts.padding) ? headerCellOpts.padding : cellOpts.padding;
265
+ const headOverflow = XEUtils.eqNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
266
+ const headAlign = headerAlign || (compConf ? compConf.tableHeaderCellAlign : '') || allHeaderAlign || align || (compConf ? compConf.tableCellAlign : '') || allAlign;
267
+ const showEllipsis = headOverflow === 'ellipsis';
268
+ const showTitle = headOverflow === 'title';
269
+ const showTooltip = headOverflow === true || headOverflow === 'tooltip';
270
+ const hasEllipsis = showTitle || showTooltip || showEllipsis;
271
+ let hasFilter = false;
272
+ let firstFilterOption = null;
273
+ if (filters) {
274
+ firstFilterOption = filters[0];
275
+ hasFilter = filters.some((item) => item.checked);
276
+ }
277
+ const columnIndex = colRest.index;
278
+ const _columnIndex = colRest._index;
279
+ const cellParams = {
280
+ $table: $xeTable,
281
+ $grid: $xeGrid,
282
+ $gantt: $xeGantt,
283
+ column,
284
+ columnIndex,
285
+ $columnIndex,
286
+ _columnIndex,
287
+ option: firstFilterOption,
288
+ fixed: fixedType,
289
+ type: renderType,
290
+ isHidden: fixedHiddenColumn,
291
+ hasFilter
292
+ };
293
+ const thAttrs = {
294
+ colid
295
+ };
296
+ const isLastColumn = $columnIndex === cols.length - 1;
297
+ const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
298
+ const tcStyle = {};
299
+ if (hasEllipsis) {
300
+ tcStyle.height = `${currCellHeight}px`;
301
+ }
302
+ else {
303
+ tcStyle.minHeight = `${currCellHeight}px`;
304
+ }
305
+ return h('th', Object.assign({ class: ['vxe-table--column vxe-header--column', colid, fixedHiddenColumn ? 'fixed--hidden' : 'fixed--visible', {
306
+ [`col--${headAlign}`]: headAlign,
307
+ [`col--${type}`]: type,
308
+ 'col--last': isLastColumn,
309
+ 'col--fixed': column.fixed,
310
+ 'col--ellipsis': hasEllipsis,
311
+ 'fixed--width': !isAutoCellWidth,
312
+ 'is--padding': isPadding,
313
+ 'is--sortable': column.sortable,
314
+ 'col--current': currentColumn === column
315
+ }
316
+ ], key: colid }, thAttrs), [
317
+ h('div', {
318
+ class: ['vxe-cell', {
319
+ 'c--title': showTitle,
320
+ 'c--tooltip': showTooltip,
321
+ 'c--ellipsis': showEllipsis
322
+ }],
323
+ style: tcStyle
324
+ }, isOptimizeMode && fixedHiddenColumn && !floatingFilters
325
+ ? []
326
+ : [
327
+ h('div', {
328
+ colid,
329
+ class: 'vxe-cell--wrapper vxe-header-cell--wrapper'
330
+ }, flSlot
331
+ ? $xeTable.callSlot(flSlot, cellParams)
332
+ : (rtFloatingFilter && firstFilterOption
333
+ ? getSlotVNs(rtFloatingFilter(filterRender, {
334
+ $table: $xeTable,
335
+ option: firstFilterOption,
336
+ column: column,
337
+ columnIndex,
338
+ $columnIndex
339
+ }))
340
+ : []))
341
+ ])
342
+ ]);
343
+ });
344
+ };
345
+ const renderHeads = (isGroup, isOptimizeMode, headerGroups) => {
346
+ const { fixedType, fixedColumn } = props;
243
347
  const { headerRowClassName, headerRowStyle } = tableProps;
244
- return headerGroups.map((cols, $rowIndex) => {
348
+ const { visibleColumn } = tableInternalData;
349
+ const floatingFilterOpts = computeFloatingFilterOpts.value;
350
+ const rowVNs = headerGroups.map((cols, $rowIndex) => {
245
351
  const params = { $table: $xeTable, $rowIndex, fixed: fixedType, type: renderType };
246
352
  return h('tr', {
247
353
  key: $rowIndex,
@@ -252,6 +358,15 @@ export default defineVxeComponent({
252
358
  style: headerRowStyle ? (XEUtils.isFunction(headerRowStyle) ? headerRowStyle(params) : headerRowStyle) : null
253
359
  }, renderRows(isGroup, isOptimizeMode, headerGroups, $rowIndex, cols));
254
360
  });
361
+ if (floatingFilterOpts.enabled) {
362
+ rowVNs.push(h('tr', {
363
+ key: 'ff',
364
+ class: [
365
+ 'vxe-header--row'
366
+ ]
367
+ }, renderFilterRows(isOptimizeMode, isOptimizeMode && fixedType ? fixedColumn : visibleColumn)));
368
+ }
369
+ return rowVNs;
255
370
  };
256
371
  const renderVN = () => {
257
372
  const { fixedType, fixedColumn, tableColumn } = props;
@@ -235,6 +235,8 @@ export const tableProps = {
235
235
  sortConfig: Object,
236
236
  // 筛选配置项
237
237
  filterConfig: Object,
238
+ // 浮动筛选配置项
239
+ floatingFilterConfig: Object,
238
240
  // 单选框配置
239
241
  radioConfig: Object,
240
242
  // 复选框配置项
@@ -132,9 +132,7 @@ export default defineVxeComponent({
132
132
  isAllSelected: false,
133
133
  isIndeterminate: false,
134
134
  style: null,
135
- options: [],
136
135
  column: null,
137
- multiple: false,
138
136
  visible: false,
139
137
  maxHeight: null
140
138
  },
@@ -534,6 +532,9 @@ export default defineVxeComponent({
534
532
  const computeFilterOpts = computed(() => {
535
533
  return Object.assign({}, getConfig().table.filterConfig, props.filterConfig);
536
534
  });
535
+ const computeFloatingFilterOpts = computed(() => {
536
+ return Object.assign({}, getConfig().table.floatingFilterConfig, props.floatingFilterConfig);
537
+ });
537
538
  const computeMouseOpts = computed(() => {
538
539
  return Object.assign({}, getConfig().table.mouseConfig, props.mouseConfig);
539
540
  });
@@ -797,6 +798,7 @@ export default defineVxeComponent({
797
798
  computeEditOpts,
798
799
  computeSortOpts,
799
800
  computeFilterOpts,
801
+ computeFloatingFilterOpts,
800
802
  computeMouseOpts,
801
803
  computeAreaOpts,
802
804
  computeKeyboardOpts,
@@ -1654,7 +1656,7 @@ export default defineVxeComponent({
1654
1656
  }
1655
1657
  else {
1656
1658
  if (storage && !type) {
1657
- errLog('vxe.error.reqSupportProp', ['storage', `${column.getTitle() || type || ''} -> field=?`]);
1659
+ errLog('vxe.error.reqSupportProp', ['storage', `[${type ? `type=${type}` : `title=${column.getTitle()}`}]field=?`]);
1658
1660
  }
1659
1661
  if (columnOpts.drag && (isCrossDrag || isSelfToChildDrag)) {
1660
1662
  errLog('vxe.error.reqSupportProp', ['column-drag-config.isCrossDrag | column-drag-config.isSelfToChildDrag', `${column.getTitle() || type || ''} -> field=?`]);
@@ -6197,7 +6199,7 @@ export default defineVxeComponent({
6197
6199
  setFilterByEvent(evnt, fieldOrColumn, options) {
6198
6200
  const column = handleFieldOrColumn($xeTable, fieldOrColumn);
6199
6201
  if (column && column.filters) {
6200
- column.filters = toFilters(options || []);
6202
+ column.filters = toFilters(options || [], column.id);
6201
6203
  return $xeTable.handleColumnConfirmFilter(column, evnt);
6202
6204
  }
6203
6205
  return nextTick();
@@ -6211,13 +6213,13 @@ export default defineVxeComponent({
6211
6213
  const { column, visible } = filterStore;
6212
6214
  filterStore.isAllSelected = false;
6213
6215
  filterStore.isIndeterminate = false;
6214
- filterStore.options = [];
6215
6216
  filterStore.visible = false;
6216
6217
  if (visible) {
6218
+ const field = column ? column.field : null;
6217
6219
  dispatchEvent('filter-visible', {
6218
6220
  column,
6219
- property: column.field,
6220
- field: column.field,
6221
+ property: field,
6222
+ field,
6221
6223
  filterList: () => $xeTable.getCheckedFilters(),
6222
6224
  visible: false
6223
6225
  }, null);
@@ -7280,7 +7282,7 @@ export default defineVxeComponent({
7280
7282
  * 全局按下事件处理
7281
7283
  */
7282
7284
  const handleGlobalMousedownEvent = (evnt) => {
7283
- const { editStore, ctxMenuStore, filterStore, customStore } = reactData;
7285
+ const { editStore, ctxMenuStore, customStore } = reactData;
7284
7286
  const { mouseConfig, editRules } = props;
7285
7287
  const el = refElem.value;
7286
7288
  const editOpts = computeEditOpts.value;
@@ -7301,7 +7303,7 @@ export default defineVxeComponent({
7301
7303
  }
7302
7304
  else {
7303
7305
  if (!getEventTargetNode(evnt, document.body, 'vxe-table--ignore-clear').flag) {
7304
- tablePrivateMethods.preventEvent(evnt, 'event.clearFilter', filterStore.args, tableMethods.closeFilter);
7306
+ tablePrivateMethods.preventEvent(evnt, 'event.clearFilter', internalData._currFilterParams, tableMethods.closeFilter);
7305
7307
  }
7306
7308
  }
7307
7309
  }
@@ -8810,24 +8812,25 @@ export default defineVxeComponent({
8810
8812
  reactData.reColumnFlag++;
8811
8813
  },
8812
8814
  handleFilterOptions(column) {
8813
- const { filterStore } = reactData;
8814
- const { filters, filterMultiple, filterRender } = column;
8815
- const compConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
8816
- const frMethod = column.filterRecoverMethod || (compConf ? (compConf.tableFilterRecoverMethod || compConf.filterRecoverMethod) : null);
8817
- filterStore.multiple = filterMultiple;
8818
- filterStore.options = filters;
8819
- filterStore.column = column;
8820
- // 复原状态
8821
- filterStore.options.forEach((option) => {
8822
- const { _checked, checked } = option;
8823
- option._checked = checked;
8824
- if (!checked && _checked !== checked) {
8825
- if (frMethod) {
8826
- frMethod({ option, column, $table: $xeTable });
8815
+ if (column) {
8816
+ const { filterStore } = reactData;
8817
+ const { filterRender, filters } = column;
8818
+ const filterOptions = filters || [];
8819
+ const compConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
8820
+ const frMethod = column.filterRecoverMethod || (compConf ? (compConf.tableFilterRecoverMethod || compConf.filterRecoverMethod) : null);
8821
+ filterStore.column = column;
8822
+ // 复原状态
8823
+ filterOptions.forEach((option) => {
8824
+ const { _checked, checked } = option;
8825
+ option._checked = checked;
8826
+ if (!checked && _checked !== checked) {
8827
+ if (frMethod) {
8828
+ frMethod({ option, column, $table: $xeTable });
8829
+ }
8827
8830
  }
8828
- }
8829
- });
8830
- $xeTable.checkFilterOptions();
8831
+ });
8832
+ $xeTable.checkFilterOptions();
8833
+ }
8831
8834
  },
8832
8835
  preventEvent(evnt, type, args, next, end) {
8833
8836
  let evntList = interceptor.get(type);
@@ -9820,8 +9823,8 @@ export default defineVxeComponent({
9820
9823
  $xeTable.handleHeaderCellDragMousedownEvent(evnt, params);
9821
9824
  }
9822
9825
  }
9823
- if (!triggerDrag && mouseConfig && mouseOpts.area && $xeTable.handleHeaderCellAreaModownEvent) {
9824
- $xeTable.handleHeaderCellAreaModownEvent(evnt, Object.assign({ cell, triggerSort, triggerFilter }, params));
9826
+ if (!triggerDrag && mouseConfig && mouseOpts.area && $xeTable.handleHeaderCellAreaMouseDnEvent) {
9827
+ $xeTable.handleHeaderCellAreaMouseDnEvent(evnt, Object.assign({ cell, triggerSort, triggerFilter }, params));
9825
9828
  }
9826
9829
  $xeTable.focus();
9827
9830
  if ($xeTable.closeMenu) {
@@ -367,11 +367,14 @@ function getElementMarginAndWidth(elem) {
367
367
  }
368
368
  return 0;
369
369
  }
370
- export function toFilters(filters) {
371
- if (filters && XEUtils.isArray(filters)) {
372
- return filters.map(({ label, value, data, resetValue, checked }) => {
373
- return { label, value, data, resetValue, checked: !!checked, _checked: !!checked };
374
- });
370
+ export function toFilters(filters, colid) {
371
+ if (filters) {
372
+ if (XEUtils.isArray(filters)) {
373
+ return filters.map(({ label, value, data, resetValue, checked }) => {
374
+ return { label, value, data, resetValue, checked: !!checked, _checked: !!checked, _colId: colid };
375
+ });
376
+ }
377
+ return [];
375
378
  }
376
379
  return filters;
377
380
  }
@@ -1525,7 +1525,8 @@
1525
1525
  box-shadow: var(--vxe-ui-base-popup-box-shadow);
1526
1526
  z-index: 10;
1527
1527
  }
1528
- .vxe-table--filter-wrapper:not(.is--multiple) {
1528
+ .vxe-table--filter-wrapper:not(.is--multiple) .vxe-table--filter-header,
1529
+ .vxe-table--filter-wrapper:not(.is--multiple) .vxe-table--filter-body {
1529
1530
  text-align: center;
1530
1531
  }
1531
1532
  .vxe-table--filter-wrapper.is--active {