vxe-table 3.15.27 → 3.15.28

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.
@@ -287,8 +287,14 @@ export default {
287
287
  * @param {Event} evnt 事件
288
288
  */
289
289
  handleFilterResetFilter(evnt) {
290
- this.handleClearFilter(this.filterStore.column);
291
- this.confirmFilterEvent(evnt);
290
+ const $xeTable = this;
291
+ const reactData = $xeTable;
292
+ const { filterStore } = reactData;
293
+ $xeTable.handleClearFilter(filterStore.column);
294
+ $xeTable.confirmFilterEvent(evnt);
295
+ if (evnt) {
296
+ $xeTable.dispatchEvent('clear-filter', { filterList: [] }, evnt);
297
+ }
292
298
  },
293
299
  /**
294
300
  * 清空指定列的筛选条件
@@ -296,16 +302,20 @@ export default {
296
302
  * @param {String} fieldOrColumn 列
297
303
  */
298
304
  _clearFilter(fieldOrColumn) {
299
- const { filterStore } = this;
305
+ const $xeTable = this;
306
+ const reactData = $xeTable;
307
+ const internalData = $xeTable;
308
+ const { filterStore } = reactData;
309
+ const { tableFullColumn } = internalData;
300
310
  let column;
301
311
  if (fieldOrColumn) {
302
- column = handleFieldOrColumn(this, fieldOrColumn);
312
+ column = handleFieldOrColumn($xeTable, fieldOrColumn);
303
313
  if (column) {
304
- this.handleClearFilter(column);
314
+ $xeTable.handleClearFilter(column);
305
315
  }
306
316
  }
307
317
  else {
308
- this.visibleColumn.forEach(this.handleClearFilter);
318
+ tableFullColumn.forEach($xeTable.handleClearFilter);
309
319
  }
310
320
  if (!fieldOrColumn || column !== filterStore.column) {
311
321
  Object.assign(filterStore, {
@@ -318,12 +328,13 @@ export default {
318
328
  visible: false
319
329
  });
320
330
  }
321
- return this.updateData();
331
+ return $xeTable.updateData();
322
332
  },
323
333
  _updateFilterOptionStatus(item, checked) {
334
+ const $xeTable = this;
324
335
  item._checked = checked;
325
336
  item.checked = checked;
326
- return this.$nextTick();
337
+ return $xeTable.$nextTick();
327
338
  }
328
339
  }
329
340
  };
@@ -6231,7 +6231,12 @@ const Methods = {
6231
6231
  }
6232
6232
  }
6233
6233
  if (tooltipStore.column !== column || tooltipStore.row !== row || !tooltipStore.visible) {
6234
- handleTooltip($xeTable, evnt, tdEl, tdEl.querySelector('.vxe-cell--wrapper'), tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
6234
+ const ctEl = tdEl.querySelector('.vxe-cell--wrapper');
6235
+ let ovEl = null;
6236
+ if (column.treeNode) {
6237
+ ovEl = tdEl.querySelector('.vxe-tree-cell');
6238
+ }
6239
+ handleTooltip($xeTable, evnt, tdEl, ovEl || ctEl, tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
6235
6240
  }
6236
6241
  },
6237
6242
  /**
@@ -7371,12 +7376,15 @@ const Methods = {
7371
7376
  const props = $xeTable;
7372
7377
  const { mouseConfig } = props;
7373
7378
  const mouseOpts = $xeTable.computeMouseOpts;
7374
- const { field, sortable } = column;
7379
+ const { field, sortable, order } = column;
7375
7380
  if (sortable) {
7376
- const params = { $table: $xeTable, $event: evnt, column, field, property: field, order: column.order, sortList: $xeTable.getSortColumns(), sortTime: column.sortTime };
7381
+ const params = { $table: $xeTable, $event: evnt, column, field, property: field, order, sortList: $xeTable.getSortColumns(), sortTime: column.sortTime };
7377
7382
  if (mouseConfig && mouseOpts.area && $xeTable.handleSortEvent) {
7378
7383
  $xeTable.handleSortEvent(evnt, params);
7379
7384
  }
7385
+ if (!order) {
7386
+ $xeTable.dispatchEvent('clear-sort', params, evnt);
7387
+ }
7380
7388
  $xeTable.dispatchEvent('sort-change', params, evnt);
7381
7389
  }
7382
7390
  },
@@ -8328,6 +8336,44 @@ const Methods = {
8328
8336
  return updateStyle($xeTable);
8329
8337
  });
8330
8338
  },
8339
+ clearSortByEvent(evnt, fieldOrColumn) {
8340
+ const $xeTable = this;
8341
+ const internalData = $xeTable;
8342
+ const { tableFullColumn } = internalData;
8343
+ const sortOpts = $xeTable.computeSortOpts;
8344
+ const sortCols = [];
8345
+ let column = null;
8346
+ if (evnt) {
8347
+ if (fieldOrColumn) {
8348
+ column = handleFieldOrColumn($xeTable, fieldOrColumn);
8349
+ if (column) {
8350
+ column.order = null;
8351
+ }
8352
+ }
8353
+ else {
8354
+ tableFullColumn.forEach((column) => {
8355
+ if (column.order) {
8356
+ column.order = null;
8357
+ sortCols.push(column);
8358
+ }
8359
+ });
8360
+ }
8361
+ if (!sortOpts.remote) {
8362
+ $xeTable.handleTableData(true);
8363
+ }
8364
+ if (sortCols.length) {
8365
+ const params = { $table: $xeTable, $event: evnt, cols: sortCols, sortList: [] };
8366
+ $xeTable.dispatchEvent('clear-all-sort', params, evnt);
8367
+ }
8368
+ else if (column) {
8369
+ $xeTable.handleColumnSortEvent(evnt, column);
8370
+ }
8371
+ }
8372
+ return $xeTable.$nextTick().then(() => {
8373
+ updateRowOffsetTop($xeTable);
8374
+ return updateStyle($xeTable);
8375
+ });
8376
+ },
8331
8377
  // 在 v3 中废弃
8332
8378
  getSortColumn() {
8333
8379
  if (process.env.NODE_ENV === 'development') {
@@ -8395,6 +8441,52 @@ const Methods = {
8395
8441
  isFilter(fieldOrColumn) {
8396
8442
  return this.isActiveFilterByColumn(fieldOrColumn);
8397
8443
  },
8444
+ clearFilterByEvent(evnt, fieldOrColumn) {
8445
+ const $xeTable = this;
8446
+ const reactData = $xeTable;
8447
+ const internalData = $xeTable;
8448
+ const { filterStore } = reactData;
8449
+ const { tableFullColumn } = internalData;
8450
+ const filterOpts = $xeTable.computeFilterOpts;
8451
+ const filterCols = [];
8452
+ let column = null;
8453
+ if (fieldOrColumn) {
8454
+ column = handleFieldOrColumn($xeTable, fieldOrColumn);
8455
+ if (column) {
8456
+ $xeTable.handleClearFilter(column);
8457
+ }
8458
+ }
8459
+ else {
8460
+ tableFullColumn.forEach(column => {
8461
+ if (column.filters) {
8462
+ filterCols.push(column);
8463
+ $xeTable.handleClearFilter(column);
8464
+ }
8465
+ });
8466
+ }
8467
+ if (!fieldOrColumn || column !== filterStore.column) {
8468
+ Object.assign(filterStore, {
8469
+ isAllSelected: false,
8470
+ isIndeterminate: false,
8471
+ style: null,
8472
+ options: [],
8473
+ column: null,
8474
+ multiple: false,
8475
+ visible: false
8476
+ });
8477
+ }
8478
+ if (!filterOpts.remote) {
8479
+ $xeTable.updateData();
8480
+ }
8481
+ if (filterCols.length) {
8482
+ const params = { $table: $xeTable, $event: evnt, cols: filterCols, filterList: [] };
8483
+ $xeTable.dispatchEvent('clear-all-filter', params, evnt);
8484
+ }
8485
+ else if (column) {
8486
+ $xeTable.dispatchEvent('clear-filter', { filterList: () => $xeTable.getCheckedFilters() }, evnt);
8487
+ }
8488
+ return $xeTable.$nextTick();
8489
+ },
8398
8490
  /**
8399
8491
  * 判断展开行是否懒加载完成
8400
8492
  * @param {Row} row 行对象
@@ -1682,6 +1682,7 @@ export default {
1682
1682
  const columnOpts = $xeTable.computeColumnOpts;
1683
1683
  const rowOpts = $xeTable.computeRowOpts;
1684
1684
  const customOpts = $xeTable.computeCustomOpts;
1685
+ const virtualYOpts = $xeTable.computeVirtualYOpts;
1685
1686
  if (columnOpts.drag || rowOpts.drag || customOpts.allowSort) {
1686
1687
  initTpImg();
1687
1688
  }
@@ -1722,9 +1723,11 @@ export default {
1722
1723
  resizeObserver.observe(this.getParentElem());
1723
1724
  this.$resize = resizeObserver;
1724
1725
  }
1725
- const tableViewportEl = $xeTable.$refs.refTableViewportElem;
1726
- if (tableViewportEl) {
1727
- tableViewportEl.addEventListener('wheel', $xeTable.triggerBodyWheelEvent, { passive: false });
1726
+ if (virtualYOpts.mode !== 'scroll') {
1727
+ const tableViewportEl = $xeTable.$refs.refTableViewportElem;
1728
+ if (tableViewportEl) {
1729
+ tableViewportEl.addEventListener('wheel', $xeTable.triggerBodyWheelEvent, { passive: false });
1730
+ }
1728
1731
  }
1729
1732
  this.preventEvent(null, 'mounted');
1730
1733
  },
package/lib/index.umd.js CHANGED
@@ -12535,7 +12535,12 @@ const Methods = {
12535
12535
  }
12536
12536
  }
12537
12537
  if (tooltipStore.column !== column || tooltipStore.row !== row || !tooltipStore.visible) {
12538
- handleTooltip($xeTable, evnt, tdEl, tdEl.querySelector('.vxe-cell--wrapper'), tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
12538
+ const ctEl = tdEl.querySelector('.vxe-cell--wrapper');
12539
+ let ovEl = null;
12540
+ if (column.treeNode) {
12541
+ ovEl = tdEl.querySelector('.vxe-tree-cell');
12542
+ }
12543
+ handleTooltip($xeTable, evnt, tdEl, ovEl || ctEl, tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
12539
12544
  }
12540
12545
  },
12541
12546
  /**
@@ -13925,7 +13930,8 @@ const Methods = {
13925
13930
  const mouseOpts = $xeTable.computeMouseOpts;
13926
13931
  const {
13927
13932
  field,
13928
- sortable
13933
+ sortable,
13934
+ order
13929
13935
  } = column;
13930
13936
  if (sortable) {
13931
13937
  const params = {
@@ -13934,13 +13940,16 @@ const Methods = {
13934
13940
  column,
13935
13941
  field,
13936
13942
  property: field,
13937
- order: column.order,
13943
+ order,
13938
13944
  sortList: $xeTable.getSortColumns(),
13939
13945
  sortTime: column.sortTime
13940
13946
  };
13941
13947
  if (mouseConfig && mouseOpts.area && $xeTable.handleSortEvent) {
13942
13948
  $xeTable.handleSortEvent(evnt, params);
13943
13949
  }
13950
+ if (!order) {
13951
+ $xeTable.dispatchEvent('clear-sort', params, evnt);
13952
+ }
13944
13953
  $xeTable.dispatchEvent('sort-change', params, evnt);
13945
13954
  }
13946
13955
  },
@@ -15038,6 +15047,49 @@ const Methods = {
15038
15047
  return updateStyle($xeTable);
15039
15048
  });
15040
15049
  },
15050
+ clearSortByEvent(evnt, fieldOrColumn) {
15051
+ const $xeTable = this;
15052
+ const internalData = $xeTable;
15053
+ const {
15054
+ tableFullColumn
15055
+ } = internalData;
15056
+ const sortOpts = $xeTable.computeSortOpts;
15057
+ const sortCols = [];
15058
+ let column = null;
15059
+ if (evnt) {
15060
+ if (fieldOrColumn) {
15061
+ column = handleFieldOrColumn($xeTable, fieldOrColumn);
15062
+ if (column) {
15063
+ column.order = null;
15064
+ }
15065
+ } else {
15066
+ tableFullColumn.forEach(column => {
15067
+ if (column.order) {
15068
+ column.order = null;
15069
+ sortCols.push(column);
15070
+ }
15071
+ });
15072
+ }
15073
+ if (!sortOpts.remote) {
15074
+ $xeTable.handleTableData(true);
15075
+ }
15076
+ if (sortCols.length) {
15077
+ const params = {
15078
+ $table: $xeTable,
15079
+ $event: evnt,
15080
+ cols: sortCols,
15081
+ sortList: []
15082
+ };
15083
+ $xeTable.dispatchEvent('clear-all-sort', params, evnt);
15084
+ } else if (column) {
15085
+ $xeTable.handleColumnSortEvent(evnt, column);
15086
+ }
15087
+ }
15088
+ return $xeTable.$nextTick().then(() => {
15089
+ updateRowOffsetTop($xeTable);
15090
+ return updateStyle($xeTable);
15091
+ });
15092
+ },
15041
15093
  // 在 v3 中废弃
15042
15094
  getSortColumn() {
15043
15095
  if (true) {
@@ -15122,6 +15174,61 @@ const Methods = {
15122
15174
  isFilter(fieldOrColumn) {
15123
15175
  return this.isActiveFilterByColumn(fieldOrColumn);
15124
15176
  },
15177
+ clearFilterByEvent(evnt, fieldOrColumn) {
15178
+ const $xeTable = this;
15179
+ const reactData = $xeTable;
15180
+ const internalData = $xeTable;
15181
+ const {
15182
+ filterStore
15183
+ } = reactData;
15184
+ const {
15185
+ tableFullColumn
15186
+ } = internalData;
15187
+ const filterOpts = $xeTable.computeFilterOpts;
15188
+ const filterCols = [];
15189
+ let column = null;
15190
+ if (fieldOrColumn) {
15191
+ column = handleFieldOrColumn($xeTable, fieldOrColumn);
15192
+ if (column) {
15193
+ $xeTable.handleClearFilter(column);
15194
+ }
15195
+ } else {
15196
+ tableFullColumn.forEach(column => {
15197
+ if (column.filters) {
15198
+ filterCols.push(column);
15199
+ $xeTable.handleClearFilter(column);
15200
+ }
15201
+ });
15202
+ }
15203
+ if (!fieldOrColumn || column !== filterStore.column) {
15204
+ Object.assign(filterStore, {
15205
+ isAllSelected: false,
15206
+ isIndeterminate: false,
15207
+ style: null,
15208
+ options: [],
15209
+ column: null,
15210
+ multiple: false,
15211
+ visible: false
15212
+ });
15213
+ }
15214
+ if (!filterOpts.remote) {
15215
+ $xeTable.updateData();
15216
+ }
15217
+ if (filterCols.length) {
15218
+ const params = {
15219
+ $table: $xeTable,
15220
+ $event: evnt,
15221
+ cols: filterCols,
15222
+ filterList: []
15223
+ };
15224
+ $xeTable.dispatchEvent('clear-all-filter', params, evnt);
15225
+ } else if (column) {
15226
+ $xeTable.dispatchEvent('clear-filter', {
15227
+ filterList: () => $xeTable.getCheckedFilters()
15228
+ }, evnt);
15229
+ }
15230
+ return $xeTable.$nextTick();
15231
+ },
15125
15232
  /**
15126
15233
  * 判断展开行是否懒加载完成
15127
15234
  * @param {Row} row 行对象
@@ -21948,8 +22055,18 @@ const {
21948
22055
  * @param {Event} evnt 事件
21949
22056
  */
21950
22057
  handleFilterResetFilter(evnt) {
21951
- this.handleClearFilter(this.filterStore.column);
21952
- this.confirmFilterEvent(evnt);
22058
+ const $xeTable = this;
22059
+ const reactData = $xeTable;
22060
+ const {
22061
+ filterStore
22062
+ } = reactData;
22063
+ $xeTable.handleClearFilter(filterStore.column);
22064
+ $xeTable.confirmFilterEvent(evnt);
22065
+ if (evnt) {
22066
+ $xeTable.dispatchEvent('clear-filter', {
22067
+ filterList: []
22068
+ }, evnt);
22069
+ }
21953
22070
  },
21954
22071
  /**
21955
22072
  * 清空指定列的筛选条件
@@ -21957,17 +22074,23 @@ const {
21957
22074
  * @param {String} fieldOrColumn 列
21958
22075
  */
21959
22076
  _clearFilter(fieldOrColumn) {
22077
+ const $xeTable = this;
22078
+ const reactData = $xeTable;
22079
+ const internalData = $xeTable;
21960
22080
  const {
21961
22081
  filterStore
21962
- } = this;
22082
+ } = reactData;
22083
+ const {
22084
+ tableFullColumn
22085
+ } = internalData;
21963
22086
  let column;
21964
22087
  if (fieldOrColumn) {
21965
- column = handleFieldOrColumn(this, fieldOrColumn);
22088
+ column = handleFieldOrColumn($xeTable, fieldOrColumn);
21966
22089
  if (column) {
21967
- this.handleClearFilter(column);
22090
+ $xeTable.handleClearFilter(column);
21968
22091
  }
21969
22092
  } else {
21970
- this.visibleColumn.forEach(this.handleClearFilter);
22093
+ tableFullColumn.forEach($xeTable.handleClearFilter);
21971
22094
  }
21972
22095
  if (!fieldOrColumn || column !== filterStore.column) {
21973
22096
  Object.assign(filterStore, {
@@ -21980,12 +22103,13 @@ const {
21980
22103
  visible: false
21981
22104
  });
21982
22105
  }
21983
- return this.updateData();
22106
+ return $xeTable.updateData();
21984
22107
  },
21985
22108
  _updateFilterOptionStatus(item, checked) {
22109
+ const $xeTable = this;
21986
22110
  item._checked = checked;
21987
22111
  item.checked = checked;
21988
- return this.$nextTick();
22112
+ return $xeTable.$nextTick();
21989
22113
  }
21990
22114
  }
21991
22115
  });
@@ -28852,6 +28976,7 @@ function renderBody(h, $xeTable) {
28852
28976
  const columnOpts = $xeTable.computeColumnOpts;
28853
28977
  const rowOpts = $xeTable.computeRowOpts;
28854
28978
  const customOpts = $xeTable.computeCustomOpts;
28979
+ const virtualYOpts = $xeTable.computeVirtualYOpts;
28855
28980
  if (columnOpts.drag || rowOpts.drag || customOpts.allowSort) {
28856
28981
  initTpImg();
28857
28982
  }
@@ -28891,11 +29016,13 @@ function renderBody(h, $xeTable) {
28891
29016
  resizeObserver.observe(this.getParentElem());
28892
29017
  this.$resize = resizeObserver;
28893
29018
  }
28894
- const tableViewportEl = $xeTable.$refs.refTableViewportElem;
28895
- if (tableViewportEl) {
28896
- tableViewportEl.addEventListener('wheel', $xeTable.triggerBodyWheelEvent, {
28897
- passive: false
28898
- });
29019
+ if (virtualYOpts.mode !== 'scroll') {
29020
+ const tableViewportEl = $xeTable.$refs.refTableViewportElem;
29021
+ if (tableViewportEl) {
29022
+ tableViewportEl.addEventListener('wheel', $xeTable.triggerBodyWheelEvent, {
29023
+ passive: false
29024
+ });
29025
+ }
28899
29026
  }
28900
29027
  this.preventEvent(null, 'mounted');
28901
29028
  },
@@ -32975,9 +33102,16 @@ render_renderer.mixin({
32975
33102
  let isReg = false;
32976
33103
  const VxeTable = Object.assign({}, table, {
32977
33104
  install(app) {
32978
- if (typeof window !== 'undefined' && window.VXETableMixin) {
32979
- table.mixins.push(window.VXETableMixin);
32980
- delete window.VXETableMixin;
33105
+ if (typeof window !== 'undefined') {
33106
+ if (window.VxeTableExtendCellArea && window.VxeTableExtendCellArea.use) {
33107
+ window.VxeTableExtendCellArea.use(core_.VxeUI);
33108
+ } else if (window.VXETableMixin) {
33109
+ table.mixins.push(window.VXETableMixin);
33110
+ delete window.VXETableMixin;
33111
+ }
33112
+ if (window.VxeTableExtendPivotTable && window.VxeTableExtendPivotTable.use) {
33113
+ window.VxeTableExtendPivotTable.use(core_.VxeUI);
33114
+ }
32981
33115
  }
32982
33116
  // 兼容老版本
32983
33117
  if (typeof window !== 'undefined' && window.VxeTableExtendCellArea && window.VxeTableExtendCellArea.init) {