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
 
@@ -2633,6 +2633,18 @@ function clearDragStatus ($xeTable: VxeTableConstructor & VxeTablePrivateMethods
2633
2633
  }
2634
2634
  }
2635
2635
 
2636
+ function handleRowDragEndClearStatus ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
2637
+ clearRowDragData($xeTable)
2638
+ clearCrossTableDragStatus($xeTable)
2639
+ handleRecalculateStyle($xeTable, false, true, true)
2640
+ }
2641
+
2642
+ function handleColDragEndClearStatus ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
2643
+ clearColDragData($xeTable)
2644
+ clearCrossTableDragStatus($xeTable)
2645
+ handleRecalculateStyle($xeTable, true, true, true)
2646
+ }
2647
+
2636
2648
  function clearRowDropOrigin ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
2637
2649
  const el = $xeTable.$el
2638
2650
  if (el) {
@@ -3352,14 +3364,14 @@ function handleGroupData ($xeTable: VxeTableConstructor & VxeTablePrivateMethods
3352
3364
  * 加载表格数据
3353
3365
  * @param {Array} datas 数据
3354
3366
  */
3355
- function loadTableData ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, datas: any[], isReset: boolean) {
3367
+ function loadTableData ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, datas: any[], isReload: boolean, isReset: boolean) {
3356
3368
  const props = $xeTable
3357
3369
  const reactData = $xeTable as unknown as TableReactData
3358
3370
  const internalData = $xeTable as unknown as TableInternalData
3359
3371
 
3360
3372
  const { keepSource, treeConfig, aggregateConfig, rowGroupConfig } = props
3361
3373
  const { rowGroupList, scrollYLoad: oldScrollYLoad } = reactData
3362
- const { scrollYStore, scrollXStore, lastScrollLeft, lastScrollTop } = internalData
3374
+ const { initStatus, scrollYStore, scrollXStore, lastScrollLeft, lastScrollTop } = internalData
3363
3375
  const rowOpts = $xeTable.computeRowOpts
3364
3376
  const treeOpts = $xeTable.computeTreeOpts
3365
3377
  const expandOpts = $xeTable.computeExpandOpts
@@ -3498,6 +3510,18 @@ function loadTableData ($xeTable: VxeTableConstructor & VxeTablePrivateMethods,
3498
3510
 
3499
3511
  handleReserveStatus($xeTable)
3500
3512
  $xeTable.checkSelectionStatus()
3513
+ if (initStatus) {
3514
+ $xeTable.dispatchEvent('data-rendered', {
3515
+ isReload,
3516
+ visibleColumn: internalData.visibleColumn,
3517
+ visibleData: internalData.afterFullData
3518
+ }, null)
3519
+ } else {
3520
+ $xeTable.dispatchEvent('init-rendered', {
3521
+ visibleColumn: internalData.visibleColumn,
3522
+ visibleData: internalData.afterFullData
3523
+ }, null)
3524
+ }
3501
3525
  $xeTable.dispatchEvent('data-change', {
3502
3526
  visibleColumn: internalData.visibleColumn,
3503
3527
  visibleData: internalData.afterFullData
@@ -3569,7 +3593,14 @@ function handleLoadDefaults ($xeTable: VxeTableConstructor & VxeTablePrivateMeth
3569
3593
  handleDefaultMergeCells($xeTable)
3570
3594
  handleDefaultMergeHeaderItems($xeTable)
3571
3595
  handleDefaultMergeFooterItems($xeTable)
3572
- $xeTable.$nextTick(() => setTimeout(() => $xeTable.recalculate()))
3596
+ $xeTable.$nextTick(() => {
3597
+ const internalData = $xeTable as unknown as TableInternalData
3598
+ $xeTable.dispatchEvent('init-rendered', {
3599
+ visibleColumn: internalData.visibleColumn,
3600
+ visibleData: internalData.afterFullData
3601
+ }, null)
3602
+ setTimeout(() => $xeTable.recalculate())
3603
+ })
3573
3604
  }
3574
3605
 
3575
3606
  /**
@@ -4505,7 +4536,7 @@ const tableMethods: any = {
4505
4536
  errLog('vxe.error.delFunc', ['syncData', 'getData'])
4506
4537
  return $xeTable.$nextTick().then(() => {
4507
4538
  reactData.tableData = []
4508
- return $xeTable.$nextTick().then(() => loadTableData($xeTable, internalData.tableFullData, true))
4539
+ return $xeTable.$nextTick().then(() => loadTableData($xeTable, internalData.tableFullData, true, true))
4509
4540
  })
4510
4541
  },
4511
4542
  /**
@@ -4576,7 +4607,8 @@ const tableMethods: any = {
4576
4607
  const internalData = $xeTable as unknown as TableInternalData
4577
4608
 
4578
4609
  const { data } = props
4579
- loadTableData($xeTable, data || [], true).then(() => {
4610
+ $xeTable.dispatchEvent('ready', {}, null)
4611
+ loadTableData($xeTable, data || [], true, true).then(() => {
4580
4612
  if (data && data.length) {
4581
4613
  internalData.inited = true
4582
4614
  internalData.initStatus = true
@@ -4594,10 +4626,10 @@ const tableMethods: any = {
4594
4626
  * 加载表格数据
4595
4627
  * @param {Array} datas 数据
4596
4628
  */
4597
- loadTableData (datas: any[], isReset: boolean) {
4629
+ loadTableData (datas: any[], isReload: boolean, isReset: boolean) {
4598
4630
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
4599
4631
 
4600
- return loadTableData($xeTable, datas, isReset)
4632
+ return loadTableData($xeTable, datas, isReload, isReset)
4601
4633
  },
4602
4634
  /**
4603
4635
  * 重新加载数据,不会清空表格状态
@@ -4605,12 +4637,13 @@ const tableMethods: any = {
4605
4637
  */
4606
4638
  loadData (datas: any) {
4607
4639
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
4640
+ const internalData = $xeTable as unknown as TableInternalData
4608
4641
 
4609
- const { initStatus } = this
4610
- return loadTableData($xeTable, datas, false).then(() => {
4611
- this.inited = true
4612
- this.initStatus = true
4613
- if (!initStatus) {
4642
+ const { initStatus } = internalData
4643
+ return loadTableData($xeTable, datas, false, false).then(() => {
4644
+ internalData.inited = true
4645
+ internalData.initStatus = true
4646
+ if (initStatus) {
4614
4647
  handleLoadDefaults($xeTable)
4615
4648
  }
4616
4649
  return handleLazyRecalculate($xeTable, false, true, true)
@@ -4622,12 +4655,13 @@ const tableMethods: any = {
4622
4655
  */
4623
4656
  reloadData (datas: any) {
4624
4657
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
4658
+ const internalData = $xeTable as unknown as TableInternalData
4625
4659
 
4626
- return this.clearAll()
4660
+ return $xeTable.clearAll()
4627
4661
  .then(() => {
4628
- this.inited = true
4629
- this.initStatus = true
4630
- return loadTableData($xeTable, datas, true)
4662
+ internalData.inited = true
4663
+ internalData.initStatus = true
4664
+ return loadTableData($xeTable, datas, true, true)
4631
4665
  })
4632
4666
  .then(() => {
4633
4667
  handleLoadDefaults($xeTable)
@@ -4638,6 +4672,8 @@ const tableMethods: any = {
4638
4672
  * 修改行数据
4639
4673
  */
4640
4674
  setRow (rows: any, record: any) {
4675
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
4676
+
4641
4677
  if (record) {
4642
4678
  let rest = rows
4643
4679
  if (!XEUtils.isArray(rows)) {
@@ -4645,7 +4681,7 @@ const tableMethods: any = {
4645
4681
  }
4646
4682
  rest.forEach((item:any) => Object.assign(item, record))
4647
4683
  }
4648
- return this.$nextTick()
4684
+ return $xeTable.$nextTick()
4649
4685
  },
4650
4686
  /**
4651
4687
  * 局部加载行数据并恢复到初始状态
@@ -5273,7 +5309,7 @@ const tableMethods: any = {
5273
5309
  cellLabel = formatter(formatParams)
5274
5310
  }
5275
5311
  } else if (renderOpts && tcFormatter) {
5276
- cellLabel = `${tcFormatter(renderOpts, formatParams)}`
5312
+ cellLabel = tcFormatter(renderOpts, formatParams)
5277
5313
  }
5278
5314
  if (formatData) {
5279
5315
  formatData[colid] = { value: cellValue, label: cellLabel }
@@ -9026,82 +9062,48 @@ const tableMethods: any = {
9026
9062
  dragToChild: !!prevDragToChild,
9027
9063
  offsetIndex: dragOffsetIndex as 0 | 1
9028
9064
  }
9029
- const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild
9030
- return Promise.resolve(dEndMethod ? dEndMethod(dragParams) : true).then((status) => {
9031
- if (!status) {
9032
- clearRowDragData($xeTable)
9033
- clearCrossTableDragStatus($xeTable)
9034
- return errRest
9035
- }
9036
9065
 
9037
- const dragRowid = getRowid($xeTable, dragRow)
9038
- const dragRowRest = fullAllDataRowIdData[dragRowid] || {}
9039
- const _dragRowIndex = dragRowRest._index
9040
- let dragRowHeight = 0
9041
- let dragOffsetTop = -1
9042
- if (animation) {
9043
- dragRowHeight = getCellRestHeight(dragRowRest, cellOpts, rowOpts, defaultRowHeight)
9044
- const oldTrEl = el.querySelector<HTMLElement>(`.vxe-body--row[rowid="${dragRowid}"]`)
9045
- if (oldTrEl) {
9046
- dragOffsetTop = oldTrEl.offsetTop
9047
- }
9066
+ const dragRowid = getRowid($xeTable, dragRow)
9067
+ const dragRowRest = fullAllDataRowIdData[dragRowid] || {}
9068
+ const _dragRowIndex = dragRowRest._index
9069
+ let dragRowHeight = 0
9070
+ let dragOffsetTop = -1
9071
+ if (animation) {
9072
+ dragRowHeight = getCellRestHeight(dragRowRest, cellOpts, rowOpts, defaultRowHeight)
9073
+ const oldTrEl = el.querySelector<HTMLElement>(`.vxe-body--row[rowid="${dragRowid}"]`)
9074
+ if (oldTrEl) {
9075
+ dragOffsetTop = oldTrEl.offsetTop
9048
9076
  }
9077
+ }
9049
9078
 
9050
- let oafIndex = -1
9051
- let nafIndex = -1
9052
- // 如果为树结构
9053
- if (treeConfig) {
9054
- if (transform) {
9055
- // 移出源位置
9056
- const oldRest = dragRowRest
9057
- const newRowid = getRowid($xeTable, prevDragRow)
9058
- const newRest = fullAllDataRowIdData[newRowid]
9059
-
9060
- if (oldRest && newRest) {
9061
- const { level: oldLevel } = oldRest
9062
- const { level: newLevel } = newRest
9063
-
9064
- const oldAllMaps: Record<string, any> = {}
9065
- XEUtils.eachTree([dragRow], item => {
9066
- oldAllMaps[getRowid($xeTable, item)] = item
9067
- }, { children: mapChildrenField })
9079
+ let oafIndex = -1
9080
+ let nafIndex = -1
9081
+ const oldRest = dragRowRest
9082
+ const newRowid = getRowid($xeTable, prevDragRow)
9083
+ const newRest = fullAllDataRowIdData[newRowid]
9084
+ const oldAllMaps: Record<string, any> = {}
9085
+ let isSelfToChildStatus = false
9068
9086
 
9069
- let isSelfToChildStatus = false
9087
+ // 如果为树结构
9088
+ if (treeConfig) {
9089
+ if (transform) {
9090
+ if (oldRest && newRest) {
9091
+ const { level: oldLevel } = oldRest
9092
+ const { level: newLevel } = newRest
9070
9093
 
9071
- if (oldLevel && newLevel) {
9072
- // 子到子
9094
+ XEUtils.eachTree([dragRow], item => {
9095
+ oldAllMaps[getRowid($xeTable, item)] = item
9096
+ }, { children: mapChildrenField })
9073
9097
 
9074
- if (isPeerDrag && !isCrossDrag) {
9075
- if (oldRest.row[parentField] !== newRest.row[parentField]) {
9076
- // 非同级
9077
- return errRest
9078
- }
9079
- } else {
9080
- if (!isCrossDrag) {
9081
- return errRest
9082
- }
9083
- if (oldAllMaps[newRowid]) {
9084
- isSelfToChildStatus = true
9085
- if (!(isCrossDrag && isSelfToChildDrag)) {
9086
- if (VxeUI.modal) {
9087
- VxeUI.modal.message({
9088
- status: 'error',
9089
- content: getI18n('vxe.error.treeDragChild')
9090
- })
9091
- }
9092
- return errRest
9093
- }
9094
- }
9095
- }
9096
- } else if (oldLevel) {
9097
- // 子到根
9098
+ if (oldLevel && newLevel) {
9099
+ // 子到子
9098
9100
 
9099
- if (!isCrossDrag) {
9101
+ if (isPeerDrag && !isCrossDrag) {
9102
+ if (oldRest.row[parentField] !== newRest.row[parentField]) {
9103
+ // 非同级
9100
9104
  return errRest
9101
9105
  }
9102
- } else if (newLevel) {
9103
- // 根到子
9104
-
9106
+ } else {
9105
9107
  if (!isCrossDrag) {
9106
9108
  return errRest
9107
9109
  }
@@ -9117,10 +9119,49 @@ const tableMethods: any = {
9117
9119
  return errRest
9118
9120
  }
9119
9121
  }
9120
- } else {
9121
- // 根到根
9122
9122
  }
9123
+ } else if (oldLevel) {
9124
+ // 子到根
9123
9125
 
9126
+ if (!isCrossDrag) {
9127
+ return errRest
9128
+ }
9129
+ } else if (newLevel) {
9130
+ // 根到子
9131
+
9132
+ if (!isCrossDrag) {
9133
+ return errRest
9134
+ }
9135
+ if (oldAllMaps[newRowid]) {
9136
+ isSelfToChildStatus = true
9137
+ if (!(isCrossDrag && isSelfToChildDrag)) {
9138
+ if (VxeUI.modal) {
9139
+ VxeUI.modal.message({
9140
+ status: 'error',
9141
+ content: getI18n('vxe.error.treeDragChild')
9142
+ })
9143
+ }
9144
+ return errRest
9145
+ }
9146
+ }
9147
+ } else {
9148
+ // 根到根
9149
+ }
9150
+ }
9151
+ }
9152
+ }
9153
+
9154
+ const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild
9155
+ return Promise.resolve(dEndMethod ? dEndMethod(dragParams) : true).then((status) => {
9156
+ if (!status) {
9157
+ return errRest
9158
+ }
9159
+
9160
+ // 如果为树结构
9161
+ if (treeConfig) {
9162
+ if (transform) {
9163
+ // 移出源位置
9164
+ if (oldRest && newRest) {
9124
9165
  const fullList = XEUtils.toTreeArray(internalData.afterTreeFullData, {
9125
9166
  key: rowField,
9126
9167
  parentKey: parentField,
@@ -9166,8 +9207,6 @@ const tableMethods: any = {
9166
9207
  afterFullData.splice(nafIndex, 0, dragRow)
9167
9208
  tableFullData.splice(ntfIndex, 0, dragRow)
9168
9209
  }
9169
- clearRowDragData($xeTable)
9170
- clearCrossTableDragStatus($xeTable)
9171
9210
 
9172
9211
  $xeTable.handleTableData(treeConfig && transform)
9173
9212
  $xeTable.cacheRowMap(false)
@@ -9198,6 +9237,7 @@ const tableMethods: any = {
9198
9237
  return $xeTable.$nextTick().then(() => {
9199
9238
  if (animation) {
9200
9239
  const { tableData } = reactData
9240
+ const { fullAllDataRowIdData } = internalData
9201
9241
  const dragRowRest = fullAllDataRowIdData[dragRowid]
9202
9242
  const _newRowIndex = dragRowRest._index
9203
9243
  const firstRow = tableData[0]
@@ -9276,17 +9316,18 @@ const tableMethods: any = {
9276
9316
  })
9277
9317
  }).catch(() => {
9278
9318
  return errRest
9319
+ }).then((rest) => {
9320
+ handleRowDragEndClearStatus($xeTable)
9321
+ return rest
9279
9322
  })
9280
9323
  }
9281
- clearRowDragData($xeTable)
9282
- clearCrossTableDragStatus($xeTable)
9324
+ handleRowDragEndClearStatus($xeTable)
9283
9325
  return Promise.resolve(errRest)
9284
9326
  },
9285
9327
  handleCrossTableRowDragCancelEvent () {
9286
9328
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
9287
9329
 
9288
- clearRowDragData($xeTable)
9289
- clearCrossTableDragStatus($xeTable)
9330
+ handleRowDragEndClearStatus($xeTable)
9290
9331
  },
9291
9332
  /**
9292
9333
  * 处理跨表拖拽完成
@@ -9352,8 +9393,7 @@ const tableMethods: any = {
9352
9393
  $xeTable.dispatchEvent('row-remove-dragend', {
9353
9394
  row: dragRow
9354
9395
  }, evnt)
9355
- clearRowDragData($xeTable)
9356
- clearCrossTableDragStatus($xeTable)
9396
+ handleRowDragEndClearStatus($xeTable)
9357
9397
  }
9358
9398
  }
9359
9399
  },
@@ -9437,8 +9477,7 @@ const tableMethods: any = {
9437
9477
  $oldTable.handleCrossTableRowDragCancelEvent(evnt)
9438
9478
  }
9439
9479
  }
9440
- clearRowDragData($xeTable)
9441
- clearCrossTableDragStatus($xeTable)
9480
+ handleRowDragEndClearStatus($xeTable)
9442
9481
  return errRest
9443
9482
  }
9444
9483
  let insertRest: Promise<any> = Promise.resolve()
@@ -9594,12 +9633,10 @@ const tableMethods: any = {
9594
9633
  const isControlKey = hasControlKey(evnt)
9595
9634
  const trEl = evnt.currentTarget as HTMLElement
9596
9635
  const rowid = trEl.getAttribute('rowid') || ''
9597
- const rest = fullAllDataRowIdData[rowid]
9598
- if (rest) {
9636
+ const rowRest = fullAllDataRowIdData[rowid]
9637
+ if (rowRest) {
9599
9638
  evnt.preventDefault()
9600
- const row = rest.row
9601
- const rowid = getRowid($xeTable, row)
9602
- const rowRest = fullAllDataRowIdData[rowid]
9639
+ const row = rowRest.row
9603
9640
  const offsetY = evnt.clientY - trEl.getBoundingClientRect().y
9604
9641
  const dragPos = offsetY < trEl.clientHeight / 2 ? 'top' : 'bottom'
9605
9642
  internalData.prevDragToChild = !!(treeConfig && transform && (isCrossDrag && isToChildDrag) && isControlKey)
@@ -9632,7 +9669,7 @@ const tableMethods: any = {
9632
9669
  }
9633
9670
  if ($xeTable.eqRow(dragRow, row) ||
9634
9671
  (isControlKey && treeConfig && lazy && row[hasChildField] && rowRest && !rowRest.treeLoaded) ||
9635
- (!isCrossDrag && treeConfig && transform && (isPeerDrag ? dragRow[parentField] !== row[parentField] : rest.level))
9672
+ (!isCrossDrag && treeConfig && transform && (isPeerDrag ? dragRow[parentField] !== row[parentField] : rowRest.level))
9636
9673
  ) {
9637
9674
  showDropTip($xeTable, evnt, trEl, null, false, dragPos)
9638
9675
  return
@@ -9737,88 +9774,58 @@ const tableMethods: any = {
9737
9774
  dragToChild: !!prevDragToChild,
9738
9775
  offsetIndex: dragOffsetIndex as 0 | 1
9739
9776
  }
9740
- const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild
9741
- return Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then((status) => {
9742
- if (!status) {
9743
- clearColDragData($xeTable)
9744
- clearCrossTableDragStatus($xeTable)
9745
- return errRest
9746
- }
9747
-
9748
- let dragTargetColumn: VxeTableDefines.ColumnInfo | null = null
9749
- const dragAllTargetCols: VxeTableDefines.ColumnInfo[] = []
9750
- let dragColWidth = 0
9751
- if (animation) {
9752
- XEUtils.eachTree([dragColumn], column => {
9753
- if (!dragTargetColumn && (!column.children || !column.children.length)) {
9754
- dragTargetColumn = column
9755
- dragColWidth += column.renderWidth
9756
- }
9757
- dragAllTargetCols.push(column)
9758
- })
9759
- }
9760
- if (!dragTargetColumn) {
9761
- dragTargetColumn = dragColumn
9762
- }
9763
- const dragColRest = fullColumnIdData[dragTargetColumn.id] || {}
9764
- const _dragColIndex = dragColRest._index
9765
9777
 
9766
- let dragOffsetLeft = -1
9767
- if (animation) {
9768
- const oldTrEl = el.querySelector<HTMLElement>(`.vxe-table--column[colid="${dragTargetColumn.id}"]`)
9769
- if (oldTrEl) {
9770
- dragOffsetLeft = oldTrEl.offsetLeft
9778
+ let dragTargetColumn: VxeTableDefines.ColumnInfo | null = null
9779
+ const dragAllTargetCols: VxeTableDefines.ColumnInfo[] = []
9780
+ let dragColWidth = 0
9781
+ if (animation) {
9782
+ XEUtils.eachTree([dragColumn], column => {
9783
+ if (!dragTargetColumn && (!column.children || !column.children.length)) {
9784
+ dragTargetColumn = column
9785
+ dragColWidth += column.renderWidth
9771
9786
  }
9772
- }
9787
+ dragAllTargetCols.push(column)
9788
+ })
9789
+ }
9790
+ if (!dragTargetColumn) {
9791
+ dragTargetColumn = dragColumn
9792
+ }
9793
+ const dragColRest = fullColumnIdData[dragTargetColumn.id] || {}
9794
+ const _dragColIndex = dragColRest._index
9773
9795
 
9774
- let oafIndex = -1
9775
- let nafIndex = -1
9796
+ let dragOffsetLeft = -1
9797
+ if (animation) {
9798
+ const oldTrEl = el.querySelector<HTMLElement>(`.vxe-table--column[colid="${dragTargetColumn.id}"]`)
9799
+ if (oldTrEl) {
9800
+ dragOffsetLeft = oldTrEl.offsetLeft
9801
+ }
9802
+ }
9776
9803
 
9777
- const oldAllMaps: Record<string, any> = {}
9778
- XEUtils.eachTree([dragColumn], column => {
9779
- oldAllMaps[column.id] = column
9780
- })
9804
+ let oafIndex = -1
9805
+ let nafIndex = -1
9781
9806
 
9782
- let isSelfToChildStatus = false
9807
+ const oldAllMaps: Record<string, any> = {}
9808
+ XEUtils.eachTree([dragColumn], column => {
9809
+ oldAllMaps[column.id] = column
9810
+ })
9783
9811
 
9784
- if (dragColumn.parentId && newColumn.parentId) {
9785
- // 子到子
9812
+ let isSelfToChildStatus = false
9786
9813
 
9787
- if (isPeerDrag && !isCrossDrag) {
9788
- if (dragColumn.parentId !== newColumn.parentId) {
9789
- // 非同级
9790
- return errRest
9791
- }
9792
- } else {
9793
- if (!isCrossDrag) {
9794
- return errRest
9795
- }
9814
+ if (dragColumn.parentId && newColumn.parentId) {
9815
+ // 子到子
9796
9816
 
9797
- if (oldAllMaps[newColumn.id]) {
9798
- isSelfToChildStatus = true
9799
- if (!(isCrossDrag && isSelfToChildDrag)) {
9800
- if (VxeUI.modal) {
9801
- VxeUI.modal.message({
9802
- status: 'error',
9803
- content: getI18n('vxe.error.treeDragChild')
9804
- })
9805
- }
9806
- return errRest
9807
- }
9808
- }
9817
+ if (isPeerDrag && !isCrossDrag) {
9818
+ if (dragColumn.parentId !== newColumn.parentId) {
9819
+ // 非同级
9820
+ handleColDragEndClearStatus($xeTable)
9821
+ return Promise.resolve(errRest)
9809
9822
  }
9810
- } else if (dragColumn.parentId) {
9811
- // 子到根
9812
-
9823
+ } else {
9813
9824
  if (!isCrossDrag) {
9814
- return errRest
9825
+ handleColDragEndClearStatus($xeTable)
9826
+ return Promise.resolve(errRest)
9815
9827
  }
9816
- } else if (newColumn.parentId) {
9817
- // 根到子
9818
9828
 
9819
- if (!isCrossDrag) {
9820
- return errRest
9821
- }
9822
9829
  if (oldAllMaps[newColumn.id]) {
9823
9830
  isSelfToChildStatus = true
9824
9831
  if (!(isCrossDrag && isSelfToChildDrag)) {
@@ -9828,11 +9835,46 @@ const tableMethods: any = {
9828
9835
  content: getI18n('vxe.error.treeDragChild')
9829
9836
  })
9830
9837
  }
9831
- return errRest
9838
+ handleColDragEndClearStatus($xeTable)
9839
+ return Promise.resolve(errRest)
9832
9840
  }
9833
9841
  }
9834
- } else {
9835
- // 根到根
9842
+ }
9843
+ } else if (dragColumn.parentId) {
9844
+ // 子到根
9845
+
9846
+ if (!isCrossDrag) {
9847
+ handleColDragEndClearStatus($xeTable)
9848
+ return Promise.resolve(errRest)
9849
+ }
9850
+ } else if (newColumn.parentId) {
9851
+ // 根到子
9852
+
9853
+ if (!isCrossDrag) {
9854
+ handleColDragEndClearStatus($xeTable)
9855
+ return Promise.resolve(errRest)
9856
+ }
9857
+ if (oldAllMaps[newColumn.id]) {
9858
+ isSelfToChildStatus = true
9859
+ if (!(isCrossDrag && isSelfToChildDrag)) {
9860
+ if (VxeUI.modal) {
9861
+ VxeUI.modal.message({
9862
+ status: 'error',
9863
+ content: getI18n('vxe.error.treeDragChild')
9864
+ })
9865
+ }
9866
+ handleColDragEndClearStatus($xeTable)
9867
+ return Promise.resolve(errRest)
9868
+ }
9869
+ }
9870
+ } else {
9871
+ // 根到根
9872
+ }
9873
+
9874
+ const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild
9875
+ return Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then((status) => {
9876
+ if (!status) {
9877
+ return errRest
9836
9878
  }
9837
9879
 
9838
9880
  const oldewMatchRest = XEUtils.findTree(collectColumn as VxeTableDefines.ColumnInfo[], item => item.id === dragColumn.id)
@@ -9891,9 +9933,6 @@ const tableMethods: any = {
9891
9933
  }
9892
9934
  }
9893
9935
 
9894
- clearColDragData($xeTable)
9895
- clearCrossTableDragStatus($xeTable)
9896
-
9897
9936
  if (evnt) {
9898
9937
  $xeTable.dispatchEvent('column-dragend', {
9899
9938
  oldColumn: dragColumn,
@@ -10002,10 +10041,12 @@ const tableMethods: any = {
10002
10041
  })
10003
10042
  }).catch(() => {
10004
10043
  return errRest
10044
+ }).then((rest) => {
10045
+ handleColDragEndClearStatus($xeTable)
10046
+ return rest
10005
10047
  })
10006
10048
  }
10007
- clearColDragData($xeTable)
10008
- clearCrossTableDragStatus($xeTable)
10049
+ handleColDragEndClearStatus($xeTable)
10009
10050
  return Promise.resolve(errRest)
10010
10051
  },
10011
10052
  handleHeaderCellDragDragendEvent (evnt: DragEvent) {
@@ -10758,7 +10799,7 @@ const tableMethods: any = {
10758
10799
  handleUpdateRowGroup($xeTable, confList.map(fieldOrColumn => {
10759
10800
  return XEUtils.isString(fieldOrColumn) ? fieldOrColumn : fieldOrColumn.field
10760
10801
  }))
10761
- return loadTableData($xeTable, internalData.tableSynchData, true)
10802
+ return loadTableData($xeTable, internalData.tableSynchData, false, true)
10762
10803
  }
10763
10804
  return $xeTable.$nextTick()
10764
10805
  },
@@ -10798,7 +10839,7 @@ const tableMethods: any = {
10798
10839
  return $xeTable.$nextTick()
10799
10840
  }
10800
10841
  handleUpdateRowGroup($xeTable, [])
10801
- return loadTableData($xeTable, internalData.tableSynchData, true)
10842
+ return loadTableData($xeTable, internalData.tableSynchData, false, true)
10802
10843
  },
10803
10844
  isRowGroupRecord (row: any) {
10804
10845
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
@@ -11954,12 +11995,15 @@ const tableMethods: any = {
11954
11995
  const lastRow = afterFullData[afterFullData.length - 1]
11955
11996
  rowid = getRowid($xeTable, lastRow)
11956
11997
  rowRest = fullAllDataRowIdData[rowid] || {}
11957
- // 如果为空时还没计算完数据,保持原高度不变
11958
- if (rowRest.oTop) {
11959
- sYHeight = (rowRest.oTop || 0) + (rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight)
11960
- // 是否展开行
11961
- if (expandColumn && rowExpandedMaps[rowid]) {
11962
- sYHeight += rowRest.expandHeight || expandOpts.height || 0
11998
+ if (rowRest) {
11999
+ const rHeight = getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight)
12000
+ // 如果为空时还没计算完数据,保持原高度不变
12001
+ if (rHeight) {
12002
+ sYHeight = (rowRest.oTop || 0) + rHeight
12003
+ // 是否展开行
12004
+ if (expandColumn && rowExpandedMaps[rowid]) {
12005
+ sYHeight += rowRest.expandHeight || expandOpts.height || 0
12006
+ }
11963
12007
  }
11964
12008
  }
11965
12009
  if (sYHeight > maxYHeight) {
@@ -12459,7 +12503,7 @@ const tableMethods: any = {
12459
12503
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
12460
12504
  const internalData = $xeTable as unknown as TableInternalData
12461
12505
 
12462
- return loadTableData($xeTable, internalData.tableSynchData, true)
12506
+ return loadTableData($xeTable, internalData.tableSynchData, false, true)
12463
12507
  },
12464
12508
  updateZindex () {
12465
12509
  if (this.zIndex) {