vxe-table 4.8.0 → 4.8.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 (118) hide show
  1. package/es/locale/lang/en-US.js +4 -2
  2. package/es/locale/lang/es-ES.js +4 -2
  3. package/es/locale/lang/hu-HU.js +4 -2
  4. package/es/locale/lang/ja-JP.js +4 -2
  5. package/es/locale/lang/ko-KR.js +4 -2
  6. package/es/locale/lang/pt-BR.js +4 -2
  7. package/es/locale/lang/ru-RU.js +4 -2
  8. package/es/locale/lang/uk-UA.js +4 -2
  9. package/es/locale/lang/vi-VN.js +4 -2
  10. package/es/locale/lang/zh-CHT.js +4 -2
  11. package/es/locale/lang/zh-CN.js +4 -2
  12. package/es/style.css +1 -1
  13. package/es/style.min.css +1 -1
  14. package/es/table/module/edit/hook.js +7 -4
  15. package/es/table/src/body.js +22 -8
  16. package/es/table/src/cell.js +53 -24
  17. package/es/table/src/column.js +3 -1
  18. package/es/table/src/columnInfo.js +1 -0
  19. package/es/table/src/emits.js +3 -0
  20. package/es/table/src/props.js +2 -0
  21. package/es/table/src/table.js +241 -40
  22. package/es/table/style.css +74 -2
  23. package/es/table/style.min.css +1 -1
  24. package/es/ui/index.js +4 -1
  25. package/es/ui/src/log.js +1 -1
  26. package/es/vxe-table/style.css +74 -2
  27. package/es/vxe-table/style.min.css +1 -1
  28. package/helper/vetur/attributes.json +1 -1
  29. package/helper/vetur/tags.json +1 -1
  30. package/lib/index.umd.js +359 -82
  31. package/lib/index.umd.min.js +1 -1
  32. package/lib/locale/lang/en-US.js +4 -2
  33. package/lib/locale/lang/en-US.min.js +1 -1
  34. package/lib/locale/lang/en-US.umd.js +4 -2
  35. package/lib/locale/lang/es-ES.js +4 -2
  36. package/lib/locale/lang/es-ES.min.js +1 -1
  37. package/lib/locale/lang/es-ES.umd.js +4 -2
  38. package/lib/locale/lang/hu-HU.js +4 -2
  39. package/lib/locale/lang/hu-HU.min.js +1 -1
  40. package/lib/locale/lang/hu-HU.umd.js +4 -2
  41. package/lib/locale/lang/ja-JP.js +4 -2
  42. package/lib/locale/lang/ja-JP.min.js +1 -1
  43. package/lib/locale/lang/ja-JP.umd.js +4 -2
  44. package/lib/locale/lang/ko-KR.js +4 -2
  45. package/lib/locale/lang/ko-KR.min.js +1 -1
  46. package/lib/locale/lang/ko-KR.umd.js +4 -2
  47. package/lib/locale/lang/pt-BR.js +4 -2
  48. package/lib/locale/lang/pt-BR.min.js +1 -1
  49. package/lib/locale/lang/pt-BR.umd.js +4 -2
  50. package/lib/locale/lang/ru-RU.js +4 -2
  51. package/lib/locale/lang/ru-RU.min.js +1 -1
  52. package/lib/locale/lang/ru-RU.umd.js +4 -2
  53. package/lib/locale/lang/uk-UA.js +4 -2
  54. package/lib/locale/lang/uk-UA.min.js +1 -1
  55. package/lib/locale/lang/uk-UA.umd.js +4 -2
  56. package/lib/locale/lang/vi-VN.js +4 -2
  57. package/lib/locale/lang/vi-VN.min.js +1 -1
  58. package/lib/locale/lang/zh-CHT.js +4 -2
  59. package/lib/locale/lang/zh-CHT.min.js +1 -1
  60. package/lib/locale/lang/zh-CN.js +4 -2
  61. package/lib/locale/lang/zh-CN.min.js +1 -1
  62. package/lib/locale/lang/zh-CN.umd.js +4 -2
  63. package/lib/style.css +1 -1
  64. package/lib/style.min.css +1 -1
  65. package/lib/table/module/edit/hook.js +8 -4
  66. package/lib/table/module/edit/hook.min.js +1 -1
  67. package/lib/table/src/body.js +18 -5
  68. package/lib/table/src/body.min.js +1 -1
  69. package/lib/table/src/cell.js +60 -24
  70. package/lib/table/src/cell.min.js +1 -1
  71. package/lib/table/src/column.js +3 -1
  72. package/lib/table/src/column.min.js +1 -1
  73. package/lib/table/src/columnInfo.js +1 -0
  74. package/lib/table/src/columnInfo.min.js +1 -1
  75. package/lib/table/src/emits.js +1 -1
  76. package/lib/table/src/emits.min.js +1 -1
  77. package/lib/table/src/props.js +2 -0
  78. package/lib/table/src/props.min.js +1 -1
  79. package/lib/table/src/table.js +258 -43
  80. package/lib/table/src/table.min.js +1 -1
  81. package/lib/table/style/style.css +74 -2
  82. package/lib/table/style/style.min.css +1 -1
  83. package/lib/ui/index.js +4 -1
  84. package/lib/ui/index.min.js +1 -1
  85. package/lib/ui/src/log.js +1 -1
  86. package/lib/ui/src/log.min.js +1 -1
  87. package/lib/vxe-table/style/style.css +74 -2
  88. package/lib/vxe-table/style/style.min.css +1 -1
  89. package/package.json +2 -2
  90. package/packages/locale/lang/en-US.ts +4 -2
  91. package/packages/locale/lang/es-ES.ts +4 -2
  92. package/packages/locale/lang/hu-HU.ts +4 -2
  93. package/packages/locale/lang/ja-JP.ts +4 -2
  94. package/packages/locale/lang/ko-KR.ts +4 -2
  95. package/packages/locale/lang/pt-BR.ts +4 -2
  96. package/packages/locale/lang/ru-RU.ts +4 -2
  97. package/packages/locale/lang/uk-UA.ts +4 -2
  98. package/packages/locale/lang/vi-VN.ts +4 -2
  99. package/packages/locale/lang/zh-CHT.ts +4 -2
  100. package/packages/locale/lang/zh-CN.ts +4 -2
  101. package/packages/table/module/custom/panel.ts +1 -1
  102. package/packages/table/module/edit/hook.ts +7 -4
  103. package/packages/table/src/body.ts +22 -8
  104. package/packages/table/src/cell.ts +57 -24
  105. package/packages/table/src/column.ts +3 -1
  106. package/packages/table/src/columnInfo.ts +1 -0
  107. package/packages/table/src/emits.ts +4 -0
  108. package/packages/table/src/props.ts +2 -0
  109. package/packages/table/src/table.ts +258 -42
  110. package/packages/ui/index.ts +3 -0
  111. package/styles/components/table-module/custom.scss +9 -3
  112. package/styles/components/table.scss +80 -0
  113. /package/es/{iconfont.1730681238555.ttf → iconfont.1730873064176.ttf} +0 -0
  114. /package/es/{iconfont.1730681238555.woff → iconfont.1730873064176.woff} +0 -0
  115. /package/es/{iconfont.1730681238555.woff2 → iconfont.1730873064176.woff2} +0 -0
  116. /package/lib/{iconfont.1730681238555.ttf → iconfont.1730873064176.ttf} +0 -0
  117. /package/lib/{iconfont.1730681238555.woff → iconfont.1730873064176.woff} +0 -0
  118. /package/lib/{iconfont.1730681238555.woff2 → iconfont.1730873064176.woff2} +0 -0
@@ -272,6 +272,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
272
272
  isFooter: false
273
273
  },
274
274
  scrollVMLoading: false,
275
+ isDragRowMove: false,
276
+ dragRow: null,
277
+ dragTipText: '',
275
278
  _isResize: false,
276
279
  _isLoading: false
277
280
  });
@@ -346,6 +349,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
346
349
  columnStatusMaps: {},
347
350
  // 行选取状态
348
351
  rowStatusMaps: {},
352
+ // prevDragRow: null,
349
353
  inited: false,
350
354
  tooltipTimeout: null,
351
355
  initStatus: false,
@@ -373,6 +377,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
373
377
  const refRightContainer = (0, _vue.ref)();
374
378
  const refCellResizeBar = (0, _vue.ref)();
375
379
  const refEmptyPlaceholder = (0, _vue.ref)();
380
+ const refRowDragTipElem = (0, _vue.ref)();
376
381
  const refScrollXVirtualElem = (0, _vue.ref)();
377
382
  const refScrollYVirtualElem = (0, _vue.ref)();
378
383
  const refScrollXHandleElem = (0, _vue.ref)();
@@ -422,6 +427,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
422
427
  const computeRowOpts = (0, _vue.computed)(() => {
423
428
  return Object.assign({}, getConfig().table.rowConfig, props.rowConfig);
424
429
  });
430
+ const computeDragOpts = (0, _vue.computed)(() => {
431
+ return Object.assign({}, getConfig().table.dragConfig, props.dragConfig);
432
+ });
425
433
  const computeResizeOpts = (0, _vue.computed)(() => {
426
434
  return Object.assign({}, getConfig().table.resizeConfig, props.resizeConfig);
427
435
  });
@@ -667,6 +675,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
667
675
  computeColumnOpts,
668
676
  computeCellOpts,
669
677
  computeRowOpts,
678
+ computeDragOpts,
670
679
  computeResizeOpts,
671
680
  computeResizableOpts,
672
681
  computeSeqOpts,
@@ -3235,7 +3244,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
3235
3244
  const handleCheckAllEvent = (evnt, value) => {
3236
3245
  handleCheckedAllCheckboxRow(value);
3237
3246
  if (evnt) {
3238
- tableMethods.dispatchEvent('checkbox-all', {
3247
+ dispatchEvent('checkbox-all', {
3239
3248
  records: tableMethods.getCheckboxRecords(),
3240
3249
  reserves: tableMethods.getCheckboxReserveRecords(),
3241
3250
  indeterminates: tableMethods.getCheckboxIndeterminateRecords(),
@@ -3314,14 +3323,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
3314
3323
  leading: false,
3315
3324
  trailing: true
3316
3325
  });
3317
- const scrollXEvent = evnt => {
3318
- const wrapperEl = evnt.currentTarget;
3326
+ const handleSyncScrollX = scrollLeft => {
3319
3327
  const tableHeader = refTableHeader.value;
3320
3328
  const tableBody = refTableBody.value;
3321
3329
  const tableFooter = refTableFooter.value;
3322
3330
  const bodyElem = tableBody.$el;
3323
3331
  const headerElem = tableHeader ? tableHeader.$el : null;
3324
3332
  const footerElem = tableFooter ? tableFooter.$el : null;
3333
+ (0, _dom.setScrollLeft)(bodyElem, scrollLeft);
3334
+ (0, _dom.setScrollLeft)(headerElem, scrollLeft);
3335
+ (0, _dom.setScrollLeft)(footerElem, scrollLeft);
3336
+ (0, _dom.setScrollLeft)(bodyElem, scrollLeft);
3337
+ (0, _dom.setScrollLeft)(headerElem, scrollLeft);
3338
+ (0, _dom.setScrollLeft)(footerElem, scrollLeft);
3339
+ };
3340
+ const scrollXEvent = evnt => {
3341
+ const wrapperEl = evnt.currentTarget;
3325
3342
  const {
3326
3343
  scrollTop,
3327
3344
  scrollLeft
@@ -3330,9 +3347,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
3330
3347
  const isRollY = false;
3331
3348
  internalData.lastScrollLeft = scrollLeft;
3332
3349
  reactData.lastScrollTime = Date.now();
3333
- (0, _dom.setScrollLeft)(bodyElem, scrollLeft);
3334
- (0, _dom.setScrollLeft)(headerElem, scrollLeft);
3335
- (0, _dom.setScrollLeft)(footerElem, scrollLeft);
3350
+ handleSyncScrollX(scrollLeft);
3336
3351
  $xeTable.triggerScrollXEvent(evnt);
3337
3352
  $xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
3338
3353
  type: 'table',
@@ -3347,14 +3362,19 @@ var _default = exports.default = (0, _vue.defineComponent)({
3347
3362
  leading: false,
3348
3363
  trailing: true
3349
3364
  });
3350
- const scrollYEvent = evnt => {
3351
- const wrapperEl = evnt.currentTarget;
3365
+ const handleSyncScrollY = scrollTop => {
3352
3366
  const tableBody = refTableBody.value;
3353
3367
  const leftBody = refTableLeftBody.value;
3354
3368
  const rightBody = refTableRightBody.value;
3355
3369
  const bodyElem = tableBody.$el;
3356
3370
  const leftElem = leftBody ? leftBody.$el : null;
3357
3371
  const rightElem = rightBody ? rightBody.$el : null;
3372
+ (0, _dom.setScrollTop)(bodyElem, scrollTop);
3373
+ (0, _dom.setScrollTop)(leftElem, scrollTop);
3374
+ (0, _dom.setScrollTop)(rightElem, scrollTop);
3375
+ };
3376
+ const scrollYEvent = evnt => {
3377
+ const wrapperEl = evnt.currentTarget;
3358
3378
  const {
3359
3379
  scrollTop,
3360
3380
  scrollLeft
@@ -3363,9 +3383,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
3363
3383
  const isRollY = true;
3364
3384
  internalData.lastScrollTop = scrollTop;
3365
3385
  reactData.lastScrollTime = Date.now();
3366
- (0, _dom.setScrollTop)(bodyElem, scrollTop);
3367
- (0, _dom.setScrollTop)(leftElem, scrollTop);
3368
- (0, _dom.setScrollTop)(rightElem, scrollTop);
3386
+ handleSyncScrollY(scrollTop);
3369
3387
  $xeTable.triggerScrollYEvent(evnt);
3370
3388
  $xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
3371
3389
  type: 'table',
@@ -3375,13 +3393,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
3375
3393
  });
3376
3394
  };
3377
3395
  let keyCtxTimeout;
3396
+ const dispatchEvent = (type, params, evnt) => {
3397
+ emit(type, createEvent(evnt, {
3398
+ $table: $xeTable,
3399
+ $grid: $xeGrid
3400
+ }, params));
3401
+ };
3378
3402
  tableMethods = {
3379
- dispatchEvent(type, params, evnt) {
3380
- emit(type, createEvent(evnt, {
3381
- $table: $xeTable,
3382
- $grid: $xeGrid
3383
- }, params));
3384
- },
3403
+ dispatchEvent,
3385
3404
  /**
3386
3405
  * 重置表格的一切数据状态
3387
3406
  */
@@ -4895,7 +4914,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
4895
4914
  visible: false
4896
4915
  });
4897
4916
  if (visible) {
4898
- $xeTable.dispatchEvent('filter-visible', {
4917
+ dispatchEvent('filter-visible', {
4899
4918
  column,
4900
4919
  property: column.field,
4901
4920
  field: column.field,
@@ -5835,7 +5854,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
5835
5854
  tablePrivateMethods.preventEvent(evnt, 'event.clearAreas', {}, () => {
5836
5855
  $xeTable.clearCellAreas();
5837
5856
  $xeTable.clearCopyCellArea();
5838
- $xeTable.dispatchEvent('clear-cell-area-selection', {
5857
+ dispatchEvent('clear-cell-area-selection', {
5839
5858
  cellAreas
5840
5859
  }, evnt);
5841
5860
  });
@@ -5897,7 +5916,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
5897
5916
  const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
5898
5917
  if (isEsc) {
5899
5918
  tablePrivateMethods.preventEvent(evnt, 'event.keydown', null, () => {
5900
- tableMethods.dispatchEvent('keydown-start', {}, evnt);
5919
+ dispatchEvent('keydown-start', {}, evnt);
5901
5920
  if (keyboardConfig && mouseConfig && mouseOpts.area && $xeTable.handleKeyboardEvent) {
5902
5921
  $xeTable.handleKeyboardEvent(evnt);
5903
5922
  } else if (actived.row || filterStore.visible || ctxMenuStore.visible) {
@@ -5919,8 +5938,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
5919
5938
  }
5920
5939
  }
5921
5940
  }
5922
- tableMethods.dispatchEvent('keydown', {}, evnt);
5923
- tableMethods.dispatchEvent('keydown-end', {}, evnt);
5941
+ dispatchEvent('keydown', {}, evnt);
5942
+ dispatchEvent('keydown-end', {}, evnt);
5924
5943
  });
5925
5944
  }
5926
5945
  };
@@ -6112,7 +6131,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6112
6131
  }
6113
6132
  // 如果按下 del 键,更新表尾数据
6114
6133
  tableMethods.updateFooter();
6115
- $xeTable.dispatchEvent('cell-delete-value', params, evnt);
6134
+ dispatchEvent('cell-delete-value', params, evnt);
6116
6135
  }
6117
6136
  }
6118
6137
  } else if (hasBackspaceKey && keyboardConfig && keyboardOpts.isBack && (0, _utils.isEnableConf)(editConfig) && (selected.row || selected.column)) {
@@ -6138,7 +6157,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6138
6157
  (0, _util.setCellValue)(selected.row, selected.column, null);
6139
6158
  $xeTable.handleEdit(selected.args, evnt);
6140
6159
  }
6141
- $xeTable.dispatchEvent('cell-backspace-value', params, evnt);
6160
+ dispatchEvent('cell-backspace-value', params, evnt);
6142
6161
  }
6143
6162
  }
6144
6163
  }
@@ -6192,7 +6211,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6192
6211
  }
6193
6212
  }
6194
6213
  }
6195
- tableMethods.dispatchEvent('keydown', {}, evnt);
6214
+ dispatchEvent('keydown', {}, evnt);
6196
6215
  });
6197
6216
  }
6198
6217
  };
@@ -6219,7 +6238,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6219
6238
  $xeTable.handlePasteCellAreaEvent(evnt);
6220
6239
  }
6221
6240
  }
6222
- tableMethods.dispatchEvent('paste', {}, evnt);
6241
+ dispatchEvent('paste', {}, evnt);
6223
6242
  }
6224
6243
  };
6225
6244
  const handleGlobalCopyEvent = evnt => {
@@ -6245,7 +6264,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6245
6264
  $xeTable.handleCopyCellAreaEvent(evnt);
6246
6265
  }
6247
6266
  }
6248
- tableMethods.dispatchEvent('copy', {}, evnt);
6267
+ dispatchEvent('copy', {}, evnt);
6249
6268
  }
6250
6269
  };
6251
6270
  const handleGlobalCutEvent = evnt => {
@@ -6271,7 +6290,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6271
6290
  $xeTable.handleCutCellAreaEvent(evnt);
6272
6291
  }
6273
6292
  }
6274
- tableMethods.dispatchEvent('cut', {}, evnt);
6293
+ dispatchEvent('cut', {}, evnt);
6275
6294
  }
6276
6295
  };
6277
6296
  const handleGlobalResizeEvent = () => {
@@ -6296,6 +6315,50 @@ var _default = exports.default = (0, _vue.defineComponent)({
6296
6315
  }
6297
6316
  }
6298
6317
  };
6318
+ const clearRowDropOrigin = () => {
6319
+ const el = refElem.value;
6320
+ if (el) {
6321
+ const clss = 'row--drag-origin';
6322
+ _xeUtils.default.arrayEach(el.querySelectorAll(`.${clss}`), elem => {
6323
+ elem.draggable = false;
6324
+ (0, _dom.removeClass)(elem, clss);
6325
+ });
6326
+ }
6327
+ };
6328
+ const clearRowDropTarget = () => {
6329
+ const el = refElem.value;
6330
+ if (el) {
6331
+ const clss = 'row--drag-active-target';
6332
+ _xeUtils.default.arrayEach(el.querySelectorAll(`.${clss}`), elem => {
6333
+ (0, _dom.removeClass)(elem, clss);
6334
+ });
6335
+ }
6336
+ };
6337
+ const showRowDropTip = evnt => {
6338
+ const rdTipEl = refRowDragTipElem.value;
6339
+ if (!rdTipEl) {
6340
+ return;
6341
+ }
6342
+ const el = refElem.value;
6343
+ if (!el) {
6344
+ return;
6345
+ }
6346
+ if (rdTipEl) {
6347
+ const wrapperRect = el.getBoundingClientRect();
6348
+ rdTipEl.style.display = 'block';
6349
+ rdTipEl.style.top = `${Math.min(el.clientHeight - el.scrollTop - rdTipEl.clientHeight, evnt.clientY - wrapperRect.y)}px`;
6350
+ rdTipEl.style.left = `${Math.min(el.clientWidth - el.scrollLeft - rdTipEl.clientWidth - 16, evnt.clientX - wrapperRect.x)}px`;
6351
+ }
6352
+ };
6353
+ const hideRowDropTip = () => {
6354
+ const rdTipEl = refRowDragTipElem.value;
6355
+ if (rdTipEl) {
6356
+ rdTipEl.style.display = '';
6357
+ }
6358
+ };
6359
+ const updateRowDropTipContent = tdEl => {
6360
+ reactData.dragTipText = tdEl.textContent || '';
6361
+ };
6299
6362
  /**
6300
6363
  * 处理显示 tooltip
6301
6364
  * @param {Event} evnt 事件
@@ -7195,7 +7258,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7195
7258
  if (sortOpts.trigger === 'cell' && !(triggerResizable || triggerSort || triggerFilter)) {
7196
7259
  tablePrivateMethods.triggerSortEvent(evnt, column, getNextSortOrder(column));
7197
7260
  }
7198
- tableMethods.dispatchEvent('header-cell-click', Object.assign({
7261
+ dispatchEvent('header-cell-click', Object.assign({
7199
7262
  triggerResizable,
7200
7263
  triggerSort,
7201
7264
  triggerFilter,
@@ -7206,7 +7269,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7206
7269
  }
7207
7270
  },
7208
7271
  triggerHeaderCellDblclickEvent(evnt, params) {
7209
- tableMethods.dispatchEvent('header-cell-dblclick', Object.assign({
7272
+ dispatchEvent('header-cell-dblclick', Object.assign({
7210
7273
  cell: evnt.currentTarget
7211
7274
  }, params), evnt);
7212
7275
  },
@@ -7307,7 +7370,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7307
7370
  }
7308
7371
  }
7309
7372
  }
7310
- tableMethods.dispatchEvent('cell-click', params, evnt);
7373
+ dispatchEvent('cell-click', params, evnt);
7311
7374
  },
7312
7375
  /**
7313
7376
  * 列双击点击事件
@@ -7339,7 +7402,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7339
7402
  }
7340
7403
  }
7341
7404
  }
7342
- tableMethods.dispatchEvent('cell-dblclick', params, evnt);
7405
+ dispatchEvent('cell-dblclick', params, evnt);
7343
7406
  },
7344
7407
  handleToggleCheckRowEvent(evnt, params) {
7345
7408
  const {
@@ -7395,7 +7458,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7395
7458
  tableMethods.setAllCheckboxRow(false);
7396
7459
  const rangeRows = _rowIndex < _firstRowIndex ? afterFullData.slice(_rowIndex, _firstRowIndex + 1) : afterFullData.slice(_firstRowIndex, _rowIndex + 1);
7397
7460
  handleCheckedCheckboxRow(rangeRows, true, false);
7398
- tableMethods.dispatchEvent('checkbox-range-select', Object.assign({
7461
+ dispatchEvent('checkbox-range-select', Object.assign({
7399
7462
  rangeRecords: rangeRows
7400
7463
  }, params), evnt);
7401
7464
  return;
@@ -7407,7 +7470,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7407
7470
  })) {
7408
7471
  tablePrivateMethods.handleSelectRow(params, value);
7409
7472
  tablePrivateMethods.checkSelectionStatus();
7410
- tableMethods.dispatchEvent('checkbox-change', Object.assign({
7473
+ dispatchEvent('checkbox-change', Object.assign({
7411
7474
  records: tableMethods.getCheckboxRecords(),
7412
7475
  reserves: tableMethods.getCheckboxReserveRecords(),
7413
7476
  indeterminates: tableMethods.getCheckboxIndeterminateRecords(),
@@ -7461,7 +7524,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7461
7524
  }
7462
7525
  }
7463
7526
  if (isChange) {
7464
- tableMethods.dispatchEvent('radio-change', Object.assign({
7527
+ dispatchEvent('radio-change', Object.assign({
7465
7528
  oldValue,
7466
7529
  newValue
7467
7530
  }, params), evnt);
@@ -7498,7 +7561,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7498
7561
  })) {
7499
7562
  tableMethods.setCurrentRow(newValue);
7500
7563
  if (isChange) {
7501
- tableMethods.dispatchEvent('current-change', Object.assign({
7564
+ dispatchEvent('current-change', Object.assign({
7502
7565
  oldValue,
7503
7566
  newValue
7504
7567
  }, params), evnt);
@@ -7531,7 +7594,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7531
7594
  const columnIndex = tableMethods.getColumnIndex(column);
7532
7595
  const $columnIndex = tableMethods.getVMColumnIndex(column);
7533
7596
  tableMethods.setRowExpand(row, expanded);
7534
- tableMethods.dispatchEvent('toggle-row-expand', {
7597
+ dispatchEvent('toggle-row-expand', {
7535
7598
  expanded,
7536
7599
  column,
7537
7600
  columnIndex,
@@ -7568,7 +7631,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7568
7631
  const columnIndex = tableMethods.getColumnIndex(column);
7569
7632
  const $columnIndex = tableMethods.getVMColumnIndex(column);
7570
7633
  tableMethods.setTreeExpand(row, expanded);
7571
- tableMethods.dispatchEvent('toggle-tree-expand', {
7634
+ dispatchEvent('toggle-tree-expand', {
7572
7635
  expanded,
7573
7636
  column,
7574
7637
  columnIndex,
@@ -7612,9 +7675,153 @@ var _default = exports.default = (0, _vue.defineComponent)({
7612
7675
  if (mouseConfig && mouseOpts.area && $xeTable.handleSortEvent) {
7613
7676
  $xeTable.handleSortEvent(evnt, params);
7614
7677
  }
7615
- tableMethods.dispatchEvent('sort-change', params, evnt);
7678
+ dispatchEvent('sort-change', params, evnt);
7679
+ }
7680
+ },
7681
+ handleRowDragDragstartEvent(evnt) {
7682
+ const img = new Image();
7683
+ if (evnt.dataTransfer) {
7684
+ evnt.dataTransfer.setDragImage(img, 0, 0);
7616
7685
  }
7617
7686
  },
7687
+ handleRowDragDragendEvent(evnt) {
7688
+ const {
7689
+ treeConfig
7690
+ } = props;
7691
+ const rowOpts = computeRowOpts.value;
7692
+ const {
7693
+ dragEndMethod
7694
+ } = rowOpts;
7695
+ const treeOpts = computeTreeOpts.value;
7696
+ const {
7697
+ transform
7698
+ } = treeOpts;
7699
+ const {
7700
+ dragRow
7701
+ } = reactData;
7702
+ const {
7703
+ afterFullData,
7704
+ tableFullData,
7705
+ prevDragRow,
7706
+ prevDragPos
7707
+ } = internalData;
7708
+ if (prevDragRow && dragRow) {
7709
+ // 判断是否有拖动
7710
+ if (prevDragRow !== dragRow) {
7711
+ Promise.resolve(dragEndMethod ? dragEndMethod({
7712
+ oldRow: dragRow,
7713
+ newRow: prevDragRow
7714
+ }) : true).then(status => {
7715
+ if (!status) {
7716
+ return;
7717
+ }
7718
+ const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
7719
+ // 移出源位置
7720
+ const oafIndex = $xeTable.findRowIndexOf(afterFullData, dragRow);
7721
+ const otfIndex = $xeTable.findRowIndexOf(tableFullData, dragRow);
7722
+ afterFullData.splice(oafIndex, 1);
7723
+ tableFullData.splice(otfIndex, 1);
7724
+ // 插新位置
7725
+ const pafIndex = $xeTable.findRowIndexOf(afterFullData, prevDragRow);
7726
+ const ptfIndex = $xeTable.findRowIndexOf(tableFullData, prevDragRow);
7727
+ const nafIndex = pafIndex + dragOffsetIndex;
7728
+ const ntfIndex = ptfIndex + dragOffsetIndex;
7729
+ afterFullData.splice(nafIndex, 0, dragRow);
7730
+ tableFullData.splice(ntfIndex, 0, dragRow);
7731
+ reactData.isDragRowMove = true;
7732
+ $xeTable.cacheRowMap();
7733
+ $xeTable.updateScrollYStatus();
7734
+ $xeTable.handleTableData(treeConfig && transform);
7735
+ if (!(treeConfig && transform)) {
7736
+ $xeTable.updateAfterDataIndex();
7737
+ }
7738
+ $xeTable.updateFooter();
7739
+ $xeTable.checkSelectionStatus();
7740
+ if (reactData.scrollYLoad) {
7741
+ $xeTable.updateScrollYSpace();
7742
+ }
7743
+ (0, _vue.nextTick)().then(() => {
7744
+ $xeTable.updateCellAreas();
7745
+ return $xeTable.recalculate();
7746
+ });
7747
+ dispatchEvent('row-dragend', {
7748
+ oldRow: dragRow,
7749
+ newRow: prevDragRow,
7750
+ _index: {
7751
+ newIndex: nafIndex,
7752
+ oldIndex: oafIndex
7753
+ }
7754
+ }, evnt);
7755
+ }).catch(() => {});
7756
+ }
7757
+ }
7758
+ hideRowDropTip();
7759
+ clearRowDropOrigin();
7760
+ clearRowDropTarget();
7761
+ reactData.dragRow = null;
7762
+ setTimeout(() => {
7763
+ reactData.isDragRowMove = false;
7764
+ }, 500);
7765
+ },
7766
+ handleRowDragDragoverEvent(evnt) {
7767
+ const trEl = evnt.currentTarget;
7768
+ const rowid = trEl.getAttribute('rowid');
7769
+ const row = $xeTable.getRowById(rowid);
7770
+ clearRowDropTarget();
7771
+ if (row) {
7772
+ evnt.preventDefault();
7773
+ evnt.preventDefault();
7774
+ const {
7775
+ dragRow
7776
+ } = reactData;
7777
+ const offsetY = evnt.clientY - trEl.getBoundingClientRect().y;
7778
+ const dragPos = offsetY < trEl.clientHeight / 2 ? 'top' : 'bottom';
7779
+ (0, _dom.addClass)(trEl, 'row--drag-active-target');
7780
+ trEl.setAttribute('drag-pos', dragPos);
7781
+ internalData.prevDragRow = row;
7782
+ internalData.prevDragPos = dragPos;
7783
+ dispatchEvent('row-dragover', {
7784
+ oldRow: dragRow,
7785
+ targetRow: row,
7786
+ dragPos
7787
+ }, evnt);
7788
+ }
7789
+ showRowDropTip(evnt);
7790
+ },
7791
+ handleCellDragMousedownEvent(evnt, params) {
7792
+ var _a;
7793
+ evnt.stopPropagation();
7794
+ const rowOpts = computeRowOpts.value;
7795
+ const {
7796
+ dragStartMethod
7797
+ } = rowOpts;
7798
+ const {
7799
+ row
7800
+ } = params;
7801
+ const dragEl = evnt.currentTarget;
7802
+ const tdEl = (_a = dragEl.parentNode) === null || _a === void 0 ? void 0 : _a.parentNode;
7803
+ const trEl = tdEl.parentNode;
7804
+ reactData.isDragRowMove = false;
7805
+ clearRowDropOrigin();
7806
+ if (dragStartMethod && !dragStartMethod(params)) {
7807
+ trEl.draggable = false;
7808
+ reactData.dragRow = null;
7809
+ hideRowDropTip();
7810
+ return;
7811
+ }
7812
+ reactData.dragRow = row;
7813
+ trEl.draggable = true;
7814
+ (0, _dom.addClass)(trEl, 'row--drag-origin');
7815
+ showRowDropTip(evnt);
7816
+ updateRowDropTipContent(tdEl);
7817
+ dispatchEvent('row-dragstart', params, evnt);
7818
+ },
7819
+ handleCellDragMouseupEvent() {
7820
+ clearRowDropOrigin();
7821
+ hideRowDropTip();
7822
+ reactData.dragRow = null;
7823
+ reactData.isDragRowMove = false;
7824
+ },
7618
7825
  /**
7619
7826
  * 横向 X 可视渲染事件处理
7620
7827
  */
@@ -7646,14 +7853,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
7646
7853
  const bodyWidth = bodyElem ? bodyElem.clientWidth : 0;
7647
7854
  const scrollHeight = bodyElem ? bodyElem.scrollHeight : 0;
7648
7855
  const scrollWidth = bodyElem ? bodyElem.scrollWidth : 0;
7649
- $xeTable.dispatchEvent('scroll', Object.assign({
7856
+ const evntParams = Object.assign({
7650
7857
  bodyHeight,
7651
7858
  bodyWidth,
7652
7859
  scrollHeight,
7653
7860
  scrollWidth,
7654
7861
  isX: isRollX,
7655
7862
  isY: isRollY
7656
- }, params), evnt);
7863
+ }, params);
7864
+ dispatchEvent('scroll', evntParams, evnt);
7657
7865
  },
7658
7866
  /**
7659
7867
  * 纵向 Y 可视渲染事件处理
@@ -7830,14 +8038,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
7830
8038
  },
7831
8039
  updateScrollXData() {
7832
8040
  // reactData.tableColumn = []
7833
- (0, _vue.nextTick)(() => {
8041
+ return (0, _vue.nextTick)().then(() => {
7834
8042
  handleTableColumn();
7835
8043
  tablePrivateMethods.updateScrollXSpace();
7836
8044
  });
7837
8045
  },
7838
8046
  updateScrollYData() {
7839
8047
  // reactData.tableData = []
7840
- (0, _vue.nextTick)(() => {
8048
+ return (0, _vue.nextTick)().then(() => {
7841
8049
  tablePrivateMethods.handleTableData();
7842
8050
  calcCellHeight();
7843
8051
  tablePrivateMethods.updateScrollYSpace();
@@ -8230,6 +8438,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
8230
8438
  key: 'tm',
8231
8439
  ref: refTableMenu
8232
8440
  }) : (0, _vue.createCommentVNode)(),
8441
+ /**
8442
+ * 拖拽提示
8443
+ */
8444
+ rowOpts.drag ? (0, _vue.h)('div', {
8445
+ ref: refRowDragTipElem,
8446
+ class: 'vxe-table--row-drag-hint'
8447
+ }, getI18n('vxe.table.dragTip', [reactData.dragTipText])) : (0, _vue.createCommentVNode)(),
8233
8448
  /**
8234
8449
  * 提示相关
8235
8450
  */