vxe-table 4.16.0-beta.2 → 4.16.0-beta.4

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 (41) hide show
  1. package/es/style.css +1 -1
  2. package/es/table/module/custom/hook.js +10 -3
  3. package/es/table/module/custom/panel.js +139 -126
  4. package/es/table/module/keyboard/hook.js +2 -2
  5. package/es/table/src/table.js +50 -13
  6. package/es/table/src/util.js +1 -0
  7. package/es/toolbar/src/toolbar.js +26 -24
  8. package/es/ui/index.js +1 -1
  9. package/es/ui/src/log.js +1 -1
  10. package/lib/index.umd.js +81 -46
  11. package/lib/index.umd.min.js +1 -1
  12. package/lib/style.css +1 -1
  13. package/lib/table/module/custom/hook.js +12 -3
  14. package/lib/table/module/custom/hook.min.js +1 -1
  15. package/lib/table/module/custom/panel.js +23 -9
  16. package/lib/table/module/custom/panel.min.js +1 -1
  17. package/lib/table/module/keyboard/hook.js +2 -2
  18. package/lib/table/module/keyboard/hook.min.js +1 -1
  19. package/lib/table/src/table.js +15 -13
  20. package/lib/table/src/table.min.js +1 -1
  21. package/lib/table/src/util.js +1 -0
  22. package/lib/table/src/util.min.js +1 -1
  23. package/lib/toolbar/src/toolbar.js +27 -17
  24. package/lib/toolbar/src/toolbar.min.js +1 -1
  25. package/lib/ui/index.js +1 -1
  26. package/lib/ui/index.min.js +1 -1
  27. package/lib/ui/src/log.js +1 -1
  28. package/lib/ui/src/log.min.js +1 -1
  29. package/package.json +1 -1
  30. package/packages/table/module/custom/hook.ts +10 -3
  31. package/packages/table/module/custom/panel.ts +150 -135
  32. package/packages/table/module/keyboard/hook.ts +2 -2
  33. package/packages/table/src/table.ts +50 -13
  34. package/packages/table/src/util.ts +2 -0
  35. package/packages/toolbar/src/toolbar.ts +27 -25
  36. /package/es/{iconfont.1755245648660.ttf → iconfont.1755566168906.ttf} +0 -0
  37. /package/es/{iconfont.1755245648660.woff → iconfont.1755566168906.woff} +0 -0
  38. /package/es/{iconfont.1755245648660.woff2 → iconfont.1755566168906.woff2} +0 -0
  39. /package/lib/{iconfont.1755245648660.ttf → iconfont.1755566168906.ttf} +0 -0
  40. /package/lib/{iconfont.1755245648660.woff → iconfont.1755566168906.woff} +0 -0
  41. /package/lib/{iconfont.1755245648660.woff2 → iconfont.1755566168906.woff2} +0 -0
@@ -1,4 +1,4 @@
1
- import { h, inject, ref, Ref, provide, VNode, PropType, nextTick, TransitionGroup, createCommentVNode, reactive } from 'vue'
1
+ import { h, inject, ref, Ref, provide, VNode, PropType, nextTick, TransitionGroup, createCommentVNode, reactive, Teleport, onUnmounted } from 'vue'
2
2
  import { defineVxeComponent } from '../../../ui/src/comp'
3
3
  import { VxeUI } from '../../../ui'
4
4
  import { formatText } from '../../../ui/src/utils'
@@ -11,6 +11,17 @@ import type { VxeTableDefines, VxeTablePrivateMethods, VxeTableConstructor, VxeT
11
11
 
12
12
  const { getI18n, getIcon, renderEmptyElement } = VxeUI
13
13
 
14
+ export function createInternalData (): TableCustomPanelInternalData {
15
+ return {
16
+ // teleportTo: undefined,
17
+ // prevDragCol: undefined,
18
+ // prevDragGroupField: undefined,
19
+ // prevDragAggFnColid: undefined,
20
+ // prevDragToChild: false,
21
+ // prevDragPos: null
22
+ }
23
+ }
24
+
14
25
  export default defineVxeComponent({
15
26
  name: 'TableCustomPanel',
16
27
  props: {
@@ -46,13 +57,7 @@ export default defineVxeComponent({
46
57
  dragTipText: ''
47
58
  })
48
59
 
49
- const customPanelInternalData: TableCustomPanelInternalData = {
50
- // prevDragCol: undefined,
51
- // prevDragGroupField: undefined,
52
- // prevDragAggFnColid: undefined,
53
- // prevDragToChild: false,
54
- // prevDragPos: null
55
- }
60
+ let customPanelInternalData = createInternalData()
56
61
 
57
62
  const refMaps: TableCustomPanelPrivateRef = {
58
63
  refElem,
@@ -604,6 +609,7 @@ export default defineVxeComponent({
604
609
  const { customStore } = props
605
610
  const { treeConfig, rowGroupConfig, aggregateConfig } = tableProps
606
611
  const { isCustomStatus, customColumnList } = tableReactData
612
+ const { teleportToWrapperElem } = tableInternalData
607
613
  const customOpts = computeCustomOpts.value
608
614
  const { immediate } = customOpts
609
615
  const columnDragOpts = computeColumnDragOpts.value
@@ -745,141 +751,146 @@ export default defineVxeComponent({
745
751
  )
746
752
  }
747
753
  })
748
- return h('div', {
749
- ref: refElem,
750
- key: 'simple',
751
- class: ['vxe-table-custom-wrapper', `placement--${placement}`, {
752
- 'is--active': customStore.visible
753
- }],
754
- style: maxHeight && !['left', 'right'].includes(placement || '')
755
- ? {
756
- maxHeight: `${maxHeight}px`
757
- }
758
- : {}
759
- }, customStore.visible
760
- ? [
761
- h('div', {
762
- ref: refBodyWrapperElem,
763
- class: 'vxe-table-custom-simple--body-wrapper'
764
- }, [
765
- !treeConfig && (aggregateConfig || rowGroupConfig) && $xeTable.getPivotTableAggregateSimplePanel
766
- ? h($xeTable.getPivotTableAggregateSimplePanel(), {
767
- customStore
768
- })
769
- : renderEmptyElement($xeTable),
754
+ return h(Teleport, {
755
+ to: teleportToWrapperElem,
756
+ disabled: !($xeGantt && teleportToWrapperElem)
757
+ }, [
758
+ h('div', {
759
+ ref: refElem,
760
+ key: 'simple',
761
+ class: ['vxe-table-custom-wrapper', `placement--${placement}`, {
762
+ 'is--active': customStore.visible
763
+ }],
764
+ style: maxHeight && !['left', 'right'].includes(placement || '')
765
+ ? {
766
+ maxHeight: `${maxHeight}px`
767
+ }
768
+ : {}
769
+ }, customStore.visible
770
+ ? [
770
771
  h('div', {
771
- ref: refCustomBodyElem,
772
- class: 'vxe-table-custom--handle-wrapper'
772
+ ref: refBodyWrapperElem,
773
+ class: 'vxe-table-custom-simple--body-wrapper'
773
774
  }, [
775
+ !treeConfig && (aggregateConfig || rowGroupConfig) && $xeTable.getPivotTableAggregateSimplePanel
776
+ ? h($xeTable.getPivotTableAggregateSimplePanel(), {
777
+ customStore
778
+ })
779
+ : renderEmptyElement($xeTable),
774
780
  h('div', {
775
- class: 'vxe-table-custom--header'
776
- }, headerSlot
777
- ? $xeTable.callSlot(headerSlot, params)
778
- : [
779
- h('ul', {
780
- class: 'vxe-table-custom--panel-list'
781
- }, [
782
- h('li', {
783
- class: 'vxe-table-custom--option'
781
+ ref: refCustomBodyElem,
782
+ class: 'vxe-table-custom--handle-wrapper'
783
+ }, [
784
+ h('div', {
785
+ class: 'vxe-table-custom--header'
786
+ }, headerSlot
787
+ ? $xeTable.callSlot(headerSlot, params)
788
+ : [
789
+ h('ul', {
790
+ class: 'vxe-table-custom--panel-list'
784
791
  }, [
785
- allowVisible
786
- ? h('div', {
787
- class: ['vxe-table-custom--checkbox-option', {
788
- 'is--checked': isAllChecked,
789
- 'is--indeterminate': isAllIndeterminate
790
- }],
791
- title: getI18n('vxe.table.allTitle'),
792
- onClick: allOptionEvent
793
- }, [
794
- h('span', {
795
- class: ['vxe-checkbox--icon', isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
796
- }),
797
- h('span', {
792
+ h('li', {
793
+ class: 'vxe-table-custom--option'
794
+ }, [
795
+ allowVisible
796
+ ? h('div', {
797
+ class: ['vxe-table-custom--checkbox-option', {
798
+ 'is--checked': isAllChecked,
799
+ 'is--indeterminate': isAllIndeterminate
800
+ }],
801
+ title: getI18n('vxe.table.allTitle'),
802
+ onClick: allOptionEvent
803
+ }, [
804
+ h('span', {
805
+ class: ['vxe-checkbox--icon', isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
806
+ }),
807
+ h('span', {
808
+ class: 'vxe-checkbox--label'
809
+ }, getI18n('vxe.toolbar.customAll'))
810
+ ])
811
+ : h('span', {
798
812
  class: 'vxe-checkbox--label'
799
- }, getI18n('vxe.toolbar.customAll'))
800
- ])
801
- : h('span', {
802
- class: 'vxe-checkbox--label'
803
- }, getI18n('vxe.table.customTitle'))
813
+ }, getI18n('vxe.table.customTitle'))
814
+ ])
804
815
  ])
805
- ])
806
- ]),
807
- h('div', {
808
- class: 'vxe-table-custom--body'
809
- }, [
810
- topSlot
811
- ? h('div', {
812
- class: 'vxe-table-custom--panel-top'
813
- }, $xeTable.callSlot(topSlot, params))
814
- : renderEmptyElement($xeTable),
815
- defaultSlot
816
- ? h('div', {
817
- class: 'vxe-table-custom--panel-body'
818
- }, $xeTable.callSlot(defaultSlot, params))
819
- : h(TransitionGroup, {
820
- class: 'vxe-table-custom--panel-list',
821
- name: 'vxe-table-custom--list',
822
- tag: 'ul',
823
- ...customWrapperOns
824
- }, {
825
- default: () => colVNs
826
- }),
827
- bottomSlot
816
+ ]),
817
+ h('div', {
818
+ class: 'vxe-table-custom--body'
819
+ }, [
820
+ topSlot
821
+ ? h('div', {
822
+ class: 'vxe-table-custom--panel-top'
823
+ }, $xeTable.callSlot(topSlot, params))
824
+ : renderEmptyElement($xeTable),
825
+ defaultSlot
826
+ ? h('div', {
827
+ class: 'vxe-table-custom--panel-body'
828
+ }, $xeTable.callSlot(defaultSlot, params))
829
+ : h(TransitionGroup, {
830
+ class: 'vxe-table-custom--panel-list',
831
+ name: 'vxe-table-custom--list',
832
+ tag: 'ul',
833
+ ...customWrapperOns
834
+ }, {
835
+ default: () => colVNs
836
+ }),
837
+ bottomSlot
838
+ ? h('div', {
839
+ class: 'vxe-table-custom--panel-bottom'
840
+ }, $xeTable.callSlot(bottomSlot, params))
841
+ : renderEmptyElement($xeTable)
842
+ ]),
843
+ customOpts.showFooter
828
844
  ? h('div', {
829
- class: 'vxe-table-custom--panel-bottom'
830
- }, $xeTable.callSlot(bottomSlot, params))
831
- : renderEmptyElement($xeTable)
832
- ]),
833
- customOpts.showFooter
834
- ? h('div', {
835
- class: 'vxe-table-custom--footer'
836
- }, footerSlot
837
- ? $xeTable.callSlot(footerSlot, params)
838
- : [
839
- h('div', {
840
- class: 'vxe-table-custom--footer-buttons'
841
- }, [
842
- VxeUIButtonComponent
843
- ? h(VxeUIButtonComponent, {
844
- mode: 'text',
845
- content: customOpts.resetButtonText || getI18n('vxe.table.customRestore'),
846
- disabled: !isCustomStatus,
847
- onClick: resetCustomEvent
848
- })
849
- : createCommentVNode(),
850
- immediate
851
- ? (VxeUIButtonComponent
852
- ? h(VxeUIButtonComponent, {
853
- mode: 'text',
854
- content: customOpts.closeButtonText || getI18n('vxe.table.customClose'),
855
- onClick: cancelCloseEvent
856
- })
857
- : createCommentVNode())
858
- : (VxeUIButtonComponent
859
- ? h(VxeUIButtonComponent, {
860
- mode: 'text',
861
- content: customOpts.cancelButtonText || getI18n('vxe.table.customCancel'),
862
- onClick: cancelCustomEvent
863
- })
864
- : createCommentVNode()),
865
- immediate
866
- ? createCommentVNode()
867
- : (VxeUIButtonComponent
868
- ? h(VxeUIButtonComponent, {
869
- mode: 'text',
870
- status: 'primary',
871
- content: customOpts.confirmButtonText || getI18n('vxe.table.customConfirm'),
872
- onClick: confirmCustomEvent
873
- })
874
- : createCommentVNode())
845
+ class: 'vxe-table-custom--footer'
846
+ }, footerSlot
847
+ ? $xeTable.callSlot(footerSlot, params)
848
+ : [
849
+ h('div', {
850
+ class: 'vxe-table-custom--footer-buttons'
851
+ }, [
852
+ VxeUIButtonComponent
853
+ ? h(VxeUIButtonComponent, {
854
+ mode: 'text',
855
+ content: customOpts.resetButtonText || getI18n('vxe.table.customRestore'),
856
+ disabled: !isCustomStatus,
857
+ onClick: resetCustomEvent
858
+ })
859
+ : createCommentVNode(),
860
+ immediate
861
+ ? (VxeUIButtonComponent
862
+ ? h(VxeUIButtonComponent, {
863
+ mode: 'text',
864
+ content: customOpts.closeButtonText || getI18n('vxe.table.customClose'),
865
+ onClick: cancelCloseEvent
866
+ })
867
+ : createCommentVNode())
868
+ : (VxeUIButtonComponent
869
+ ? h(VxeUIButtonComponent, {
870
+ mode: 'text',
871
+ content: customOpts.cancelButtonText || getI18n('vxe.table.customCancel'),
872
+ onClick: cancelCustomEvent
873
+ })
874
+ : createCommentVNode()),
875
+ immediate
876
+ ? createCommentVNode()
877
+ : (VxeUIButtonComponent
878
+ ? h(VxeUIButtonComponent, {
879
+ mode: 'text',
880
+ status: 'primary',
881
+ content: customOpts.confirmButtonText || getI18n('vxe.table.customConfirm'),
882
+ onClick: confirmCustomEvent
883
+ })
884
+ : createCommentVNode())
885
+ ])
875
886
  ])
876
- ])
877
- : null
878
- ]),
879
- renderDragTip()
880
- ])
881
- ]
882
- : [])
887
+ : null
888
+ ]),
889
+ renderDragTip()
890
+ ])
891
+ ]
892
+ : [])
893
+ ])
883
894
  }
884
895
 
885
896
  const renderPopupPanel = () => {
@@ -1305,6 +1316,10 @@ export default defineVxeComponent({
1305
1316
  renderVN
1306
1317
  }
1307
1318
 
1319
+ onUnmounted(() => {
1320
+ customPanelInternalData = createInternalData()
1321
+ })
1322
+
1308
1323
  provide('$xeTableCustomPanel', $xeTableCustomPanel)
1309
1324
 
1310
1325
  return $xeTableCustomPanel
@@ -268,8 +268,8 @@ hooks.add('tableKeyboardModule', {
268
268
  const checkboxOpts = computeCheckboxOpts.value
269
269
  const mouseOpts = computeMouseOpts.value
270
270
  const editOpts = computeEditOpts.value
271
- if (mouseConfig && mouseOpts.area && $xeTable.triggerCellAreaModownEvent) {
272
- return $xeTable.triggerCellAreaModownEvent(evnt, params)
271
+ if (mouseConfig && mouseOpts.area && $xeTable.triggerCellAreaModnEvent) {
272
+ return $xeTable.triggerCellAreaModnEvent(evnt, params)
273
273
  } else {
274
274
  if (checkboxConfig && checkboxOpts.range) {
275
275
  handleCheckboxRangeEvent(evnt, params)
@@ -2583,7 +2583,7 @@ export default defineVxeComponent({
2583
2583
  if (mouseConfig && mouseOpts.selected && editStore.selected.row && editStore.selected.column) {
2584
2584
  $xeTable.addCellSelectedClass()
2585
2585
  }
2586
- if ($xeGanttView) {
2586
+ if ($xeGanttView && $xeGanttView.handleUpdateStyle) {
2587
2587
  $xeGanttView.handleUpdateStyle()
2588
2588
  }
2589
2589
  return nextTick()
@@ -3257,7 +3257,7 @@ export default defineVxeComponent({
3257
3257
  handleRecalculateStyle(reFull, reWidth, reHeight)
3258
3258
  )
3259
3259
  }
3260
- if ($xeGanttView) {
3260
+ if ($xeGanttView && $xeGanttView.handleLazyRecalculate) {
3261
3261
  $xeGanttView.handleLazyRecalculate()
3262
3262
  }
3263
3263
  internalData.rceTimeout = setTimeout(() => {
@@ -3874,8 +3874,8 @@ export default defineVxeComponent({
3874
3874
  // 如果gt为0,则总是启用
3875
3875
  const scrollYLoad = (transform || !treeConfig) && !!virtualYOpts.enabled && virtualYOpts.gt > -1 && (virtualYOpts.gt === 0 || virtualYOpts.gt < allList.length)
3876
3876
  reactData.scrollYLoad = scrollYLoad
3877
- if ($xeGanttView) {
3878
- $xeGanttView.updateScrollYStatus(scrollYLoad)
3877
+ if ($xeGanttView && $xeGanttView.handleUpdateSYStatus) {
3878
+ $xeGanttView.handleUpdateSYStatus(scrollYLoad)
3879
3879
  }
3880
3880
  return scrollYLoad
3881
3881
  }
@@ -5139,6 +5139,28 @@ export default defineVxeComponent({
5139
5139
  }
5140
5140
  return []
5141
5141
  },
5142
+ /**
5143
+ * 只对 tree-config 有效,用于树形结构,获取指定行的层级
5144
+ */
5145
+ getTreeRowLevel (rowOrRowid) {
5146
+ const { treeConfig } = props
5147
+ const { fullAllDataRowIdData } = internalData
5148
+ if (rowOrRowid && treeConfig) {
5149
+ let rowid
5150
+ if (XEUtils.isString(rowOrRowid)) {
5151
+ rowid = rowOrRowid
5152
+ } else {
5153
+ rowid = getRowid($xeTable, rowOrRowid)
5154
+ }
5155
+ if (rowid) {
5156
+ const rest = fullAllDataRowIdData[rowid]
5157
+ if (rest) {
5158
+ return rest.level
5159
+ }
5160
+ }
5161
+ }
5162
+ return -1
5163
+ },
5142
5164
  /**
5143
5165
  * 只对 tree-config 有效,获取行的父级
5144
5166
  */
@@ -5154,7 +5176,9 @@ export default defineVxeComponent({
5154
5176
  }
5155
5177
  if (rowid) {
5156
5178
  const rest = fullAllDataRowIdData[rowid]
5157
- return rest ? rest.parent : null
5179
+ if (rest) {
5180
+ return rest.parent
5181
+ }
5158
5182
  }
5159
5183
  }
5160
5184
  return null
@@ -5819,7 +5843,7 @@ export default defineVxeComponent({
5819
5843
  XEUtils.arrayEach(el.querySelectorAll(`[rowid="${getRowid($xeTable, row)}"]`), elem => addClass(elem, 'row--current'))
5820
5844
  }
5821
5845
  }
5822
- if ($xeGanttView) {
5846
+ if ($xeGanttView && $xeGanttView.handleUpdateCurrentRow) {
5823
5847
  $xeGanttView.handleUpdateCurrentRow(row)
5824
5848
  }
5825
5849
  return nextTick()
@@ -5868,7 +5892,7 @@ export default defineVxeComponent({
5868
5892
  if (el) {
5869
5893
  XEUtils.arrayEach(el.querySelectorAll('.row--current'), elem => removeClass(elem, 'row--current'))
5870
5894
  }
5871
- if ($xeGanttView) {
5895
+ if ($xeGanttView && $xeGanttView.handleUpdateCurrentRow) {
5872
5896
  $xeGanttView.handleUpdateCurrentRow()
5873
5897
  }
5874
5898
  return nextTick()
@@ -8097,7 +8121,7 @@ export default defineVxeComponent({
8097
8121
  })
8098
8122
  reactData.tableData = tableData
8099
8123
  internalData.visibleDataRowIdData = visibleDataRowIdMaps
8100
- if ($xeGanttView) {
8124
+ if ($xeGanttView && $xeGanttView.updateViewData) {
8101
8125
  $xeGanttView.updateViewData()
8102
8126
  }
8103
8127
  return nextTick()
@@ -10951,6 +10975,7 @@ export default defineVxeComponent({
10951
10975
  updateScrollXSpace () {
10952
10976
  const { scrollXLoad, overflowX, scrollXWidth } = reactData
10953
10977
  const { visibleColumn, scrollXStore, elemStore, fullColumnIdData } = internalData
10978
+ const $xeGanttView = internalData.xeGanttView
10954
10979
  const mouseOpts = computeMouseOpts.value
10955
10980
  const tableBody = refTableBody.value
10956
10981
  const tableBodyElem = tableBody ? tableBody.$el as HTMLDivElement : null
@@ -11023,6 +11048,9 @@ export default defineVxeComponent({
11023
11048
  if (isScrollXBig && mouseOpts.area) {
11024
11049
  errLog('vxe.error.notProp', ['mouse-config.area'])
11025
11050
  }
11051
+ if ($xeGanttView && $xeGanttView.handleUpdateSXSpace) {
11052
+ $xeGanttView.handleUpdateSXSpace()
11053
+ }
11026
11054
  return nextTick().then(() => {
11027
11055
  updateStyle()
11028
11056
  })
@@ -11134,8 +11162,8 @@ export default defineVxeComponent({
11134
11162
  if (isScrollYBig && mouseOpts.area) {
11135
11163
  errLog('vxe.error.notProp', ['mouse-config.area'])
11136
11164
  }
11137
- if ($xeGanttView) {
11138
- $xeGanttView.updateScrollYSpace()
11165
+ if ($xeGanttView && $xeGanttView.handleUpdateSYSpace) {
11166
+ $xeGanttView.handleUpdateSYSpace()
11139
11167
  }
11140
11168
  return nextTick().then(() => {
11141
11169
  updateStyle()
@@ -11214,7 +11242,7 @@ export default defineVxeComponent({
11214
11242
  XEUtils.arrayEach(el.querySelectorAll(`.vxe-body--row[rowid="${rowid}"]`), elem => addClass(elem, 'row--hover'))
11215
11243
  }
11216
11244
  internalData.hoverRow = row
11217
- if ($xeGanttView) {
11245
+ if ($xeGanttView && $xeGanttView.handleUpdateHoverRow) {
11218
11246
  $xeGanttView.handleUpdateHoverRow(row)
11219
11247
  }
11220
11248
  },
@@ -11225,7 +11253,7 @@ export default defineVxeComponent({
11225
11253
  XEUtils.arrayEach(el.querySelectorAll('.vxe-body--row.row--hover'), elem => removeClass(elem, 'row--hover'))
11226
11254
  }
11227
11255
  internalData.hoverRow = null
11228
- if ($xeGanttView) {
11256
+ if ($xeGanttView && $xeGanttView.handleUpdateHoverRow) {
11229
11257
  $xeGanttView.handleUpdateHoverRow()
11230
11258
  }
11231
11259
  },
@@ -12095,6 +12123,7 @@ export default defineVxeComponent({
12095
12123
  })
12096
12124
 
12097
12125
  onMounted(() => {
12126
+ const $xeGantt = $xeTable.xeGantt
12098
12127
  const columnOpts = computeColumnOpts.value
12099
12128
  const rowOpts = computeRowOpts.value
12100
12129
  const customOpts = computeCustomOpts.value
@@ -12102,6 +12131,14 @@ export default defineVxeComponent({
12102
12131
  const virtualYOpts = computeVirtualYOpts.value
12103
12132
  const { groupFields } = aggregateOpts
12104
12133
 
12134
+ if ($xeGantt) {
12135
+ const { refClassifyWrapperElem } = $xeGantt.getRefMaps()
12136
+ const classifyWrapperEl = refClassifyWrapperElem.value
12137
+ if (classifyWrapperEl) {
12138
+ internalData.teleportToWrapperElem = classifyWrapperEl
12139
+ }
12140
+ }
12141
+
12105
12142
  if (columnOpts.drag || rowOpts.drag || customOpts.allowSort) {
12106
12143
  initTpImg()
12107
12144
  }
@@ -12193,7 +12230,7 @@ export default defineVxeComponent({
12193
12230
  if (rowOpts.height && !props.showOverflow) {
12194
12231
  warnLog('vxe.error.notProp', ['table.show-overflow'])
12195
12232
  }
12196
- if (!$xeTable.triggerCellAreaModownEvent) {
12233
+ if (!$xeTable.triggerCellAreaModnEvent) {
12197
12234
  if (props.areaConfig) {
12198
12235
  warnLog('vxe.error.notProp', ['area-config'])
12199
12236
  }
@@ -122,6 +122,8 @@ export function createInternalData (): TableInternalData {
122
122
  // 表尾高度
123
123
  tFooterHeight: 0,
124
124
 
125
+ teleportToWrapperElem: null,
126
+
125
127
  inited: false,
126
128
  tooltipTimeout: null,
127
129
  initStatus: false,