vxe-table 3.25.0-beta.3 → 3.25.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) 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/module/filter/mixin.js +4 -7
  6. package/es/table/module/filter/panel.js +47 -48
  7. package/es/table/src/methods.js +11 -5
  8. package/es/table/src/table.js +48 -27
  9. package/es/table/src/util.js +1 -2
  10. package/es/table/style.css +31 -12
  11. package/es/table/style.min.css +1 -1
  12. package/es/ui/index.js +2 -2
  13. package/es/ui/src/log.js +1 -1
  14. package/es/vxe-table/style.css +31 -12
  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 +103 -83
  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/module/filter/mixin.js +5 -7
  23. package/lib/table/module/filter/mixin.min.js +1 -1
  24. package/lib/table/module/filter/panel.js +41 -37
  25. package/lib/table/module/filter/panel.min.js +1 -1
  26. package/lib/table/src/methods.js +3 -3
  27. package/lib/table/src/methods.min.js +1 -1
  28. package/lib/table/src/table.js +50 -31
  29. package/lib/table/src/table.min.js +1 -1
  30. package/lib/table/src/util.js +1 -2
  31. package/lib/table/src/util.min.js +1 -1
  32. package/lib/table/style/style.css +31 -12
  33. package/lib/table/style/style.min.css +1 -1
  34. package/lib/ui/index.js +2 -2
  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 +31 -12
  39. package/lib/vxe-table/style/style.min.css +1 -1
  40. package/package.json +2 -2
  41. package/packages/grid/src/grid.ts +2 -1
  42. package/packages/table/module/filter/mixin.ts +4 -7
  43. package/packages/table/module/filter/panel.ts +50 -48
  44. package/packages/table/src/methods.ts +12 -5
  45. package/packages/table/src/table.ts +51 -27
  46. package/packages/table/src/util.ts +1 -2
  47. package/packages/ui/index.ts +1 -1
  48. package/styles/components/table-module/filter.scss +25 -14
  49. /package/es/{iconfont.1792117667851.ttf → iconfont.1792139868734.ttf} +0 -0
  50. /package/es/{iconfont.1792117667851.woff → iconfont.1792139868734.woff} +0 -0
  51. /package/es/{iconfont.1792117667851.woff2 → iconfont.1792139868734.woff2} +0 -0
  52. /package/lib/{iconfont.1792117667851.ttf → iconfont.1792139868734.ttf} +0 -0
  53. /package/lib/{iconfont.1792117667851.woff → iconfont.1792139868734.woff} +0 -0
  54. /package/lib/{iconfont.1792117667851.woff2 → iconfont.1792139868734.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.3";
3326
+ const version = "3.25.0-beta.4";
3327
3327
  core_.VxeUI.version = version;
3328
3328
  core_.VxeUI.tableVersion = version;
3329
3329
  core_.VxeUI.setConfig({
@@ -3487,7 +3487,7 @@ core_.VxeUI.setConfig({
3487
3487
  destroyOnClose: true,
3488
3488
  multiple: true,
3489
3489
  showIcon: true,
3490
- maxHeight: 280
3490
+ maxHeight: 320
3491
3491
  },
3492
3492
  floatingFilterConfig: {
3493
3493
  // enabled: false
@@ -4286,7 +4286,7 @@ function getPopupAppendElement(appendTo) {
4286
4286
  const {
4287
4287
  log: log_log
4288
4288
  } = core_.VxeUI;
4289
- const tableVersion = `table v${"3.25.0-beta.3"}`;
4289
+ const tableVersion = `table v${"3.25.0-beta.4"}`;
4290
4290
  function createComponentLog(name) {
4291
4291
  const uiVersion = core_.VxeUI.uiVersion ? `ui v${core_.VxeUI.uiVersion}` : '';
4292
4292
  const ganttVersion = core_.VxeUI.ganttVersion ? `gantt v${core_.VxeUI.ganttVersion}` : '';
@@ -4814,8 +4814,7 @@ function createReactData() {
4814
4814
  isIndeterminate: false,
4815
4815
  style: null,
4816
4816
  column: null,
4817
- visible: false,
4818
- maxHeight: null
4817
+ visible: false
4819
4818
  },
4820
4819
  // 存放列相关的信息
4821
4820
  columnStore: {
@@ -8234,7 +8233,7 @@ const rowHeight=computeRowHeight($xeTable);scrollYStore.rowHeight=rowHeight;//
8234
8233
  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;// 如果是虚拟滚动条
8235
8234
  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;// 如果是虚拟滚动条
8236
8235
  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(()=>{// 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
8237
- 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毫秒内频繁执行,则执行次数减缓
8236
+ 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);}$xeTable.updateScrollbar();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毫秒内频繁执行,则执行次数减缓
8238
8237
  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;// 渲染量低的场景
8239
8238
  if(renderCellSize<400){rceDelay=20;}else if(renderCellSize<600){rceDelay=40;}else if(renderCellSize<800){rceDelay=80;}if(rceTimeout){clearTimeout(rceTimeout);// 多少毫秒内至少执行一次
8240
8239
  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,/**
@@ -8758,7 +8757,7 @@ if(isEnableConf(editConfig)&&editOpts.autoClear!==false&&editOpts.trigger==='dbl
8758
8757
  * 点击排序事件
8759
8758
  */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();},/**
8760
8759
  * @private
8761
- */updateScrollbar(){const $xeTable=this;$xeTable.updateThumbSize();$xeTable.updateThumbOffset();},/**
8760
+ */updateScrollbar(){const $xeTable=this;const isVScrollbar=$xeTable.computeIsVScrollbar;if(isVScrollbar){return $xeTable.$nextTick().then(()=>{$xeTable.updateThumbSize();$xeTable.updateThumbOffset();});}return Promise.resolve();},/**
8762
8761
  * 表头单元格按下事件
8763
8762
  */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();}},/**
8764
8763
  * 单元格按下事件
@@ -8888,7 +8887,7 @@ if(transform){return handleVirtualTreeExpand($xeTable,rows,expanded);}else{retur
8888
8887
  * 横向 X 可视渲染事件处理
8889
8888
  */triggerScrollXEvent(){const $xeTable=this;const virtualXOpts=$xeTable.computeVirtualXOpts;if(virtualXOpts.immediate){loadScrollXData($xeTable);}else{lazyScrollXData($xeTable);}},/**
8890
8889
  * 纵向 Y 可视渲染事件处理
8891
- */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;}// 如果滚轮未移动或者触摸板未变化位置
8890
+ */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 isVScrollbar=$xeTable.computeIsVScrollbar;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(!isVScrollbar){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;}// 如果滚轮未移动或者触摸板未变化位置
8892
8891
  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){// 如果禁用滚动
8893
8892
  if(scrollXVisible===false||scrollXVisible==='hidden'){evnt.preventDefault();return;}}if(isRollY){// 如果禁用滚动
8894
8893
  if(scrollYVisible===false||scrollYVisible==='hidden'){evnt.preventDefault();return;}const isTopWheel=deltaTop<0;// 如果滚动位置已经是顶部或底部,则不需要触发
@@ -13114,6 +13113,7 @@ function filterCheckAllEvent($xeFilterPanel, evnt, value) {
13114
13113
  * Publish methods
13115
13114
  *************************/
13116
13115
  renderOptions(h, filterRender, compConf) {
13116
+ const VxeUIScrollbarComponent = core_.VxeUI.getComponent('VxeScrollbar');
13117
13117
  const $xeFilterPanel = this;
13118
13118
  const props = $xeFilterPanel;
13119
13119
  const $xeTable = $xeFilterPanel.$xeTable;
@@ -13122,12 +13122,15 @@ function filterCheckAllEvent($xeFilterPanel, evnt, value) {
13122
13122
  filterStore
13123
13123
  } = props;
13124
13124
  const {
13125
- column,
13126
- maxHeight
13125
+ column
13127
13126
  } = filterStore;
13128
13127
  if (!column) {
13129
13128
  return [];
13130
13129
  }
13130
+ const filterOpts = $xeTable.computeFilterOpts;
13131
+ const {
13132
+ useScrollbar
13133
+ } = filterOpts;
13131
13134
  const {
13132
13135
  filterMultiple,
13133
13136
  filters,
@@ -13143,49 +13146,19 @@ function filterCheckAllEvent($xeFilterPanel, evnt, value) {
13143
13146
  const rtFilter = compConf ? compConf.renderTableFilter || compConf.renderFilter : null;
13144
13147
  if (filterSlot) {
13145
13148
  return [h('div', {
13146
- class: 'vxe-table--filter-template',
13147
- style: maxHeight ? {
13148
- maxHeight: toCssUnit(maxHeight)
13149
- } : {}
13149
+ class: 'vxe-table--filter-template'
13150
13150
  }, $xeTable.callSlot(filterSlot, params, h))];
13151
13151
  } else if (filterRender && rtFilter) {
13152
13152
  return [h('div', {
13153
- class: 'vxe-table--filter-template',
13154
- style: maxHeight ? {
13155
- maxHeight: toCssUnit(maxHeight)
13156
- } : {}
13153
+ class: 'vxe-table--filter-template'
13157
13154
  }, getSlotVNs(rtFilter.call($xeTable, h, filterRender, params)))];
13158
13155
  }
13159
13156
  const isAllChecked = filterMultiple ? filterStore.isAllSelected : !filterOptions.some(item => item._checked);
13160
13157
  const isAllIndeterminate = filterMultiple && filterStore.isIndeterminate;
13161
- return [h('ul', {
13162
- class: 'vxe-table--filter-header'
13163
- }, [h('li', {
13164
- class: ['vxe-table--filter-option', {
13165
- 'is--checked': isAllChecked,
13166
- 'is--indeterminate': isAllIndeterminate
13167
- }],
13168
- attrs: {
13169
- title: filter_panel_getI18n(filterMultiple ? 'vxe.table.allTitle' : 'vxe.table.allFilter')
13170
- },
13171
- on: {
13172
- click: evnt => {
13173
- $xeFilterPanel.changeAllOption(evnt, !filterStore.isAllSelected);
13174
- }
13175
- }
13176
- }, (filterMultiple ? [h('span', {
13177
- class: ['vxe-checkbox--icon', isAllIndeterminate ? filter_panel_getIcon().TABLE_CHECKBOX_INDETERMINATE : isAllChecked ? filter_panel_getIcon().TABLE_CHECKBOX_CHECKED : filter_panel_getIcon().TABLE_CHECKBOX_UNCHECKED]
13178
- })] : []).concat([h('span', {
13179
- class: 'vxe-checkbox--label'
13180
- }, filter_panel_getI18n('vxe.table.allFilter'))]))]), h('ul', {
13181
- class: 'vxe-table--filter-body',
13182
- style: maxHeight ? {
13183
- maxHeight: toCssUnit(maxHeight)
13184
- } : {}
13185
- }, filterOptions.map(item => {
13158
+ const optVNs = filterOptions.map(item => {
13186
13159
  const isChecked = item._checked;
13187
13160
  const isIndeterminate = false;
13188
- return h('li', {
13161
+ return h('div', {
13189
13162
  class: ['vxe-table--filter-option', {
13190
13163
  'is--checked': isChecked
13191
13164
  }],
@@ -13202,7 +13175,37 @@ function filterCheckAllEvent($xeFilterPanel, evnt, value) {
13202
13175
  })] : []).concat([h('span', {
13203
13176
  class: 'vxe-checkbox--label'
13204
13177
  }, formatText(item.label, 1))]));
13205
- }))];
13178
+ });
13179
+ return [h('div', {
13180
+ class: 'vxe-table--filter-header'
13181
+ }, [h('div', {
13182
+ class: ['vxe-table--filter-option', {
13183
+ 'is--checked': isAllChecked,
13184
+ 'is--indeterminate': isAllIndeterminate
13185
+ }],
13186
+ attrs: {
13187
+ title: filter_panel_getI18n(filterMultiple ? 'vxe.table.allTitle' : 'vxe.table.allFilter')
13188
+ },
13189
+ on: {
13190
+ click: evnt => {
13191
+ $xeFilterPanel.changeAllOption(evnt, !filterStore.isAllSelected);
13192
+ }
13193
+ }
13194
+ }, (filterMultiple ? [h('span', {
13195
+ class: ['vxe-checkbox--icon', isAllIndeterminate ? filter_panel_getIcon().TABLE_CHECKBOX_INDETERMINATE : isAllChecked ? filter_panel_getIcon().TABLE_CHECKBOX_CHECKED : filter_panel_getIcon().TABLE_CHECKBOX_UNCHECKED]
13196
+ })] : []).concat([h('span', {
13197
+ class: 'vxe-checkbox--label'
13198
+ }, filter_panel_getI18n('vxe.table.allFilter'))]))]), useScrollbar ? h(VxeUIScrollbarComponent, {
13199
+ class: 'vxe-table--scrollbar-filter-body',
13200
+ props: {
13201
+ viewClassName: 'vxe-table--scrollbar-filter-body-view'
13202
+ },
13203
+ scopedSlots: {
13204
+ default: () => optVNs
13205
+ }
13206
+ }) : h('div', {
13207
+ class: 'vxe-table--filter-body'
13208
+ }, optVNs)];
13206
13209
  },
13207
13210
  renderFooter(h) {
13208
13211
  const $xeFilterPanel = this;
@@ -14421,7 +14424,8 @@ function updatePopupStyle($xeTable) {
14421
14424
  const internalData = $xeTable;
14422
14425
  const $xeGGWrapper = $xeGrid || $xeGantt;
14423
14426
  const {
14424
- filterStore
14427
+ filterStore,
14428
+ scrollbarHeight
14425
14429
  } = reactData;
14426
14430
  const {
14427
14431
  elemStore
@@ -14452,8 +14456,6 @@ function updatePopupStyle($xeTable) {
14452
14456
  if (!filterWrapperElem) {
14453
14457
  return $xeTable.$nextTick();
14454
14458
  }
14455
- const filterHeadElem = filterWrapperElem.querySelector('.vxe-table--filter-header');
14456
- const filterFootElem = filterWrapperElem.querySelector('.vxe-table--filter-footer');
14457
14459
  /**
14458
14460
  * 是否显示筛选按钮图标
14459
14461
  * 如果不存在图标,则相对单元格居中显示
@@ -14491,9 +14493,9 @@ function updatePopupStyle($xeTable) {
14491
14493
  } else {
14492
14494
  const filterWidth = filterWrapperElem.offsetWidth;
14493
14495
  const centerWidth = targetEl ? filterWidth / 2 : (filterWidth - column.renderWidth) / 2;
14494
- maxHeight = Math.max(40, tableEl.clientHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14);
14495
14496
  left = btnRect.left - tableRect.left - centerWidth;
14496
14497
  top = btnRect.top - tableRect.top + currEl.clientHeight;
14498
+ maxHeight = Math.max(40, tableEl.clientHeight - top - scrollbarHeight);
14497
14499
  if (left < 1) {
14498
14500
  left = 1;
14499
14501
  } else if (left > tableEl.clientWidth - filterWidth - 1) {
@@ -14514,7 +14516,6 @@ function updatePopupStyle($xeTable) {
14514
14516
  if (zIndex) {
14515
14517
  panelStyle.zIndex = zIndex;
14516
14518
  }
14517
- filterStore.style = panelStyle;
14518
14519
  // 筛选面板是自适应表格高度
14519
14520
  if (compConf ? !compConf.tableFilterAutoHeight : false) {
14520
14521
  maxHeight = 0;
@@ -14523,8 +14524,8 @@ function updatePopupStyle($xeTable) {
14523
14524
  maxHeight = customMaxHeight > maxHeight ? maxHeight : customMaxHeight;
14524
14525
  }
14525
14526
  }
14526
- // 判断面板不能大于表格高度
14527
- filterStore.maxHeight = maxHeight;
14527
+ panelStyle['--vxe-ui-vxe-table-filter-default-max-height'] = maxHeight ? toCssUnit(maxHeight) : 'none';
14528
+ filterStore.style = panelStyle;
14528
14529
  };
14529
14530
  handleStyle();
14530
14531
  return $xeTable.$nextTick().then(() => {
@@ -21270,6 +21271,27 @@ const {
21270
21271
  globalMixins: table_globalMixins,
21271
21272
  renderEmptyElement: table_renderEmptyElement
21272
21273
  } = core_.VxeUI;
21274
+ function bindScrollbarResize($xeTable) {
21275
+ const internalData = $xeTable;
21276
+ const {
21277
+ elemStore
21278
+ } = internalData;
21279
+ const isVScrollbar = $xeTable.computeIsVScrollbar;
21280
+ if (isVScrollbar) {
21281
+ const el = $xeTable.$refs.refElem;
21282
+ const viewInnerEl = getRefElem(elemStore['main-body-table']);
21283
+ const scrollObserver = table_globalResize.create(() => {
21284
+ $xeTable.reScrollFlag++;
21285
+ });
21286
+ if (el) {
21287
+ scrollObserver.observe(el);
21288
+ }
21289
+ if (viewInnerEl) {
21290
+ scrollObserver.observe(viewInnerEl);
21291
+ }
21292
+ internalData.scrollObserver = scrollObserver;
21293
+ }
21294
+ }
21273
21295
  function handleUpdateMergeBodyCells($xeTable, merges) {
21274
21296
  const internalData = $xeTable;
21275
21297
  internalData.mergeBodyList = [];
@@ -21769,18 +21791,15 @@ function renderNativeBody(h, $xeTable) {
21769
21791
  }, scrollbarYToLeft ? [renderScrollY(h, $xeTable), renderViewport(h, $xeTable)] : [renderViewport(h, $xeTable), renderScrollY(h, $xeTable)]);
21770
21792
  }
21771
21793
  function renderVirtualBody(h, $xeTable) {
21772
- const props = $xeTable;
21773
21794
  const reactData = $xeTable;
21774
21795
  const internalData = $xeTable;
21775
21796
  const $xeGantt = $xeTable.$xeGantt;
21776
21797
  const $xeGanttView = internalData.xeGanttView;
21777
- const {
21778
- useScrollbar
21779
- } = props;
21780
21798
  const {
21781
21799
  xThumbWidth,
21782
21800
  yThumbHeight
21783
21801
  } = reactData;
21802
+ const isVScrollbar = $xeTable.computeIsVScrollbar;
21784
21803
  const scrollbarOpts = $xeTable.computeScrollbarOpts;
21785
21804
  const scrollXAutoHide = $xeTable.computeScrollXAutoHide;
21786
21805
  const scrollYAutoHide = $xeTable.computeScrollYAutoHide;
@@ -21794,10 +21813,10 @@ function renderVirtualBody(h, $xeTable) {
21794
21813
  return h('div', {
21795
21814
  key: 'lvb',
21796
21815
  class: ['vxe-table--layout-wrapper', `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
21797
- 'is--virtual-scrollbar': useScrollbar,
21798
- 'ov-padding': useScrollbar && scrollbarOpts.padding,
21799
- 'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
21800
- 'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
21816
+ 'is--virtual-scrollbar': isVScrollbar,
21817
+ 'ov-padding': isVScrollbar && scrollbarOpts.padding,
21818
+ 'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
21819
+ 'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
21801
21820
  'overflow-y': yThumbHeight,
21802
21821
  'overflow-x': xThumbWidth
21803
21822
  }]
@@ -22243,11 +22262,9 @@ function renderVirtualBody(h, $xeTable) {
22243
22262
  computeTooltipOpts() {
22244
22263
  const $xeTable = this;
22245
22264
  const props = $xeTable;
22246
- const {
22247
- useScrollbar
22248
- } = props;
22265
+ const isVScrollbar = $xeTable.computeIsVScrollbar;
22249
22266
  return Object.assign({
22250
- useScrollbar
22267
+ useScrollbar: isVScrollbar
22251
22268
  }, table_getConfig().tooltip, table_getConfig().table.tooltipConfig, props.tooltipConfig);
22252
22269
  },
22253
22270
  tipConfig() {
@@ -22319,7 +22336,10 @@ function renderVirtualBody(h, $xeTable) {
22319
22336
  computeFilterOpts() {
22320
22337
  const $xeTable = this;
22321
22338
  const props = $xeTable;
22322
- return Object.assign({}, table_getConfig().table.filterConfig, props.filterConfig);
22339
+ const isVScrollbar = $xeTable.computeIsVScrollbar;
22340
+ return Object.assign({
22341
+ useScrollbar: isVScrollbar
22342
+ }, table_getConfig().table.filterConfig, props.filterConfig);
22323
22343
  },
22324
22344
  computeFloatingFilterOpts() {
22325
22345
  const $xeTable = this;
@@ -23012,34 +23032,37 @@ function renderVirtualBody(h, $xeTable) {
23012
23032
  const $xeTable = this;
23013
23033
  $xeTable.reLayoutFlag++;
23014
23034
  },
23035
+ computeIsVScrollbar() {
23036
+ const $xeTable = this;
23037
+ $xeTable.$nextTick(() => {
23038
+ bindScrollbarResize($xeTable);
23039
+ $xeTable.$nextTick(() => {
23040
+ $xeTable.reLayoutFlag++;
23041
+ });
23042
+ });
23043
+ },
23015
23044
  computeScrollbarXToTop() {
23016
23045
  const $xeTable = this;
23017
- $xeTable.reScrollFlag++;
23018
23046
  $xeTable.reLayoutFlag++;
23019
23047
  },
23020
23048
  computeScrollbarYToLeft() {
23021
23049
  const $xeTable = this;
23022
- $xeTable.reScrollFlag++;
23023
23050
  $xeTable.reLayoutFlag++;
23024
23051
  },
23025
23052
  computeScrollXVisible() {
23026
23053
  const $xeTable = this;
23027
- $xeTable.reScrollFlag++;
23028
23054
  $xeTable.reLayoutFlag++;
23029
23055
  },
23030
23056
  computeScrollYVisible() {
23031
23057
  const $xeTable = this;
23032
- $xeTable.reScrollFlag++;
23033
23058
  $xeTable.reLayoutFlag++;
23034
23059
  },
23035
23060
  computeScrollXHeight() {
23036
23061
  const $xeTable = this;
23037
- $xeTable.reScrollFlag++;
23038
23062
  $xeTable.reLayoutFlag++;
23039
23063
  },
23040
23064
  computeScrollYWidth() {
23041
23065
  const $xeTable = this;
23042
- $xeTable.reScrollFlag++;
23043
23066
  $xeTable.reLayoutFlag++;
23044
23067
  },
23045
23068
  computeCellHeitht() {
@@ -23048,17 +23071,14 @@ function renderVirtualBody(h, $xeTable) {
23048
23071
  },
23049
23072
  reLayoutFlag() {
23050
23073
  const $xeTable = this;
23051
- $xeTable.$nextTick(() => {
23074
+ $xeTable.$nextTick().then(() => {
23052
23075
  $xeTable.recalculate(true);
23053
23076
  });
23054
23077
  },
23055
23078
  reScrollFlag() {
23056
23079
  const $xeTable = this;
23057
- $xeTable.$nextTick(() => {
23080
+ $xeTable.updateScrollbar().then(() => {
23058
23081
  $xeTable.updateScrollbar();
23059
- $xeTable.$nextTick(() => {
23060
- $xeTable.updateScrollbar();
23061
- });
23062
23082
  });
23063
23083
  },
23064
23084
  footerData() {
@@ -23523,7 +23543,6 @@ function renderVirtualBody(h, $xeTable) {
23523
23543
  }
23524
23544
  $xeTable.$nextTick(() => {
23525
23545
  const {
23526
- useScrollbar,
23527
23546
  autoResize
23528
23547
  } = props;
23529
23548
  const {
@@ -23537,6 +23556,7 @@ function renderVirtualBody(h, $xeTable) {
23537
23556
  showHeaderOverflow,
23538
23557
  showFooterOverflow
23539
23558
  } = props;
23559
+ const isVScrollbar = $xeTable.computeIsVScrollbar;
23540
23560
  const tooltipOpts = $xeTable.computeTooltipOpts;
23541
23561
  const headerTooltipOpts = $xeTable.computeHeaderTooltipOpts;
23542
23562
  const footerTooltipOpts = $xeTable.computeFooterTooltipOpts;
@@ -23577,7 +23597,7 @@ function renderVirtualBody(h, $xeTable) {
23577
23597
  }
23578
23598
  }
23579
23599
  const el = $xeTable.$refs.refElem;
23580
- if (useScrollbar) {
23600
+ if (isVScrollbar) {
23581
23601
  const viewInnerEl = getRefElem(elemStore['main-body-table']);
23582
23602
  const scrollObserver = table_globalResize.create(() => {
23583
23603
  $xeTable.reScrollFlag++;
@@ -23705,7 +23725,6 @@ function renderVirtualBody(h, $xeTable) {
23705
23725
  const {
23706
23726
  loading,
23707
23727
  stripe,
23708
- useScrollbar,
23709
23728
  showHeader,
23710
23729
  height,
23711
23730
  treeConfig,
@@ -23738,6 +23757,7 @@ function renderVirtualBody(h, $xeTable) {
23738
23757
  leftList,
23739
23758
  rightList
23740
23759
  } = columnStore;
23760
+ const isVScrollbar = $xeTable.computeIsVScrollbar;
23741
23761
  const loadingSlot = slots.loading;
23742
23762
  const tipSlots = {
23743
23763
  header: slots.headerTooltip || slots['header-tooltip'],
@@ -23781,7 +23801,7 @@ function renderVirtualBody(h, $xeTable) {
23781
23801
  }
23782
23802
  return h('div', {
23783
23803
  ref: 'refElem',
23784
- class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, useScrollbar ? 'is--virtual-scrollbar' : 'is--native-scrollbar', `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
23804
+ class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, isVScrollbar ? 'is--virtual-scrollbar' : 'is--native-scrollbar', `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
23785
23805
  [`size--${vSize}`]: vSize,
23786
23806
  [`valid-msg--${validOpts.msgMode}`]: !!editRules,
23787
23807
  'vxe-editable': !!editConfig,
@@ -23842,7 +23862,7 @@ function renderVirtualBody(h, $xeTable) {
23842
23862
  })]), h('div', {
23843
23863
  key: 'tw',
23844
23864
  class: 'vxe-table--render-wrapper'
23845
- }, useScrollbar ? [renderVirtualBody(h, $xeTable)] : scrollbarXToTop ? [renderScrollX(h, $xeTable), renderNativeBody(h, $xeTable)] : [renderNativeBody(h, $xeTable), renderScrollX(h, $xeTable)]),
23865
+ }, isVScrollbar ? [renderVirtualBody(h, $xeTable)] : scrollbarXToTop ? [renderScrollX(h, $xeTable), renderNativeBody(h, $xeTable)] : [renderNativeBody(h, $xeTable), renderScrollX(h, $xeTable)]),
23846
23866
  /**
23847
23867
  * 空数据
23848
23868
  */
@@ -23988,7 +24008,7 @@ function renderVirtualBody(h, $xeTable) {
23988
24008
  props: {
23989
24009
  isArrow: false,
23990
24010
  enterable: false,
23991
- useScrollbar
24011
+ useScrollbar: isVScrollbar
23992
24012
  }
23993
24013
  }) : table_renderEmptyElement($xeTable),
23994
24014
  /**
@@ -24079,7 +24099,7 @@ function renderVirtualBody(h, $xeTable) {
24079
24099
  enterable: validTipConfig.enterable,
24080
24100
  enterDelay: validTipConfig.enterDelay,
24081
24101
  leaveDelay: validTipConfig.leaveDelay,
24082
- useScrollbar
24102
+ useScrollbar: validTipConfig.useScrollbar
24083
24103
  }
24084
24104
  }) : table_renderEmptyElement($xeTable)])]);
24085
24105
  },