vxe-table 4.16.0-beta.3 → 4.16.0-beta.5

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 (45) 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/cell.js +4 -0
  6. package/es/table/src/table.js +49 -12
  7. package/es/table/src/util.js +1 -0
  8. package/es/toolbar/src/toolbar.js +26 -24
  9. package/es/ui/index.js +1 -1
  10. package/es/ui/src/log.js +1 -1
  11. package/lib/index.umd.js +90 -47
  12. package/lib/index.umd.min.js +1 -1
  13. package/lib/style.css +1 -1
  14. package/lib/table/module/custom/hook.js +12 -3
  15. package/lib/table/module/custom/hook.min.js +1 -1
  16. package/lib/table/module/custom/panel.js +23 -9
  17. package/lib/table/module/custom/panel.min.js +1 -1
  18. package/lib/table/module/keyboard/hook.js +2 -2
  19. package/lib/table/module/keyboard/hook.min.js +1 -1
  20. package/lib/table/src/cell.js +8 -0
  21. package/lib/table/src/cell.min.js +1 -1
  22. package/lib/table/src/table.js +16 -14
  23. package/lib/table/src/table.min.js +1 -1
  24. package/lib/table/src/util.js +1 -0
  25. package/lib/table/src/util.min.js +1 -1
  26. package/lib/toolbar/src/toolbar.js +27 -17
  27. package/lib/toolbar/src/toolbar.min.js +1 -1
  28. package/lib/ui/index.js +1 -1
  29. package/lib/ui/index.min.js +1 -1
  30. package/lib/ui/src/log.js +1 -1
  31. package/lib/ui/src/log.min.js +1 -1
  32. package/package.json +1 -1
  33. package/packages/table/module/custom/hook.ts +10 -3
  34. package/packages/table/module/custom/panel.ts +150 -135
  35. package/packages/table/module/keyboard/hook.ts +2 -2
  36. package/packages/table/src/cell.ts +4 -0
  37. package/packages/table/src/table.ts +49 -12
  38. package/packages/table/src/util.ts +2 -0
  39. package/packages/toolbar/src/toolbar.ts +27 -25
  40. /package/es/{iconfont.1755253968888.ttf → iconfont.1755588973979.ttf} +0 -0
  41. /package/es/{iconfont.1755253968888.woff → iconfont.1755588973979.woff} +0 -0
  42. /package/es/{iconfont.1755253968888.woff2 → iconfont.1755588973979.woff2} +0 -0
  43. /package/lib/{iconfont.1755253968888.ttf → iconfont.1755588973979.ttf} +0 -0
  44. /package/lib/{iconfont.1755253968888.woff → iconfont.1755588973979.woff} +0 -0
  45. /package/lib/{iconfont.1755253968888.woff2 → iconfont.1755588973979.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)
@@ -412,6 +412,7 @@ export const Cell = {
412
412
  const { field, slots, editRender, cellRender, rowGroupNode, aggFunc } = column
413
413
  const renderOpts = editRender || cellRender
414
414
  const defaultSlot = slots ? slots.default : null
415
+ const gcSlot = slots ? (slots.groupContent || slots['group-content']) : null
415
416
  let cellValue: string | number | null = ''
416
417
  if (isRowGroupStatus && field && row.isAggregate) {
417
418
  const aggRow: VxeTableDefines.AggregateRowInfo = row
@@ -441,6 +442,9 @@ export const Cell = {
441
442
  */
442
443
  totalValue: childCount
443
444
  }
445
+ if (gcSlot) {
446
+ return renderCellBaseVNs(params, $table.callSlot(gcSlot, Object.assign({ groupField, groupContent, childCount }, params)))
447
+ }
444
448
  if (mode === 'column' ? field === aggRow.groupField : rowGroupNode) {
445
449
  cellValue = groupContent
446
450
  if (contentMethod) {
@@ -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(() => {
@@ -3514,6 +3514,7 @@ export default defineVxeComponent({
3514
3514
  }).then(() => {
3515
3515
  computeScrollLoad()
3516
3516
  }).then(() => {
3517
+ const virtualYOpts = computeVirtualYOpts.value
3517
3518
  // 是否启用了虚拟滚动
3518
3519
  if (sYLoad) {
3519
3520
  scrollYStore.endIndex = scrollYStore.visibleSize
@@ -3523,6 +3524,9 @@ export default defineVxeComponent({
3523
3524
  if (reactData.expandColumn && expandOpts.mode !== 'fixed') {
3524
3525
  errLog('vxe.error.notConflictProp', ['column.type="expand', 'expand-config.mode="fixed"'])
3525
3526
  }
3527
+ if (virtualYOpts.mode === 'scroll' && expandOpts.mode === 'fixed') {
3528
+ warnLog('vxe.error.notConflictProp', ['virtual-y-config.mode=scroll', 'expand-config.mode=inside'])
3529
+ }
3526
3530
  // if (showOverflow) {
3527
3531
  // if (!rowOpts.height) {
3528
3532
  // const errColumn = internalData.tableFullColumn.find(column => column.showOverflow === false)
@@ -3874,7 +3878,7 @@ export default defineVxeComponent({
3874
3878
  // 如果gt为0,则总是启用
3875
3879
  const scrollYLoad = (transform || !treeConfig) && !!virtualYOpts.enabled && virtualYOpts.gt > -1 && (virtualYOpts.gt === 0 || virtualYOpts.gt < allList.length)
3876
3880
  reactData.scrollYLoad = scrollYLoad
3877
- if ($xeGanttView) {
3881
+ if ($xeGanttView && $xeGanttView.handleUpdateSYStatus) {
3878
3882
  $xeGanttView.handleUpdateSYStatus(scrollYLoad)
3879
3883
  }
3880
3884
  return scrollYLoad
@@ -5139,6 +5143,28 @@ export default defineVxeComponent({
5139
5143
  }
5140
5144
  return []
5141
5145
  },
5146
+ /**
5147
+ * 只对 tree-config 有效,用于树形结构,获取指定行的层级
5148
+ */
5149
+ getTreeRowLevel (rowOrRowid) {
5150
+ const { treeConfig } = props
5151
+ const { fullAllDataRowIdData } = internalData
5152
+ if (rowOrRowid && treeConfig) {
5153
+ let rowid
5154
+ if (XEUtils.isString(rowOrRowid)) {
5155
+ rowid = rowOrRowid
5156
+ } else {
5157
+ rowid = getRowid($xeTable, rowOrRowid)
5158
+ }
5159
+ if (rowid) {
5160
+ const rest = fullAllDataRowIdData[rowid]
5161
+ if (rest) {
5162
+ return rest.level
5163
+ }
5164
+ }
5165
+ }
5166
+ return -1
5167
+ },
5142
5168
  /**
5143
5169
  * 只对 tree-config 有效,获取行的父级
5144
5170
  */
@@ -5154,7 +5180,9 @@ export default defineVxeComponent({
5154
5180
  }
5155
5181
  if (rowid) {
5156
5182
  const rest = fullAllDataRowIdData[rowid]
5157
- return rest ? rest.parent : null
5183
+ if (rest) {
5184
+ return rest.parent
5185
+ }
5158
5186
  }
5159
5187
  }
5160
5188
  return null
@@ -5819,7 +5847,7 @@ export default defineVxeComponent({
5819
5847
  XEUtils.arrayEach(el.querySelectorAll(`[rowid="${getRowid($xeTable, row)}"]`), elem => addClass(elem, 'row--current'))
5820
5848
  }
5821
5849
  }
5822
- if ($xeGanttView) {
5850
+ if ($xeGanttView && $xeGanttView.handleUpdateCurrentRow) {
5823
5851
  $xeGanttView.handleUpdateCurrentRow(row)
5824
5852
  }
5825
5853
  return nextTick()
@@ -5868,7 +5896,7 @@ export default defineVxeComponent({
5868
5896
  if (el) {
5869
5897
  XEUtils.arrayEach(el.querySelectorAll('.row--current'), elem => removeClass(elem, 'row--current'))
5870
5898
  }
5871
- if ($xeGanttView) {
5899
+ if ($xeGanttView && $xeGanttView.handleUpdateCurrentRow) {
5872
5900
  $xeGanttView.handleUpdateCurrentRow()
5873
5901
  }
5874
5902
  return nextTick()
@@ -8097,7 +8125,7 @@ export default defineVxeComponent({
8097
8125
  })
8098
8126
  reactData.tableData = tableData
8099
8127
  internalData.visibleDataRowIdData = visibleDataRowIdMaps
8100
- if ($xeGanttView) {
8128
+ if ($xeGanttView && $xeGanttView.updateViewData) {
8101
8129
  $xeGanttView.updateViewData()
8102
8130
  }
8103
8131
  return nextTick()
@@ -11024,7 +11052,7 @@ export default defineVxeComponent({
11024
11052
  if (isScrollXBig && mouseOpts.area) {
11025
11053
  errLog('vxe.error.notProp', ['mouse-config.area'])
11026
11054
  }
11027
- if ($xeGanttView) {
11055
+ if ($xeGanttView && $xeGanttView.handleUpdateSXSpace) {
11028
11056
  $xeGanttView.handleUpdateSXSpace()
11029
11057
  }
11030
11058
  return nextTick().then(() => {
@@ -11138,7 +11166,7 @@ export default defineVxeComponent({
11138
11166
  if (isScrollYBig && mouseOpts.area) {
11139
11167
  errLog('vxe.error.notProp', ['mouse-config.area'])
11140
11168
  }
11141
- if ($xeGanttView) {
11169
+ if ($xeGanttView && $xeGanttView.handleUpdateSYSpace) {
11142
11170
  $xeGanttView.handleUpdateSYSpace()
11143
11171
  }
11144
11172
  return nextTick().then(() => {
@@ -11218,7 +11246,7 @@ export default defineVxeComponent({
11218
11246
  XEUtils.arrayEach(el.querySelectorAll(`.vxe-body--row[rowid="${rowid}"]`), elem => addClass(elem, 'row--hover'))
11219
11247
  }
11220
11248
  internalData.hoverRow = row
11221
- if ($xeGanttView) {
11249
+ if ($xeGanttView && $xeGanttView.handleUpdateHoverRow) {
11222
11250
  $xeGanttView.handleUpdateHoverRow(row)
11223
11251
  }
11224
11252
  },
@@ -11229,7 +11257,7 @@ export default defineVxeComponent({
11229
11257
  XEUtils.arrayEach(el.querySelectorAll('.vxe-body--row.row--hover'), elem => removeClass(elem, 'row--hover'))
11230
11258
  }
11231
11259
  internalData.hoverRow = null
11232
- if ($xeGanttView) {
11260
+ if ($xeGanttView && $xeGanttView.handleUpdateHoverRow) {
11233
11261
  $xeGanttView.handleUpdateHoverRow()
11234
11262
  }
11235
11263
  },
@@ -12099,6 +12127,7 @@ export default defineVxeComponent({
12099
12127
  })
12100
12128
 
12101
12129
  onMounted(() => {
12130
+ const $xeGantt = $xeTable.xeGantt
12102
12131
  const columnOpts = computeColumnOpts.value
12103
12132
  const rowOpts = computeRowOpts.value
12104
12133
  const customOpts = computeCustomOpts.value
@@ -12106,6 +12135,14 @@ export default defineVxeComponent({
12106
12135
  const virtualYOpts = computeVirtualYOpts.value
12107
12136
  const { groupFields } = aggregateOpts
12108
12137
 
12138
+ if ($xeGantt) {
12139
+ const { refClassifyWrapperElem } = $xeGantt.getRefMaps()
12140
+ const classifyWrapperEl = refClassifyWrapperElem.value
12141
+ if (classifyWrapperEl) {
12142
+ internalData.teleportToWrapperElem = classifyWrapperEl
12143
+ }
12144
+ }
12145
+
12109
12146
  if (columnOpts.drag || rowOpts.drag || customOpts.allowSort) {
12110
12147
  initTpImg()
12111
12148
  }
@@ -12197,7 +12234,7 @@ export default defineVxeComponent({
12197
12234
  if (rowOpts.height && !props.showOverflow) {
12198
12235
  warnLog('vxe.error.notProp', ['table.show-overflow'])
12199
12236
  }
12200
- if (!$xeTable.triggerCellAreaModownEvent) {
12237
+ if (!$xeTable.triggerCellAreaModnEvent) {
12201
12238
  if (props.areaConfig) {
12202
12239
  warnLog('vxe.error.notProp', ['area-config'])
12203
12240
  }
@@ -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,