vxe-table 3.25.0-beta.1 → 3.25.0-beta.2

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 (52) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/style.min.css +1 -1
  5. package/es/table/src/methods.js +246 -44
  6. package/es/table/src/props.js +2 -1
  7. package/es/table/src/scrollbar.js +54 -0
  8. package/es/table/src/table.js +266 -64
  9. package/es/table/src/util.js +11 -2
  10. package/es/table/style.css +30 -0
  11. package/es/table/style.min.css +1 -1
  12. package/es/ui/index.js +1 -1
  13. package/es/ui/src/log.js +1 -1
  14. package/es/vxe-table/style.css +30 -0
  15. package/es/vxe-table/style.min.css +1 -1
  16. package/lib/index.css +1 -1
  17. package/lib/index.min.css +1 -1
  18. package/lib/index.umd.js +337 -66
  19. package/lib/index.umd.min.js +1 -1
  20. package/lib/style.css +1 -1
  21. package/lib/style.min.css +1 -1
  22. package/lib/table/src/methods.js +21 -11
  23. package/lib/table/src/methods.min.js +1 -1
  24. package/lib/table/src/props.js +2 -1
  25. package/lib/table/src/props.min.js +1 -1
  26. package/lib/table/src/scrollbar.js +63 -0
  27. package/lib/table/src/scrollbar.min.js +1 -0
  28. package/lib/table/src/table.js +249 -52
  29. package/lib/table/src/table.min.js +1 -1
  30. package/lib/table/src/util.js +11 -2
  31. package/lib/table/src/util.min.js +1 -1
  32. package/lib/table/style/style.css +30 -0
  33. package/lib/table/style/style.min.css +1 -1
  34. package/lib/ui/index.js +1 -1
  35. package/lib/ui/index.min.js +1 -1
  36. package/lib/ui/src/log.js +1 -1
  37. package/lib/ui/src/log.min.js +1 -1
  38. package/lib/vxe-table/style/style.css +30 -0
  39. package/lib/vxe-table/style/style.min.css +1 -1
  40. package/package.json +2 -2
  41. package/packages/table/src/methods.ts +258 -44
  42. package/packages/table/src/props.ts +2 -1
  43. package/packages/table/src/scrollbar.ts +57 -0
  44. package/packages/table/src/table.ts +300 -69
  45. package/packages/table/src/util.ts +15 -2
  46. package/styles/components/table.scss +65 -0
  47. /package/es/{iconfont.1791954189007.ttf → iconfont.1792035018941.ttf} +0 -0
  48. /package/es/{iconfont.1791954189007.woff → iconfont.1792035018941.woff} +0 -0
  49. /package/es/{iconfont.1791954189007.woff2 → iconfont.1792035018941.woff2} +0 -0
  50. /package/lib/{iconfont.1791954189007.ttf → iconfont.1792035018941.ttf} +0 -0
  51. /package/lib/{iconfont.1791954189007.woff → iconfont.1792035018941.woff} +0 -0
  52. /package/lib/{iconfont.1791954189007.woff2 → iconfont.1792035018941.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -3323,7 +3323,7 @@ function getDefaultConfig(val1, def1) {
3323
3323
  /* unused harmony import specifier */ var VxeUI;
3324
3324
 
3325
3325
 
3326
- const version = "3.25.0-beta.1";
3326
+ const version = "3.25.0-beta.2";
3327
3327
  core_.VxeUI.version = version;
3328
3328
  core_.VxeUI.tableVersion = version;
3329
3329
  core_.VxeUI.setConfig({
@@ -4283,7 +4283,7 @@ function getPopupAppendElement(appendTo) {
4283
4283
  const {
4284
4284
  log: log_log
4285
4285
  } = core_.VxeUI;
4286
- const tableVersion = `table v${"3.25.0-beta.1"}`;
4286
+ const tableVersion = `table v${"3.25.0-beta.2"}`;
4287
4287
  function createComponentLog(name) {
4288
4288
  const uiVersion = core_.VxeUI.uiVersion ? `ui v${core_.VxeUI.uiVersion}` : '';
4289
4289
  const ganttVersion = core_.VxeUI.ganttVersion ? `gantt v${core_.VxeUI.ganttVersion}` : '';
@@ -4610,9 +4610,15 @@ function createInternalData() {
4610
4610
  // 当前行
4611
4611
  currentRow: null,
4612
4612
  currentCol: null,
4613
- // 最后滚动位置
4614
- lastScrollLeft: 0,
4613
+ // resizeObserver: undefined,
4614
+ // 滚动条
4615
+ // scrollObserver: undefined,
4616
+ // isThumbDrag: false,
4617
+ thumbDragOffset: 0,
4618
+ yThumbTop: 0,
4619
+ xThumbLeft: 0,
4615
4620
  lastScrollTop: 0,
4621
+ lastScrollLeft: 0,
4616
4622
  // 单选框属性,已选中保留的行
4617
4623
  radioReserveRow: null,
4618
4624
  // 复选框属性,已选中保留的行集合
@@ -4744,6 +4750,9 @@ function createReactData() {
4744
4750
  scrollbarWidth: 0,
4745
4751
  // 横向滚动条的高度
4746
4752
  scrollbarHeight: 0,
4753
+ // 滚动条
4754
+ yThumbHeight: 0,
4755
+ xThumbWidth: 0,
4747
4756
  // 行高
4748
4757
  rowHeight: 0,
4749
4758
  // 表格父容器的高度
@@ -7656,6 +7665,7 @@ const Colgroup = VxeColgroup;
7656
7665
  var es_iterator_filter = __webpack_require__(2489);
7657
7666
  ;// ./packages/table/src/props.ts
7658
7667
 
7668
+
7659
7669
  const {
7660
7670
  getConfig: props_getConfig
7661
7671
  } = core_.VxeUI;
@@ -7965,7 +7975,7 @@ const tableProps = {
7965
7975
  virtualYConfig: Object,
7966
7976
  useScrollbar: {
7967
7977
  type: Boolean,
7968
- default: () => props_getConfig().table.useScrollbar
7978
+ default: () => getDefaultConfig(props_getConfig().table.useScrollbar, props_getConfig().useScrollbar)
7969
7979
  },
7970
7980
  // 滚动条配置项
7971
7981
  scrollbarConfig: Object,
@@ -8044,6 +8054,61 @@ function clearColAnimate(elem, clss) {
8044
8054
  }
8045
8055
  }, 500);
8046
8056
  }
8057
+ ;// ./packages/table/src/scrollbar.ts
8058
+ /**
8059
+ * 计算滚动条滑块的长度
8060
+ */
8061
+ function getThumbSize(viewportSize, contentSize, trackSize) {
8062
+ if (contentSize <= viewportSize) {
8063
+ return 0;
8064
+ }
8065
+ const ratio = viewportSize / contentSize;
8066
+ const ideal = trackSize * ratio;
8067
+ return Math.max(20, Math.min(ideal, trackSize));
8068
+ }
8069
+ /**
8070
+ * 计算滚动条滑块的偏移位置
8071
+ */
8072
+ function getThumbOffsetSize(offsetSize, viewportSize, contentSize, trackSize, thumbSize) {
8073
+ const maxScroll = contentSize - viewportSize;
8074
+ if (maxScroll <= 0) {
8075
+ return 0;
8076
+ }
8077
+ const maxThumbOffset = trackSize - thumbSize;
8078
+ if (maxThumbOffset <= 0) {
8079
+ return 0;
8080
+ }
8081
+ const clamped = Math.min(Math.max(offsetSize, 0), maxScroll);
8082
+ const ratio = clamped / maxScroll;
8083
+ return ratio * maxThumbOffset;
8084
+ }
8085
+ /**
8086
+ * 根据点击轨道的位置,计算滑块的偏移位置
8087
+ */
8088
+ function getScrollFromClick(clickPosition, viewportSize, contentSize, trackSize, thumbSize) {
8089
+ const maxThumbOffset = trackSize - thumbSize;
8090
+ const maxScroll = contentSize - viewportSize;
8091
+ if (maxScroll <= 0 || maxThumbOffset <= 0) {
8092
+ return 0;
8093
+ }
8094
+ let thumbOffset = clickPosition - thumbSize / 2;
8095
+ thumbOffset = Math.min(Math.max(thumbOffset, 0), maxThumbOffset);
8096
+ const scrollOffset = thumbOffset / maxThumbOffset * maxScroll;
8097
+ return scrollOffset;
8098
+ }
8099
+ /**
8100
+ * 拖拽 thumb 时,根据鼠标位置计算滑块的偏移位置
8101
+ */
8102
+ function getScrollFromDrag(pointerPosition, dragOffset, viewportSize, contentSize, trackSize, thumbSize) {
8103
+ const maxScroll = contentSize - viewportSize;
8104
+ const maxThumbOffset = trackSize - thumbSize;
8105
+ if (maxScroll <= 0 || maxThumbOffset <= 0) {
8106
+ return 0;
8107
+ }
8108
+ let thumbOffset = pointerPosition - dragOffset;
8109
+ thumbOffset = Math.min(Math.max(thumbOffset, 0), maxThumbOffset);
8110
+ return thumbOffset / maxThumbOffset * maxScroll;
8111
+ }
8047
8112
  ;// ./packages/table/src/store.ts
8048
8113
  // 跨表拖拽
8049
8114
  const crossTableDragRowGlobal = {
@@ -8118,7 +8183,7 @@ if(sortMultiple){tableData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_
8118
8183
  if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(firstOrderColumn.sortBy)){sortByConfs=firstOrderColumn.sortBy.map(item=>[item,firstOrderColumn.order]);}tableData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(tableData,sortByConfs||[firstOrderColumn].map(({column,order})=>[getOrderField($xeTable,column),order]));}tableData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(tableData,orderColumns.map(({column,order})=>[getOrderField($xeTable,column),order]));}tableTree=tableData;}}}else{if(isRowGroupStatus){// 还原行分组
8119
8184
  // 还原虚拟树
8120
8185
  tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(tableFullGroupData,()=>true,{original:true,isEvery:true,children:aggregateOpts.mapChildrenField,mapChildren:aggregateOpts.childrenField});tableData=tableTree;}else if(treeConfig&&transform&&isSortDeep!==false){// 还原虚拟树
8121
- tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(tableFullTreeData,()=>true,{original:true,isEvery,children:mapChildrenField,mapChildren:childrenField});tableData=tableTree;}else{tableData=treeConfig?tableFullTreeData.slice(0):tableFullData.slice(0);tableTree=tableData;}}internalData.afterFullData=tableData;internalData.afterTreeFullData=tableTree;internalData.afterGroupFullData=tableTree;updateAfterDataIndex($xeTable);}function updateStyle($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const $xeGantt=$xeTable.$xeGantt;const{mouseConfig}=props;const{isGroup,tableColumn,overflowX,scrollbarWidth,overflowY,scrollbarHeight,scrollXWidth,columnStore,editStore,isColLoading}=reactData;const{visibleColumn,tableHeight,elemStore,currentRow,customHeight,customMinHeight,customMaxHeight,tHeaderHeight,tFooterHeight}=internalData;const $xeGanttView=internalData.xeGanttView;const el=$xeTable.$refs.refElem;if(!el||internalData.tBodyHeight&&!el.clientHeight){return;}const browseObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().browse();const containerList=['main','left','right'];const{leftList,rightList}=columnStore;let osbWidth=overflowY?scrollbarWidth:0;let osbHeight=overflowX?scrollbarHeight:0;const emptyPlaceholderElem=$xeTable.$refs.refEmptyPlaceholder;const isHeaderRenderOptimize=$xeTable.computeIsHeaderRenderOptimize;const isBodyRenderOptimize=$xeTable.computeIsBodyRenderOptimize;const isFooterRenderOptimize=$xeTable.computeIsFooterRenderOptimize;const mouseOpts=$xeTable.computeMouseOpts;const bodyWrapperElem=getRefElem(elemStore['main-body-wrapper']);const bodyTableElem=getRefElem(elemStore['main-body-table']);if(emptyPlaceholderElem){emptyPlaceholderElem.style.top=`${tHeaderHeight}px`;emptyPlaceholderElem.style.height=bodyWrapperElem?`${bodyWrapperElem.offsetHeight-osbHeight}px`:'';}const scrollbarXOpts=$xeTable.computeScrollbarXOpts;const scrollbarYOpts=$xeTable.computeScrollbarYOpts;const scrollbarYToLeft=$xeTable.computeScrollbarYToLeft;let xScrollbarVisible=overflowX?'visible':'hidden';const hideXScroll=scrollbarXOpts.visible===false||scrollbarXOpts.visible==='hidden';if(!hideXScroll||$xeGanttView){osbHeight=scrollbarHeight;xScrollbarVisible='visible';}else if(hideXScroll){osbHeight=0;xScrollbarVisible='hidden';}let yScrollbarVisible=overflowY?'visible':'hidden';const showYScroll=!(scrollbarYOpts.visible===false||scrollbarYOpts.visible==='hidden');if(!showYScroll||$xeGantt&&$xeGanttView&&$xeGantt.reactData.showRightView&&!scrollbarYToLeft){osbWidth=0;yScrollbarVisible='hidden';}else if(showYScroll){osbWidth=scrollbarWidth;yScrollbarVisible='visible';}let tbHeight=0;let bodyMaxHeight=0;const bodyMinHeight=customMinHeight-tHeaderHeight-tFooterHeight-osbHeight;if(customMaxHeight){bodyMaxHeight=Math.max(bodyMinHeight,customMaxHeight-tHeaderHeight-tFooterHeight-osbHeight);}if(customHeight){tbHeight=customHeight-tHeaderHeight-tFooterHeight-osbHeight;}if(!tbHeight){if(bodyTableElem){tbHeight=bodyTableElem.clientHeight;}}if(tbHeight){if(bodyMaxHeight){tbHeight=Math.min(bodyMaxHeight,tbHeight);}tbHeight=Math.max(bodyMinHeight,tbHeight);}const xLeftCornerEl=$xeTable.$refs.refScrollXLeftCornerElem;const xRightCornerEl=$xeTable.$refs.refScrollXRightCornerElem;const scrollXVirtualEl=$xeTable.$refs.refScrollXVirtualElem;if(scrollXVirtualEl){scrollXVirtualEl.style.height=`${osbHeight}px`;scrollXVirtualEl.style.visibility=xScrollbarVisible;}const xWrapperEl=$xeTable.$refs.refScrollXWrapperElem;if(xWrapperEl){xWrapperEl.style.width=`${el.clientWidth-osbWidth}px`;if(scrollbarYToLeft){xWrapperEl.style.left=`${osbWidth}px`;}else{xWrapperEl.style.left='';}}if(xLeftCornerEl){if(scrollbarYToLeft){xLeftCornerEl.style.width=`${osbWidth}px`;xLeftCornerEl.style.display=overflowY&&osbWidth?'block':'';}else{xLeftCornerEl.style.display='';}}if(xRightCornerEl){if(scrollbarYToLeft){xRightCornerEl.style.display='';}else{xRightCornerEl.style.width=`${osbWidth}px`;xRightCornerEl.style.display=xScrollbarVisible==='visible'?'block':'';}}const scrollYVirtualEl=$xeTable.$refs.refScrollYVirtualElem;if(scrollYVirtualEl){scrollYVirtualEl.style.width=`${osbWidth}px`;scrollYVirtualEl.style.height=`${tbHeight+tHeaderHeight+tFooterHeight}px`;scrollYVirtualEl.style.visibility=yScrollbarVisible;}const yTopCornerEl=$xeTable.$refs.refScrollYTopCornerElem;if(yTopCornerEl){yTopCornerEl.style.height=`${tHeaderHeight}px`;yTopCornerEl.style.display=tHeaderHeight&&yScrollbarVisible==='visible'?'block':'';}const yWrapperEl=$xeTable.$refs.refScrollYWrapperElem;if(yWrapperEl){yWrapperEl.style.height=`${tbHeight}px`;yWrapperEl.style.top=`${tHeaderHeight}px`;}const yBottomCornerEl=$xeTable.$refs.refScrollYBottomCornerElem;if(yBottomCornerEl){yBottomCornerEl.style.height=`${tFooterHeight}px`;yBottomCornerEl.style.top=`${tHeaderHeight+tbHeight}px`;yBottomCornerEl.style.display=tFooterHeight&&yScrollbarVisible==='visible'?'block':'';}const rowExpandEl=$xeTable.$refs.refRowExpandElem;if(rowExpandEl){rowExpandEl.style.height=`${tbHeight}px`;rowExpandEl.style.top=`${tHeaderHeight}px`;}internalData.tBodyHeight=tbHeight;containerList.forEach((name,index)=>{const fixedType=index>0?name:'';const layoutList=['header','body','footer'];const isFixedLeft=fixedType==='left';let fixedColumn=[];let fixedWrapperElem;if(fixedType){fixedColumn=isFixedLeft?leftList:rightList;fixedWrapperElem=isFixedLeft?$xeTable.$refs.refLeftContainer:$xeTable.$refs.refRightContainer;}layoutList.forEach(layout=>{const wrapperElem=getRefElem(elemStore[`${name}-${layout}-wrapper`]);const currScrollElem=getRefElem(elemStore[`${name}-${layout}-scroll`]);const tableElem=getRefElem(elemStore[`${name}-${layout}-table`]);if(layout==='header'){// 表头体样式处理
8186
+ tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(tableFullTreeData,()=>true,{original:true,isEvery,children:mapChildrenField,mapChildren:childrenField});tableData=tableTree;}else{tableData=treeConfig?tableFullTreeData.slice(0):tableFullData.slice(0);tableTree=tableData;}}internalData.afterFullData=tableData;internalData.afterTreeFullData=tableTree;internalData.afterGroupFullData=tableTree;updateAfterDataIndex($xeTable);}function updateStyle($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const $xeGantt=$xeTable.$xeGantt;const{mouseConfig}=props;const{isGroup,tableColumn,overflowX,scrollbarWidth,overflowY,scrollbarHeight,scrollXWidth,columnStore,editStore,isColLoading}=reactData;const{visibleColumn,tableHeight,elemStore,currentRow,customHeight,customMinHeight,customMaxHeight,tHeaderHeight,tFooterHeight}=internalData;const $xeGanttView=internalData.xeGanttView;const el=$xeTable.$refs.refElem;if(!el||internalData.tBodyHeight&&!el.clientHeight){return;}const browseObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().browse();const containerList=['main','left','right'];const{leftList,rightList}=columnStore;let osbWidth=overflowY?scrollbarWidth:0;let osbHeight=overflowX?scrollbarHeight:0;const emptyPlaceholderElem=$xeTable.$refs.refEmptyPlaceholder;const isHeaderRenderOptimize=$xeTable.computeIsHeaderRenderOptimize;const isBodyRenderOptimize=$xeTable.computeIsBodyRenderOptimize;const isFooterRenderOptimize=$xeTable.computeIsFooterRenderOptimize;const mouseOpts=$xeTable.computeMouseOpts;const bodyWrapperElem=getRefElem(elemStore['main-body-wrapper']);const bodyTableElem=getRefElem(elemStore['main-body-table']);if(emptyPlaceholderElem){emptyPlaceholderElem.style.top=`${tHeaderHeight}px`;emptyPlaceholderElem.style.height=bodyWrapperElem?`${bodyWrapperElem.offsetHeight-osbHeight}px`:'';}const scrollXVisible=$xeTable.computeScrollXVisible;const scrollYVisible=$xeTable.computeScrollYVisible;const scrollbarYToLeft=$xeTable.computeScrollbarYToLeft;let xScrollbarVisible=overflowX?'visible':'hidden';const hideXScroll=scrollXVisible===false||scrollXVisible==='hidden';if(scrollXVisible==='visible'||$xeGanttView){osbHeight=scrollbarHeight;xScrollbarVisible='visible';}else if(hideXScroll){osbHeight=0;xScrollbarVisible='hidden';}let yScrollbarVisible=overflowY?'visible':'hidden';const hideYScroll=scrollYVisible===false||scrollYVisible==='hidden';if(hideYScroll||$xeGantt&&$xeGanttView&&$xeGantt.reactData.showRightView&&!scrollbarYToLeft){osbWidth=0;yScrollbarVisible='hidden';}else if(scrollYVisible==='visible'){osbWidth=scrollbarWidth;yScrollbarVisible='visible';}let tbHeight=0;let bodyMaxHeight=0;const bodyMinHeight=customMinHeight-tHeaderHeight-tFooterHeight-osbHeight;if(customMaxHeight){bodyMaxHeight=Math.max(bodyMinHeight,customMaxHeight-tHeaderHeight-tFooterHeight-osbHeight);}if(customHeight){tbHeight=customHeight-tHeaderHeight-tFooterHeight-osbHeight;}if(!tbHeight){if(bodyTableElem){tbHeight=bodyTableElem.clientHeight;}}if(tbHeight){if(bodyMaxHeight){tbHeight=Math.min(bodyMaxHeight,tbHeight);}tbHeight=Math.max(bodyMinHeight,tbHeight);}const xLeftCornerEl=$xeTable.$refs.refScrollXLeftCornerElem;const xRightCornerEl=$xeTable.$refs.refScrollXRightCornerElem;const scrollXVirtualEl=$xeTable.$refs.refScrollXVirtualElem;if(scrollXVirtualEl){scrollXVirtualEl.style.height=`${osbHeight}px`;scrollXVirtualEl.style.visibility=xScrollbarVisible;}const xWrapperEl=$xeTable.$refs.refScrollXWrapperElem;if(xWrapperEl){xWrapperEl.style.width=`${el.clientWidth-osbWidth}px`;if(scrollbarYToLeft){xWrapperEl.style.left=`${osbWidth}px`;}else{xWrapperEl.style.left='';}}if(xLeftCornerEl){if(scrollbarYToLeft){xLeftCornerEl.style.width=`${osbWidth}px`;xLeftCornerEl.style.display=overflowY&&osbWidth?'block':'';}else{xLeftCornerEl.style.display='';}}if(xRightCornerEl){if(scrollbarYToLeft){xRightCornerEl.style.display='';}else{xRightCornerEl.style.width=`${osbWidth}px`;xRightCornerEl.style.display=xScrollbarVisible==='visible'?'block':'';}}const scrollYVirtualEl=$xeTable.$refs.refScrollYVirtualElem;if(scrollYVirtualEl){scrollYVirtualEl.style.width=`${osbWidth}px`;scrollYVirtualEl.style.height=`${tbHeight+tHeaderHeight+tFooterHeight}px`;scrollYVirtualEl.style.visibility=yScrollbarVisible;}const yTopCornerEl=$xeTable.$refs.refScrollYTopCornerElem;if(yTopCornerEl){yTopCornerEl.style.height=`${tHeaderHeight}px`;yTopCornerEl.style.display=tHeaderHeight&&yScrollbarVisible==='visible'?'block':'';}const yWrapperEl=$xeTable.$refs.refScrollYWrapperElem;if(yWrapperEl){yWrapperEl.style.height=`${tbHeight}px`;yWrapperEl.style.top=`${tHeaderHeight}px`;}const yBottomCornerEl=$xeTable.$refs.refScrollYBottomCornerElem;if(yBottomCornerEl){yBottomCornerEl.style.height=`${tFooterHeight}px`;yBottomCornerEl.style.top=`${tHeaderHeight+tbHeight}px`;yBottomCornerEl.style.display=tFooterHeight&&yScrollbarVisible==='visible'?'block':'';}const rowExpandEl=$xeTable.$refs.refRowExpandElem;if(rowExpandEl){rowExpandEl.style.height=`${tbHeight}px`;rowExpandEl.style.top=`${tHeaderHeight}px`;}internalData.tBodyHeight=tbHeight;containerList.forEach((name,index)=>{const fixedType=index>0?name:'';const layoutList=['header','body','footer'];const isFixedLeft=fixedType==='left';let fixedColumn=[];let fixedWrapperElem;if(fixedType){fixedColumn=isFixedLeft?leftList:rightList;fixedWrapperElem=isFixedLeft?$xeTable.$refs.refLeftContainer:$xeTable.$refs.refRightContainer;}layoutList.forEach(layout=>{const wrapperElem=getRefElem(elemStore[`${name}-${layout}-wrapper`]);const currScrollElem=getRefElem(elemStore[`${name}-${layout}-scroll`]);const tableElem=getRefElem(elemStore[`${name}-${layout}-table`]);if(layout==='header'){// 表头体样式处理
8122
8187
  // 横向滚动渲染
8123
8188
  let renderColumnList=tableColumn;const isOptimizeMode=isHeaderRenderOptimize;if(isGroup){renderColumnList=visibleColumn;}else{if(!isOptimizeMode||!isColLoading&&(fixedType||!overflowX)){renderColumnList=visibleColumn;}if(fixedType){// 如果是使用优化模式
8124
8189
  if(isOptimizeMode){renderColumnList=fixedColumn||[];}}}const tWidth=renderColumnList.reduce((previous,column)=>previous+column.renderWidth,0);if(fixedType){if(isGroup){if(wrapperElem){wrapperElem.style.width=scrollXWidth?`${scrollXWidth}px`:'';}}else{if(isOptimizeMode){if(wrapperElem){wrapperElem.style.width=tWidth?`${tWidth}px`:'';}}else{if(wrapperElem){wrapperElem.style.width=scrollXWidth?`${scrollXWidth}px`:'';}}}}if(currScrollElem){currScrollElem.style.height=`${tHeaderHeight}px`;}if(tableElem){tableElem.style.width=tWidth?`${tWidth}px`:'';}}else if(layout==='body'){if(currScrollElem){currScrollElem.style.maxHeight=customMaxHeight?`${bodyMaxHeight}px`:'';currScrollElem.style.height=customHeight?`${tbHeight}px`:'';currScrollElem.style.minHeight=`${bodyMinHeight}px`;}// 如果是固定列
@@ -8188,7 +8253,7 @@ val=144;}}else{val=defMinHeight;}}}let num=0;if(val){if(val==='100%'||val==='aut
8188
8253
  * 支持动态列表调整分配
8189
8254
  * 支持自动分配偏移量
8190
8255
  * 支持 width=60 width=60px width=10% min-width=60 min-width=60px min-width=10%
8191
- */function autoCellWidth($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const bodyWrapperElem=getRefElem(elemStore['main-body-wrapper']);if(!bodyWrapperElem){return;}const yHandleEl=$xeTable.$refs.refScrollYHandleElem;if(!yHandleEl){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;if(!xHandleEl){return;}const columnOpts=$xeTable.computeColumnOpts;let tWidth=0;const minCellWidth=40;// 列宽最少限制 40px
8256
+ */function autoCellWidth($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const bodyWrapperElem=getRefElem(elemStore['main-body-wrapper']);if(!bodyWrapperElem){return;}const columnOpts=$xeTable.computeColumnOpts;let tWidth=0;const minCellWidth=40;// 列宽最少限制 40px
8192
8257
  const bodyWidth=bodyWrapperElem.clientWidth;let remainWidth=bodyWidth;let meanWidth=remainWidth/100;const{fit}=props;const{columnStore}=reactData;const{resizeList,pxMinList,autoMinList,pxList,scaleList,scaleMinList,autoList,remainList}=columnStore;const parseColumnMaxWidth=column=>{const maxWidth=column.maxWidth||columnOpts.maxWidth;if(maxWidth&&maxWidth!=='auto'){if(isScale(maxWidth)){return Math.floor(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(maxWidth)*meanWidth);}return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(maxWidth);}return 0;};// 最小宽
8193
8258
  pxMinList.forEach(column=>{let miWidth=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(column.minWidth);const mxWidth=parseColumnMaxWidth(column);if(mxWidth){miWidth=Math.min(miWidth,mxWidth);}tWidth+=miWidth;column.renderWidth=miWidth;});// 最小自适应
8194
8259
  autoMinList.forEach(column=>{let caWidth=Math.max(60,external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(column.renderAutoWidth));const mxWidth=parseColumnMaxWidth(column);if(mxWidth){caWidth=Math.min(caWidth,mxWidth);}tWidth+=caWidth;column.renderWidth=caWidth;});// 最小百分比
@@ -8218,9 +8283,11 @@ isShow=true;content=customContent;}else{content=cellText;}}if(isShow&&content){c
8218
8283
  function computeScrollLoad($xeTable){const reactData=$xeTable;const internalData=$xeTable;return $xeTable.$nextTick().then(()=>{const{scrollXLoad,scrollYLoad}=reactData;const{scrollXStore,scrollYStore}=internalData;const virtualYOpts=$xeTable.computeVirtualYOpts;const virtualXOpts=$xeTable.computeVirtualXOpts;// 计算 X 逻辑
8219
8284
  if(scrollXLoad){const{toVisibleIndex:toXVisibleIndex,visibleSize:visibleXSize}=handleVirtualXVisible($xeTable);const offsetXSize=Math.max(0,virtualXOpts.oSize?external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(virtualXOpts.oSize):0);scrollXStore.preloadSize=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(virtualXOpts.preSize);scrollXStore.offsetSize=offsetXSize;scrollXStore.visibleSize=visibleXSize;scrollXStore.endIndex=Math.max(scrollXStore.startIndex+scrollXStore.visibleSize+offsetXSize,scrollXStore.endIndex);scrollXStore.visibleStartIndex=Math.max(scrollXStore.startIndex,toXVisibleIndex);scrollXStore.visibleEndIndex=Math.min(scrollXStore.endIndex,toXVisibleIndex+visibleXSize);$xeTable.updateScrollXData().then(()=>{loadScrollXData($xeTable);});}else{$xeTable.updateScrollXSpace();}// 计算 Y 逻辑
8220
8285
  const rowHeight=computeRowHeight($xeTable);scrollYStore.rowHeight=rowHeight;// 已废弃
8221
- reactData.rowHeight=rowHeight;const{toVisibleIndex:toYVisibleIndex,visibleSize:visibleYSize}=handleVirtualYVisible($xeTable);if(scrollYLoad){const offsetYSize=Math.max(0,virtualYOpts.oSize?external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(virtualYOpts.oSize):0);scrollYStore.preloadSize=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(virtualYOpts.preSize);scrollYStore.offsetSize=offsetYSize;scrollYStore.visibleSize=visibleYSize;scrollYStore.endIndex=Math.max(scrollYStore.startIndex+visibleYSize+offsetYSize,scrollYStore.endIndex);scrollYStore.visibleStartIndex=Math.max(scrollYStore.startIndex,toYVisibleIndex);scrollYStore.visibleEndIndex=Math.min(scrollYStore.endIndex,toYVisibleIndex+visibleYSize);$xeTable.updateScrollYData().then(()=>{loadScrollYData($xeTable);});}else{$xeTable.updateScrollYSpace();}});}function calcScrollbar($xeTable){const scrollDefaultConf=$xeTable.scrollDefaultConf;const reactData=$xeTable;const internalData=$xeTable;const{scrollXWidth,scrollYHeight}=reactData;const{elemStore}=internalData;const scrollbarOpts=$xeTable.computeScrollbarOpts;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return;}const bodyWrapperElem=getRefElem(elemStore['main-body-wrapper']);const headerTableElem=getRefElem(elemStore['main-header-table']);const footerTableElem=getRefElem(elemStore['main-footer-table']);const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;let overflowY=false;let overflowX=false;if(bodyWrapperElem){const scrollbarXOpts=$xeTable.computeScrollbarXOpts;const scrollbarYOpts=$xeTable.computeScrollbarYOpts;const barWidth=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(getDefaultConfig(getDefaultConfig(scrollbarYOpts.width,scrollbarOpts.width),scrollDefaultConf.width));const barHeight=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(getDefaultConfig(getDefaultConfig(scrollbarXOpts.height,scrollbarOpts.height),scrollDefaultConf.height));overflowY=scrollYHeight>bodyWrapperElem.clientHeight;if(yHandleEl){reactData.scrollbarWidth=barWidth||barHeight||yHandleEl.offsetWidth-yHandleEl.clientWidth||14;}reactData.overflowY=overflowY;overflowX=scrollXWidth>bodyWrapperElem.clientWidth;if(xHandleEl){reactData.scrollbarHeight=barHeight||barWidth||xHandleEl.offsetHeight-xHandleEl.clientHeight||14;}reactData.overflowX=overflowX;const hHeight=headerTableElem?headerTableElem.clientHeight:0;const fHeight=footerTableElem?footerTableElem.clientHeight:0;internalData.tableHeight=bodyWrapperElem.offsetHeight;internalData.tHeaderHeight=hHeight;internalData.tFooterHeight=fHeight;reactData.overflowX=overflowX;reactData.parentHeight=Math.max(hHeight+fHeight+20,$xeTable.getParentHeight());}if(overflowX){$xeTable.checkScrolling();}}function handleRecalculateStyle($xeTable,reFull,reWidth,reHeight){const internalData=$xeTable;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return $xeTable.$nextTick();}const varEl=$xeTable.$refs.refVarElem;if(varEl){const[defEl,mediumEl,smallEl,miniEl]=varEl.children;calcVarRowHeightConfig($xeTable,'default',defEl);calcVarRowHeightConfig($xeTable,'medium',mediumEl);calcVarRowHeightConfig($xeTable,'small',smallEl);calcVarRowHeightConfig($xeTable,'mini',miniEl);}if(reWidth){calcCellWidth($xeTable);}if(reFull){autoCellWidth($xeTable);}calcScrollbar($xeTable);updateStyle($xeTable);updateRowExpandStyle($xeTable);if(reFull){updateTreeLineStyle($xeTable);}internalData.rceRunTime=Date.now();return computeScrollLoad($xeTable).then(()=>{// 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
8286
+ reactData.rowHeight=rowHeight;const{toVisibleIndex:toYVisibleIndex,visibleSize:visibleYSize}=handleVirtualYVisible($xeTable);if(scrollYLoad){const offsetYSize=Math.max(0,virtualYOpts.oSize?external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(virtualYOpts.oSize):0);scrollYStore.preloadSize=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(virtualYOpts.preSize);scrollYStore.offsetSize=offsetYSize;scrollYStore.visibleSize=visibleYSize;scrollYStore.endIndex=Math.max(scrollYStore.startIndex+visibleYSize+offsetYSize,scrollYStore.endIndex);scrollYStore.visibleStartIndex=Math.max(scrollYStore.startIndex,toYVisibleIndex);scrollYStore.visibleEndIndex=Math.min(scrollYStore.endIndex,toYVisibleIndex+visibleYSize);$xeTable.updateScrollYData().then(()=>{loadScrollYData($xeTable);});}else{$xeTable.updateScrollYSpace();}});}function calcScrollbar($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{scrollXWidth,scrollYHeight}=reactData;const{elemStore}=internalData;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return;}const bodyWrapperElem=getRefElem(elemStore['main-body-wrapper']);const headerTableElem=getRefElem(elemStore['main-header-table']);const footerTableElem=getRefElem(elemStore['main-footer-table']);const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const thumbXElem=$xeTable.$refs.refThumbXElem;const thumbYElem=$xeTable.$refs.refThumbYElem;let overflowY=false;let overflowX=false;if(bodyWrapperElem){const scrollbarOpts=$xeTable.computeScrollbarOpts;const barWidth=$xeTable.computeScrollYWidth;const barHeight=$xeTable.computeScrollXHeight;overflowY=scrollYHeight>bodyWrapperElem.clientHeight;// 如果是虚拟滚动条
8287
+ if(thumbYElem){reactData.scrollbarHeight=scrollbarOpts.padding?thumbYElem.offsetWidth:0;}else if(yHandleEl){reactData.scrollbarWidth=barWidth||barHeight||yHandleEl.offsetWidth-yHandleEl.clientWidth||14;}reactData.overflowY=overflowY;overflowX=scrollXWidth>bodyWrapperElem.clientWidth;// 如果是虚拟滚动条
8288
+ if(thumbXElem){reactData.scrollbarHeight=scrollbarOpts.padding?thumbXElem.offsetHeight:0;}else if(xHandleEl){reactData.scrollbarHeight=barHeight||barWidth||xHandleEl.offsetHeight-xHandleEl.clientHeight||14;}const hHeight=headerTableElem?headerTableElem.clientHeight:0;const fHeight=footerTableElem?footerTableElem.clientHeight:0;internalData.tableHeight=bodyWrapperElem.offsetHeight;internalData.tHeaderHeight=hHeight;internalData.tFooterHeight=fHeight;reactData.overflowX=overflowX;reactData.parentHeight=Math.max(hHeight+fHeight+20,$xeTable.getParentHeight());}if(overflowX){$xeTable.checkScrolling();}}function handleRecalculateStyle($xeTable,reFull,reWidth,reHeight){const internalData=$xeTable;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return $xeTable.$nextTick();}const varEl=$xeTable.$refs.refVarElem;if(varEl){const[defEl,mediumEl,smallEl,miniEl]=varEl.children;calcVarRowHeightConfig($xeTable,'default',defEl);calcVarRowHeightConfig($xeTable,'medium',mediumEl);calcVarRowHeightConfig($xeTable,'small',smallEl);calcVarRowHeightConfig($xeTable,'mini',miniEl);}if(reWidth){calcCellWidth($xeTable);}if(reFull){autoCellWidth($xeTable);}calcScrollbar($xeTable);updateStyle($xeTable);updateRowExpandStyle($xeTable);if(reFull){updateTreeLineStyle($xeTable);}internalData.rceRunTime=Date.now();return computeScrollLoad($xeTable).then(()=>{// 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
8222
8289
  if(reWidth){calcCellWidth($xeTable);}if(reFull){autoCellWidth($xeTable);}if(reHeight){calcCellHeight($xeTable);}updateStyle($xeTable);calcScrollbar($xeTable);if(reFull){updateRowOffsetTop($xeTable);}updateRowExpandStyle($xeTable);if(reFull){updateTreeLineStyle($xeTable);}internalData.rceRunTime=Date.now();if(reFull){return computeScrollLoad($xeTable);}});}const defaultMinRunDelay=50;function handleLazyRecalculate($xeTable,reFull,reWidth,reHeight,options){const reactData=$xeTable;const internalData=$xeTable;const minRunDelay=(options?options.minRunDelay:defaultMinRunDelay)||defaultMinRunDelay;return new Promise(resolve=>{const{customStore,tableData,tableColumn}=reactData;const{rceTimeout,rceRunTime}=internalData;const $xeGanttView=internalData.xeGanttView;const resizeOpts=$xeTable.computeResizeOpts;let rceDelay=internalData.rceDelay;// 如果在500毫秒内频繁执行,则执行次数减缓
8223
- if(rceRunTime&&rceRunTime>Date.now()-500){rceDelay=Math.min(Math.max(60,Math.min(800,tableData.length/8)),rceDelay+50);}else{rceDelay=0;}internalData.rceDelay=rceDelay;const refreshDelay=resizeOpts.refreshDelay||30;const reDelay=rceDelay+refreshDelay;const el=$xeTable.$refs.refElem;if(el&&el.clientWidth){autoCellWidth($xeTable);updateRowExpandStyle($xeTable);}if(customStore.visible&&$xeTable.handleCustomStyle){$xeTable.handleCustomStyle();}const renderCellSize=tableData.length*tableColumn.length;// 渲染量低的场景
8290
+ if(rceRunTime&&rceRunTime>Date.now()-500){rceDelay=Math.min(Math.max(60,Math.min(800,tableData.length/8)),rceDelay+50);}else{rceDelay=0;}internalData.rceDelay=rceDelay;const refreshDelay=resizeOpts.refreshDelay||30;const reDelay=rceDelay+refreshDelay;const el=$xeTable.$refs.refElem;$xeTable.updateScrollbar();if(el&&el.clientWidth){autoCellWidth($xeTable);updateRowExpandStyle($xeTable);}if(customStore.visible&&$xeTable.handleCustomStyle){$xeTable.handleCustomStyle();}const renderCellSize=tableData.length*tableColumn.length;// 渲染量低的场景
8224
8291
  if(renderCellSize<400){rceDelay=20;}else if(renderCellSize<600){rceDelay=40;}else if(renderCellSize<800){rceDelay=80;}if(rceTimeout){clearTimeout(rceTimeout);// 多少毫秒内至少执行一次
8225
8292
  if(rceRunTime&&rceRunTime+minRunDelay<Date.now()){resolve(handleRecalculateStyle($xeTable,reFull,reWidth,reHeight));}else{$xeTable.$nextTick(()=>{resolve();});}}else{resolve(handleRecalculateStyle($xeTable,reFull,reWidth,reHeight));}if($xeGanttView&&$xeGanttView.handleLazyRecalculate){$xeGanttView.handleLazyRecalculate();}internalData.rceTimeout=setTimeout(()=>{internalData.rceDelay=0;internalData.rceTimeout=undefined;handleRecalculateStyle($xeTable,reFull,reWidth,reHeight);if($xeGanttView&&$xeGanttView.handleLazyRecalculate){$xeGanttView.handleLazyRecalculate();}},reDelay);});}function handleResizeEvent($xeTable){const internalData=$xeTable;if(internalData.rsePending){return;}internalData.rsePending=true;handleLazyRecalculate($xeTable,true,true,true,{minRunDelay:200}).then(()=>{internalData.rsePending=false;}).catch(()=>{internalData.rsePending=false;});}function handleUpdateAggValues($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{visibleColumn}=internalData;const aggCols=[];visibleColumn.forEach(column=>{if(column.aggFunc){aggCols.push(column);}});reactData.aggHandleAggColumns=aggCols;}function handleUpdateRowGroup($xeTable,groupFields){const reactData=$xeTable;const aggGroupFields=[];const aggGroupConfs=[];if(groupFields){(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(groupFields)?groupFields:[groupFields]).forEach(field=>{aggGroupFields.push(field);aggGroupConfs.push({field});});}reactData.rowGroupList=aggGroupConfs;reactData.aggHandleFields=aggGroupFields;handleUpdateAggValues($xeTable);}function handleeGroupSummary($xeTable,aggList){const internalData=$xeTable;const{fullColumnFieldData}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const aggFuncColumns=$xeTable.computeAggFuncColumns;const{mapChildrenField}=aggregateOpts;const aggCalcMethod=aggregateOpts.calcValuesMethod||aggregateOpts.countMethod||aggregateOpts.aggregateMethod;if(mapChildrenField){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().lastEach(aggList,aggRow=>{let count=0;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(aggRow[mapChildrenField],row=>{if(row.isAggregate){count+=row.childCount||0;}else{count++;}});aggRow.childCount=count;});if($xeTable.handlePivotTableAggData){$xeTable.handlePivotTableAggData(aggList);}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().lastEach(aggList,aggRow=>{const aggDtObj={};const aggData=aggRow.aggData;const groupField=aggRow.groupField;const groupContent=aggRow.groupContent;const childList=mapChildrenField?aggRow[mapChildrenField]||[]:[];const childCount=aggRow.childCount;const colRest=fullColumnFieldData[groupField]||{};aggFuncColumns.forEach(column=>{const{field}=column;const currAggData=aggData?aggData[field]:null;const ctParams={$table:$xeTable,groupField,groupColumn:colRest?colRest.column:null,column,groupValue:groupContent,childList,childCount,aggValue:currAggData?currAggData.value:0,/**
8226
8293
  * 已废弃
@@ -8742,6 +8809,8 @@ if(isEnableConf(editConfig)&&editOpts.autoClear!==false&&editOpts.trigger==='dbl
8742
8809
  */triggerCellDblclickEvent(evnt,params){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const{editConfig}=props;const{editStore,isDragResize}=reactData;if(isDragResize){return;}const editOpts=$xeTable.computeEditOpts;const{actived}=editStore;const cell=evnt.currentTarget;params=Object.assign({cell},params);if(isEnableConf(editConfig)&&editOpts.trigger==='dblclick'){if(!actived.args||evnt.currentTarget!==actived.args.cell){if(editOpts.mode==='row'){checkValidate($xeTable,'blur').catch(e=>e).then(()=>{$xeTable.handleEdit(params,evnt).then(()=>checkValidate($xeTable,'change')).catch(e=>e);});}else if(editOpts.mode==='cell'){$xeTable.handleEdit(params,evnt).then(()=>checkValidate($xeTable,'change')).catch(e=>e);}}}$xeTable.dispatchEvent('cell-dblclick',params,evnt);},triggerFooterCellClickEvent(evnt,params){const $xeTable=this;const $xeGantt=$xeTable.$xeGantt;const cell=evnt.currentTarget;params=Object.assign({cell},params);if($xeGantt){const ganttReactData=$xeGantt.reactData;ganttReactData.activeBarRowid=null;}$xeTable.dispatchEvent('footer-cell-click',params,evnt);},triggerFooterCellDblclickEvent(evnt,params){const $xeTable=this;const cell=evnt.currentTarget;params=Object.assign({cell},params);$xeTable.dispatchEvent('footer-cell-dblclick',params,evnt);},handleColumnSortEvent(evnt,column){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;const{field,sortable,order}=column;if(sortable){const params={$table:$xeTable,$event:evnt,column,field,property:field,order,sortList:$xeTable.getSortColumns(),sortTime:column.sortTime};if(hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleSortEvent){$xeTable.handleSortEvent(evnt,params);}if(!order){$xeTable.dispatchEvent('clear-sort',params,evnt);}$xeTable.dispatchEvent('sort-change',params,evnt);}},/**
8743
8810
  * 点击排序事件
8744
8811
  */triggerSortEvent(evnt,column,order){const $xeTable=this;const sortOpts=$xeTable.computeSortOpts;const{multiple,allowClear}=sortOpts;const{field,sortable}=column;if(sortable||column.remoteSort){if(!order||column.order===order){if(allowClear){$xeTable.clearSort(multiple?column:null);}}else{$xeTable.sort({field,order});}$xeTable.handleColumnSortEvent(evnt,column);}},handleCellRuleUpdateStatus(type,cellParams,cellValue){const $xeTable=this;const reactData=$xeTable;const{validStore}=reactData;const{row,column}=cellParams;if($xeTable.hasCellRules){if($xeTable.hasCellRules(type,row,column)){const cell=$xeTable.getCellElement(row,column);if(cell){const customVal=!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(cellValue);return $xeTable.validCellRules(type,row,column,cellValue).then(()=>{if(customVal&&validStore.visible){setCellValue(row,column,cellValue);}$xeTable.clearValidate(row,column);}).catch(({rule})=>{if(customVal){setCellValue(row,column,cellValue);}$xeTable.showValidTooltip({rule,row,column,cell});});}}}return $xeTable.$nextTick();},/**
8812
+ * @private
8813
+ */updateScrollbar(){const $xeTable=this;$xeTable.updateThumbSize();$xeTable.updateThumbOffset();},/**
8745
8814
  * 表头单元格按下事件
8746
8815
  */triggerHeaderCellMousedownEvent(evnt,params){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;const columnOpts=$xeTable.computeColumnOpts;const columnDragOpts=$xeTable.computeColumnDragOpts;const{trigger,isCrossDrag,isPeerDrag,disabledMethod}=columnDragOpts;const cell=evnt.currentTarget;const triggerInput=cell&&cell.tagName&&cell.tagName.toLowerCase()==='input';const triggerCheckbox=getEventTargetNode(evnt,cell,'vxe-cell--checkbox').flag;const triggerSort=getEventTargetNode(evnt,cell,'vxe-cell--sort').flag;const triggerFilter=getEventTargetNode(evnt,cell,'vxe-cell--filter').flag;let triggerDrag=false;const isColDragCell=columnOpts.drag&&trigger==='cell';if(!(triggerInput||triggerCheckbox||triggerSort||triggerFilter)){const{column}=params;if(isColDragCell&&!column.fixed&&(isCrossDrag||isPeerDrag||!column.parentId)&&!(disabledMethod&&disabledMethod(params))){triggerDrag=true;$xeTable.handleHeaderCellDragMousedownEvent(evnt,params);}}if(!triggerDrag&&hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleHeaderCellAreaMouseDnEvent){$xeTable.handleHeaderCellAreaMouseDnEvent(evnt,Object.assign({cell,triggerSort,triggerFilter},params));}$xeTable.focus();if($xeTable.closeMenu){$xeTable.closeMenu();}},/**
8747
8816
  * 单元格按下事件
@@ -8867,14 +8936,14 @@ if(transform){return handleVirtualTreeExpand($xeTable,rows,expanded);}else{retur
8867
8936
  * 获取表格的滚动状态
8868
8937
  */getScroll(){const $xeTable=this;return $xeTable.getScrollData();},/**
8869
8938
  * 获取表格的滚动数据
8870
- */getScrollData(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,scrollbarHeight,scrollbarWidth}=reactData;const{elemStore}=internalData;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const scrollTop=bodyScrollElem?bodyScrollElem.scrollTop:0;const scrollLeft=bodyScrollElem?bodyScrollElem.scrollLeft:0;const clientHeight=bodyScrollElem?bodyScrollElem.clientHeight:0;const clientWidth=bodyScrollElem?bodyScrollElem.clientWidth:0;const scrollHeight=bodyScrollElem?bodyScrollElem.scrollHeight:0;const scrollWidth=bodyScrollElem?bodyScrollElem.scrollWidth:0;const isTop=scrollTop<=0;const isBottom=scrollTop+clientHeight>=scrollHeight;const isLeft=scrollLeft<=0;const isRight=scrollLeft+clientWidth>=scrollWidth;return{virtualX:scrollXLoad,virtualY:scrollYLoad,isTop,isBottom,isLeft,isRight,scrollbarHeight,scrollbarWidth,scrollTop,scrollLeft,scrollHeight,scrollWidth,clientHeight,clientWidth};},handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,params){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{highlightHoverRow}=props;const{lastScrollLeft,lastScrollTop}=internalData;const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;if(!xHandleEl||!yHandleEl){return;}const rowOpts=$xeTable.computeRowOpts;const validTip=$xeTable.$refs.refValidTooltip;const tooltip=$xeTable.$refs.refTooltip;const bodyHeight=yHandleEl.clientHeight;const bodyWidth=xHandleEl.clientWidth;const scrollHeight=yHandleEl.scrollHeight;const scrollWidth=xHandleEl.scrollWidth;let isTop=false;let isBottom=false;let isLeft=false;let isRight=false;let direction='';let isTopBoundary=false;let isBottomBoundary=false;let isLeftBoundary=false;let isRightBoundary=false;if(isRollX){const xThreshold=$xeTable.computeScrollXThreshold;isLeft=scrollLeft<=0;if(!isLeft){isRight=scrollLeft+bodyWidth>=scrollWidth-1;}if(scrollLeft>lastScrollLeft){direction='right';if(scrollLeft+bodyWidth>=scrollWidth-xThreshold){isRightBoundary=true;}}else{direction='left';if(scrollLeft<=xThreshold){isLeftBoundary=true;}}$xeTable.checkScrolling();internalData.lastScrollLeft=scrollLeft;}if(isRollY){const yThreshold=$xeTable.computeScrollYThreshold;isTop=scrollTop<=0;if(!isTop){isBottom=scrollTop+bodyHeight>=scrollHeight-1;}if(scrollTop>lastScrollTop){direction='bottom';if(scrollTop+bodyHeight>=scrollHeight-yThreshold){isBottomBoundary=true;}}else{direction='top';if(scrollTop<=yThreshold){isTopBoundary=true;}}internalData.lastScrollTop=scrollTop;}internalData.lastSTime=Date.now();const evntParams={source:sourceType,scrollTop,scrollLeft,bodyHeight,bodyWidth,scrollHeight,scrollWidth,isX:isRollX,isY:isRollY,isTop,isBottom,isLeft,isRight,direction,...params};updateRowExpandStyle($xeTable);checkLastSyncScroll($xeTable,isRollX,isRollY);if(isRollX){$xeTable.closeFilter();}if(rowOpts.isHover||highlightHoverRow){$xeTable.clearHoverRow();}if(validTip&&validTip.reactData.visible){validTip.close();}if(tooltip&&tooltip.reactData.visible){tooltip.close();}if(isBottomBoundary||isTopBoundary||isRightBoundary||isLeftBoundary){$xeTable.dispatchEvent('scroll-boundary',evntParams,evnt);}$xeTable.dispatchEvent('scroll',evntParams,evnt);},/**
8939
+ */getScrollData(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,scrollbarHeight,scrollbarWidth}=reactData;const{elemStore}=internalData;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const scrollTop=bodyScrollElem?bodyScrollElem.scrollTop:0;const scrollLeft=bodyScrollElem?bodyScrollElem.scrollLeft:0;const clientHeight=bodyScrollElem?bodyScrollElem.clientHeight:0;const clientWidth=bodyScrollElem?bodyScrollElem.clientWidth:0;const scrollHeight=bodyScrollElem?bodyScrollElem.scrollHeight:0;const scrollWidth=bodyScrollElem?bodyScrollElem.scrollWidth:0;const isTop=scrollTop<=0;const isBottom=scrollTop+clientHeight>=scrollHeight;const isLeft=scrollLeft<=0;const isRight=scrollLeft+clientWidth>=scrollWidth;return{virtualX:scrollXLoad,virtualY:scrollYLoad,isTop,isBottom,isLeft,isRight,scrollbarHeight,scrollbarWidth,scrollTop,scrollLeft,scrollHeight,scrollWidth,clientHeight,clientWidth};},handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,params){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{highlightHoverRow}=props;const{elemStore,lastScrollLeft,lastScrollTop}=internalData;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(!bodyScrollElem){return;}const rowOpts=$xeTable.computeRowOpts;const validTip=$xeTable.$refs.refValidTooltip;const tooltip=$xeTable.$refs.refTooltip;const bodyHeight=bodyScrollElem.clientHeight;const bodyWidth=bodyScrollElem.clientWidth;const scrollHeight=bodyScrollElem.scrollHeight;const scrollWidth=bodyScrollElem.scrollWidth;let isTop=false;let isBottom=false;let isLeft=false;let isRight=false;let direction='';let isTopBoundary=false;let isBottomBoundary=false;let isLeftBoundary=false;let isRightBoundary=false;if(isRollX){const xThreshold=$xeTable.computeScrollXThreshold;isLeft=scrollLeft<=0;if(!isLeft){isRight=scrollLeft+bodyWidth>=scrollWidth-1;}if(scrollLeft>lastScrollLeft){direction='right';if(scrollLeft+bodyWidth>=scrollWidth-xThreshold){isRightBoundary=true;}}else{direction='left';if(scrollLeft<=xThreshold){isLeftBoundary=true;}}$xeTable.checkScrolling();internalData.lastScrollLeft=scrollLeft;}if(isRollY){const yThreshold=$xeTable.computeScrollYThreshold;isTop=scrollTop<=0;if(!isTop){isBottom=scrollTop+bodyHeight>=scrollHeight-1;}if(scrollTop>lastScrollTop){direction='bottom';if(scrollTop+bodyHeight>=scrollHeight-yThreshold){isBottomBoundary=true;}}else{direction='top';if(scrollTop<=yThreshold){isTopBoundary=true;}}internalData.lastScrollTop=scrollTop;}internalData.lastSTime=Date.now();const evntParams={source:sourceType,scrollTop,scrollLeft,bodyHeight,bodyWidth,scrollHeight,scrollWidth,isX:isRollX,isY:isRollY,isTop,isBottom,isLeft,isRight,direction,...params};$xeTable.updateThumbOffset();updateRowExpandStyle($xeTable);checkLastSyncScroll($xeTable,isRollX,isRollY);if(isRollX){$xeTable.closeFilter();}if(rowOpts.isHover||highlightHoverRow){$xeTable.clearHoverRow();}if(validTip&&validTip.reactData.visible){validTip.close();}if(tooltip&&tooltip.reactData.visible){tooltip.close();}if(isBottomBoundary||isTopBoundary||isRightBoundary||isLeftBoundary){$xeTable.dispatchEvent('scroll-boundary',evntParams,evnt);}$xeTable.dispatchEvent('scroll',evntParams,evnt);},/**
8871
8940
  * 横向 X 可视渲染事件处理
8872
8941
  */triggerScrollXEvent(){const $xeTable=this;const virtualXOpts=$xeTable.computeVirtualXOpts;if(virtualXOpts.immediate){loadScrollXData($xeTable);}else{lazyScrollXData($xeTable);}},/**
8873
8942
  * 纵向 Y 可视渲染事件处理
8874
- */triggerScrollYEvent(){const $xeTable=this;const virtualYOpts=$xeTable.computeVirtualYOpts;if(virtualYOpts.immediate){loadScrollYData($xeTable);}else{lazyScrollYData($xeTable);}},triggerBodyScrollEvent(evnt,fixedType){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollYLoad,scrollXLoad}=reactData;const{elemStore,intoRunScroll,lastScrollTop,lastScrollLeft,inWheelScroll,inVirtualScroll,inHeaderScroll,inBodyScroll,scrollRenderType,inFooterScroll}=internalData;if(inWheelScroll||inVirtualScroll||inHeaderScroll||inFooterScroll){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);const rowExpandEl=$xeTable.$refs.refRowExpandElem;if(intoRunScroll){return;}if(!bodyScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}if(inBodyScroll){if(scrollRenderType!==fixedType){return;}}let scrollTop=yHandleEl.scrollTop;let scrollLeft=xHandleEl.scrollLeft;if(leftScrollElem&&fixedType==='left'){scrollTop=leftScrollElem.scrollTop;}else if(rightScrollElem&&fixedType==='right'){scrollTop=rightScrollElem.scrollTop;}else{scrollTop=bodyScrollElem.scrollTop;scrollLeft=bodyScrollElem.scrollLeft;}const isRollX=scrollLeft!==lastScrollLeft;const isRollY=scrollTop!==lastScrollTop;internalData.inBodyScroll=true;internalData.scrollRenderType=fixedType;if(isRollY){if(fixedType==='left'){setScrollTop(bodyScrollElem,scrollTop);setScrollTop(rightScrollElem,scrollTop);}else if(fixedType==='right'){setScrollTop(bodyScrollElem,scrollTop);setScrollTop(leftScrollElem,scrollTop);}else{setScrollTop(leftScrollElem,scrollTop);setScrollTop(rightScrollElem,scrollTop);}setScrollTop(yHandleEl,scrollTop);setScrollTop(rowExpandEl,scrollTop);syncGanttScrollTop($xeTable,scrollTop);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}}if(isRollX){setScrollLeft(xHandleEl,scrollLeft);setScrollLeft(headerScrollElem,scrollLeft);setScrollLeft(footerScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'body',fixed:fixedType});},triggerHeaderScrollEvent(evnt,fixedType){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad}=reactData;const{elemStore,intoRunScroll,inWheelScroll,inVirtualScroll,inBodyScroll,inFooterScroll}=internalData;if(inWheelScroll||inVirtualScroll||inBodyScroll||inFooterScroll){return;}if(intoRunScroll){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);if(!headerScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}const scrollTop=yHandleEl.scrollTop;const scrollLeft=headerScrollElem.scrollLeft;const isRollX=true;const isRollY=false;internalData.inHeaderScroll=true;setScrollLeft(xHandleEl,scrollLeft);setScrollLeft(footerScrollElem,scrollLeft);setScrollLeft(bodyScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'header',fixed:fixedType});},triggerFooterScrollEvent(evnt,fixedType){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad}=reactData;const{elemStore,intoRunScroll,inWheelScroll,inVirtualScroll,inHeaderScroll,inBodyScroll}=internalData;if(inWheelScroll||inVirtualScroll||inHeaderScroll||inBodyScroll){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);if(intoRunScroll){return;}if(!footerScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}const scrollTop=yHandleEl.scrollTop;const scrollLeft=footerScrollElem.scrollLeft;const isRollX=true;const isRollY=false;internalData.inFooterScroll=true;setScrollLeft(xHandleEl,scrollLeft);setScrollLeft(headerScrollElem,scrollLeft);setScrollLeft(bodyScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'footer',fixed:fixedType});},triggerBodyWheelEvent(evnt){const $xeTable=this;const $xeParentTable=$xeTable.$xeParentTable;const tableProps=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{target,deltaY,deltaX,shiftKey}=evnt;if(target&&/^textarea$/i.test(target.tagName)){return;}// 如果滚轮未移动或者触摸板未变化位置
8875
- if(!deltaY&&!deltaX){return;}const{highlightHoverRow}=tableProps;const{scrollXLoad,scrollYLoad,overflowX,overflowY,expandColumn}=reactData;const leftFixedWidth=$xeTable.computeLeftFixedWidth;const rightFixedWidth=$xeTable.computeRightFixedWidth;const{elemStore,lastScrollTop,lastScrollLeft}=internalData;const rowOpts=$xeTable.computeRowOpts;const scrollbarXOpts=$xeTable.computeScrollbarXOpts;const scrollbarYOpts=$xeTable.computeScrollbarYOpts;const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);const rowExpandEl=$xeTable.$refs.refRowExpandElem;if(!bodyScrollElem){return;}const wheelSpeed=getWheelSpeed(internalData.lastSTime);const deltaTop=shiftKey?0:deltaY*wheelSpeed;const deltaLeft=(shiftKey?deltaX||deltaY:deltaX)*wheelSpeed;const currScrollTop=bodyScrollElem.scrollTop;const currScrollLeft=bodyScrollElem.scrollLeft;const scrollTop=Math.max(0,currScrollTop+deltaTop);const scrollLeft=Math.max(0,currScrollLeft+deltaLeft);const isRollX=overflowX&&scrollLeft!==lastScrollLeft;const isRollY=overflowY&&scrollTop!==lastScrollTop;if(isRollX){// 如果禁用滚动
8876
- if(scrollbarXOpts.visible===false||scrollbarXOpts.visible==='hidden'){evnt.preventDefault();return;}}if(isRollY){// 如果禁用滚动
8877
- if(scrollbarYOpts.visible===false||scrollbarYOpts.visible==='hidden'){evnt.preventDefault();return;}const isTopWheel=deltaTop<0;// 如果滚动位置已经是顶部或底部,则不需要触发
8943
+ */triggerScrollYEvent(){const $xeTable=this;const virtualYOpts=$xeTable.computeVirtualYOpts;if(virtualYOpts.immediate){loadScrollYData($xeTable);}else{lazyScrollYData($xeTable);}},triggerBodyScrollEvent(evnt,fixedType){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{useScrollbar}=props;const{scrollYLoad,scrollXLoad}=reactData;const{elemStore,intoRunScroll,lastScrollTop,lastScrollLeft,inWheelScroll,inVirtualScroll,inHeaderScroll,inBodyScroll,scrollRenderType,inFooterScroll}=internalData;if(inWheelScroll||inVirtualScroll||inHeaderScroll||inFooterScroll){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);const rowExpandEl=$xeTable.$refs.refRowExpandElem;if(intoRunScroll){return;}if(!bodyScrollElem){return;}if(!useScrollbar){if(!xHandleEl){return;}if(!yHandleEl){return;}}if(inBodyScroll){if(scrollRenderType!==fixedType){return;}}let scrollTop=0;let scrollLeft=0;if(leftScrollElem&&fixedType==='left'){scrollTop=leftScrollElem.scrollTop;}else if(rightScrollElem&&fixedType==='right'){scrollTop=rightScrollElem.scrollTop;}else{scrollTop=bodyScrollElem.scrollTop;scrollLeft=bodyScrollElem.scrollLeft;}const isRollX=scrollLeft!==lastScrollLeft;const isRollY=scrollTop!==lastScrollTop;internalData.inBodyScroll=true;internalData.scrollRenderType=fixedType;if(isRollY){if(fixedType==='left'){setScrollTop(bodyScrollElem,scrollTop);setScrollTop(rightScrollElem,scrollTop);}else if(fixedType==='right'){setScrollTop(bodyScrollElem,scrollTop);setScrollTop(leftScrollElem,scrollTop);}else{setScrollTop(leftScrollElem,scrollTop);setScrollTop(rightScrollElem,scrollTop);}setScrollTop(yHandleEl,scrollTop);setScrollTop(rowExpandEl,scrollTop);syncGanttScrollTop($xeTable,scrollTop);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}}if(isRollX){setScrollLeft(xHandleEl,scrollLeft);setScrollLeft(headerScrollElem,scrollLeft);setScrollLeft(footerScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'body',fixed:fixedType});},triggerHeaderScrollEvent(evnt,fixedType){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad}=reactData;const{elemStore,intoRunScroll,inWheelScroll,inVirtualScroll,inBodyScroll,inFooterScroll}=internalData;if(inWheelScroll||inVirtualScroll||inBodyScroll||inFooterScroll){return;}if(intoRunScroll){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);if(!headerScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}const scrollTop=yHandleEl.scrollTop;const scrollLeft=headerScrollElem.scrollLeft;const isRollX=true;const isRollY=false;internalData.inHeaderScroll=true;setScrollLeft(xHandleEl,scrollLeft);setScrollLeft(footerScrollElem,scrollLeft);setScrollLeft(bodyScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'header',fixed:fixedType});},triggerFooterScrollEvent(evnt,fixedType){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad}=reactData;const{elemStore,intoRunScroll,inWheelScroll,inVirtualScroll,inHeaderScroll,inBodyScroll}=internalData;if(inWheelScroll||inVirtualScroll||inHeaderScroll||inBodyScroll){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);if(intoRunScroll){return;}if(!footerScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}const scrollTop=yHandleEl.scrollTop;const scrollLeft=footerScrollElem.scrollLeft;const isRollX=true;const isRollY=false;internalData.inFooterScroll=true;setScrollLeft(xHandleEl,scrollLeft);setScrollLeft(headerScrollElem,scrollLeft);setScrollLeft(bodyScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'footer',fixed:fixedType});},triggerBodyWheelEvent(evnt){const $xeTable=this;const $xeParentTable=$xeTable.$xeParentTable;const tableProps=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{target,deltaY,deltaX,shiftKey}=evnt;if(target&&/^textarea$/i.test(target.tagName)){return;}// 如果滚轮未移动或者触摸板未变化位置
8944
+ if(!deltaY&&!deltaX){return;}const{highlightHoverRow}=tableProps;const{scrollXLoad,scrollYLoad,overflowX,overflowY,expandColumn}=reactData;const leftFixedWidth=$xeTable.computeLeftFixedWidth;const rightFixedWidth=$xeTable.computeRightFixedWidth;const{elemStore,lastScrollTop,lastScrollLeft}=internalData;const rowOpts=$xeTable.computeRowOpts;const scrollXVisible=$xeTable.computeScrollXVisible;const scrollYVisible=$xeTable.computeScrollYVisible;const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);const rowExpandEl=$xeTable.$refs.refRowExpandElem;if(!bodyScrollElem){return;}const wheelSpeed=getWheelSpeed(internalData.lastSTime);const deltaTop=shiftKey?0:deltaY*wheelSpeed;const deltaLeft=(shiftKey?deltaX||deltaY:deltaX)*wheelSpeed;const currScrollTop=bodyScrollElem.scrollTop;const currScrollLeft=bodyScrollElem.scrollLeft;const scrollTop=Math.max(0,currScrollTop+deltaTop);const scrollLeft=Math.max(0,currScrollLeft+deltaLeft);const isRollX=overflowX&&scrollLeft!==lastScrollLeft;const isRollY=overflowY&&scrollTop!==lastScrollTop;if(isRollX){// 如果禁用滚动
8945
+ if(scrollXVisible===false||scrollXVisible==='hidden'){evnt.preventDefault();return;}}if(isRollY){// 如果禁用滚动
8946
+ if(scrollYVisible===false||scrollYVisible==='hidden'){evnt.preventDefault();return;}const isTopWheel=deltaTop<0;// 如果滚动位置已经是顶部或底部,则不需要触发
8878
8947
  if(isTopWheel?currScrollTop<=0:currScrollTop>=bodyScrollElem.scrollHeight-bodyScrollElem.clientHeight){return;}}// 展开行处理,如果展开行嵌入表格中
8879
8948
  if($xeParentTable){if(isRollY){if(checkTargetElement(evnt.target,[leftScrollElem,bodyScrollElem,rightScrollElem],evnt.currentTarget)){evnt.stopPropagation();return;}}if(isRollX){if(checkTargetElement(evnt.target,[headerScrollElem,bodyScrollElem,footerScrollElem],evnt.currentTarget)){evnt.stopPropagation();return;}}}if(!(isRollX||leftFixedWidth||rightFixedWidth||expandColumn)){return;}if(rowOpts.isHover||highlightHoverRow){$xeTable.clearHoverRow();}// 用于鼠标纵向滚轮处理
8880
8949
  if(isRollX){evnt.preventDefault();internalData.inWheelScroll=true;wheelScrollLeftTo(scrollLeft,offsetLeft=>{const currLeftNum=offsetLeft;setScrollLeft(xHandleEl,currLeftNum);setScrollLeft(bodyScrollElem,currLeftNum);setScrollLeft(headerScrollElem,currLeftNum);setScrollLeft(footerScrollElem,currLeftNum);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,bodyScrollElem.scrollTop,currLeftNum,{type:'table',fixed:''});});}if(isRollY){evnt.preventDefault();wheelScrollTopTo(scrollTop,offsetTop=>{const currTopNum=offsetTop;internalData.inWheelScroll=true;setScrollTop(yHandleEl,currTopNum);setScrollTop(bodyScrollElem,currTopNum);setScrollTop(leftScrollElem,currTopNum);setScrollTop(rightScrollElem,currTopNum);setScrollTop(rowExpandEl,currTopNum);syncGanttScrollTop($xeTable,currTopNum);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,currTopNum,bodyScrollElem.scrollLeft,{type:'table',fixed:''});});}},triggerVirtualScrollXEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad}=reactData;const{elemStore,inWheelScroll,lastScrollTop,inHeaderScroll,inBodyScroll,inFooterScroll}=internalData;if(inHeaderScroll||inBodyScroll||inFooterScroll){return;}if(inWheelScroll){return;}const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const wrapperEl=evnt.currentTarget;const{scrollLeft}=wrapperEl;const yBodyEl=yHandleEl||bodyScrollElem;let scrollTop=0;if(yBodyEl){scrollTop=yBodyEl.scrollTop;}const isRollX=true;const isRollY=scrollTop!==lastScrollTop;internalData.inVirtualScroll=true;setScrollLeft(bodyScrollElem,scrollLeft);setScrollLeft(headerScrollElem,scrollLeft);setScrollLeft(footerScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'table',fixed:''});},triggerVirtualScrollYEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollYLoad}=reactData;const{elemStore,inWheelScroll,lastScrollLeft,inHeaderScroll,inBodyScroll,inFooterScroll}=internalData;if(inHeaderScroll||inBodyScroll||inFooterScroll){return;}if(inWheelScroll){return;}const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);const rowExpandEl=$xeTable.$refs.refRowExpandElem;const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const wrapperEl=evnt.currentTarget;const{scrollTop}=wrapperEl;const xBodyEl=xHandleEl||bodyScrollElem;let scrollLeft=0;if(xBodyEl){scrollLeft=xBodyEl.scrollLeft;}const isRollX=scrollLeft!==lastScrollLeft;const isRollY=true;internalData.inVirtualScroll=true;setScrollTop(bodyScrollElem,scrollTop);setScrollTop(leftScrollElem,scrollTop);setScrollTop(rightScrollElem,scrollTop);setScrollTop(rowExpandEl,scrollTop);syncGanttScrollTop($xeTable,scrollTop);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'table',fixed:''});},updateScrollXData(){const $xeTable=this;const reactData=$xeTable;const{isAllOverflow}=reactData;handleTableColumn($xeTable);$xeTable.updateScrollXSpace();return $xeTable.$nextTick().then(()=>{handleTableColumn($xeTable);$xeTable.updateScrollXSpace();if(!isAllOverflow){$xeTable.updateScrollYSpace();}});},// 更新横向 X 可视渲染上下剩余空间大小
@@ -8936,7 +9005,13 @@ return $xeTable.removeMergeFooterCells(merges);},/**
8936
9005
  return $xeTable.getMergeFooterCells();},/**
8937
9006
  * 清除所有表尾合并
8938
9007
  */clearMergeFooterCells(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;internalData.mergeFooterList=[];internalData.mergeFooterMaps={};internalData.mergeFooterCellMaps={};internalData.mergeFooterRowMaps={};internalData.mergeFooterColMaps={};reactData.mergeFootFlag++;return $xeTable.$nextTick().then(()=>{return updateStyle($xeTable);});},clearMergeFooterItems(){const $xeTable=this;// errLog('vxe.error.delFunc', ['clearMergeFooterItems', 'clearMergeFooterCells'])
8939
- return $xeTable.clearMergeFooterCells();},handleUpdateAggData(){const $xeTable=this;const internalData=$xeTable;return loadTableData($xeTable,internalData.tableSynchData,false,true);},handlePushStack(){const $xeTable=this;const internalData=$xeTable;const keyboardOpts=$xeTable.computeKeyboardOpts;if(!keyboardOpts.isUndoRedo){return;}const{stackHistoryStore}=internalData;const stackObj=getSnapshotStackData($xeTable);stackHistoryStore.undoStacks.push(stackObj);stackHistoryStore.redoStacks=[];truncateStackHistory($xeTable);},handleUndoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(undoStacks.length){const stackObj=getSnapshotStackData($xeTable);redoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,undoStacks.pop());if(evnt){$xeTable.dispatchEvent('undo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleRedoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(redoStacks.length){const stackObj=getSnapshotStackData($xeTable);undoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,redoStacks.pop());if(evnt){$xeTable.dispatchEvent('redo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleClearStack(){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;stackHistoryStore.undoStacks=[];stackHistoryStore.redoStacks=[];return $xeTable.$nextTick();},updateZindex(){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;if(props.zIndex){internalData.tZindex=props.zIndex;}else if(internalData.tZindex<getLastZIndex()){internalData.tZindex=nextZIndex();}},updateCellAreas(){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;if(hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleRecalculateCellAreaEvent){return $xeTable.handleRecalculateCellAreaEvent();}return $xeTable.$nextTick();},undo(){const $xeTable=this;return $xeTable.handleUndoStackEvent(null);},redo(){const $xeTable=this;return $xeTable.handleRedoStackEvent(null);},clearHistory(){const $xeTable=this;return $xeTable.handleClearStack();},dispatchEvent(type,params,evnt){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;$xeTable.$emit(type,createEvent(evnt,{$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt},params));},// 已废弃,使用 dispatchEvent
9008
+ return $xeTable.clearMergeFooterCells();},handleUpdateAggData(){const $xeTable=this;const internalData=$xeTable;return loadTableData($xeTable,internalData.tableSynchData,false,true);},handlePushStack(){const $xeTable=this;const internalData=$xeTable;const keyboardOpts=$xeTable.computeKeyboardOpts;if(!keyboardOpts.isUndoRedo){return;}const{stackHistoryStore}=internalData;const stackObj=getSnapshotStackData($xeTable);stackHistoryStore.undoStacks.push(stackObj);stackHistoryStore.redoStacks=[];truncateStackHistory($xeTable);},handleUndoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(undoStacks.length){const stackObj=getSnapshotStackData($xeTable);redoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,undoStacks.pop());if(evnt){$xeTable.dispatchEvent('undo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleRedoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(redoStacks.length){const stackObj=getSnapshotStackData($xeTable);undoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,redoStacks.pop());if(evnt){$xeTable.dispatchEvent('redo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleClearStack(){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;stackHistoryStore.undoStacks=[];stackHistoryStore.redoStacks=[];return $xeTable.$nextTick();},updateZindex(){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;if(props.zIndex){internalData.tZindex=props.zIndex;}else if(internalData.tZindex<getLastZIndex()){internalData.tZindex=nextZIndex();}},updateCellAreas(){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;if(hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleRecalculateCellAreaEvent){return $xeTable.handleRecalculateCellAreaEvent();}return $xeTable.$nextTick();},undo(){const $xeTable=this;return $xeTable.handleUndoStackEvent(null);},redo(){const $xeTable=this;return $xeTable.handleRedoStackEvent(null);},clearHistory(){const $xeTable=this;return $xeTable.handleClearStack();},// 滚动条
9009
+ updateThumbSize(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}if(!viewEl.clientHeight||!viewEl.clientHeight){return;}const trackXEl=$xeTable.$refs.refTrackXElem;const xThumbWidth=trackXEl?getThumbSize(viewEl.clientWidth,viewEl.scrollWidth,trackXEl.clientWidth):0;const thumbXElem=$xeTable.$refs.refThumbXElem;if(thumbXElem){thumbXElem.style.width=xThumbWidth+'px';}reactData.xThumbWidth=xThumbWidth;const trackYEl=$xeTable.$refs.refTrackYElem;const yThumbHeight=trackYEl?getThumbSize(viewEl.clientHeight,viewEl.scrollHeight,trackYEl.clientHeight):0;const thumbYElem=$xeTable.$refs.refThumbYElem;if(thumbYElem){thumbYElem.style.height=yThumbHeight+'px';}reactData.yThumbHeight=yThumbHeight;},updateThumbOffset(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}if(!viewEl.clientHeight||!viewEl.clientHeight){return;}const{xThumbWidth,yThumbHeight}=reactData;const trackXEl=$xeTable.$refs.refTrackXElem;const thumbXElem=$xeTable.$refs.refThumbXElem;const xThumbLeft=trackXEl&&xThumbWidth?getThumbOffsetSize(viewEl.scrollLeft,viewEl.clientWidth,viewEl.scrollWidth,trackXEl.clientWidth,xThumbWidth):0;internalData.xThumbLeft=xThumbLeft;if(thumbXElem&&xThumbWidth){thumbXElem.style.width=xThumbWidth+'px';thumbXElem.style.transform=`translateX(${xThumbLeft}px)`;}const trackYEl=$xeTable.$refs.refTrackYElem;const thumbYElem=$xeTable.$refs.refThumbYElem;const yThumbTop=trackYEl&&yThumbHeight?getThumbOffsetSize(viewEl.scrollTop,viewEl.clientHeight,viewEl.scrollHeight,trackYEl.clientHeight,yThumbHeight):0;internalData.yThumbTop=yThumbTop;if(thumbYElem&&yThumbHeight){thumbYElem.style.height=yThumbHeight+'px';thumbYElem.style.transform=`translateY(${yThumbTop}px)`;}},clickTrackXEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const trackEl=evnt.currentTarget;if(trackEl!==evnt.target){return;}const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{xThumbWidth}=reactData;const trackRect=trackEl.getBoundingClientRect();viewEl.scrollTo({left:getScrollFromClick(evnt.clientX-trackRect.left,viewEl.clientWidth,viewEl.scrollWidth,trackEl.clientWidth,xThumbWidth),behavior:'auto'});},clickTrackYEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const trackEl=evnt.currentTarget;if(trackEl!==evnt.target){return;}const{elemStore}=internalData;const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{yThumbHeight}=reactData;const trackRect=trackEl.getBoundingClientRect();viewEl.scrollTo({top:getScrollFromClick(evnt.clientY-trackRect.top,viewEl.clientHeight,viewEl.scrollHeight,trackEl.clientHeight,yThumbHeight),behavior:'auto'});},pointerdownThumbXEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const thumbEl=evnt.currentTarget;internalData.isThumbDrag=true;thumbEl.setPointerCapture(evnt.pointerId);const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{xThumbWidth}=reactData;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();const pointerPosition=evnt.clientX-trackRect.left;// 记录 thumb 的偏移
9010
+ const thumbOffset=getThumbOffsetSize(viewEl.scrollLeft,viewEl.clientWidth,viewEl.scrollWidth,trackEl.clientWidth,xThumbWidth);internalData.thumbDragOffset=pointerPosition-thumbOffset;},pointermoveThumbXEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const thumbEl=evnt.currentTarget;if(!thumbEl.hasPointerCapture(evnt.pointerId)){return;}const{elemStore,isThumbDrag,thumbDragOffset}=internalData;if(isThumbDrag){const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{xThumbWidth}=reactData;const thumbEl=evnt.currentTarget;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();// 更新偏移
9011
+ viewEl.scrollLeft=getScrollFromDrag(evnt.clientX-trackRect.left,thumbDragOffset,viewEl.clientWidth,viewEl.scrollWidth,trackEl.clientWidth,xThumbWidth);}},cleatPointerThumbEvent(evnt){const $xeTable=this;const internalData=$xeTable;const thumbEl=evnt.currentTarget;thumbEl.releasePointerCapture(evnt.pointerId);internalData.isThumbDrag=false;},pointerdownThumbYEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const thumbEl=evnt.currentTarget;internalData.isThumbDrag=true;thumbEl.setPointerCapture(evnt.pointerId);const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{yThumbHeight}=reactData;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();const pointerPosition=evnt.clientY-trackRect.top;// 记录 thumb 的偏移
9012
+ const thumbOffset=getThumbOffsetSize(viewEl.scrollTop,viewEl.clientHeight,viewEl.scrollHeight,trackEl.clientHeight,yThumbHeight);internalData.thumbDragOffset=pointerPosition-thumbOffset;},pointermoveThumbYEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const thumbEl=evnt.currentTarget;if(!thumbEl.hasPointerCapture(evnt.pointerId)){return;}const{elemStore,isThumbDrag,thumbDragOffset}=internalData;if(isThumbDrag){const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{yThumbHeight}=reactData;const thumbEl=evnt.currentTarget;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();// 更新偏移
9013
+ viewEl.scrollTop=getScrollFromDrag(evnt.clientY-trackRect.top,thumbDragOffset,viewEl.clientHeight,viewEl.scrollHeight,trackEl.clientHeight,yThumbHeight);}},// 滚动条
9014
+ dispatchEvent(type,params,evnt){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;$xeTable.$emit(type,createEvent(evnt,{$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt},params));},// 已废弃,使用 dispatchEvent
8940
9015
  emitEvent(type,params,evnt){const $xeTable=this;$xeTable.dispatchEvent(type,params,evnt);},focus(){const $xeTable=this;const internalData=$xeTable;internalData.isActivated=true;return $xeTable.$nextTick();},blur(){const $xeTable=this;const internalData=$xeTable;internalData.isActivated=false;return $xeTable.$nextTick();},/**
8941
9016
  * 已废弃,被 connectToolbar 替换
8942
9017
  * @deprecated
@@ -21242,6 +21317,7 @@ const {
21242
21317
  renderer: table_renderer,
21243
21318
  globalResize: table_globalResize,
21244
21319
  globalEvents: table_globalEvents,
21320
+ domUtils,
21245
21321
  globalMixins: table_globalMixins,
21246
21322
  renderEmptyElement: table_renderEmptyElement
21247
21323
  } = core_.VxeUI;
@@ -21331,6 +21407,8 @@ function renderViewFixed(h, $xeTable, fixedType) {
21331
21407
  const scrollbarOpts = $xeTable.computeScrollbarOpts;
21332
21408
  const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
21333
21409
  const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
21410
+ const scrollXVisible = $xeTable.computeScrollXVisible;
21411
+ const scrollYVisible = $xeTable.computeScrollYVisible;
21334
21412
  const {
21335
21413
  overscrollBehavior: overscrollXBehavior
21336
21414
  } = scrollbarXOpts;
@@ -21343,7 +21421,7 @@ function renderViewFixed(h, $xeTable, fixedType) {
21343
21421
  const osYBehavior = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(overscrollYBehavior) ? scrollbarOpts.overscrollBehavior : overscrollYBehavior;
21344
21422
  return h('div', {
21345
21423
  ref: isFixedLeft ? 'refLeftContainer' : 'refRightContainer',
21346
- class: [`vxe-table--fixed-${fixedType}-wrapper`, `sx--${scrollbarXOpts.visible === false || scrollbarXOpts.visible === 'hidden' ? 'hidden' : 'visible'}`, `sy--${scrollbarYOpts.visible === false || scrollbarYOpts.visible === 'hidden' ? 'hidden' : 'visible'}`, {
21424
+ class: [`vxe-table--fixed-${fixedType}-wrapper`, `sx--${scrollXVisible === false || scrollXVisible === 'hidden' ? 'hidden' : 'visible'}`, `sy--${scrollYVisible === false || scrollYVisible === 'hidden' ? 'hidden' : 'visible'}`, {
21347
21425
  [`x-ob--${osXBehavior}`]: osXBehavior,
21348
21426
  [`y-ob--${osYBehavior}`]: osYBehavior
21349
21427
  }]
@@ -21635,6 +21713,7 @@ function renderScrollX(h, $xeTable) {
21635
21713
  }
21636
21714
  function renderScrollY(h, $xeTable) {
21637
21715
  return h('div', {
21716
+ key: 'vsy',
21638
21717
  ref: 'refScrollYVirtualElem',
21639
21718
  class: 'vxe-table--scroll-y-virtual'
21640
21719
  }, [h('div', {
@@ -21675,6 +21754,8 @@ function renderViewport(h, $xeTable) {
21675
21754
  const scrollbarOpts = $xeTable.computeScrollbarOpts;
21676
21755
  const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
21677
21756
  const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
21757
+ const scrollXVisible = $xeTable.computeScrollXVisible;
21758
+ const scrollYVisible = $xeTable.computeScrollYVisible;
21678
21759
  const {
21679
21760
  overscrollBehavior: overscrollXBehavior
21680
21761
  } = scrollbarXOpts;
@@ -21688,13 +21769,14 @@ function renderViewport(h, $xeTable) {
21688
21769
  const osXBehavior = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(overscrollXBehavior) ? scrollbarOpts.overscrollBehavior : overscrollXBehavior;
21689
21770
  const osYBehavior = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(overscrollYBehavior) ? scrollbarOpts.overscrollBehavior : overscrollYBehavior;
21690
21771
  return h('div', {
21772
+ key: 'tvw',
21691
21773
  ref: 'refTableViewportElem',
21692
21774
  class: ['vxe-table--viewport-wrapper', {
21693
21775
  [`x-ob--${osXBehavior}`]: osXBehavior,
21694
21776
  [`y-ob--${osYBehavior}`]: osYBehavior
21695
21777
  }]
21696
21778
  }, [h('div', {
21697
- class: ['vxe-table--main-wrapper', `sx--${scrollbarXOpts.visible === false || scrollbarXOpts.visible === 'hidden' ? 'hidden' : 'visible'}`, `sy--${scrollbarYOpts.visible === false || scrollbarYOpts.visible === 'hidden' ? 'hidden' : 'visible'}`]
21779
+ class: ['vxe-table--main-wrapper', `sx--${scrollXVisible === false || scrollXVisible === 'hidden' ? 'hidden' : 'visible'}`, `sy--${scrollYVisible === false || scrollYVisible === 'hidden' ? 'hidden' : 'visible'}`]
21698
21780
  }, [
21699
21781
  /**
21700
21782
  * 表头
@@ -21730,12 +21812,82 @@ function renderViewport(h, $xeTable) {
21730
21812
  class: 'vxe-table--fixed-wrapper'
21731
21813
  }, [leftList && leftList.length && overflowX ? renderViewFixed(h, $xeTable, 'left') : table_renderEmptyElement($xeTable), rightList && rightList.length && overflowX ? renderViewFixed(h, $xeTable, 'right') : table_renderEmptyElement($xeTable)]), renderRowExpandedVNs(h, $xeTable)]);
21732
21814
  }
21733
- function renderBody(h, $xeTable) {
21815
+ function renderNativeBody(h, $xeTable) {
21734
21816
  const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft;
21735
21817
  return h('div', {
21818
+ key: 'lnb',
21736
21819
  class: 'vxe-table--layout-wrapper'
21737
21820
  }, scrollbarYToLeft ? [renderScrollY(h, $xeTable), renderViewport(h, $xeTable)] : [renderViewport(h, $xeTable), renderScrollY(h, $xeTable)]);
21738
21821
  }
21822
+ function renderVirtualBody(h, $xeTable) {
21823
+ const props = $xeTable;
21824
+ const reactData = $xeTable;
21825
+ const internalData = $xeTable;
21826
+ const $xeGantt = $xeTable.$xeGantt;
21827
+ const $xeGanttView = internalData.xeGanttView;
21828
+ const {
21829
+ useScrollbar
21830
+ } = props;
21831
+ const {
21832
+ xThumbWidth,
21833
+ yThumbHeight
21834
+ } = reactData;
21835
+ const scrollbarOpts = $xeTable.computeScrollbarOpts;
21836
+ const scrollXAutoHide = $xeTable.computeScrollXAutoHide;
21837
+ const scrollYAutoHide = $xeTable.computeScrollYAutoHide;
21838
+ const scrollXVisible = $xeTable.computeScrollXVisible;
21839
+ const scrollYVisible = $xeTable.computeScrollYVisible;
21840
+ const scrollbarXToTop = $xeTable.computeScrollbarXToTop;
21841
+ const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft;
21842
+ const scrollbarWrapperClss = $xeTable.computeScrollbarWrapperClss;
21843
+ const hideXScroll = scrollXVisible === false || scrollXVisible === 'hidden';
21844
+ const hideYScroll = scrollYVisible === false || scrollYVisible === 'hidden';
21845
+ return h('div', {
21846
+ key: 'lvb',
21847
+ class: ['vxe-table--layout-wrapper', `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
21848
+ 'is--virtual-scrollbar': useScrollbar,
21849
+ 'ov-padding': useScrollbar && scrollbarOpts.padding,
21850
+ 'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
21851
+ 'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
21852
+ 'overflow-y': yThumbHeight,
21853
+ 'overflow-x': xThumbWidth
21854
+ }]
21855
+ }, [renderViewport(h, $xeTable), h('div', {
21856
+ class: scrollbarWrapperClss
21857
+ }, [hideXScroll ? table_renderEmptyElement($xeTable) : h('div', {
21858
+ ref: 'refTrackXElem',
21859
+ class: 'vxe-scrollbar--track-x',
21860
+ on: {
21861
+ click: $xeTable.clickTrackXEvent
21862
+ }
21863
+ }, [h('div', {
21864
+ ref: 'refThumbXElem',
21865
+ class: 'vxe-scrollbar--thumb-x',
21866
+ on: {
21867
+ pointerdown: $xeTable.pointerdownThumbXEvent,
21868
+ pointermove: $xeTable.pointermoveThumbXEvent,
21869
+ pointerup: $xeTable.cleatPointerThumbEvent,
21870
+ pointercancel: $xeTable.cleatPointerThumbEvent,
21871
+ lostpointercapture: $xeTable.cleatPointerThumbEvent
21872
+ }
21873
+ })]), hideYScroll || $xeGantt && $xeGanttView && $xeGantt.reactData.showRightView && !scrollbarYToLeft ? table_renderEmptyElement($xeTable) : h('div', {
21874
+ ref: 'refTrackYElem',
21875
+ class: 'vxe-scrollbar--track-y',
21876
+ on: {
21877
+ click: $xeTable.clickTrackYEvent
21878
+ }
21879
+ }, [h('div', {
21880
+ ref: 'refThumbYElem',
21881
+ class: 'vxe-scrollbar--thumb-y',
21882
+ on: {
21883
+ pointerdown: $xeTable.pointerdownThumbYEvent,
21884
+ pointermove: $xeTable.pointermoveThumbYEvent,
21885
+ pointerup: $xeTable.cleatPointerThumbEvent,
21886
+ pointercancel: $xeTable.cleatPointerThumbEvent,
21887
+ lostpointercapture: $xeTable.cleatPointerThumbEvent
21888
+ }
21889
+ })])])]);
21890
+ }
21739
21891
  /* harmony default export */ var table = ({
21740
21892
  name: 'VxeTable',
21741
21893
  mixins: [table_globalMixins.sizeMixin, mixin, menu_mixin, edit_mixin, export_mixin, keyboard_mixin, validator_mixin, custom_mixin],
@@ -21769,7 +21921,6 @@ function renderBody(h, $xeTable) {
21769
21921
  const xID = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId();
21770
21922
  const reactData = createReactData();
21771
21923
  return {
21772
- ...{},
21773
21924
  xID,
21774
21925
  ...reactData,
21775
21926
  // 私有属性
@@ -21779,7 +21930,8 @@ function renderBody(h, $xeTable) {
21779
21930
  kfFlag: 0,
21780
21931
  layoutReFlag: 0,
21781
21932
  mergeFooteCellFlag: 0,
21782
- crossTableDragRowInfo: crossTableDragRowGlobal
21933
+ crossTableDragRowInfo: crossTableDragRowGlobal,
21934
+ scrollDefaultConf: Object.assign({}, table_getConfig().scrollbar)
21783
21935
  };
21784
21936
  },
21785
21937
  computed: {
@@ -21908,6 +22060,46 @@ function renderBody(h, $xeTable) {
21908
22060
  const scrollbarOpts = $xeTable.computeScrollbarOpts;
21909
22061
  return scrollbarOpts.y ? Object.assign({}, scrollbarOpts.y, scrollbarOpts.yConfig) : scrollbarOpts.yConfig || {};
21910
22062
  },
22063
+ computeScrollXHeight() {
22064
+ const $xeTable = this;
22065
+ const scrollDefaultConf = $xeTable.scrollDefaultConf;
22066
+ const scrollbarOpts = $xeTable.computeScrollbarOpts;
22067
+ const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
22068
+ return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), scrollDefaultConf.height));
22069
+ },
22070
+ computeScrollYWidth() {
22071
+ const $xeTable = this;
22072
+ const scrollDefaultConf = $xeTable.scrollDefaultConf;
22073
+ const scrollbarOpts = $xeTable.computeScrollbarOpts;
22074
+ const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
22075
+ return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), scrollDefaultConf.width));
22076
+ },
22077
+ computeScrollXVisible() {
22078
+ const $xeTable = this;
22079
+ const scrollbarOpts = $xeTable.computeScrollbarOpts;
22080
+ const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
22081
+ return getDefaultConfig(scrollbarXOpts.visible, scrollbarOpts.visible);
22082
+ },
22083
+ computeScrollYVisible() {
22084
+ const $xeTable = this;
22085
+ const scrollbarOpts = $xeTable.computeScrollbarOpts;
22086
+ const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
22087
+ return getDefaultConfig(scrollbarYOpts.visible, scrollbarOpts.visible);
22088
+ },
22089
+ computeScrollXAutoHide() {
22090
+ const $xeTable = this;
22091
+ const scrollDefaultConf = $xeTable.scrollDefaultConf;
22092
+ const scrollbarOpts = $xeTable.computeScrollbarOpts;
22093
+ const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
22094
+ return getDefaultConfig(getDefaultConfig(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), scrollDefaultConf.autoHide);
22095
+ },
22096
+ computeScrollYAutoHide() {
22097
+ const $xeTable = this;
22098
+ const scrollDefaultConf = $xeTable.scrollDefaultConf;
22099
+ const scrollbarOpts = $xeTable.computeScrollbarOpts;
22100
+ const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
22101
+ return getDefaultConfig(getDefaultConfig(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), scrollDefaultConf.autoHide);
22102
+ },
21911
22103
  computeScrollbarXToTop() {
21912
22104
  const $xeTable = this;
21913
22105
  const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
@@ -21918,6 +22110,22 @@ function renderBody(h, $xeTable) {
21918
22110
  const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
21919
22111
  return scrollbarYOpts.position === 'left';
21920
22112
  },
22113
+ computeScrollbarWrapperClss() {
22114
+ const $xeTable = this;
22115
+ const reactData = $xeTable;
22116
+ const {
22117
+ yThumbHeight,
22118
+ xThumbWidth
22119
+ } = reactData;
22120
+ const scrollbarXToTop = $xeTable.computeScrollbarXToTop;
22121
+ const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft;
22122
+ const scrollXVisible = $xeTable.computeScrollXVisible;
22123
+ const scrollYVisible = $xeTable.computeScrollYVisible;
22124
+ return domUtils.buildClass(['vxe-scrollbar is--virtual', `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}`, `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}`, `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`], {
22125
+ 'overflow-y': yThumbHeight,
22126
+ 'overflow-x': xThumbWidth
22127
+ });
22128
+ },
21921
22129
  computeScrollYThreshold() {
21922
22130
  const $xeTable = this;
21923
22131
  const virtualYOpts = $xeTable.computeVirtualYOpts;
@@ -21965,6 +22173,11 @@ function renderBody(h, $xeTable) {
21965
22173
  }
21966
22174
  return cellOpts;
21967
22175
  },
22176
+ computeCellHeitht() {
22177
+ const $xeTable = this;
22178
+ const cellOpts = $xeTable.computeCellOpts;
22179
+ return cellOpts.height;
22180
+ },
21968
22181
  computeHeaderCellOpts() {
21969
22182
  const $xeTable = this;
21970
22183
  const $xeGantt = $xeTable.$xeGantt;
@@ -22487,12 +22700,8 @@ function renderBody(h, $xeTable) {
22487
22700
  },
22488
22701
  computeTableStyle() {
22489
22702
  const $xeTable = this;
22490
- const scrollDefaultConf = $xeTable.scrollDefaultConf;
22491
- const scrollbarOpts = $xeTable.computeScrollbarOpts;
22492
- const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
22493
- const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
22494
- const barWidth = getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), scrollDefaultConf.width);
22495
- const barHeight = getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), scrollDefaultConf.height);
22703
+ const barWidth = $xeTable.computeScrollYWidth;
22704
+ const barHeight = $xeTable.computeScrollXHeight;
22496
22705
  const stys = {};
22497
22706
  if (barWidth || barHeight) {
22498
22707
  stys['--vxe-ui-table-view-scrollbar-width'] = toCssUnit(barWidth || barHeight);
@@ -22758,17 +22967,6 @@ function renderBody(h, $xeTable) {
22758
22967
  },
22759
22968
  computeVxeLanguage() {
22760
22969
  return core_.VxeUI.getLanguage();
22761
- },
22762
- computeScrollbarVisible() {
22763
- const $xeTable = this;
22764
- const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
22765
- const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
22766
- return `${scrollbarXOpts.visible}${scrollbarYOpts.visible}`;
22767
- },
22768
- computeCellConfHeitht() {
22769
- const $xeTable = this;
22770
- const cellOpts = $xeTable.computeCellOpts;
22771
- return cellOpts.height;
22772
22970
  }
22773
22971
  },
22774
22972
  watch: {
@@ -22816,55 +23014,98 @@ function renderBody(h, $xeTable) {
22816
23014
  this.$nextTick().then(() => this.refreshColumn());
22817
23015
  },
22818
23016
  computeSize() {
22819
- this.reLayoutFlag++;
23017
+ const $xeTable = this;
23018
+ $xeTable.reLayoutFlag++;
22820
23019
  },
22821
23020
  showHeader() {
22822
- this.reLayoutFlag++;
23021
+ const $xeTable = this;
23022
+ $xeTable.reLayoutFlag++;
22823
23023
  },
22824
23024
  showFooter() {
22825
- this.reLayoutFlag++;
23025
+ const $xeTable = this;
23026
+ $xeTable.reLayoutFlag++;
22826
23027
  },
22827
23028
  showHeaderOverflow() {
22828
- this.reLayoutFlag++;
23029
+ const $xeTable = this;
23030
+ $xeTable.reLayoutFlag++;
22829
23031
  },
22830
23032
  showOverflow() {
22831
23033
  const $xeTable = this;
22832
23034
  updateColumnAllOverflow($xeTable);
22833
- this.reLayoutFlag++;
23035
+ $xeTable.reLayoutFlag++;
22834
23036
  },
22835
23037
  showFooterOverflow() {
22836
- this.reLayoutFlag++;
23038
+ const $xeTable = this;
23039
+ $xeTable.reLayoutFlag++;
22837
23040
  },
22838
23041
  overflowX() {
22839
- this.reLayoutFlag++;
23042
+ const $xeTable = this;
23043
+ $xeTable.reLayoutFlag++;
22840
23044
  },
22841
23045
  overflowY() {
22842
- this.reLayoutFlag++;
23046
+ const $xeTable = this;
23047
+ $xeTable.reLayoutFlag++;
22843
23048
  },
22844
23049
  height() {
22845
- this.reLayoutFlag++;
23050
+ const $xeTable = this;
23051
+ $xeTable.reLayoutFlag++;
22846
23052
  },
22847
23053
  maxHeight() {
22848
- this.reLayoutFlag++;
23054
+ const $xeTable = this;
23055
+ $xeTable.reLayoutFlag++;
23056
+ },
23057
+ computeVxeLanguage() {
23058
+ const $xeTable = this;
23059
+ $xeTable.reLayoutFlag++;
22849
23060
  },
22850
23061
  computeScrollbarXToTop() {
22851
- this.reLayoutFlag++;
23062
+ const $xeTable = this;
23063
+ $xeTable.reScrollFlag++;
23064
+ $xeTable.reLayoutFlag++;
22852
23065
  },
22853
23066
  computeScrollbarYToLeft() {
22854
- this.reLayoutFlag++;
23067
+ const $xeTable = this;
23068
+ $xeTable.reScrollFlag++;
23069
+ $xeTable.reLayoutFlag++;
22855
23070
  },
22856
- computeVxeLanguage() {
22857
- this.reLayoutFlag++;
23071
+ computeScrollXVisible() {
23072
+ const $xeTable = this;
23073
+ $xeTable.reScrollFlag++;
23074
+ $xeTable.reLayoutFlag++;
23075
+ },
23076
+ computeScrollYVisible() {
23077
+ const $xeTable = this;
23078
+ $xeTable.reScrollFlag++;
23079
+ $xeTable.reLayoutFlag++;
22858
23080
  },
22859
- computeScrollbarVisible() {
22860
- this.reLayoutFlag++;
23081
+ computeScrollXHeight() {
23082
+ const $xeTable = this;
23083
+ $xeTable.reScrollFlag++;
23084
+ $xeTable.reLayoutFlag++;
22861
23085
  },
22862
- computeCellConfHeitht() {
22863
- this.reLayoutFlag++;
23086
+ computeScrollYWidth() {
23087
+ const $xeTable = this;
23088
+ $xeTable.reScrollFlag++;
23089
+ $xeTable.reLayoutFlag++;
23090
+ },
23091
+ computeCellHeitht() {
23092
+ const $xeTable = this;
23093
+ $xeTable.reLayoutFlag++;
22864
23094
  },
22865
23095
  reLayoutFlag() {
22866
23096
  const $xeTable = this;
22867
- $xeTable.$nextTick(() => $xeTable.recalculate(true));
23097
+ $xeTable.$nextTick(() => {
23098
+ $xeTable.recalculate(true);
23099
+ });
23100
+ },
23101
+ reScrollFlag() {
23102
+ const $xeTable = this;
23103
+ $xeTable.$nextTick(() => {
23104
+ $xeTable.updateScrollbar();
23105
+ $xeTable.$nextTick(() => {
23106
+ $xeTable.updateScrollbar();
23107
+ });
23108
+ });
22868
23109
  },
22869
23110
  footerData() {
22870
23111
  this.footFlag++;
@@ -22967,7 +23208,6 @@ function renderBody(h, $xeTable) {
22967
23208
  const $xeTable = this;
22968
23209
  const props = $xeTable;
22969
23210
  const internalData = $xeTable;
22970
- $xeTable.scrollDefaultConf = Object.assign({}, table_getConfig().scrollbar);
22971
23211
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(internalData, createInternalData());
22972
23212
  handleKeyField($xeTable);
22973
23213
  const {
@@ -23328,6 +23568,13 @@ function renderBody(h, $xeTable) {
23328
23568
  table_warnLog('vxe.error.reqProp', ['tooltip-config']);
23329
23569
  }
23330
23570
  $xeTable.$nextTick(() => {
23571
+ const {
23572
+ useScrollbar,
23573
+ autoResize
23574
+ } = props;
23575
+ const {
23576
+ elemStore
23577
+ } = internalData;
23331
23578
  // 使用已安装的组件,如果未安装则不渲染
23332
23579
  const VxeUILoadingComponent = core_.VxeUI.getComponent('VxeLoading');
23333
23580
  const VxeUITooltipComponent = core_.VxeUI.getComponent('VxeTooltip');
@@ -23375,15 +23622,34 @@ function renderBody(h, $xeTable) {
23375
23622
  table_errLog('vxe.error.reqComp', ['vxe-tooltip']);
23376
23623
  }
23377
23624
  }
23378
- if (this.autoResize) {
23625
+ const el = $xeTable.$refs.refElem;
23626
+ if (useScrollbar) {
23627
+ const viewInnerEl = getRefElem(elemStore['main-body-table']);
23628
+ const scrollObserver = table_globalResize.create(() => {
23629
+ $xeTable.reScrollFlag++;
23630
+ });
23631
+ if (el) {
23632
+ scrollObserver.observe(el);
23633
+ }
23634
+ if (viewInnerEl) {
23635
+ scrollObserver.observe(viewInnerEl);
23636
+ }
23637
+ internalData.scrollObserver = scrollObserver;
23638
+ }
23639
+ if (autoResize) {
23640
+ const parentEl = $xeTable.getParentElem();
23379
23641
  const resizeObserver = table_globalResize.create(() => {
23380
- if (this.autoResize) {
23381
- this.layoutReFlag++;
23642
+ if (props.autoResize) {
23643
+ $xeTable.handleResizeEvent();
23382
23644
  }
23383
23645
  });
23384
- resizeObserver.observe(this.$el);
23385
- resizeObserver.observe(this.getParentElem());
23386
- this.$resize = resizeObserver;
23646
+ if (el) {
23647
+ resizeObserver.observe(el);
23648
+ }
23649
+ if (parentEl) {
23650
+ resizeObserver.observe(parentEl);
23651
+ }
23652
+ internalData.resizeObserver = resizeObserver;
23387
23653
  }
23388
23654
  });
23389
23655
  if (virtualYOpts.mode !== 'scroll') {
@@ -23419,6 +23685,8 @@ function renderBody(h, $xeTable) {
23419
23685
  const reactData = $xeTable;
23420
23686
  const internalData = $xeTable;
23421
23687
  const {
23688
+ scrollObserver,
23689
+ resizeObserver,
23422
23690
  _sToTime
23423
23691
  } = internalData;
23424
23692
  if (_sToTime) {
@@ -23440,8 +23708,11 @@ function renderBody(h, $xeTable) {
23440
23708
  if (tableViewportEl) {
23441
23709
  tableViewportEl.removeEventListener('wheel', $xeTable.triggerBodyWheelEvent);
23442
23710
  }
23443
- if (this.$resize) {
23444
- this.$resize.disconnect();
23711
+ if (scrollObserver) {
23712
+ scrollObserver.disconnect();
23713
+ }
23714
+ if (resizeObserver) {
23715
+ resizeObserver.disconnect();
23445
23716
  }
23446
23717
  $xeTable.closeTooltip();
23447
23718
  $xeTable.closeFilter();
@@ -23617,7 +23888,7 @@ function renderBody(h, $xeTable) {
23617
23888
  })]), h('div', {
23618
23889
  key: 'tw',
23619
23890
  class: 'vxe-table--render-wrapper'
23620
- }, scrollbarXToTop ? [renderScrollX(h, $xeTable), renderBody(h, $xeTable)] : [renderBody(h, $xeTable), renderScrollX(h, $xeTable)]),
23891
+ }, useScrollbar ? [renderVirtualBody(h, $xeTable)] : scrollbarXToTop ? [renderScrollX(h, $xeTable), renderNativeBody(h, $xeTable)] : [renderNativeBody(h, $xeTable), renderScrollX(h, $xeTable)]),
23621
23892
  /**
23622
23893
  * 空数据
23623
23894
  */