vxe-table 4.23.0-beta.3 → 4.23.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 (56) hide show
  1. package/dist/all.esm.js +114 -101
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/grid/src/grid.js +3 -0
  5. package/es/index.css +1 -1
  6. package/es/index.min.css +1 -1
  7. package/es/style.css +1 -1
  8. package/es/style.min.css +1 -1
  9. package/es/table/module/filter/hook.js +4 -7
  10. package/es/table/module/filter/panel.js +42 -46
  11. package/es/table/src/table.js +63 -45
  12. package/es/table/src/util.js +1 -2
  13. package/es/table/style.css +31 -12
  14. package/es/table/style.min.css +1 -1
  15. package/es/ui/index.js +2 -2
  16. package/es/ui/src/log.js +1 -1
  17. package/es/vxe-table/style.css +31 -12
  18. package/es/vxe-table/style.min.css +1 -1
  19. package/lib/grid/src/grid.js +5 -0
  20. package/lib/grid/src/grid.min.js +1 -1
  21. package/lib/index.css +1 -1
  22. package/lib/index.min.css +1 -1
  23. package/lib/index.umd.js +61 -58
  24. package/lib/index.umd.min.js +1 -1
  25. package/lib/style.css +1 -1
  26. package/lib/style.min.css +1 -1
  27. package/lib/table/module/filter/hook.js +5 -7
  28. package/lib/table/module/filter/hook.min.js +1 -1
  29. package/lib/table/module/filter/panel.js +34 -33
  30. package/lib/table/module/filter/panel.min.js +1 -1
  31. package/lib/table/src/table.js +13 -13
  32. package/lib/table/src/table.min.js +1 -1
  33. package/lib/table/src/util.js +1 -2
  34. package/lib/table/src/util.min.js +1 -1
  35. package/lib/table/style/style.css +31 -12
  36. package/lib/table/style/style.min.css +1 -1
  37. package/lib/ui/index.js +2 -2
  38. package/lib/ui/index.min.js +1 -1
  39. package/lib/ui/src/log.js +1 -1
  40. package/lib/ui/src/log.min.js +1 -1
  41. package/lib/vxe-table/style/style.css +31 -12
  42. package/lib/vxe-table/style/style.min.css +1 -1
  43. package/package.json +2 -2
  44. package/packages/grid/src/grid.ts +3 -0
  45. package/packages/table/module/filter/hook.ts +4 -7
  46. package/packages/table/module/filter/panel.ts +45 -46
  47. package/packages/table/src/table.ts +64 -45
  48. package/packages/table/src/util.ts +1 -2
  49. package/packages/ui/index.ts +1 -1
  50. package/styles/components/table-module/filter.scss +25 -14
  51. /package/es/{iconfont.1792117711657.ttf → iconfont.1792139865095.ttf} +0 -0
  52. /package/es/{iconfont.1792117711657.woff → iconfont.1792139865095.woff} +0 -0
  53. /package/es/{iconfont.1792117711657.woff2 → iconfont.1792139865095.woff2} +0 -0
  54. /package/lib/{iconfont.1792117711657.ttf → iconfont.1792139865095.ttf} +0 -0
  55. /package/lib/{iconfont.1792117711657.woff → iconfont.1792139865095.woff} +0 -0
  56. /package/lib/{iconfont.1792117711657.woff2 → iconfont.1792139865095.woff2} +0 -0
package/dist/all.esm.js CHANGED
@@ -56,7 +56,7 @@ function getDefaultConfig(val1, def1) {
56
56
  return XEUtils.eqNull(val1) ? def1 : val1;
57
57
  }
58
58
 
59
- const version = "4.23.0-beta.3";
59
+ const version = "4.23.0-beta.4";
60
60
  VxeUI.version = version;
61
61
  VxeUI.tableVersion = version;
62
62
  VxeUI.setConfig({
@@ -219,7 +219,7 @@ VxeUI.setConfig({
219
219
  destroyOnClose: true,
220
220
  multiple: true,
221
221
  showIcon: true,
222
- maxHeight: 280
222
+ maxHeight: 320
223
223
  },
224
224
  floatingFilterConfig: {
225
225
  // enabled: false
@@ -952,7 +952,7 @@ function getPopupAppendElement(appendTo) {
952
952
  }
953
953
 
954
954
  const { log } = VxeUI;
955
- const tableVersion = `table v${"4.23.0-beta.3"}`;
955
+ const tableVersion = `table v${"4.23.0-beta.4"}`;
956
956
  function createComponentLog(name) {
957
957
  const uiVersion = VxeUI.uiVersion ? `ui v${VxeUI.uiVersion}` : '';
958
958
  const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
@@ -1406,8 +1406,7 @@ function createReactData$2() {
1406
1406
  isIndeterminate: false,
1407
1407
  style: null,
1408
1408
  column: null,
1409
- visible: false,
1410
- maxHeight: null
1409
+ visible: false
1411
1410
  },
1412
1411
  // 存放列相关的信息
1413
1412
  columnStore: {
@@ -7670,6 +7669,7 @@ var TableFilterPanelComponent = defineVxeComponent({
7670
7669
  },
7671
7670
  setup(props, context) {
7672
7671
  const xID = XEUtils.uniqueId();
7672
+ const VxeUIScrollbarComponent = VxeUI.getComponent('VxeScrollbar');
7673
7673
  const $xeTable = inject('$xeTable', {});
7674
7674
  const { reactData: tableReactData, internalData: tableInternalData, getComputeMaps } = $xeTable;
7675
7675
  const { computeFilterOpts, computeRendererOpts } = getComputeMaps();
@@ -7757,10 +7757,12 @@ var TableFilterPanelComponent = defineVxeComponent({
7757
7757
  Object.assign($xeFilterPanel, filterPanelMethods);
7758
7758
  const renderOptions = (filterRender, compConf) => {
7759
7759
  const { filterStore } = props;
7760
- const { column, maxHeight } = filterStore;
7760
+ const { column } = filterStore;
7761
7761
  if (!column) {
7762
7762
  return [];
7763
7763
  }
7764
+ const filterOpts = computeFilterOpts.value;
7765
+ const { useScrollbar } = filterOpts;
7764
7766
  const { filterMultiple, filters, slots } = column;
7765
7767
  const filterOptions = (filters || []);
7766
7768
  const filterSlot = slots ? slots.filter : null;
@@ -7769,34 +7771,46 @@ var TableFilterPanelComponent = defineVxeComponent({
7769
7771
  if (filterSlot) {
7770
7772
  return [
7771
7773
  h('div', {
7772
- class: 'vxe-table--filter-template',
7773
- style: maxHeight
7774
- ? {
7775
- maxHeight: toCssUnit(maxHeight)
7776
- }
7777
- : {}
7774
+ class: 'vxe-table--filter-template'
7778
7775
  }, $xeTable.callSlot(filterSlot, params))
7779
7776
  ];
7780
7777
  }
7781
7778
  else if (filterRender && rtFilter) {
7782
7779
  return [
7783
7780
  h('div', {
7784
- class: 'vxe-table--filter-template',
7785
- style: maxHeight
7786
- ? {
7787
- maxHeight: toCssUnit(maxHeight)
7788
- }
7789
- : {}
7781
+ class: 'vxe-table--filter-template'
7790
7782
  }, getSlotVNs(rtFilter(filterRender, params)))
7791
7783
  ];
7792
7784
  }
7793
7785
  const isAllChecked = filterMultiple ? filterStore.isAllSelected : !filterOptions.some((item) => item._checked);
7794
7786
  const isAllIndeterminate = filterMultiple && filterStore.isIndeterminate;
7787
+ const optVNs = filterOptions.map((item) => {
7788
+ const isChecked = item._checked;
7789
+ return h('div', {
7790
+ class: ['vxe-table--filter-option', {
7791
+ 'is--checked': item._checked
7792
+ }],
7793
+ title: item.label,
7794
+ onClick: (evnt) => {
7795
+ changeOption(evnt, !item._checked, item);
7796
+ }
7797
+ }, (filterMultiple
7798
+ ? [
7799
+ h('span', {
7800
+ class: ['vxe-checkbox--icon', (isChecked ? getIcon$5().TABLE_CHECKBOX_CHECKED : getIcon$5().TABLE_CHECKBOX_UNCHECKED)]
7801
+ })
7802
+ ]
7803
+ : []).concat([
7804
+ h('span', {
7805
+ class: 'vxe-checkbox--label'
7806
+ }, formatText(item.label, 1))
7807
+ ]));
7808
+ });
7795
7809
  return [
7796
- h('ul', {
7810
+ h('div', {
7797
7811
  class: 'vxe-table--filter-header'
7798
7812
  }, [
7799
- h('li', {
7813
+ h('div', {
7800
7814
  class: ['vxe-table--filter-option', {
7801
7815
  'is--checked': isAllChecked,
7802
7816
  'is--indeterminate': isAllIndeterminate
@@ -7817,35 +7831,16 @@ var TableFilterPanelComponent = defineVxeComponent({
7817
7831
  }, getI18n$9('vxe.table.allFilter'))
7818
7832
  ]))
7819
7833
  ]),
7820
- h('ul', {
7821
- class: 'vxe-table--filter-body',
7822
- style: maxHeight
7823
- ? {
7824
- maxHeight: toCssUnit(maxHeight)
7825
- }
7826
- : {}
7827
- }, filterOptions.map((item) => {
7828
- const isChecked = item._checked;
7829
- return h('li', {
7830
- class: ['vxe-table--filter-option', {
7831
- 'is--checked': item._checked
7832
- }],
7833
- title: item.label,
7834
- onClick: (evnt) => {
7835
- changeOption(evnt, !item._checked, item);
7836
- }
7837
- }, (filterMultiple
7838
- ? [
7839
- h('span', {
7840
- class: ['vxe-checkbox--icon', (isChecked ? getIcon$5().TABLE_CHECKBOX_CHECKED : getIcon$5().TABLE_CHECKBOX_UNCHECKED)]
7841
- })
7842
- ]
7843
- : []).concat([
7844
- h('span', {
7845
- class: 'vxe-checkbox--label'
7846
- }, formatText(item.label, 1))
7847
- ]));
7848
- }))
7834
+ useScrollbar
7835
+ ? h(VxeUIScrollbarComponent, {
7836
+ class: 'vxe-table--scrollbar-filter-body',
7837
+ viewClassName: 'vxe-table--scrollbar-filter-body-view'
7838
+ }, {
7839
+ default: () => optVNs
7840
+ })
7841
+ : h('div', {
7842
+ class: 'vxe-table--filter-body'
7843
+ }, optVNs)
7849
7844
  ];
7850
7845
  };
7851
7846
  const renderFooters = () => {
@@ -8955,7 +8950,7 @@ hooks$7.add('tableFilterModule', {
8955
8950
  const { refElem, refTableFilter } = $xeTable.getRefMaps();
8956
8951
  const { computeFilterOpts, computeMouseOpts, computeRendererOpts } = $xeTable.getComputeMaps();
8957
8952
  const updatePopupStyle = () => {
8958
- const { filterStore } = reactData;
8953
+ const { filterStore, scrollbarHeight } = reactData;
8959
8954
  const { elemStore } = internalData;
8960
8955
  const { column, targetEl } = filterStore;
8961
8956
  if (!column) {
@@ -8976,8 +8971,6 @@ hooks$7.add('tableFilterModule', {
8976
8971
  if (!filterWrapperElem) {
8977
8972
  return nextTick();
8978
8973
  }
8979
- const filterHeadElem = filterWrapperElem.querySelector('.vxe-table--filter-header');
8980
- const filterFootElem = filterWrapperElem.querySelector('.vxe-table--filter-footer');
8981
8974
  /**
8982
8975
  * 是否显示筛选按钮图标
8983
8976
  * 如果不存在图标,则相对单元格居中显示
@@ -9014,7 +9007,7 @@ hooks$7.add('tableFilterModule', {
9014
9007
  const centerWidth = targetEl ? filterWidth / 2 : ((filterWidth - column.renderWidth) / 2);
9015
9008
  left = btnRect.left - tableRect.left - centerWidth;
9016
9009
  top = btnRect.top - tableRect.top + currEl.clientHeight;
9017
- maxHeight = Math.max(40, tableEl.clientHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14);
9010
+ maxHeight = Math.max(40, tableEl.clientHeight - top - scrollbarHeight);
9018
9011
  if (left < 1) {
9019
9012
  left = 1;
9020
9013
  }
@@ -9036,7 +9029,6 @@ hooks$7.add('tableFilterModule', {
9036
9029
  if (zIndex) {
9037
9030
  panelStyle.zIndex = zIndex;
9038
9031
  }
9039
- filterStore.style = panelStyle;
9040
9032
  // 筛选面板是自适应表格高度
9041
9033
  if (compConf ? !compConf.tableFilterAutoHeight : false) {
9042
9034
  maxHeight = 0;
@@ -9046,8 +9038,8 @@ hooks$7.add('tableFilterModule', {
9046
9038
  maxHeight = customMaxHeight > maxHeight ? maxHeight : customMaxHeight;
9047
9039
  }
9048
9040
  }
9049
- // 判断面板不能大于表格高度
9050
- filterStore.maxHeight = maxHeight;
9041
+ panelStyle['--vxe-ui-vxe-table-filter-default-max-height'] = maxHeight ? toCssUnit(maxHeight) : 'none';
9042
+ filterStore.style = panelStyle;
9051
9043
  };
9052
9044
  handleStyle();
9053
9045
  return nextTick().then(() => {
@@ -16031,6 +16023,7 @@ var VxeTableComponent = defineVxeComponent({
16031
16023
  const $xeGantt = inject('$xeGantt', null);
16032
16024
  const $xeGGWrapper = $xeGrid || $xeGantt;
16033
16025
  const { computeSize } = useFns$2.useSize(props);
16026
+ const { computeIsVScrollbar } = useFns$2.useVScrollbar(props);
16034
16027
  const crossTableDragRowInfo = getCrossTableDragRowInfo();
16035
16028
  const reactData = reactive(createReactData$2());
16036
16029
  const internalData = createInternalData$3();
@@ -16324,8 +16317,8 @@ var VxeTableComponent = defineVxeComponent({
16324
16317
  return Object.assign({}, getConfig$2().table.checkboxConfig, props.checkboxConfig);
16325
16318
  });
16326
16319
  const computeTooltipOpts = computed(() => {
16327
- const { useScrollbar } = props;
16328
- return Object.assign({ useScrollbar }, getConfig$2().tooltip, getConfig$2().table.tooltipConfig, props.tooltipConfig);
16320
+ const isVScrollbar = computeIsVScrollbar.value;
16321
+ return Object.assign({ useScrollbar: isVScrollbar }, getConfig$2().tooltip, getConfig$2().table.tooltipConfig, props.tooltipConfig);
16329
16322
  });
16330
16323
  const computeHeaderTooltipOpts = computed(() => {
16331
16324
  const tooltipOpts = computeTooltipOpts.value;
@@ -16360,7 +16353,8 @@ var VxeTableComponent = defineVxeComponent({
16360
16353
  return Object.assign({ orders: ['asc', 'desc', null] }, getConfig$2().table.sortConfig, props.sortConfig);
16361
16354
  });
16362
16355
  const computeFilterOpts = computed(() => {
16363
- return Object.assign({}, getConfig$2().table.filterConfig, props.filterConfig);
16356
+ const isVScrollbar = computeIsVScrollbar.value;
16357
+ return Object.assign({ useScrollbar: isVScrollbar }, getConfig$2().table.filterConfig, props.filterConfig);
16364
16358
  });
16365
16359
  const computeFloatingFilterOpts = computed(() => {
16366
16360
  return Object.assign({}, getConfig$2().table.floatingFilterConfig, props.floatingFilterConfig);
@@ -16750,6 +16744,7 @@ var VxeTableComponent = defineVxeComponent({
16750
16744
  };
16751
16745
  const computeMaps = {
16752
16746
  computeSize,
16747
+ computeIsVScrollbar,
16753
16748
  computeTableId,
16754
16749
  computeValidOpts,
16755
16750
  computeRowField,
@@ -19401,6 +19396,7 @@ var VxeTableComponent = defineVxeComponent({
19401
19396
  if (reFull) {
19402
19397
  updateTreeLineStyle();
19403
19398
  }
19399
+ updateScrollbar();
19404
19400
  internalData.rceRunTime = Date.now();
19405
19401
  if (reFull) {
19406
19402
  return computeScrollLoad();
@@ -19408,8 +19404,14 @@ var VxeTableComponent = defineVxeComponent({
19408
19404
  });
19409
19405
  };
19410
19406
  const updateScrollbar = () => {
19411
- updateThumbSize();
19412
- updateThumbOffset();
19407
+ const isVScrollbar = computeIsVScrollbar.value;
19408
+ if (isVScrollbar) {
19409
+ return nextTick().then(() => {
19410
+ updateThumbSize();
19411
+ updateThumbOffset();
19412
+ });
19413
+ }
19414
+ return Promise.resolve();
19413
19415
  };
19414
19416
  const defaultMinRunDelay = 50;
19415
19417
  const handleLazyRecalculate = (reFull, reWidth, reHeight, options) => {
@@ -28710,8 +28712,8 @@ var VxeTableComponent = defineVxeComponent({
28710
28712
  }
28711
28713
  },
28712
28714
  triggerBodyScrollEvent(evnt, fixedType) {
28713
- const { useScrollbar } = props;
28714
28715
  const { scrollYLoad, scrollXLoad } = reactData;
28716
+ const isVScrollbar = computeIsVScrollbar.value;
28715
28717
  const { elemStore, intoRunScroll, lastScrollTop, lastScrollLeft, inWheelScroll, inVirtualScroll, inHeaderScroll, inBodyScroll, scrollRenderType, inFooterScroll } = internalData;
28716
28718
  if (inWheelScroll || inVirtualScroll || inHeaderScroll || inFooterScroll) {
28717
28719
  return;
@@ -28730,7 +28732,7 @@ var VxeTableComponent = defineVxeComponent({
28730
28732
  if (!bodyScrollElem) {
28731
28733
  return;
28732
28734
  }
28733
- if (!useScrollbar) {
28735
+ if (!isVScrollbar) {
28734
28736
  if (!xHandleEl) {
28735
28737
  return;
28736
28738
  }
@@ -29481,6 +29483,24 @@ var VxeTableComponent = defineVxeComponent({
29481
29483
  return nextTick();
29482
29484
  }
29483
29485
  };
29486
+ const bindScrollbarResize = () => {
29487
+ const { elemStore } = internalData;
29488
+ const isVScrollbar = computeIsVScrollbar.value;
29489
+ if (isVScrollbar) {
29490
+ const el = refElem.value;
29491
+ const viewInnerEl = getRefElem(elemStore['main-body-table']);
29492
+ const scrollObserver = globalResize.create(() => {
29493
+ reScrollFlag.value++;
29494
+ });
29495
+ if (el) {
29496
+ scrollObserver.observe(el);
29497
+ }
29498
+ if (viewInnerEl) {
29499
+ scrollObserver.observe(viewInnerEl);
29500
+ }
29501
+ internalData.scrollObserver = scrollObserver;
29502
+ }
29503
+ };
29484
29504
  const updateThumbSize = () => {
29485
29505
  const { elemStore } = internalData;
29486
29506
  const viewEl = getRefElem(elemStore['main-body-scroll']);
@@ -30060,8 +30080,8 @@ var VxeTableComponent = defineVxeComponent({
30060
30080
  };
30061
30081
  const renderVirtualBody = () => {
30062
30082
  const $xeGanttView = internalData.xeGanttView;
30063
- const { useScrollbar } = props;
30064
30083
  const { xThumbWidth, yThumbHeight } = reactData;
30084
+ const isVScrollbar = computeIsVScrollbar.value;
30065
30085
  const scrollbarOpts = computeScrollbarOpts.value;
30066
30086
  const scrollXAutoHide = computeScrollXAutoHide.value;
30067
30087
  const scrollYAutoHide = computeScrollYAutoHide.value;
@@ -30075,10 +30095,10 @@ var VxeTableComponent = defineVxeComponent({
30075
30095
  return h('div', {
30076
30096
  key: 'lvb',
30077
30097
  class: ['vxe-table--layout-wrapper', `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
30078
- 'is--virtual-scrollbar': useScrollbar,
30079
- 'ov-padding': useScrollbar && scrollbarOpts.padding,
30080
- 'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
30081
- 'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
30098
+ 'is--virtual-scrollbar': isVScrollbar,
30099
+ 'ov-padding': isVScrollbar && scrollbarOpts.padding,
30100
+ 'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
30101
+ 'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
30082
30102
  'overflow-y': yThumbHeight,
30083
30103
  'overflow-x': xThumbWidth
30084
30104
  }]
@@ -30125,10 +30145,11 @@ var VxeTableComponent = defineVxeComponent({
30125
30145
  ]);
30126
30146
  };
30127
30147
  const renderVN = () => {
30128
- const { loading, stripe, useScrollbar, showHeader, height, treeConfig, mouseConfig, showFooter, highlightCell, highlightHoverRow, highlightHoverColumn, editConfig, editRules, importConfig, exportConfig, printConfig } = props;
30148
+ const { loading, stripe, showHeader, height, treeConfig, mouseConfig, showFooter, highlightCell, highlightHoverRow, highlightHoverColumn, editConfig, editRules, importConfig, exportConfig, printConfig } = props;
30129
30149
  const { isGroup, overflowX, overflowY, scrollXLoad, scrollYLoad, tableData, initStore, isRowGroupStatus, columnStore, filterStore, customStore, tooltipStore } = reactData;
30130
30150
  const { teleportToWrapperElem, popupToWrapperElem, customPopupToElem } = internalData;
30131
30151
  const { leftList, rightList } = columnStore;
30152
+ const isVScrollbar = computeIsVScrollbar.value;
30132
30153
  const loadingSlot = slots.loading;
30133
30154
  const tipSlots = {
30134
30155
  header: slots.headerTooltip || slots['header-tooltip'],
@@ -30168,7 +30189,7 @@ var VxeTableComponent = defineVxeComponent({
30168
30189
  if (isCrossTableDrag && !tableData.length) {
30169
30190
  tbOns.onDragover = $xeTable.handleCrossTableRowDragoverEmptyEvent;
30170
30191
  }
30171
- return h('div', Object.assign({ ref: refElem, 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'}`, {
30192
+ return h('div', Object.assign({ ref: refElem, 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'}`, {
30172
30193
  [`size--${vSize}`]: vSize,
30173
30194
  [`valid-msg--${validOpts.msgMode}`]: !!editRules,
30174
30195
  'vxe-editable': !!editConfig,
@@ -30229,7 +30250,7 @@ var VxeTableComponent = defineVxeComponent({
30229
30250
  h('div', {
30230
30251
  key: 'tw',
30231
30252
  class: 'vxe-table--render-wrapper'
30232
- }, useScrollbar
30253
+ }, isVScrollbar
30233
30254
  ? [renderVirtualBody()]
30234
30255
  : (scrollbarXToTop
30235
30256
  ? [
@@ -30416,7 +30437,7 @@ var VxeTableComponent = defineVxeComponent({
30416
30437
  ref: refCommTooltip,
30417
30438
  isArrow: false,
30418
30439
  enterable: false,
30419
- useScrollbar
30440
+ useScrollbar: isVScrollbar
30420
30441
  }),
30421
30442
  /**
30422
30443
  * 工具提示
@@ -30480,7 +30501,7 @@ var VxeTableComponent = defineVxeComponent({
30480
30501
  enterable: validTipConfig.enterable,
30481
30502
  enterDelay: validTipConfig.enterDelay,
30482
30503
  leaveDelay: validTipConfig.leaveDelay,
30483
- useScrollbar
30504
+ useScrollbar: validTipConfig.useScrollbar
30484
30505
  })
30485
30506
  : renderEmptyElement$1($xeTable)
30486
30507
  ])
@@ -30585,42 +30606,43 @@ var VxeTableComponent = defineVxeComponent({
30585
30606
  watch(() => VxeUI.getLanguage(), () => {
30586
30607
  reLayoutFlag.value++;
30587
30608
  });
30609
+ watch(computeIsVScrollbar, () => {
30610
+ nextTick(() => {
30611
+ bindScrollbarResize();
30612
+ nextTick(() => {
30613
+ reLayoutFlag.value++;
30614
+ });
30615
+ });
30616
+ });
30588
30617
  watch(computeScrollbarXToTop, () => {
30589
- reScrollFlag.value++;
30590
30618
  reLayoutFlag.value++;
30591
30619
  });
30592
30620
  watch(computeScrollbarYToLeft, () => {
30593
- reScrollFlag.value++;
30594
30621
  reLayoutFlag.value++;
30595
30622
  });
30596
30623
  watch(computeScrollXVisible, () => {
30597
- reScrollFlag.value++;
30598
30624
  reLayoutFlag.value++;
30599
30625
  });
30600
30626
  watch(computeScrollYVisible, () => {
30601
- reScrollFlag.value++;
30602
30627
  reLayoutFlag.value++;
30603
30628
  });
30604
30629
  watch(computeScrollXHeight, () => {
30605
- reScrollFlag.value++;
30606
30630
  reLayoutFlag.value++;
30607
30631
  });
30608
30632
  watch(computeScrollYWidth, () => {
30609
- reScrollFlag.value++;
30610
30633
  reLayoutFlag.value++;
30611
30634
  });
30612
30635
  watch(computeCellHeitht, () => {
30613
30636
  reLayoutFlag.value++;
30614
30637
  });
30615
30638
  watch(reLayoutFlag, () => {
30616
- $xeTable.recalculate(true);
30639
+ nextTick().then(() => {
30640
+ $xeTable.recalculate(true);
30641
+ });
30617
30642
  });
30618
30643
  watch(reScrollFlag, () => {
30619
- nextTick(() => {
30620
- $xeTable.updateScrollbar();
30621
- nextTick(() => {
30622
- $xeTable.updateScrollbar();
30623
- });
30644
+ updateScrollbar().then(() => {
30645
+ updateScrollbar();
30624
30646
  });
30625
30647
  });
30626
30648
  const footFlag = ref(0);
@@ -30753,7 +30775,7 @@ var VxeTableComponent = defineVxeComponent({
30753
30775
  });
30754
30776
  onMounted(() => {
30755
30777
  const { editConfig, exportConfig, importConfig, treeConfig, minHeight, keepSource, areaConfig } = props;
30756
- const { elemStore, scrollXStore, scrollYStore } = internalData;
30778
+ const { scrollXStore, scrollYStore } = internalData;
30757
30779
  const columnOpts = computeColumnOpts.value;
30758
30780
  const columnDragOpts = computeColumnDragOpts.value;
30759
30781
  const aggregateOpts = computeAggregateOpts.value;
@@ -31026,22 +31048,9 @@ var VxeTableComponent = defineVxeComponent({
31026
31048
  handleUpdateRowGroup(groupFields);
31027
31049
  initData();
31028
31050
  nextTick(() => {
31029
- const { useScrollbar, autoResize } = props;
31030
- const el = refElem.value;
31031
- if (useScrollbar) {
31032
- const viewInnerEl = getRefElem(elemStore['main-body-table']);
31033
- const scrollObserver = globalResize.create(() => {
31034
- reScrollFlag.value++;
31035
- });
31036
- if (el) {
31037
- scrollObserver.observe(el);
31038
- }
31039
- if (viewInnerEl) {
31040
- scrollObserver.observe(viewInnerEl);
31041
- }
31042
- internalData.scrollObserver = scrollObserver;
31043
- }
31051
+ const { autoResize } = props;
31044
31052
  if (autoResize) {
31053
+ const el = refElem.value;
31045
31054
  const parentEl = $xeTable.getParentElem();
31046
31055
  const resizeObserver = globalResize.create(() => {
31047
31056
  if (props.autoResize) {
@@ -31056,6 +31065,7 @@ var VxeTableComponent = defineVxeComponent({
31056
31065
  }
31057
31066
  internalData.resizeObserver = resizeObserver;
31058
31067
  }
31068
+ bindScrollbarResize();
31059
31069
  });
31060
31070
  if (virtualYOpts.mode !== 'scroll') {
31061
31071
  const tableViewportEl = refTableViewportElem.value;
@@ -31884,6 +31894,7 @@ var VxeGridComponent = defineVxeComponent({
31884
31894
  const VxeUIPagerComponent = VxeUI.getComponent('VxePager');
31885
31895
  const defaultLayouts = [['Form'], ['Toolbar', 'Top', 'Table', 'Bottom', 'Pager']];
31886
31896
  const { computeSize } = useFns.useSize(props);
31897
+ const { computeIsVScrollbar } = useFns.useVScrollbar(props);
31887
31898
  const reactData = reactive(createReactData());
31888
31899
  const internalData = createInternalData();
31889
31900
  const refElem = ref();
@@ -32066,6 +32077,8 @@ var VxeGridComponent = defineVxeComponent({
32066
32077
  refPopupContainerElem
32067
32078
  };
32068
32079
  const computeMaps = {
32080
+ computeSize,
32081
+ computeIsVScrollbar,
32069
32082
  computeProxyOpts,
32070
32083
  computePagerOpts,
32071
32084
  computeFormOpts,