vxe-table 3.19.27 → 3.19.29

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 (140) hide show
  1. package/es/locale/lang/ar-EG.js +16 -11
  2. package/es/locale/lang/de-DE.js +16 -11
  3. package/es/locale/lang/en-US.js +19 -14
  4. package/es/locale/lang/es-ES.js +16 -11
  5. package/es/locale/lang/fr-FR.js +16 -11
  6. package/es/locale/lang/hu-HU.js +16 -11
  7. package/es/locale/lang/hy-AM.js +16 -11
  8. package/es/locale/lang/id-ID.js +16 -11
  9. package/es/locale/lang/it-IT.js +16 -11
  10. package/es/locale/lang/ja-JP.js +16 -11
  11. package/es/locale/lang/ko-KR.js +16 -11
  12. package/es/locale/lang/ms-MY.js +16 -11
  13. package/es/locale/lang/nb-NO.js +16 -11
  14. package/es/locale/lang/pt-BR.js +16 -11
  15. package/es/locale/lang/ru-RU.js +16 -11
  16. package/es/locale/lang/th-TH.js +16 -11
  17. package/es/locale/lang/ug-CN.js +16 -11
  18. package/es/locale/lang/uk-UA.js +16 -11
  19. package/es/locale/lang/uz-UZ.js +16 -11
  20. package/es/locale/lang/vi-VN.js +16 -11
  21. package/es/locale/lang/zh-CHT.js +16 -11
  22. package/es/locale/lang/zh-CN.js +15 -12
  23. package/es/style.css +1 -1
  24. package/es/table/src/methods.js +230 -188
  25. package/es/table/src/table.js +14 -4
  26. package/es/ui/index.js +1 -1
  27. package/es/ui/src/log.js +1 -1
  28. package/lib/index.umd.js +71 -55
  29. package/lib/index.umd.min.js +1 -1
  30. package/lib/locale/lang/ar-EG.js +16 -11
  31. package/lib/locale/lang/ar-EG.min.js +1 -1
  32. package/lib/locale/lang/ar-EG.umd.js +16 -11
  33. package/lib/locale/lang/de-DE.js +16 -11
  34. package/lib/locale/lang/de-DE.min.js +1 -1
  35. package/lib/locale/lang/de-DE.umd.js +16 -11
  36. package/lib/locale/lang/en-US.js +19 -14
  37. package/lib/locale/lang/en-US.min.js +1 -1
  38. package/lib/locale/lang/en-US.umd.js +19 -14
  39. package/lib/locale/lang/es-ES.js +16 -11
  40. package/lib/locale/lang/es-ES.min.js +1 -1
  41. package/lib/locale/lang/es-ES.umd.js +16 -11
  42. package/lib/locale/lang/fr-FR.js +16 -11
  43. package/lib/locale/lang/fr-FR.min.js +1 -1
  44. package/lib/locale/lang/fr-FR.umd.js +16 -11
  45. package/lib/locale/lang/hu-HU.js +16 -11
  46. package/lib/locale/lang/hu-HU.min.js +1 -1
  47. package/lib/locale/lang/hu-HU.umd.js +16 -11
  48. package/lib/locale/lang/hy-AM.js +16 -11
  49. package/lib/locale/lang/hy-AM.min.js +1 -1
  50. package/lib/locale/lang/hy-AM.umd.js +16 -11
  51. package/lib/locale/lang/id-ID.js +16 -11
  52. package/lib/locale/lang/id-ID.min.js +1 -1
  53. package/lib/locale/lang/id-ID.umd.js +16 -11
  54. package/lib/locale/lang/it-IT.js +16 -11
  55. package/lib/locale/lang/it-IT.min.js +1 -1
  56. package/lib/locale/lang/it-IT.umd.js +16 -11
  57. package/lib/locale/lang/ja-JP.js +16 -11
  58. package/lib/locale/lang/ja-JP.min.js +1 -1
  59. package/lib/locale/lang/ja-JP.umd.js +16 -11
  60. package/lib/locale/lang/ko-KR.js +16 -11
  61. package/lib/locale/lang/ko-KR.min.js +1 -1
  62. package/lib/locale/lang/ko-KR.umd.js +16 -11
  63. package/lib/locale/lang/ms-MY.js +16 -11
  64. package/lib/locale/lang/ms-MY.min.js +1 -1
  65. package/lib/locale/lang/ms-MY.umd.js +16 -11
  66. package/lib/locale/lang/nb-NO.js +16 -11
  67. package/lib/locale/lang/nb-NO.min.js +1 -1
  68. package/lib/locale/lang/nb-NO.umd.js +16 -11
  69. package/lib/locale/lang/pt-BR.js +16 -11
  70. package/lib/locale/lang/pt-BR.min.js +1 -1
  71. package/lib/locale/lang/pt-BR.umd.js +16 -11
  72. package/lib/locale/lang/ru-RU.js +16 -11
  73. package/lib/locale/lang/ru-RU.min.js +1 -1
  74. package/lib/locale/lang/ru-RU.umd.js +16 -11
  75. package/lib/locale/lang/th-TH.js +16 -11
  76. package/lib/locale/lang/th-TH.min.js +1 -1
  77. package/lib/locale/lang/th-TH.umd.js +16 -11
  78. package/lib/locale/lang/ug-CN.js +16 -11
  79. package/lib/locale/lang/ug-CN.min.js +1 -1
  80. package/lib/locale/lang/ug-CN.umd.js +16 -11
  81. package/lib/locale/lang/uk-UA.js +16 -11
  82. package/lib/locale/lang/uk-UA.min.js +1 -1
  83. package/lib/locale/lang/uk-UA.umd.js +16 -11
  84. package/lib/locale/lang/uz-UZ.js +16 -11
  85. package/lib/locale/lang/uz-UZ.min.js +1 -1
  86. package/lib/locale/lang/uz-UZ.umd.js +16 -11
  87. package/lib/locale/lang/vi-VN.js +16 -11
  88. package/lib/locale/lang/vi-VN.min.js +1 -1
  89. package/lib/locale/lang/vi-VN.umd.js +16 -11
  90. package/lib/locale/lang/zh-CHT.js +16 -11
  91. package/lib/locale/lang/zh-CHT.min.js +1 -1
  92. package/lib/locale/lang/zh-CHT.umd.js +16 -11
  93. package/lib/locale/lang/zh-CN.js +15 -12
  94. package/lib/locale/lang/zh-CN.min.js +1 -1
  95. package/lib/locale/lang/zh-CN.umd.js +15 -12
  96. package/lib/style.css +1 -1
  97. package/lib/table/src/methods.js +234 -190
  98. package/lib/table/src/methods.min.js +1 -1
  99. package/lib/table/src/table.js +19 -7
  100. package/lib/table/src/table.min.js +1 -1
  101. package/lib/ui/index.js +1 -1
  102. package/lib/ui/index.min.js +1 -1
  103. package/lib/ui/src/log.js +1 -1
  104. package/lib/ui/src/log.min.js +1 -1
  105. package/package.json +1 -1
  106. package/packages/locale/lang/ar-EG.ts +16 -11
  107. package/packages/locale/lang/de-DE.ts +16 -11
  108. package/packages/locale/lang/en-US.ts +19 -14
  109. package/packages/locale/lang/es-ES.ts +16 -11
  110. package/packages/locale/lang/fr-FR.ts +16 -11
  111. package/packages/locale/lang/hu-HU.ts +16 -11
  112. package/packages/locale/lang/hy-AM.ts +16 -11
  113. package/packages/locale/lang/id-ID.ts +16 -11
  114. package/packages/locale/lang/it-IT.ts +16 -11
  115. package/packages/locale/lang/ja-JP.ts +16 -11
  116. package/packages/locale/lang/ko-KR.ts +16 -11
  117. package/packages/locale/lang/ms-MY.ts +16 -11
  118. package/packages/locale/lang/nb-NO.ts +16 -11
  119. package/packages/locale/lang/pt-BR.ts +16 -11
  120. package/packages/locale/lang/ru-RU.ts +16 -11
  121. package/packages/locale/lang/th-TH.ts +16 -11
  122. package/packages/locale/lang/ug-CN.ts +16 -11
  123. package/packages/locale/lang/uk-UA.ts +16 -11
  124. package/packages/locale/lang/uz-UZ.ts +16 -11
  125. package/packages/locale/lang/vi-VN.ts +16 -11
  126. package/packages/locale/lang/zh-CHT.ts +16 -11
  127. package/packages/locale/lang/zh-CN.ts +15 -12
  128. package/packages/table/src/cell.ts +3 -3
  129. package/packages/table/src/methods.ts +235 -191
  130. package/packages/table/src/table.ts +15 -4
  131. /package/es/{iconfont.1765156950513.ttf → iconfont.1765538900604.ttf} +0 -0
  132. /package/es/{iconfont.1765156950513.woff → iconfont.1765538900604.woff} +0 -0
  133. /package/es/{iconfont.1765156950513.woff2 → iconfont.1765538900604.woff2} +0 -0
  134. /package/es/{table → ui}/src/anime.js +0 -0
  135. /package/lib/{iconfont.1765156950513.ttf → iconfont.1765538900604.ttf} +0 -0
  136. /package/lib/{iconfont.1765156950513.woff → iconfont.1765538900604.woff} +0 -0
  137. /package/lib/{iconfont.1765156950513.woff2 → iconfont.1765538900604.woff2} +0 -0
  138. /package/lib/{table → ui}/src/anime.js +0 -0
  139. /package/lib/{table → ui}/src/anime.min.js +0 -0
  140. /package/packages/{table → ui}/src/anime.ts +0 -0
@@ -5,7 +5,7 @@ import { VxeUI } from '../../ui';
5
5
  import Cell from './cell';
6
6
  import { getRowUniqueId, clearTableAllStatus, getColumnList, toFilters, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getColReMinWidth, createHandleUpdateRowId, createHandleGetRowId, getRefElem, getCellRestHeight, getLastChildColumn } from './util';
7
7
  import { getSlotVNs } from '../../ui/src/vn';
8
- import { moveRowAnimateToTb, clearRowAnimate, moveColAnimateToLr, clearColAnimate } from './anime';
8
+ import { moveRowAnimateToTb, clearRowAnimate, moveColAnimateToLr, clearColAnimate } from '../../ui/src/anime';
9
9
  import { warnLog, errLog } from '../../ui/src/log';
10
10
  import { getCrossTableDragRowInfo } from './store';
11
11
  const { getConfig, getI18n, renderer, formats, interceptor, createEvent } = VxeUI;
@@ -2540,6 +2540,16 @@ function clearDragStatus($xeTable) {
2540
2540
  reactData.dragCol = null;
2541
2541
  }
2542
2542
  }
2543
+ function handleRowDragEndClearStatus($xeTable) {
2544
+ clearRowDragData($xeTable);
2545
+ clearCrossTableDragStatus($xeTable);
2546
+ handleRecalculateStyle($xeTable, false, true, true);
2547
+ }
2548
+ function handleColDragEndClearStatus($xeTable) {
2549
+ clearColDragData($xeTable);
2550
+ clearCrossTableDragStatus($xeTable);
2551
+ handleRecalculateStyle($xeTable, true, true, true);
2552
+ }
2543
2553
  function clearRowDropOrigin($xeTable) {
2544
2554
  const el = $xeTable.$el;
2545
2555
  if (el) {
@@ -3215,13 +3225,13 @@ function handleGroupData($xeTable, list, rowGroups) {
3215
3225
  * 加载表格数据
3216
3226
  * @param {Array} datas 数据
3217
3227
  */
3218
- function loadTableData($xeTable, datas, isReset) {
3228
+ function loadTableData($xeTable, datas, isReload, isReset) {
3219
3229
  const props = $xeTable;
3220
3230
  const reactData = $xeTable;
3221
3231
  const internalData = $xeTable;
3222
3232
  const { keepSource, treeConfig, aggregateConfig, rowGroupConfig } = props;
3223
3233
  const { rowGroupList, scrollYLoad: oldScrollYLoad } = reactData;
3224
- const { scrollYStore, scrollXStore, lastScrollLeft, lastScrollTop } = internalData;
3234
+ const { initStatus, scrollYStore, scrollXStore, lastScrollLeft, lastScrollTop } = internalData;
3225
3235
  const rowOpts = $xeTable.computeRowOpts;
3226
3236
  const treeOpts = $xeTable.computeTreeOpts;
3227
3237
  const expandOpts = $xeTable.computeExpandOpts;
@@ -3359,6 +3369,19 @@ function loadTableData($xeTable, datas, isReset) {
3359
3369
  }
3360
3370
  handleReserveStatus($xeTable);
3361
3371
  $xeTable.checkSelectionStatus();
3372
+ if (initStatus) {
3373
+ $xeTable.dispatchEvent('data-rendered', {
3374
+ isReload,
3375
+ visibleColumn: internalData.visibleColumn,
3376
+ visibleData: internalData.afterFullData
3377
+ }, null);
3378
+ }
3379
+ else {
3380
+ $xeTable.dispatchEvent('init-rendered', {
3381
+ visibleColumn: internalData.visibleColumn,
3382
+ visibleData: internalData.afterFullData
3383
+ }, null);
3384
+ }
3362
3385
  $xeTable.dispatchEvent('data-change', {
3363
3386
  visibleColumn: internalData.visibleColumn,
3364
3387
  visibleData: internalData.afterFullData
@@ -3430,7 +3453,14 @@ function handleLoadDefaults($xeTable) {
3430
3453
  handleDefaultMergeCells($xeTable);
3431
3454
  handleDefaultMergeHeaderItems($xeTable);
3432
3455
  handleDefaultMergeFooterItems($xeTable);
3433
- $xeTable.$nextTick(() => setTimeout(() => $xeTable.recalculate()));
3456
+ $xeTable.$nextTick(() => {
3457
+ const internalData = $xeTable;
3458
+ $xeTable.dispatchEvent('init-rendered', {
3459
+ visibleColumn: internalData.visibleColumn,
3460
+ visibleData: internalData.afterFullData
3461
+ }, null);
3462
+ setTimeout(() => $xeTable.recalculate());
3463
+ });
3434
3464
  }
3435
3465
  /**
3436
3466
  * 处理初始化的默认行为
@@ -4316,7 +4346,7 @@ const tableMethods = {
4316
4346
  errLog('vxe.error.delFunc', ['syncData', 'getData']);
4317
4347
  return $xeTable.$nextTick().then(() => {
4318
4348
  reactData.tableData = [];
4319
- return $xeTable.$nextTick().then(() => loadTableData($xeTable, internalData.tableFullData, true));
4349
+ return $xeTable.$nextTick().then(() => loadTableData($xeTable, internalData.tableFullData, true, true));
4320
4350
  });
4321
4351
  },
4322
4352
  /**
@@ -4384,7 +4414,8 @@ const tableMethods = {
4384
4414
  const reactData = $xeTable;
4385
4415
  const internalData = $xeTable;
4386
4416
  const { data } = props;
4387
- loadTableData($xeTable, data || [], true).then(() => {
4417
+ $xeTable.dispatchEvent('ready', {}, null);
4418
+ loadTableData($xeTable, data || [], true, true).then(() => {
4388
4419
  if (data && data.length) {
4389
4420
  internalData.inited = true;
4390
4421
  internalData.initStatus = true;
@@ -4402,9 +4433,9 @@ const tableMethods = {
4402
4433
  * 加载表格数据
4403
4434
  * @param {Array} datas 数据
4404
4435
  */
4405
- loadTableData(datas, isReset) {
4436
+ loadTableData(datas, isReload, isReset) {
4406
4437
  const $xeTable = this;
4407
- return loadTableData($xeTable, datas, isReset);
4438
+ return loadTableData($xeTable, datas, isReload, isReset);
4408
4439
  },
4409
4440
  /**
4410
4441
  * 重新加载数据,不会清空表格状态
@@ -4412,11 +4443,12 @@ const tableMethods = {
4412
4443
  */
4413
4444
  loadData(datas) {
4414
4445
  const $xeTable = this;
4415
- const { initStatus } = this;
4416
- return loadTableData($xeTable, datas, false).then(() => {
4417
- this.inited = true;
4418
- this.initStatus = true;
4419
- if (!initStatus) {
4446
+ const internalData = $xeTable;
4447
+ const { initStatus } = internalData;
4448
+ return loadTableData($xeTable, datas, false, false).then(() => {
4449
+ internalData.inited = true;
4450
+ internalData.initStatus = true;
4451
+ if (initStatus) {
4420
4452
  handleLoadDefaults($xeTable);
4421
4453
  }
4422
4454
  return handleLazyRecalculate($xeTable, false, true, true);
@@ -4428,11 +4460,12 @@ const tableMethods = {
4428
4460
  */
4429
4461
  reloadData(datas) {
4430
4462
  const $xeTable = this;
4431
- return this.clearAll()
4463
+ const internalData = $xeTable;
4464
+ return $xeTable.clearAll()
4432
4465
  .then(() => {
4433
- this.inited = true;
4434
- this.initStatus = true;
4435
- return loadTableData($xeTable, datas, true);
4466
+ internalData.inited = true;
4467
+ internalData.initStatus = true;
4468
+ return loadTableData($xeTable, datas, true, true);
4436
4469
  })
4437
4470
  .then(() => {
4438
4471
  handleLoadDefaults($xeTable);
@@ -4443,6 +4476,7 @@ const tableMethods = {
4443
4476
  * 修改行数据
4444
4477
  */
4445
4478
  setRow(rows, record) {
4479
+ const $xeTable = this;
4446
4480
  if (record) {
4447
4481
  let rest = rows;
4448
4482
  if (!XEUtils.isArray(rows)) {
@@ -4450,7 +4484,7 @@ const tableMethods = {
4450
4484
  }
4451
4485
  rest.forEach((item) => Object.assign(item, record));
4452
4486
  }
4453
- return this.$nextTick();
4487
+ return $xeTable.$nextTick();
4454
4488
  },
4455
4489
  /**
4456
4490
  * 局部加载行数据并恢复到初始状态
@@ -5070,7 +5104,7 @@ const tableMethods = {
5070
5104
  }
5071
5105
  }
5072
5106
  else if (renderOpts && tcFormatter) {
5073
- cellLabel = `${tcFormatter(renderOpts, formatParams)}`;
5107
+ cellLabel = tcFormatter(renderOpts, formatParams);
5074
5108
  }
5075
5109
  if (formatData) {
5076
5110
  formatData[colid] = { value: cellValue, label: cellLabel };
@@ -8757,76 +8791,43 @@ const tableMethods = {
8757
8791
  dragToChild: !!prevDragToChild,
8758
8792
  offsetIndex: dragOffsetIndex
8759
8793
  };
8760
- const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
8761
- return Promise.resolve(dEndMethod ? dEndMethod(dragParams) : true).then((status) => {
8762
- if (!status) {
8763
- clearRowDragData($xeTable);
8764
- clearCrossTableDragStatus($xeTable);
8765
- return errRest;
8766
- }
8767
- const dragRowid = getRowid($xeTable, dragRow);
8768
- const dragRowRest = fullAllDataRowIdData[dragRowid] || {};
8769
- const _dragRowIndex = dragRowRest._index;
8770
- let dragRowHeight = 0;
8771
- let dragOffsetTop = -1;
8772
- if (animation) {
8773
- dragRowHeight = getCellRestHeight(dragRowRest, cellOpts, rowOpts, defaultRowHeight);
8774
- const oldTrEl = el.querySelector(`.vxe-body--row[rowid="${dragRowid}"]`);
8775
- if (oldTrEl) {
8776
- dragOffsetTop = oldTrEl.offsetTop;
8777
- }
8778
- }
8779
- let oafIndex = -1;
8780
- let nafIndex = -1;
8781
- // 如果为树结构
8782
- if (treeConfig) {
8783
- if (transform) {
8784
- // 移出源位置
8785
- const oldRest = dragRowRest;
8786
- const newRowid = getRowid($xeTable, prevDragRow);
8787
- const newRest = fullAllDataRowIdData[newRowid];
8788
- if (oldRest && newRest) {
8789
- const { level: oldLevel } = oldRest;
8790
- const { level: newLevel } = newRest;
8791
- const oldAllMaps = {};
8792
- XEUtils.eachTree([dragRow], item => {
8793
- oldAllMaps[getRowid($xeTable, item)] = item;
8794
- }, { children: mapChildrenField });
8795
- let isSelfToChildStatus = false;
8796
- if (oldLevel && newLevel) {
8797
- // 子到子
8798
- if (isPeerDrag && !isCrossDrag) {
8799
- if (oldRest.row[parentField] !== newRest.row[parentField]) {
8800
- // 非同级
8801
- return errRest;
8802
- }
8803
- }
8804
- else {
8805
- if (!isCrossDrag) {
8806
- return errRest;
8807
- }
8808
- if (oldAllMaps[newRowid]) {
8809
- isSelfToChildStatus = true;
8810
- if (!(isCrossDrag && isSelfToChildDrag)) {
8811
- if (VxeUI.modal) {
8812
- VxeUI.modal.message({
8813
- status: 'error',
8814
- content: getI18n('vxe.error.treeDragChild')
8815
- });
8816
- }
8817
- return errRest;
8818
- }
8819
- }
8820
- }
8821
- }
8822
- else if (oldLevel) {
8823
- // 子到根
8824
- if (!isCrossDrag) {
8794
+ const dragRowid = getRowid($xeTable, dragRow);
8795
+ const dragRowRest = fullAllDataRowIdData[dragRowid] || {};
8796
+ const _dragRowIndex = dragRowRest._index;
8797
+ let dragRowHeight = 0;
8798
+ let dragOffsetTop = -1;
8799
+ if (animation) {
8800
+ dragRowHeight = getCellRestHeight(dragRowRest, cellOpts, rowOpts, defaultRowHeight);
8801
+ const oldTrEl = el.querySelector(`.vxe-body--row[rowid="${dragRowid}"]`);
8802
+ if (oldTrEl) {
8803
+ dragOffsetTop = oldTrEl.offsetTop;
8804
+ }
8805
+ }
8806
+ let oafIndex = -1;
8807
+ let nafIndex = -1;
8808
+ const oldRest = dragRowRest;
8809
+ const newRowid = getRowid($xeTable, prevDragRow);
8810
+ const newRest = fullAllDataRowIdData[newRowid];
8811
+ const oldAllMaps = {};
8812
+ let isSelfToChildStatus = false;
8813
+ // 如果为树结构
8814
+ if (treeConfig) {
8815
+ if (transform) {
8816
+ if (oldRest && newRest) {
8817
+ const { level: oldLevel } = oldRest;
8818
+ const { level: newLevel } = newRest;
8819
+ XEUtils.eachTree([dragRow], item => {
8820
+ oldAllMaps[getRowid($xeTable, item)] = item;
8821
+ }, { children: mapChildrenField });
8822
+ if (oldLevel && newLevel) {
8823
+ // 子到子
8824
+ if (isPeerDrag && !isCrossDrag) {
8825
+ if (oldRest.row[parentField] !== newRest.row[parentField]) {
8826
+ // 非同级
8825
8827
  return errRest;
8826
8828
  }
8827
8829
  }
8828
- else if (newLevel) {
8829
- // 根到子
8830
+ else {
8830
8831
  if (!isCrossDrag) {
8831
8832
  return errRest;
8832
8833
  }
@@ -8843,9 +8844,47 @@ const tableMethods = {
8843
8844
  }
8844
8845
  }
8845
8846
  }
8846
- else {
8847
- // 根到根
8847
+ }
8848
+ else if (oldLevel) {
8849
+ // 子到根
8850
+ if (!isCrossDrag) {
8851
+ return errRest;
8852
+ }
8853
+ }
8854
+ else if (newLevel) {
8855
+ // 根到子
8856
+ if (!isCrossDrag) {
8857
+ return errRest;
8858
+ }
8859
+ if (oldAllMaps[newRowid]) {
8860
+ isSelfToChildStatus = true;
8861
+ if (!(isCrossDrag && isSelfToChildDrag)) {
8862
+ if (VxeUI.modal) {
8863
+ VxeUI.modal.message({
8864
+ status: 'error',
8865
+ content: getI18n('vxe.error.treeDragChild')
8866
+ });
8867
+ }
8868
+ return errRest;
8869
+ }
8848
8870
  }
8871
+ }
8872
+ else {
8873
+ // 根到根
8874
+ }
8875
+ }
8876
+ }
8877
+ }
8878
+ const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
8879
+ return Promise.resolve(dEndMethod ? dEndMethod(dragParams) : true).then((status) => {
8880
+ if (!status) {
8881
+ return errRest;
8882
+ }
8883
+ // 如果为树结构
8884
+ if (treeConfig) {
8885
+ if (transform) {
8886
+ // 移出源位置
8887
+ if (oldRest && newRest) {
8849
8888
  const fullList = XEUtils.toTreeArray(internalData.afterTreeFullData, {
8850
8889
  key: rowField,
8851
8890
  parentKey: parentField,
@@ -8888,8 +8927,6 @@ const tableMethods = {
8888
8927
  afterFullData.splice(nafIndex, 0, dragRow);
8889
8928
  tableFullData.splice(ntfIndex, 0, dragRow);
8890
8929
  }
8891
- clearRowDragData($xeTable);
8892
- clearCrossTableDragStatus($xeTable);
8893
8930
  $xeTable.handleTableData(treeConfig && transform);
8894
8931
  $xeTable.cacheRowMap(false);
8895
8932
  updateScrollYStatus($xeTable);
@@ -8917,6 +8954,7 @@ const tableMethods = {
8917
8954
  return $xeTable.$nextTick().then(() => {
8918
8955
  if (animation) {
8919
8956
  const { tableData } = reactData;
8957
+ const { fullAllDataRowIdData } = internalData;
8920
8958
  const dragRowRest = fullAllDataRowIdData[dragRowid];
8921
8959
  const _newRowIndex = dragRowRest._index;
8922
8960
  const firstRow = tableData[0];
@@ -8994,16 +9032,17 @@ const tableMethods = {
8994
9032
  });
8995
9033
  }).catch(() => {
8996
9034
  return errRest;
9035
+ }).then((rest) => {
9036
+ handleRowDragEndClearStatus($xeTable);
9037
+ return rest;
8997
9038
  });
8998
9039
  }
8999
- clearRowDragData($xeTable);
9000
- clearCrossTableDragStatus($xeTable);
9040
+ handleRowDragEndClearStatus($xeTable);
9001
9041
  return Promise.resolve(errRest);
9002
9042
  },
9003
9043
  handleCrossTableRowDragCancelEvent() {
9004
9044
  const $xeTable = this;
9005
- clearRowDragData($xeTable);
9006
- clearCrossTableDragStatus($xeTable);
9045
+ handleRowDragEndClearStatus($xeTable);
9007
9046
  },
9008
9047
  /**
9009
9048
  * 处理跨表拖拽完成
@@ -9067,8 +9106,7 @@ const tableMethods = {
9067
9106
  $xeTable.dispatchEvent('row-remove-dragend', {
9068
9107
  row: dragRow
9069
9108
  }, evnt);
9070
- clearRowDragData($xeTable);
9071
- clearCrossTableDragStatus($xeTable);
9109
+ handleRowDragEndClearStatus($xeTable);
9072
9110
  }
9073
9111
  }
9074
9112
  },
@@ -9150,8 +9188,7 @@ const tableMethods = {
9150
9188
  $oldTable.handleCrossTableRowDragCancelEvent(evnt);
9151
9189
  }
9152
9190
  }
9153
- clearRowDragData($xeTable);
9154
- clearCrossTableDragStatus($xeTable);
9191
+ handleRowDragEndClearStatus($xeTable);
9155
9192
  return errRest;
9156
9193
  }
9157
9194
  let insertRest = Promise.resolve();
@@ -9310,12 +9347,10 @@ const tableMethods = {
9310
9347
  const isControlKey = hasControlKey(evnt);
9311
9348
  const trEl = evnt.currentTarget;
9312
9349
  const rowid = trEl.getAttribute('rowid') || '';
9313
- const rest = fullAllDataRowIdData[rowid];
9314
- if (rest) {
9350
+ const rowRest = fullAllDataRowIdData[rowid];
9351
+ if (rowRest) {
9315
9352
  evnt.preventDefault();
9316
- const row = rest.row;
9317
- const rowid = getRowid($xeTable, row);
9318
- const rowRest = fullAllDataRowIdData[rowid];
9353
+ const row = rowRest.row;
9319
9354
  const offsetY = evnt.clientY - trEl.getBoundingClientRect().y;
9320
9355
  const dragPos = offsetY < trEl.clientHeight / 2 ? 'top' : 'bottom';
9321
9356
  internalData.prevDragToChild = !!(treeConfig && transform && (isCrossDrag && isToChildDrag) && isControlKey);
@@ -9349,7 +9384,7 @@ const tableMethods = {
9349
9384
  }
9350
9385
  if ($xeTable.eqRow(dragRow, row) ||
9351
9386
  (isControlKey && treeConfig && lazy && row[hasChildField] && rowRest && !rowRest.treeLoaded) ||
9352
- (!isCrossDrag && treeConfig && transform && (isPeerDrag ? dragRow[parentField] !== row[parentField] : rest.level))) {
9387
+ (!isCrossDrag && treeConfig && transform && (isPeerDrag ? dragRow[parentField] !== row[parentField] : rowRest.level))) {
9353
9388
  showDropTip($xeTable, evnt, trEl, null, false, dragPos);
9354
9389
  return;
9355
9390
  }
@@ -9446,80 +9481,50 @@ const tableMethods = {
9446
9481
  dragToChild: !!prevDragToChild,
9447
9482
  offsetIndex: dragOffsetIndex
9448
9483
  };
9449
- const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
9450
- return Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then((status) => {
9451
- if (!status) {
9452
- clearColDragData($xeTable);
9453
- clearCrossTableDragStatus($xeTable);
9454
- return errRest;
9455
- }
9456
- let dragTargetColumn = null;
9457
- const dragAllTargetCols = [];
9458
- let dragColWidth = 0;
9459
- if (animation) {
9460
- XEUtils.eachTree([dragColumn], column => {
9461
- if (!dragTargetColumn && (!column.children || !column.children.length)) {
9462
- dragTargetColumn = column;
9463
- dragColWidth += column.renderWidth;
9464
- }
9465
- dragAllTargetCols.push(column);
9466
- });
9467
- }
9468
- if (!dragTargetColumn) {
9469
- dragTargetColumn = dragColumn;
9470
- }
9471
- const dragColRest = fullColumnIdData[dragTargetColumn.id] || {};
9472
- const _dragColIndex = dragColRest._index;
9473
- let dragOffsetLeft = -1;
9474
- if (animation) {
9475
- const oldTrEl = el.querySelector(`.vxe-table--column[colid="${dragTargetColumn.id}"]`);
9476
- if (oldTrEl) {
9477
- dragOffsetLeft = oldTrEl.offsetLeft;
9478
- }
9479
- }
9480
- let oafIndex = -1;
9481
- let nafIndex = -1;
9482
- const oldAllMaps = {};
9484
+ let dragTargetColumn = null;
9485
+ const dragAllTargetCols = [];
9486
+ let dragColWidth = 0;
9487
+ if (animation) {
9483
9488
  XEUtils.eachTree([dragColumn], column => {
9484
- oldAllMaps[column.id] = column;
9485
- });
9486
- let isSelfToChildStatus = false;
9487
- if (dragColumn.parentId && newColumn.parentId) {
9488
- // 子到子
9489
- if (isPeerDrag && !isCrossDrag) {
9490
- if (dragColumn.parentId !== newColumn.parentId) {
9491
- // 非同级
9492
- return errRest;
9493
- }
9494
- }
9495
- else {
9496
- if (!isCrossDrag) {
9497
- return errRest;
9498
- }
9499
- if (oldAllMaps[newColumn.id]) {
9500
- isSelfToChildStatus = true;
9501
- if (!(isCrossDrag && isSelfToChildDrag)) {
9502
- if (VxeUI.modal) {
9503
- VxeUI.modal.message({
9504
- status: 'error',
9505
- content: getI18n('vxe.error.treeDragChild')
9506
- });
9507
- }
9508
- return errRest;
9509
- }
9510
- }
9489
+ if (!dragTargetColumn && (!column.children || !column.children.length)) {
9490
+ dragTargetColumn = column;
9491
+ dragColWidth += column.renderWidth;
9511
9492
  }
9493
+ dragAllTargetCols.push(column);
9494
+ });
9495
+ }
9496
+ if (!dragTargetColumn) {
9497
+ dragTargetColumn = dragColumn;
9498
+ }
9499
+ const dragColRest = fullColumnIdData[dragTargetColumn.id] || {};
9500
+ const _dragColIndex = dragColRest._index;
9501
+ let dragOffsetLeft = -1;
9502
+ if (animation) {
9503
+ const oldTrEl = el.querySelector(`.vxe-table--column[colid="${dragTargetColumn.id}"]`);
9504
+ if (oldTrEl) {
9505
+ dragOffsetLeft = oldTrEl.offsetLeft;
9512
9506
  }
9513
- else if (dragColumn.parentId) {
9514
- // 子到根
9515
- if (!isCrossDrag) {
9516
- return errRest;
9507
+ }
9508
+ let oafIndex = -1;
9509
+ let nafIndex = -1;
9510
+ const oldAllMaps = {};
9511
+ XEUtils.eachTree([dragColumn], column => {
9512
+ oldAllMaps[column.id] = column;
9513
+ });
9514
+ let isSelfToChildStatus = false;
9515
+ if (dragColumn.parentId && newColumn.parentId) {
9516
+ // 子到子
9517
+ if (isPeerDrag && !isCrossDrag) {
9518
+ if (dragColumn.parentId !== newColumn.parentId) {
9519
+ // 非同级
9520
+ handleColDragEndClearStatus($xeTable);
9521
+ return Promise.resolve(errRest);
9517
9522
  }
9518
9523
  }
9519
- else if (newColumn.parentId) {
9520
- // 根到子
9524
+ else {
9521
9525
  if (!isCrossDrag) {
9522
- return errRest;
9526
+ handleColDragEndClearStatus($xeTable);
9527
+ return Promise.resolve(errRest);
9523
9528
  }
9524
9529
  if (oldAllMaps[newColumn.id]) {
9525
9530
  isSelfToChildStatus = true;
@@ -9530,12 +9535,46 @@ const tableMethods = {
9530
9535
  content: getI18n('vxe.error.treeDragChild')
9531
9536
  });
9532
9537
  }
9533
- return errRest;
9538
+ handleColDragEndClearStatus($xeTable);
9539
+ return Promise.resolve(errRest);
9534
9540
  }
9535
9541
  }
9536
9542
  }
9537
- else {
9538
- // 根到根
9543
+ }
9544
+ else if (dragColumn.parentId) {
9545
+ // 子到根
9546
+ if (!isCrossDrag) {
9547
+ handleColDragEndClearStatus($xeTable);
9548
+ return Promise.resolve(errRest);
9549
+ }
9550
+ }
9551
+ else if (newColumn.parentId) {
9552
+ // 根到子
9553
+ if (!isCrossDrag) {
9554
+ handleColDragEndClearStatus($xeTable);
9555
+ return Promise.resolve(errRest);
9556
+ }
9557
+ if (oldAllMaps[newColumn.id]) {
9558
+ isSelfToChildStatus = true;
9559
+ if (!(isCrossDrag && isSelfToChildDrag)) {
9560
+ if (VxeUI.modal) {
9561
+ VxeUI.modal.message({
9562
+ status: 'error',
9563
+ content: getI18n('vxe.error.treeDragChild')
9564
+ });
9565
+ }
9566
+ handleColDragEndClearStatus($xeTable);
9567
+ return Promise.resolve(errRest);
9568
+ }
9569
+ }
9570
+ }
9571
+ else {
9572
+ // 根到根
9573
+ }
9574
+ const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
9575
+ return Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then((status) => {
9576
+ if (!status) {
9577
+ return errRest;
9539
9578
  }
9540
9579
  const oldewMatchRest = XEUtils.findTree(collectColumn, item => item.id === dragColumn.id);
9541
9580
  // 改变层级
@@ -9590,8 +9629,6 @@ const tableMethods = {
9590
9629
  $xeTable.clearCopyCellArea();
9591
9630
  }
9592
9631
  }
9593
- clearColDragData($xeTable);
9594
- clearCrossTableDragStatus($xeTable);
9595
9632
  if (evnt) {
9596
9633
  $xeTable.dispatchEvent('column-dragend', {
9597
9634
  oldColumn: dragColumn,
@@ -9696,10 +9733,12 @@ const tableMethods = {
9696
9733
  });
9697
9734
  }).catch(() => {
9698
9735
  return errRest;
9736
+ }).then((rest) => {
9737
+ handleColDragEndClearStatus($xeTable);
9738
+ return rest;
9699
9739
  });
9700
9740
  }
9701
- clearColDragData($xeTable);
9702
- clearCrossTableDragStatus($xeTable);
9741
+ handleColDragEndClearStatus($xeTable);
9703
9742
  return Promise.resolve(errRest);
9704
9743
  },
9705
9744
  handleHeaderCellDragDragendEvent(evnt) {
@@ -10425,7 +10464,7 @@ const tableMethods = {
10425
10464
  handleUpdateRowGroup($xeTable, confList.map(fieldOrColumn => {
10426
10465
  return XEUtils.isString(fieldOrColumn) ? fieldOrColumn : fieldOrColumn.field;
10427
10466
  }));
10428
- return loadTableData($xeTable, internalData.tableSynchData, true);
10467
+ return loadTableData($xeTable, internalData.tableSynchData, false, true);
10429
10468
  }
10430
10469
  return $xeTable.$nextTick();
10431
10470
  },
@@ -10462,7 +10501,7 @@ const tableMethods = {
10462
10501
  return $xeTable.$nextTick();
10463
10502
  }
10464
10503
  handleUpdateRowGroup($xeTable, []);
10465
- return loadTableData($xeTable, internalData.tableSynchData, true);
10504
+ return loadTableData($xeTable, internalData.tableSynchData, false, true);
10466
10505
  },
10467
10506
  isRowGroupRecord(row) {
10468
10507
  const $xeTable = this;
@@ -11569,12 +11608,15 @@ const tableMethods = {
11569
11608
  const lastRow = afterFullData[afterFullData.length - 1];
11570
11609
  rowid = getRowid($xeTable, lastRow);
11571
11610
  rowRest = fullAllDataRowIdData[rowid] || {};
11572
- // 如果为空时还没计算完数据,保持原高度不变
11573
- if (rowRest.oTop) {
11574
- sYHeight = (rowRest.oTop || 0) + (rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight);
11575
- // 是否展开行
11576
- if (expandColumn && rowExpandedMaps[rowid]) {
11577
- sYHeight += rowRest.expandHeight || expandOpts.height || 0;
11611
+ if (rowRest) {
11612
+ const rHeight = getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight);
11613
+ // 如果为空时还没计算完数据,保持原高度不变
11614
+ if (rHeight) {
11615
+ sYHeight = (rowRest.oTop || 0) + rHeight;
11616
+ // 是否展开行
11617
+ if (expandColumn && rowExpandedMaps[rowid]) {
11618
+ sYHeight += rowRest.expandHeight || expandOpts.height || 0;
11619
+ }
11578
11620
  }
11579
11621
  }
11580
11622
  if (sYHeight > maxYHeight) {
@@ -12044,7 +12086,7 @@ const tableMethods = {
12044
12086
  handleUpdateAggData() {
12045
12087
  const $xeTable = this;
12046
12088
  const internalData = $xeTable;
12047
- return loadTableData($xeTable, internalData.tableSynchData, true);
12089
+ return loadTableData($xeTable, internalData.tableSynchData, false, true);
12048
12090
  },
12049
12091
  updateZindex() {
12050
12092
  if (this.zIndex) {