vxe-table 3.11.31 → 3.11.33

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 (65) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/style.min.css +1 -1
  5. package/es/table/module/custom/panel.js +7 -6
  6. package/es/table/module/keyboard/mixin.js +1 -26
  7. package/es/table/src/body.js +21 -5
  8. package/es/table/src/cell.js +23 -19
  9. package/es/table/src/footer.js +4 -2
  10. package/es/table/src/header.js +40 -28
  11. package/es/table/src/methods.js +77 -4
  12. package/es/table/src/table.js +3 -1
  13. package/es/table/style.css +36 -0
  14. package/es/table/style.min.css +1 -1
  15. package/es/ui/index.js +5 -3
  16. package/es/ui/src/log.js +1 -1
  17. package/es/vxe-table/style.css +36 -0
  18. package/es/vxe-table/style.min.css +1 -1
  19. package/lib/index.css +1 -1
  20. package/lib/index.min.css +1 -1
  21. package/lib/index.umd.js +200 -111
  22. package/lib/index.umd.min.js +1 -1
  23. package/lib/style.css +1 -1
  24. package/lib/style.min.css +1 -1
  25. package/lib/table/module/custom/panel.js +7 -14
  26. package/lib/table/module/custom/panel.min.js +1 -1
  27. package/lib/table/module/keyboard/mixin.js +0 -32
  28. package/lib/table/module/keyboard/mixin.min.js +1 -1
  29. package/lib/table/src/body.js +21 -5
  30. package/lib/table/src/body.min.js +1 -1
  31. package/lib/table/src/cell.js +23 -17
  32. package/lib/table/src/cell.min.js +1 -1
  33. package/lib/table/src/footer.js +4 -2
  34. package/lib/table/src/footer.min.js +1 -1
  35. package/lib/table/src/header.js +42 -34
  36. package/lib/table/src/header.min.js +1 -1
  37. package/lib/table/src/methods.js +94 -2
  38. package/lib/table/src/methods.min.js +1 -1
  39. package/lib/table/src/table.js +3 -1
  40. package/lib/table/src/table.min.js +1 -1
  41. package/lib/table/style/style.css +36 -0
  42. package/lib/table/style/style.min.css +1 -1
  43. package/lib/ui/index.js +5 -3
  44. package/lib/ui/index.min.js +1 -1
  45. package/lib/ui/src/log.js +1 -1
  46. package/lib/ui/src/log.min.js +1 -1
  47. package/lib/vxe-table/style/style.css +36 -0
  48. package/lib/vxe-table/style/style.min.css +1 -1
  49. package/package.json +2 -2
  50. package/packages/table/module/custom/panel.ts +9 -6
  51. package/packages/table/module/keyboard/mixin.ts +1 -26
  52. package/packages/table/src/body.ts +21 -5
  53. package/packages/table/src/cell.ts +23 -19
  54. package/packages/table/src/footer.ts +6 -2
  55. package/packages/table/src/header.ts +43 -28
  56. package/packages/table/src/methods.ts +79 -4
  57. package/packages/table/src/table.ts +3 -1
  58. package/packages/ui/index.ts +4 -2
  59. package/styles/components/table.scss +36 -0
  60. /package/es/{iconfont.1734190867802.ttf → iconfont.1734402738434.ttf} +0 -0
  61. /package/es/{iconfont.1734190867802.woff → iconfont.1734402738434.woff} +0 -0
  62. /package/es/{iconfont.1734190867802.woff2 → iconfont.1734402738434.woff2} +0 -0
  63. /package/lib/{iconfont.1734190867802.ttf → iconfont.1734402738434.ttf} +0 -0
  64. /package/lib/{iconfont.1734190867802.woff → iconfont.1734402738434.woff} +0 -0
  65. /package/lib/{iconfont.1734190867802.woff2 → iconfont.1734402738434.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -2220,7 +2220,7 @@ function getClass(property, params) {
2220
2220
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
2221
2221
 
2222
2222
 
2223
- const version = "3.11.31";
2223
+ const version = "3.11.33";
2224
2224
  core_.VxeUI.version = version;
2225
2225
  core_.VxeUI.tableVersion = version;
2226
2226
  core_.VxeUI.setConfig({
@@ -2262,10 +2262,12 @@ core_.VxeUI.setConfig({
2262
2262
  strict: true
2263
2263
  },
2264
2264
  rowDragConfig: {
2265
- showIcon: true
2265
+ showIcon: true,
2266
+ animation: true
2266
2267
  },
2267
2268
  columnDragConfig: {
2268
- showIcon: true
2269
+ showIcon: true,
2270
+ animation: true
2269
2271
  },
2270
2272
  checkboxConfig: {
2271
2273
  // trigger: 'default',
@@ -2790,7 +2792,7 @@ function isNodeElement(elem) {
2790
2792
  const {
2791
2793
  log: log_log
2792
2794
  } = core_.VxeUI;
2793
- const log_version = `table v${"3.11.31"}`;
2795
+ const log_version = `table v${"3.11.33"}`;
2794
2796
  const warnLog = log_log.create('warn', log_version);
2795
2797
  const errLog = log_log.create('error', log_version);
2796
2798
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -3564,23 +3566,26 @@ function renderCellDragIcon(h, params) {
3564
3566
  const rowDragOpts = $table.computeRowDragOpts;
3565
3567
  const {
3566
3568
  icon,
3569
+ trigger,
3567
3570
  disabledMethod
3568
3571
  } = rowDragOpts;
3569
3572
  const rDisabledMethod = disabledMethod || (dragConfig ? dragConfig.rowDisabledMethod : null);
3570
3573
  const isDisabled = rDisabledMethod && rDisabledMethod(params);
3574
+ const ons = {};
3575
+ if (trigger !== 'cell') {
3576
+ ons.mousedown = evnt => {
3577
+ if (!isDisabled) {
3578
+ $table.handleCellDragMousedownEvent(evnt, params);
3579
+ }
3580
+ };
3581
+ ons.mouseup = $table.handleCellDragMouseupEvent;
3582
+ }
3571
3583
  return h('span', {
3572
3584
  key: 'dg',
3573
3585
  class: ['vxe-cell--drag-handle', {
3574
3586
  'is--disabled': isDisabled
3575
3587
  }],
3576
- on: {
3577
- mousedown(evnt) {
3578
- if (!isDisabled) {
3579
- $table.handleCellDragMousedownEvent(evnt, params);
3580
- }
3581
- },
3582
- mouseup: $table.handleCellDragMouseupEvent
3583
- }
3588
+ on: ons
3584
3589
  }, [h('i', {
3585
3590
  class: icon || (dragConfig ? dragConfig.rowIcon : '') || cell_getIcon().TABLE_DRAG_ROW
3586
3591
  })]);
@@ -3629,26 +3634,29 @@ function renderHeaderCellDragIcon(h, params) {
3629
3634
  const {
3630
3635
  showIcon,
3631
3636
  icon,
3637
+ trigger,
3632
3638
  isCrossDrag,
3633
3639
  visibleMethod,
3634
3640
  disabledMethod
3635
3641
  } = columnDragOpts;
3636
- const isDisabled = disabledMethod && disabledMethod(params);
3637
3642
  if (columnOpts.drag && showIcon && (!visibleMethod || visibleMethod(params))) {
3638
3643
  if (!column.fixed && (isCrossDrag || !column.parentId)) {
3644
+ const isDisabled = disabledMethod && disabledMethod(params);
3645
+ const ons = {};
3646
+ if (trigger !== 'cell') {
3647
+ ons.mousedown = evnt => {
3648
+ if (!isDisabled) {
3649
+ $table.handleHeaderCellDragMousedownEvent(evnt, params);
3650
+ }
3651
+ };
3652
+ ons.mouseup = $table.handleHeaderCellDragMouseupEvent;
3653
+ }
3639
3654
  return h('span', {
3640
3655
  key: 'dg',
3641
3656
  class: ['vxe-cell--drag-handle', {
3642
3657
  'is--disabled': isDisabled
3643
3658
  }],
3644
- on: {
3645
- mousedown(evnt) {
3646
- if (!isDisabled) {
3647
- $table.handleHeaderCellDragMousedownEvent(evnt, params);
3648
- }
3649
- },
3650
- mouseup: $table.handleHeaderCellDragMouseupEvent
3651
- }
3659
+ on: ons
3652
3660
  }, [h('i', {
3653
3661
  class: icon || cell_getIcon().TABLE_DRAG_COLUMN
3654
3662
  })]);
@@ -10965,6 +10973,94 @@ const Methods = {
10965
10973
  $xeTable.handleColumnSortEvent(evnt, column);
10966
10974
  }
10967
10975
  },
10976
+ /**
10977
+ * 表头单元格按下事件
10978
+ */
10979
+ triggerHeaderCellMousedownEvent(evnt, params) {
10980
+ const $xeTable = this;
10981
+ const props = $xeTable;
10982
+ const {
10983
+ mouseConfig
10984
+ } = props;
10985
+ const mouseOpts = $xeTable.computeMouseOpts;
10986
+ const columnOpts = $xeTable.computeColumnOpts;
10987
+ const columnDragOpts = $xeTable.computeColumnDragOpts;
10988
+ const {
10989
+ trigger,
10990
+ disabledMethod
10991
+ } = columnDragOpts;
10992
+ const cell = evnt.currentTarget;
10993
+ const triggerInput = cell && cell.tagName && cell.tagName.toLowerCase() === 'input';
10994
+ const triggerCheckbox = getEventTargetNode(evnt, cell, 'vxe-cell--checkbox').flag;
10995
+ const triggerSort = getEventTargetNode(evnt, cell, 'vxe-cell--sort').flag;
10996
+ const triggerFilter = getEventTargetNode(evnt, cell, 'vxe-cell--filter').flag;
10997
+ let triggerDrag = false;
10998
+ if (!(triggerInput || triggerCheckbox || triggerSort || triggerFilter)) {
10999
+ if (columnOpts.drag && trigger === 'cell' && !(disabledMethod && disabledMethod(params))) {
11000
+ triggerDrag = true;
11001
+ $xeTable.handleHeaderCellDragMousedownEvent(evnt, params);
11002
+ }
11003
+ }
11004
+ if (!triggerDrag && mouseConfig && mouseOpts.area && $xeTable.handleHeaderCellAreaEvent) {
11005
+ $xeTable.handleHeaderCellAreaEvent(evnt, Object.assign({
11006
+ cell,
11007
+ triggerSort,
11008
+ triggerFilter
11009
+ }, params));
11010
+ }
11011
+ $xeTable.focus();
11012
+ if ($xeTable.closeMenu) {
11013
+ $xeTable.closeMenu();
11014
+ }
11015
+ },
11016
+ /**
11017
+ * 单元格按下事件
11018
+ */
11019
+ triggerCellMousedownEvent(evnt, params) {
11020
+ const $xeTable = this;
11021
+ const {
11022
+ column
11023
+ } = params;
11024
+ const {
11025
+ type,
11026
+ treeNode
11027
+ } = column;
11028
+ const isRadioType = type === 'radio';
11029
+ const isCheckboxType = type === 'checkbox';
11030
+ const isExpandType = type === 'expand';
11031
+ const rowOpts = $xeTable.computeRowOpts;
11032
+ const rowDragOpts = $xeTable.computeRowDragOpts;
11033
+ const {
11034
+ trigger,
11035
+ disabledMethod
11036
+ } = rowDragOpts;
11037
+ const cell = evnt.currentTarget;
11038
+ params.cell = cell;
11039
+ const triggerInput = cell && cell.tagName && cell.tagName.toLowerCase() === 'input';
11040
+ const triggerRadio = isRadioType && getEventTargetNode(evnt, cell, 'vxe-cell--radio').flag;
11041
+ const triggerCheckbox = isCheckboxType && getEventTargetNode(evnt, cell, 'vxe-cell--checkbox').flag;
11042
+ const triggerTreeNode = treeNode && getEventTargetNode(evnt, cell, 'vxe-tree--btn-wrapper').flag;
11043
+ const triggerExpandNode = isExpandType && getEventTargetNode(evnt, cell, 'vxe-table--expanded').flag;
11044
+ let isColDragCell = false;
11045
+ if (rowOpts.drag) {
11046
+ isColDragCell = trigger === 'row' || column.dragSort && trigger === 'cell';
11047
+ }
11048
+ let triggerDrag = false;
11049
+ if (!(triggerInput || triggerRadio || triggerCheckbox || triggerTreeNode || triggerExpandNode)) {
11050
+ if (isColDragCell && !(disabledMethod && disabledMethod(params))) {
11051
+ triggerDrag = true;
11052
+ $xeTable.handleCellDragMousedownEvent(evnt, params);
11053
+ }
11054
+ }
11055
+ if (!triggerDrag && $xeTable.handleCellMousedownEvent) {
11056
+ $xeTable.handleCellMousedownEvent(evnt, params);
11057
+ }
11058
+ $xeTable.focus();
11059
+ $xeTable.closeFilter();
11060
+ if ($xeTable.closeMenu) {
11061
+ $xeTable.closeMenu();
11062
+ }
11063
+ },
10968
11064
  /**
10969
11065
  * 行拖拽
10970
11066
  */
@@ -11225,18 +11321,20 @@ const Methods = {
11225
11321
  const $xeTable = this;
11226
11322
  const props = $xeTable;
11227
11323
  const reactData = $xeTable;
11324
+ evnt.stopPropagation();
11228
11325
  const {
11229
11326
  dragConfig
11230
11327
  } = props;
11231
11328
  const rowDragOpts = $xeTable.computeRowDragOpts;
11232
11329
  const {
11330
+ trigger,
11233
11331
  dragStartMethod
11234
11332
  } = rowDragOpts;
11235
11333
  const {
11236
11334
  row
11237
11335
  } = params;
11238
11336
  const dragEl = evnt.currentTarget;
11239
- const tdEl = dragEl.parentElement?.parentElement;
11337
+ const tdEl = trigger === 'cell' || trigger === 'row' ? dragEl : dragEl.parentElement?.parentElement;
11240
11338
  const trEl = tdEl.parentElement;
11241
11339
  const dStartMethod = dragStartMethod || (dragConfig ? dragConfig.dragStartMethod : null);
11242
11340
  reactData.isDragRowMove = false;
@@ -11496,15 +11594,17 @@ const Methods = {
11496
11594
  handleHeaderCellDragMousedownEvent(evnt, params) {
11497
11595
  const $xeTable = this;
11498
11596
  const reactData = $xeTable;
11597
+ evnt.stopPropagation();
11499
11598
  const columnDragOpts = $xeTable.computeColumnDragOpts;
11500
11599
  const {
11600
+ trigger,
11501
11601
  dragStartMethod
11502
11602
  } = columnDragOpts;
11503
11603
  const {
11504
11604
  column
11505
11605
  } = params;
11506
11606
  const dragEl = evnt.currentTarget;
11507
- const thEl = dragEl.parentElement?.parentElement;
11607
+ const thEl = trigger === 'cell' ? dragEl : dragEl.parentElement?.parentElement;
11508
11608
  reactData.isDragColMove = false;
11509
11609
  clearColDropOrigin($xeTable);
11510
11610
  if (dragStartMethod && !dragStartMethod(params)) {
@@ -13698,6 +13798,10 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
13698
13798
  areaOpts,
13699
13799
  validErrorMaps
13700
13800
  } = $xetable;
13801
+ const rowDragOpts = $xetable.computeRowDragOpts;
13802
+ const {
13803
+ disabledMethod: dragDisabledMethod
13804
+ } = rowDragOpts;
13701
13805
  const {
13702
13806
  selectCellToRow
13703
13807
  } = areaOpts;
@@ -13773,6 +13877,14 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
13773
13877
  data: tableData,
13774
13878
  items
13775
13879
  };
13880
+ let isColDragCell = false;
13881
+ let isDisabledDrag = false;
13882
+ if (rowOpts.drag) {
13883
+ isColDragCell = rowDragOpts.trigger === 'row' || column.dragSort && rowDragOpts.trigger === 'cell';
13884
+ }
13885
+ if (isColDragCell) {
13886
+ isDisabledDrag = !!(dragDisabledMethod && dragDisabledMethod(params));
13887
+ }
13776
13888
  // hover 进入事件
13777
13889
  if (showTitle || showTooltip || showAllTip || bindMouseenter || tooltipConfig) {
13778
13890
  tdOns.mouseenter = evnt => {
@@ -13809,7 +13921,7 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
13809
13921
  };
13810
13922
  }
13811
13923
  // 按下事件处理
13812
- if (checkboxOpts.range || mouseConfig) {
13924
+ if (isColDragCell || checkboxOpts.range || mouseConfig) {
13813
13925
  tdOns.mousedown = evnt => {
13814
13926
  $xetable.triggerCellMousedownEvent(evnt, params);
13815
13927
  };
@@ -13942,6 +14054,8 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
13942
14054
  'col--edit': isEdit,
13943
14055
  'col--ellipsis': hasEllipsis,
13944
14056
  'fixed--hidden': fixedHiddenColumn,
14057
+ 'is--drag-cell': isColDragCell,
14058
+ 'is--drag-disabled': isDisabledDrag,
13945
14059
  'col--dirty': isDirty,
13946
14060
  'col--active': editConfig && isEdit && actived.row === row && (actived.column === column || editOpts.mode === 'row'),
13947
14061
  'col--valid-error': !!errorValidItem,
@@ -13956,6 +14070,8 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
13956
14070
  }, tdVNs);
13957
14071
  }
13958
14072
  function renderRows(h, _vm, $xeTable, fixedType, tableData, tableColumn) {
14073
+ const columnOpts = $xeTable.computeColumnOpts;
14074
+ const columnDragOpts = $xeTable.computeColumnDragOpts;
13959
14075
  const {
13960
14076
  stripe,
13961
14077
  rowKey,
@@ -13978,7 +14094,6 @@ function renderRows(h, _vm, $xeTable, fixedType, tableData, tableColumn) {
13978
14094
  fullAllDataRowIdData,
13979
14095
  rowOpts,
13980
14096
  pendingRowMaps,
13981
- columnOpts,
13982
14097
  isDragColMove
13983
14098
  } = $xeTable;
13984
14099
  const {
@@ -14074,7 +14189,7 @@ function renderRows(h, _vm, $xeTable, fixedType, tableData, tableColumn) {
14074
14189
  const tdVNs = tableColumn.map((column, $columnIndex) => {
14075
14190
  return renderColumn(h, _vm, $xeTable, seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, tableColumn, tableData);
14076
14191
  });
14077
- rows.push(columnOpts.drag ? h('transition-group', {
14192
+ rows.push(columnOpts.drag && columnDragOpts.animation ? h('transition-group', {
14078
14193
  props: {
14079
14194
  tag: 'tr',
14080
14195
  name: `vxe-header--col-list${isDragColMove ? '' : '-disabled'}`
@@ -14218,6 +14333,8 @@ function renderRows(h, _vm, $xeTable, fixedType, tableData, tableColumn) {
14218
14333
  fixedColumn,
14219
14334
  fixedType
14220
14335
  } = this;
14336
+ const rowOpts = $xeTable.computeRowOpts;
14337
+ const rowDragOpts = $xeTable.computeRowDragOpts;
14221
14338
  let {
14222
14339
  $scopedSlots,
14223
14340
  tId,
@@ -14237,7 +14354,6 @@ function renderRows(h, _vm, $xeTable, fixedType, tableData, tableColumn) {
14237
14354
  mouseConfig,
14238
14355
  mouseOpts,
14239
14356
  sYOpts,
14240
- rowOpts,
14241
14357
  isDragRowMove
14242
14358
  } = $xetable;
14243
14359
  // 如果是使用优化模式
@@ -14322,7 +14438,7 @@ function renderRows(h, _vm, $xeTable, fixedType, tableData, tableColumn) {
14322
14438
  /**
14323
14439
  * 内容
14324
14440
  */
14325
- rowOpts.drag ? h('transition-group', {
14441
+ rowOpts.drag && rowDragOpts.animation ? h('transition-group', {
14326
14442
  props: {
14327
14443
  tag: 'tbody',
14328
14444
  name: `vxe-body--row-list${isDragRowMove ? '' : '-disabled'}`
@@ -14581,12 +14697,12 @@ const {
14581
14697
  } = core_.VxeUI;
14582
14698
  const cellType = 'header';
14583
14699
  const header_renderRows = (h, _vm, cols, $rowIndex) => {
14700
+ const $xeTable = _vm.$parent;
14701
+ const $xeGrid = $xeTable.xegrid;
14584
14702
  const {
14585
- $parent: $xetable,
14586
14703
  fixedType
14587
14704
  } = _vm;
14588
14705
  const {
14589
- $listeners: tableListeners,
14590
14706
  resizable: allResizable,
14591
14707
  border,
14592
14708
  columnKey,
@@ -14595,15 +14711,17 @@ const header_renderRows = (h, _vm, cols, $rowIndex) => {
14595
14711
  showHeaderOverflow: allColumnHeaderOverflow,
14596
14712
  headerAlign: allHeaderAlign,
14597
14713
  align: allAlign,
14598
- highlightCurrentColumn,
14599
14714
  currentColumn,
14600
14715
  scrollXLoad,
14601
14716
  overflowX,
14602
14717
  scrollbarWidth,
14603
- sortOpts,
14604
14718
  mouseConfig,
14605
14719
  columnOpts
14606
- } = $xetable;
14720
+ } = $xeTable;
14721
+ const columnDragOpts = $xeTable.computeColumnDragOpts;
14722
+ const {
14723
+ disabledMethod: dragDisabledMethod
14724
+ } = columnDragOpts;
14607
14725
  return cols.map((column, $columnIndex) => {
14608
14726
  const {
14609
14727
  type,
@@ -14626,13 +14744,12 @@ const header_renderRows = (h, _vm, cols, $rowIndex) => {
14626
14744
  const showTitle = headOverflow === 'title';
14627
14745
  const showTooltip = headOverflow === true || headOverflow === 'tooltip';
14628
14746
  let hasEllipsis = showTitle || showTooltip || showEllipsis;
14629
- const thOns = {};
14630
14747
  const hasFilter = column.filters && column.filters.some(item => item.checked);
14631
- const columnIndex = $xetable.getColumnIndex(column);
14632
- const _columnIndex = $xetable.getVTColumnIndex(column);
14748
+ const columnIndex = $xeTable.getColumnIndex(column);
14749
+ const _columnIndex = $xeTable.getVTColumnIndex(column);
14633
14750
  const params = {
14634
- $table: $xetable,
14635
- $grid: $xetable.xegrid,
14751
+ $table: $xeTable,
14752
+ $grid: $xeGrid,
14636
14753
  $rowIndex,
14637
14754
  column,
14638
14755
  columnIndex,
@@ -14643,25 +14760,36 @@ const header_renderRows = (h, _vm, cols, $rowIndex) => {
14643
14760
  isHidden: fixedHiddenColumn,
14644
14761
  hasFilter
14645
14762
  };
14763
+ const thAttrs = {
14764
+ colid,
14765
+ colspan: column.colSpan > 1 ? column.colSpan : null,
14766
+ rowspan: column.rowSpan > 1 ? column.rowSpan : null
14767
+ };
14768
+ const thOns = {
14769
+ click: evnt => $xeTable.triggerHeaderCellClickEvent(evnt, params),
14770
+ dblclick: evnt => $xeTable.triggerHeaderCellDblclickEvent(evnt, params)
14771
+ };
14646
14772
  // 虚拟滚动不支持动态高度
14647
14773
  if (scrollXLoad && !hasEllipsis) {
14648
14774
  showEllipsis = hasEllipsis = true;
14649
14775
  }
14650
- if (columnOpts.isCurrent || highlightCurrentColumn || tableListeners['header-cell-click'] || sortOpts.trigger === 'cell') {
14651
- thOns.click = evnt => $xetable.triggerHeaderCellClickEvent(evnt, params);
14652
- }
14653
- if (tableListeners['header-cell-dblclick']) {
14654
- thOns.dblclick = evnt => $xetable.triggerHeaderCellDblclickEvent(evnt, params);
14776
+ const isColDragCell = columnOpts.drag && columnDragOpts.trigger === 'cell';
14777
+ let isDisabledDrag = false;
14778
+ if (isColDragCell) {
14779
+ isDisabledDrag = !!(dragDisabledMethod && dragDisabledMethod(params));
14655
14780
  }
14656
14781
  // 按下事件处理
14657
- if (mouseConfig) {
14658
- thOns.mousedown = evnt => $xetable.triggerHeaderCellMousedownEvent(evnt, params);
14782
+ if (mouseConfig || isColDragCell) {
14783
+ thOns.mousedown = evnt => $xeTable.triggerHeaderCellMousedownEvent(evnt, params);
14659
14784
  }
14660
- // 拖拽行事件
14785
+ // 拖拽列事件
14661
14786
  if (columnOpts.drag) {
14662
- thOns.dragstart = $xetable.handleHeaderCellDragDragstartEvent;
14663
- thOns.dragend = $xetable.handleHeaderCellDragDragendEvent;
14664
- thOns.dragover = $xetable.handleHeaderCellDragDragoverEvent;
14787
+ thOns.dragstart = $xeTable.handleHeaderCellDragDragstartEvent;
14788
+ thOns.dragend = $xeTable.handleHeaderCellDragDragendEvent;
14789
+ thOns.dragover = $xeTable.handleHeaderCellDragDragoverEvent;
14790
+ if (isColDragCell) {
14791
+ thOns.mouseup = $xeTable.handleHeaderCellDragMouseupEvent;
14792
+ }
14665
14793
  }
14666
14794
  return h('th', {
14667
14795
  class: ['vxe-header--column', colid, {
@@ -14675,13 +14803,10 @@ const header_renderRows = (h, _vm, cols, $rowIndex) => {
14675
14803
  'is--sortable': column.sortable,
14676
14804
  'col--filter': !!column.filters,
14677
14805
  'is--filter-active': hasFilter,
14806
+ 'is--drag-disabled': isDisabledDrag,
14678
14807
  'col--current': currentColumn === column
14679
14808
  }, getClass(headerClassName, params), getClass(headerCellClassName, params)],
14680
- attrs: {
14681
- colid,
14682
- colspan: column.colSpan > 1 ? column.colSpan : null,
14683
- rowspan: column.rowSpan > 1 ? column.rowSpan : null
14684
- },
14809
+ attrs: thAttrs,
14685
14810
  style: headerCellStyle ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(headerCellStyle) ? headerCellStyle(params) : headerCellStyle : null,
14686
14811
  on: thOns,
14687
14812
  key: columnKey || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
@@ -14709,29 +14834,28 @@ const header_renderRows = (h, _vm, cols, $rowIndex) => {
14709
14834
  })] : []);
14710
14835
  };
14711
14836
  function renderHeads(h, _vm, headerGroups) {
14712
- const {
14713
- $parent: $xetable
14714
- } = _vm;
14715
- const tableProps = $xetable;
14837
+ const $xeTable = _vm.$parent;
14838
+ const tableProps = $xeTable;
14716
14839
  const {
14717
14840
  fixedType
14718
14841
  } = _vm;
14842
+ const columnOpts = $xeTable.computeColumnOpts;
14843
+ const columnDragOpts = $xeTable.computeColumnDragOpts;
14719
14844
  const {
14720
14845
  headerRowClassName,
14721
14846
  headerRowStyle
14722
14847
  } = tableProps;
14723
14848
  const {
14724
14849
  isDragColMove
14725
- } = $xetable;
14726
- const columnOpts = $xetable.columnOpts;
14850
+ } = $xeTable;
14727
14851
  return headerGroups.map((cols, $rowIndex) => {
14728
14852
  const params = {
14729
- $table: $xetable,
14853
+ $table: $xeTable,
14730
14854
  $rowIndex,
14731
14855
  fixed: fixedType,
14732
14856
  type: cellType
14733
14857
  };
14734
- if (columnOpts.drag) {
14858
+ if (columnOpts.drag && columnDragOpts.animation) {
14735
14859
  return h('transition-group', {
14736
14860
  props: {
14737
14861
  tag: 'tr',
@@ -15216,6 +15340,9 @@ function footer_renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex,
15216
15340
  })] : []);
15217
15341
  }
15218
15342
  function footer_renderHeads(h, _vm, footerTableData) {
15343
+ const $xeTable = _vm.$parent;
15344
+ const columnOpts = $xeTable.computeColumnOpts;
15345
+ const columnDragOpts = $xeTable.computeColumnDragOpts;
15219
15346
  const {
15220
15347
  $parent: $xetable,
15221
15348
  fixedType,
@@ -15226,7 +15353,6 @@ function footer_renderHeads(h, _vm, footerTableData) {
15226
15353
  footerRowStyle,
15227
15354
  isDragColMove
15228
15355
  } = $xetable;
15229
- const columnOpts = $xetable.columnOpts;
15230
15356
  return footerTableData.map((row, $rowIndex) => {
15231
15357
  const _rowIndex = $rowIndex;
15232
15358
  const rowParams = {
@@ -15237,7 +15363,7 @@ function footer_renderHeads(h, _vm, footerTableData) {
15237
15363
  fixed: fixedType,
15238
15364
  type: footer_renderType
15239
15365
  };
15240
- if (columnOpts.drag) {
15366
+ if (columnOpts.drag && columnDragOpts.animation) {
15241
15367
  return h('transition-group', {
15242
15368
  props: {
15243
15369
  tag: 'tr',
@@ -16422,12 +16548,8 @@ const renderPopupPanel = (h, _vm) => {
16422
16548
  }
16423
16549
  },
16424
16550
  render(h) {
16425
- const {
16426
- $xetable
16427
- } = this;
16428
- const {
16429
- customOpts
16430
- } = $xetable;
16551
+ const $xeTable = this.$xeTable;
16552
+ const customOpts = $xeTable.computeCustomOpts;
16431
16553
  if (['modal', 'drawer', 'popup'].includes(`${customOpts.mode}`)) {
16432
16554
  return renderPopupPanel(h, this);
16433
16555
  }
@@ -16521,12 +16643,11 @@ const renderPopupPanel = (h, _vm) => {
16521
16643
  }
16522
16644
  },
16523
16645
  handleOptionCheck(column) {
16524
- const {
16525
- $xetable
16526
- } = this;
16646
+ const $xeTable = this.$xeTable;
16647
+ const reactData = $xeTable;
16527
16648
  const {
16528
16649
  customColumnList
16529
- } = $xetable;
16650
+ } = reactData;
16530
16651
  const matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(customColumnList, item => item === column);
16531
16652
  if (matchObj && matchObj.parent) {
16532
16653
  const {
@@ -16540,11 +16661,9 @@ const renderPopupPanel = (h, _vm) => {
16540
16661
  }
16541
16662
  },
16542
16663
  changeCheckboxOption(column) {
16543
- const $xeTable = this.$xetable;
16664
+ const $xeTable = this.$xeTable;
16544
16665
  const reactData = $xeTable;
16545
- const {
16546
- customOpts
16547
- } = $xeTable.customOpts;
16666
+ const customOpts = $xeTable.computeCustomOpts;
16548
16667
  const isChecked = !column.renderVisible;
16549
16668
  if (customOpts.immediate) {
16550
16669
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([column], item => {
@@ -21762,38 +21881,6 @@ function getCheckboxRangeRows($xeTable, evnt, params, targetTrElem, trRect, offs
21762
21881
  this.handleSelected(params, evnt);
21763
21882
  });
21764
21883
  },
21765
- /**
21766
- * 表头单元格按下事件
21767
- */
21768
- triggerHeaderCellMousedownEvent(evnt, params) {
21769
- const {
21770
- mouseConfig,
21771
- mouseOpts
21772
- } = this;
21773
- if (mouseConfig && mouseOpts.area && this.handleHeaderCellAreaEvent) {
21774
- const cell = evnt.currentTarget;
21775
- const triggerSort = getEventTargetNode(evnt, cell, 'vxe-cell--sort').flag;
21776
- const triggerFilter = getEventTargetNode(evnt, cell, 'vxe-cell--filter').flag;
21777
- this.handleHeaderCellAreaEvent(evnt, Object.assign({
21778
- cell,
21779
- triggerSort,
21780
- triggerFilter
21781
- }, params));
21782
- }
21783
- this.focus();
21784
- this.closeMenu();
21785
- },
21786
- /**
21787
- * 单元格按下事件
21788
- */
21789
- triggerCellMousedownEvent(evnt, params) {
21790
- const cell = evnt.currentTarget;
21791
- params.cell = cell;
21792
- this.handleCellMousedownEvent(evnt, params);
21793
- this.focus();
21794
- this.closeFilter();
21795
- this.closeMenu();
21796
- },
21797
21884
  handleCellMousedownEvent(evnt, params) {
21798
21885
  const {
21799
21886
  editConfig,
@@ -24034,7 +24121,7 @@ function handleUupdateResize(_vm) {
24034
24121
  if (this.editRules && !this._validate) {
24035
24122
  errLog('vxe.error.reqModule', ['Validator']);
24036
24123
  }
24037
- if ((this.checkboxOpts.range || this.keyboardConfig || this.mouseConfig) && !this.triggerCellMousedownEvent) {
24124
+ if ((this.checkboxOpts.range || this.keyboardConfig || this.mouseConfig) && !this.handleCellMousedownEvent) {
24038
24125
  errLog('vxe.error.reqModule', ['Keyboard']);
24039
24126
  }
24040
24127
  if ((this.printConfig || this.importConfig || this.exportConfig) && !this._exportData) {
@@ -24212,6 +24299,7 @@ function handleUupdateResize(_vm) {
24212
24299
  const virtualScrollBars = $xeTable.computeVirtualScrollBars;
24213
24300
  const isArea = mouseConfig && mouseOpts.area;
24214
24301
  const tableStyle = $xeTable.computeTableStyle;
24302
+ const columnDragOpts = $xeTable.computeColumnDragOpts;
24215
24303
  return h('div', {
24216
24304
  ref: 'refElem',
24217
24305
  class: ['vxe-table', 'vxe-table--render-default', `tid_${tId}`, vSize ? `size--${vSize}` : '', `border--${tableBorder}`, {
@@ -24227,6 +24315,7 @@ function handleUupdateResize(_vm) {
24227
24315
  'column--highlight': columnOpts.isHover || highlightHoverColumn,
24228
24316
  'checkbox--range': checkboxOpts.range,
24229
24317
  'column--calc': isCalcColumn,
24318
+ 'col--drag-cell': columnOpts.drag && columnDragOpts.trigger === 'cell',
24230
24319
  'is--header': showHeader,
24231
24320
  'is--footer': showFooter,
24232
24321
  'is--group': isGroup,