vxe-table 3.15.28 → 3.15.30

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 (63) hide show
  1. package/es/grid/src/grid.js +39 -42
  2. package/es/index.css +1 -1
  3. package/es/index.min.css +1 -1
  4. package/es/style.css +1 -1
  5. package/es/style.min.css +1 -1
  6. package/es/table/module/edit/mixin.js +11 -27
  7. package/es/table/module/export/mixin.js +65 -139
  8. package/es/table/module/filter/mixin.js +1 -0
  9. package/es/table/module/menu/mixin.js +2 -6
  10. package/es/table/module/validator/mixin.js +99 -41
  11. package/es/table/src/methods.js +110 -89
  12. package/es/table/src/table.js +6 -8
  13. package/es/table/style.css +6 -0
  14. package/es/table/style.min.css +1 -1
  15. package/es/ui/index.js +1 -1
  16. package/es/ui/src/log.js +1 -1
  17. package/es/vxe-table/style.css +6 -0
  18. package/es/vxe-table/style.min.css +1 -1
  19. package/lib/grid/src/grid.js +24 -26
  20. package/lib/grid/src/grid.min.js +1 -1
  21. package/lib/index.css +1 -1
  22. package/lib/index.min.css +1 -1
  23. package/lib/index.umd.js +358 -615
  24. package/lib/index.umd.min.js +1 -1
  25. package/lib/style.css +1 -1
  26. package/lib/style.min.css +1 -1
  27. package/lib/table/module/edit/mixin.js +11 -27
  28. package/lib/table/module/edit/mixin.min.js +1 -1
  29. package/lib/table/module/export/mixin.js +78 -168
  30. package/lib/table/module/export/mixin.min.js +1 -1
  31. package/lib/table/module/filter/mixin.js +1 -0
  32. package/lib/table/module/menu/mixin.js +2 -6
  33. package/lib/table/module/menu/mixin.min.js +1 -1
  34. package/lib/table/module/validator/mixin.js +97 -40
  35. package/lib/table/module/validator/mixin.min.js +1 -1
  36. package/lib/table/src/methods.js +121 -95
  37. package/lib/table/src/methods.min.js +1 -1
  38. package/lib/table/src/table.js +8 -10
  39. package/lib/table/src/table.min.js +1 -1
  40. package/lib/table/style/style.css +6 -0
  41. package/lib/table/style/style.min.css +1 -1
  42. package/lib/ui/index.js +1 -1
  43. package/lib/ui/index.min.js +1 -1
  44. package/lib/ui/src/log.js +1 -1
  45. package/lib/ui/src/log.min.js +1 -1
  46. package/lib/vxe-table/style/style.css +6 -0
  47. package/lib/vxe-table/style/style.min.css +1 -1
  48. package/package.json +1 -1
  49. package/packages/grid/src/grid.ts +39 -41
  50. package/packages/table/module/edit/mixin.ts +11 -27
  51. package/packages/table/module/export/mixin.ts +96 -158
  52. package/packages/table/module/filter/mixin.ts +1 -0
  53. package/packages/table/module/menu/mixin.ts +2 -6
  54. package/packages/table/module/validator/mixin.ts +101 -40
  55. package/packages/table/src/methods.ts +115 -90
  56. package/packages/table/src/table.ts +6 -8
  57. package/styles/components/table.scss +14 -0
  58. /package/es/{iconfont.1747176212818.ttf → iconfont.1747357311626.ttf} +0 -0
  59. /package/es/{iconfont.1747176212818.woff → iconfont.1747357311626.woff} +0 -0
  60. /package/es/{iconfont.1747176212818.woff2 → iconfont.1747357311626.woff2} +0 -0
  61. /package/lib/{iconfont.1747176212818.ttf → iconfont.1747357311626.ttf} +0 -0
  62. /package/lib/{iconfont.1747176212818.woff → iconfont.1747357311626.woff} +0 -0
  63. /package/lib/{iconfont.1747176212818.woff2 → iconfont.1747357311626.woff2} +0 -0
@@ -37,8 +37,11 @@ function eqCellValue(row1, row2, field) {
37
37
  }
38
38
  return _xeUtils.default.isEqual(val1, val2);
39
39
  }
40
- function getNextSortOrder(_vm, column) {
41
- const orders = _vm.sortOpts.orders;
40
+ function getNextSortOrder($xeTable, column) {
41
+ const sortOpts = $xeTable.computeSortOpts;
42
+ const {
43
+ orders = []
44
+ } = sortOpts;
42
45
  const currOrder = column.order || null;
43
46
  const oIndex = orders.indexOf(currOrder) + 1;
44
47
  return orders[oIndex < orders.length ? oIndex : 0];
@@ -2395,8 +2398,66 @@ function removeFooterMerges($xeTable, merges) {
2395
2398
  }
2396
2399
  return rest;
2397
2400
  }
2398
- function clearAllSort(_vm) {
2399
- _vm.tableFullColumn.forEach(column => {
2401
+ function handleSortEvent($xeTable, evnt, sortConfs, isUpdate) {
2402
+ const sortOpts = $xeTable.computeSortOpts;
2403
+ const {
2404
+ multiple,
2405
+ remote,
2406
+ orders
2407
+ } = sortOpts;
2408
+ if (!_xeUtils.default.isArray(sortConfs)) {
2409
+ sortConfs = [sortConfs];
2410
+ }
2411
+ if (sortConfs && sortConfs.length) {
2412
+ if (!multiple) {
2413
+ sortConfs = [sortConfs[0]];
2414
+ clearAllSort($xeTable);
2415
+ }
2416
+ let firstColumn = null;
2417
+ sortConfs.forEach((confs, index) => {
2418
+ let {
2419
+ field,
2420
+ order
2421
+ } = confs;
2422
+ let column = field;
2423
+ if (_xeUtils.default.isString(field)) {
2424
+ column = $xeTable.getColumnByField(field);
2425
+ }
2426
+ if (!firstColumn) {
2427
+ firstColumn = column;
2428
+ }
2429
+ if (column && column.sortable) {
2430
+ if (orders && orders.indexOf(order) === -1) {
2431
+ order = getNextSortOrder($xeTable, column);
2432
+ }
2433
+ if (column.order !== order) {
2434
+ column.order = order;
2435
+ }
2436
+ column.sortTime = Date.now() + index;
2437
+ }
2438
+ });
2439
+ if (isUpdate) {
2440
+ if (!remote) {
2441
+ $xeTable.handleTableData(true);
2442
+ }
2443
+ }
2444
+ if (evnt) {
2445
+ $xeTable.handleColumnSortEvent(evnt, firstColumn);
2446
+ }
2447
+ return $xeTable.$nextTick().then(() => {
2448
+ updateRowOffsetTop($xeTable);
2449
+ $xeTable.updateCellAreas();
2450
+ return updateStyle($xeTable);
2451
+ });
2452
+ }
2453
+ return $xeTable.$nextTick();
2454
+ }
2455
+ function clearAllSort($xeTable) {
2456
+ const internalData = $xeTable;
2457
+ const {
2458
+ tableFullColumn
2459
+ } = internalData;
2460
+ tableFullColumn.forEach(column => {
2400
2461
  column.order = null;
2401
2462
  });
2402
2463
  }
@@ -3525,7 +3586,6 @@ function parseColumns($xeTable, isReset) {
3525
3586
  // }
3526
3587
  // }
3527
3588
  // }
3528
- // if (process.env.NODE_ENV === 'development') {
3529
3589
  // if (props.showHeader && !props.showHeaderOverflow) {
3530
3590
  // warnLog('vxe.error.reqProp', ['show-header-overflow'])
3531
3591
  // }
@@ -3538,7 +3598,6 @@ function parseColumns($xeTable, isReset) {
3538
3598
  if (props.footerSpanMethod) {
3539
3599
  (0, _log.warnLog)('vxe.error.scrollErrProp', ['footer-span-method']);
3540
3600
  }
3541
- // }
3542
3601
  if (isReset) {
3543
3602
  const {
3544
3603
  visibleSize
@@ -3761,7 +3820,8 @@ function checkLastSyncScroll($xeTable, isRollX, isRollY) {
3761
3820
  const internalData = $xeTable;
3762
3821
  const {
3763
3822
  scrollXLoad,
3764
- scrollYLoad
3823
+ scrollYLoad,
3824
+ isAllOverflow
3765
3825
  } = reactData;
3766
3826
  const {
3767
3827
  lcsTimeout
@@ -3779,13 +3839,19 @@ function checkLastSyncScroll($xeTable, isRollX, isRollY) {
3779
3839
  internalData.inBodyScroll = false;
3780
3840
  internalData.inFooterScroll = false;
3781
3841
  internalData.scrollRenderType = '';
3782
- calcCellHeight($xeTable);
3842
+ if (!isAllOverflow) {
3843
+ calcCellHeight($xeTable);
3844
+ updateRowOffsetTop($xeTable);
3845
+ }
3783
3846
  if (isRollX && scrollXLoad) {
3784
3847
  $xeTable.updateScrollXData();
3785
3848
  }
3786
3849
  if (isRollY && scrollYLoad) {
3787
3850
  $xeTable.updateScrollYData().then(() => {
3788
- calcCellHeight($xeTable);
3851
+ if (!isAllOverflow) {
3852
+ calcCellHeight($xeTable);
3853
+ updateRowOffsetTop($xeTable);
3854
+ }
3789
3855
  $xeTable.updateScrollYSpace();
3790
3856
  });
3791
3857
  }
@@ -4263,9 +4329,7 @@ const Methods = {
4263
4329
  }
4264
4330
  this.tableData = tableData.slice(0);
4265
4331
  } else {
4266
- if (process.env.NODE_ENV === 'development') {
4267
- (0, _log.warnLog)('vxe.error.reqProp', ['keep-source']);
4268
- }
4332
+ (0, _log.errLog)('vxe.error.reqProp', ['keep-source']);
4269
4333
  }
4270
4334
  return this.$nextTick();
4271
4335
  },
@@ -4572,16 +4636,12 @@ const Methods = {
4572
4636
  getVMRowIndex: createGetRowCacheProp('$index'),
4573
4637
  // 在 v3 中废弃
4574
4638
  _getRowIndex(row) {
4575
- if (process.env.NODE_ENV === 'development') {
4576
- (0, _log.warnLog)('vxe.error.delFunc', ['_getRowIndex', 'getVTRowIndex']);
4577
- }
4639
+ (0, _log.warnLog)('vxe.error.delFunc', ['_getRowIndex', 'getVTRowIndex']);
4578
4640
  return this.getVTRowIndex(row);
4579
4641
  },
4580
4642
  // 在 v3 中废弃
4581
4643
  $getRowIndex(row) {
4582
- if (process.env.NODE_ENV === 'development') {
4583
- (0, _log.warnLog)('vxe.error.delFunc', ['$getRowIndex', 'getVMRowIndex']);
4584
- }
4644
+ (0, _log.warnLog)('vxe.error.delFunc', ['$getRowIndex', 'getVMRowIndex']);
4585
4645
  return this.getVMRowIndex(row);
4586
4646
  },
4587
4647
  /**
@@ -4601,16 +4661,12 @@ const Methods = {
4601
4661
  getVMColumnIndex: createGetColumnCacheProp('$index'),
4602
4662
  // 在 v3 中废弃
4603
4663
  _getColumnIndex(column) {
4604
- if (process.env.NODE_ENV === 'development') {
4605
- (0, _log.warnLog)('vxe.error.delFunc', ['_getColumnIndex', 'getVTColumnIndex']);
4606
- }
4664
+ (0, _log.warnLog)('vxe.error.delFunc', ['_getColumnIndex', 'getVTColumnIndex']);
4607
4665
  return this.getVTColumnIndex(column);
4608
4666
  },
4609
4667
  // 在 v3 中废弃
4610
4668
  $getColumnIndex(column) {
4611
- if (process.env.NODE_ENV === 'development') {
4612
- (0, _log.warnLog)('vxe.error.delFunc', ['$getColumnIndex', 'getVMColumnIndex']);
4613
- }
4669
+ (0, _log.warnLog)('vxe.error.delFunc', ['$getColumnIndex', 'getVMColumnIndex']);
4614
4670
  return this.getVMColumnIndex(column);
4615
4671
  },
4616
4672
  /**
@@ -4736,9 +4792,7 @@ const Methods = {
4736
4792
  handleGetRowId
4737
4793
  } = (0, _util.createHandleGetRowId)($xeTable);
4738
4794
  if (!keepSource) {
4739
- if (process.env.NODE_ENV === 'development') {
4740
- (0, _log.errLog)('vxe.error.reqProp', ['keep-source']);
4741
- }
4795
+ (0, _log.errLog)('vxe.error.reqProp', ['keep-source']);
4742
4796
  return $xeTable.$nextTick();
4743
4797
  }
4744
4798
  let targetRows = rows;
@@ -5436,6 +5490,7 @@ const Methods = {
5436
5490
  }
5437
5491
  _xeUtils.default.eachTree([targetColumn], column => {
5438
5492
  column.fixed = fixed;
5493
+ column.renderFixed = fixed;
5439
5494
  });
5440
5495
  $xeTable.saveCustomStore('update:fixed');
5441
5496
  if (!status) {
@@ -5461,6 +5516,7 @@ const Methods = {
5461
5516
  if (targetColumn && targetColumn.fixed) {
5462
5517
  _xeUtils.default.eachTree([targetColumn], column => {
5463
5518
  column.fixed = null;
5519
+ column.renderFixed = null;
5464
5520
  });
5465
5521
  $xeTable.saveCustomStore('update:fixed');
5466
5522
  if (!status) {
@@ -6460,10 +6516,8 @@ const Methods = {
6460
6516
  // 兼容老版本
6461
6517
  if (!evntList.length && type === 'event.clearEdit') {
6462
6518
  evntList = interceptor.get('event.clearActived');
6463
- if (process.env.NODE_ENV === 'development') {
6464
- if (evntList.length) {
6465
- (0, _log.warnLog)('vxe.error.delEvent', ['event.clearActived', 'event.clearEdit']);
6466
- }
6519
+ if (evntList.length) {
6520
+ (0, _log.warnLog)('vxe.error.delEvent', ['event.clearActived', 'event.clearEdit']);
6467
6521
  }
6468
6522
  }
6469
6523
  // 兼容老版本
@@ -7238,10 +7292,14 @@ const Methods = {
7238
7292
  if (tooltipStore.column !== column || tooltipStore.row !== row || !tooltipStore.visible) {
7239
7293
  const ctEl = tdEl.querySelector('.vxe-cell--wrapper');
7240
7294
  let ovEl = null;
7295
+ let tipEl = tdEl.querySelector(column.type === 'html' ? '.vxe-cell--html' : '.vxe-cell--label');
7241
7296
  if (column.treeNode) {
7242
7297
  ovEl = tdEl.querySelector('.vxe-tree-cell');
7243
7298
  }
7244
- handleTooltip($xeTable, evnt, tdEl, ovEl || ctEl, tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
7299
+ if (!tipEl) {
7300
+ tipEl = ctEl;
7301
+ }
7302
+ handleTooltip($xeTable, evnt, tdEl, ovEl || ctEl, tipEl, params);
7245
7303
  }
7246
7304
  },
7247
7305
  /**
@@ -7259,7 +7317,16 @@ const Methods = {
7259
7317
  const tdEl = evnt.currentTarget;
7260
7318
  handleTargetEnterEvent($xeTable, tooltipStore.column !== column || !!tooltipStore.row);
7261
7319
  if (tooltipStore.column !== column || !tooltipStore.visible) {
7262
- handleTooltip($xeTable, evnt, tdEl, tdEl.querySelector('.vxe-cell--wrapper'), tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
7320
+ const ctEl = tdEl.querySelector('.vxe-cell--wrapper');
7321
+ let ovEl = null;
7322
+ let tipEl = tdEl.querySelector(column.type === 'html' ? '.vxe-cell--html' : '.vxe-cell--label');
7323
+ if (column.type === 'html') {
7324
+ ovEl = tdEl.querySelector('.vxe-cell--html');
7325
+ }
7326
+ if (!tipEl) {
7327
+ tipEl = ctEl;
7328
+ }
7329
+ handleTooltip($xeTable, evnt, tdEl, ovEl || ctEl, tipEl, params);
7263
7330
  }
7264
7331
  },
7265
7332
  openTooltip(target, content) {
@@ -9671,56 +9738,12 @@ const Methods = {
9671
9738
  },
9672
9739
  setSort(sortConfs, isUpdate) {
9673
9740
  const $xeTable = this;
9674
- const sortOpts = $xeTable.computeSortOpts;
9675
- const {
9676
- multiple,
9677
- remote,
9678
- orders
9679
- } = sortOpts;
9680
- if (!_xeUtils.default.isArray(sortConfs)) {
9681
- sortConfs = [sortConfs];
9682
- }
9683
- if (sortConfs && sortConfs.length) {
9684
- if (!multiple) {
9685
- sortConfs = [sortConfs[0]];
9686
- clearAllSort($xeTable);
9687
- }
9688
- let firstColumn = null;
9689
- sortConfs.forEach((confs, index) => {
9690
- let {
9691
- field,
9692
- order
9693
- } = confs;
9694
- let column = field;
9695
- if (_xeUtils.default.isString(field)) {
9696
- column = $xeTable.getColumnByField(field);
9697
- }
9698
- if (!firstColumn) {
9699
- firstColumn = column;
9700
- }
9701
- if (column && column.sortable) {
9702
- if (orders && orders.indexOf(order) === -1) {
9703
- order = getNextSortOrder($xeTable, column);
9704
- }
9705
- if (column.order !== order) {
9706
- column.order = order;
9707
- }
9708
- column.sortTime = Date.now() + index;
9709
- }
9710
- });
9711
- if (isUpdate) {
9712
- if (!remote) {
9713
- $xeTable.handleTableData(true);
9714
- }
9715
- $xeTable.handleColumnSortEvent(new Event('click'), firstColumn);
9716
- }
9717
- return $xeTable.$nextTick().then(() => {
9718
- updateRowOffsetTop($xeTable);
9719
- $xeTable.updateCellAreas();
9720
- return updateStyle($xeTable);
9721
- });
9722
- }
9723
- return $xeTable.$nextTick();
9741
+ // 已废弃,即将去掉事件触发 new Event('click') -> null
9742
+ return handleSortEvent($xeTable, new Event('click'), sortConfs, isUpdate);
9743
+ },
9744
+ setSortByEvent(evnt, sortConfs, isUpdate) {
9745
+ const $xeTable = this;
9746
+ return handleSortEvent($xeTable, evnt, sortConfs, isUpdate);
9724
9747
  },
9725
9748
  /**
9726
9749
  * 清空指定列的排序条件
@@ -9791,9 +9814,7 @@ const Methods = {
9791
9814
  },
9792
9815
  // 在 v3 中废弃
9793
9816
  getSortColumn() {
9794
- if (process.env.NODE_ENV === 'development') {
9795
- (0, _log.warnLog)('vxe.error.delFunc', ['getSortColumn', 'getSortColumns']);
9796
- }
9817
+ (0, _log.warnLog)('vxe.error.delFunc', ['getSortColumn', 'getSortColumns']);
9797
9818
  return _xeUtils.default.find(this.tableFullColumn, column => (column.sortable || column.remoteSort) && column.order);
9798
9819
  },
9799
9820
  isSort(fieldOrColumn) {
@@ -9829,6 +9850,17 @@ const Methods = {
9829
9850
  }
9830
9851
  return sortList;
9831
9852
  },
9853
+ setFilterByEvent(evnt, fieldOrColumn, options, isUpdate) {
9854
+ const $xeTable = this;
9855
+ const column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
9856
+ if (column && column.filters) {
9857
+ column.filters = (0, _util.toFilters)(options || []);
9858
+ if (isUpdate) {
9859
+ return $xeTable.handleColumnConfirmFilter(column, evnt);
9860
+ }
9861
+ }
9862
+ return $xeTable.$nextTick();
9863
+ },
9832
9864
  /**
9833
9865
  * 关闭筛选
9834
9866
  * @param {Event} evnt 事件
@@ -9982,9 +10014,7 @@ const Methods = {
9982
10014
  return $xeTable.$nextTick();
9983
10015
  },
9984
10016
  reloadExpandContent(row) {
9985
- if (process.env.NODE_ENV === 'development') {
9986
- (0, _log.warnLog)('vxe.error.delFunc', ['reloadExpandContent', 'reloadRowExpand']);
9987
- }
10017
+ (0, _log.warnLog)('vxe.error.delFunc', ['reloadExpandContent', 'reloadRowExpand']);
9988
10018
  // 即将废弃
9989
10019
  return this.reloadRowExpand(row);
9990
10020
  },
@@ -10163,9 +10193,7 @@ const Methods = {
10163
10193
  return !!rowExpandedFlag && !!rowExpandedMaps[rowid];
10164
10194
  },
10165
10195
  isExpandByRow(row) {
10166
- if (process.env.NODE_ENV === 'development') {
10167
- (0, _log.warnLog)('vxe.error.delFunc', ['isExpandByRow', 'isRowExpandByRow']);
10168
- }
10196
+ (0, _log.warnLog)('vxe.error.delFunc', ['isExpandByRow', 'isRowExpandByRow']);
10169
10197
  // 即将废弃
10170
10198
  return this.isRowExpandByRow(row);
10171
10199
  },
@@ -10424,9 +10452,7 @@ const Methods = {
10424
10452
  },
10425
10453
  reloadTreeChilds(row) {
10426
10454
  const $xeTable = this;
10427
- if (process.env.NODE_ENV === 'development') {
10428
- (0, _log.warnLog)('vxe.error.delFunc', ['reloadTreeChilds', 'reloadTreeExpand']);
10429
- }
10455
+ (0, _log.warnLog)('vxe.error.delFunc', ['reloadTreeChilds', 'reloadTreeExpand']);
10430
10456
  // 即将废弃
10431
10457
  return $xeTable.reloadTreeExpand(row);
10432
10458
  },