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

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 (35) hide show
  1. package/es/locale/lang/fr-FR.js +29 -29
  2. package/es/style.css +1 -1
  3. package/es/table/src/methods.js +18 -12
  4. package/es/table/src/props.js +4 -0
  5. package/es/table/src/table.js +38 -21
  6. package/es/ui/index.js +9 -11
  7. package/es/ui/src/log.js +1 -1
  8. package/lib/index.umd.js +45 -34
  9. package/lib/index.umd.min.js +1 -1
  10. package/lib/locale/lang/fr-FR.js +29 -29
  11. package/lib/locale/lang/fr-FR.min.js +1 -1
  12. package/lib/locale/lang/fr-FR.umd.js +29 -29
  13. package/lib/style.css +1 -1
  14. package/lib/table/src/methods.js +4 -4
  15. package/lib/table/src/methods.min.js +1 -1
  16. package/lib/table/src/props.js +4 -0
  17. package/lib/table/src/props.min.js +1 -1
  18. package/lib/table/src/table.js +28 -22
  19. package/lib/table/src/table.min.js +1 -1
  20. package/lib/ui/index.js +9 -11
  21. package/lib/ui/index.min.js +1 -1
  22. package/lib/ui/src/log.js +1 -1
  23. package/lib/ui/src/log.min.js +1 -1
  24. package/package.json +2 -2
  25. package/packages/locale/lang/fr-FR.ts +903 -903
  26. package/packages/table/src/methods.ts +18 -12
  27. package/packages/table/src/props.ts +4 -0
  28. package/packages/table/src/table.ts +44 -21
  29. package/packages/ui/index.ts +8 -10
  30. /package/es/{iconfont.1791880417274.ttf → iconfont.1791954189007.ttf} +0 -0
  31. /package/es/{iconfont.1791880417274.woff → iconfont.1791954189007.woff} +0 -0
  32. /package/es/{iconfont.1791880417274.woff2 → iconfont.1791954189007.woff2} +0 -0
  33. /package/lib/{iconfont.1791880417274.ttf → iconfont.1791954189007.ttf} +0 -0
  34. /package/lib/{iconfont.1791880417274.woff → iconfont.1791954189007.woff} +0 -0
  35. /package/lib/{iconfont.1791880417274.woff2 → iconfont.1791954189007.woff2} +0 -0
@@ -1,6 +1,6 @@
1
1
  import XEUtils from 'xe-utils';
2
2
  import { getTpImg, isPx, isScale, hasClass, addClass, removeClass, wheelScrollLeftTo, wheelScrollTopTo, getEventTargetNode, getPaddingTopBottomSize, setScrollTop, setScrollLeft, toCssUnit, hasControlKey, checkTargetElement, hasAxternalInputTarget } from '../../ui/src/dom';
3
- import { getLastZIndex, nextZIndex, hasChildrenList, getFuncText, isEnableConf, formatText, eqEmptyValue, hasEnableConf } from '../../ui/src/utils';
3
+ import { getLastZIndex, nextZIndex, hasChildrenList, getFuncText, isEnableConf, formatText, eqEmptyValue, hasEnableConf, getDefaultConfig } from '../../ui/src/utils';
4
4
  import { VxeUI } from '../../ui';
5
5
  import Cell from './cell';
6
6
  import { getRowUniqueId, createRowId, clearTableAllStatus, getColumnList, toFilters, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getColReMinWidth, getColReMaxWidth, createHandleUpdateRowId, createHandleGetRowId, getRefElem, getCellRestHeight, getLastChildColumn, getRowMaxHeight, handleCustomStoreConfig, encodeRowid } from './util';
@@ -996,7 +996,6 @@ function updateStyle($xeTable) {
996
996
  const isHeaderRenderOptimize = $xeTable.computeIsHeaderRenderOptimize;
997
997
  const isBodyRenderOptimize = $xeTable.computeIsBodyRenderOptimize;
998
998
  const isFooterRenderOptimize = $xeTable.computeIsFooterRenderOptimize;
999
- const scrollbarOpts = $xeTable.computeScrollbarOpts;
1000
999
  const mouseOpts = $xeTable.computeMouseOpts;
1001
1000
  const bodyWrapperElem = getRefElem(elemStore['main-body-wrapper']);
1002
1001
  const bodyTableElem = getRefElem(elemStore['main-body-table']);
@@ -1004,24 +1003,26 @@ function updateStyle($xeTable) {
1004
1003
  emptyPlaceholderElem.style.top = `${tHeaderHeight}px`;
1005
1004
  emptyPlaceholderElem.style.height = bodyWrapperElem ? `${bodyWrapperElem.offsetHeight - osbHeight}px` : '';
1006
1005
  }
1007
- const scrollbarXConf = scrollbarOpts.x || {};
1008
- const scrollbarYConf = scrollbarOpts.y || {};
1006
+ const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
1007
+ const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
1009
1008
  const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft;
1010
1009
  let xScrollbarVisible = overflowX ? 'visible' : 'hidden';
1011
- if (scrollbarXConf.visible === 'visible' || $xeGanttView) {
1010
+ const hideXScroll = scrollbarXOpts.visible === false || scrollbarXOpts.visible === 'hidden';
1011
+ if (!hideXScroll || $xeGanttView) {
1012
1012
  osbHeight = scrollbarHeight;
1013
1013
  xScrollbarVisible = 'visible';
1014
1014
  }
1015
- else if (scrollbarXConf.visible === 'hidden' || scrollbarXConf.visible === false) {
1015
+ else if (hideXScroll) {
1016
1016
  osbHeight = 0;
1017
1017
  xScrollbarVisible = 'hidden';
1018
1018
  }
1019
1019
  let yScrollbarVisible = overflowY ? 'visible' : 'hidden';
1020
- if ((scrollbarYConf.visible === 'hidden' || scrollbarYConf.visible === false) || (($xeGantt && $xeGanttView && $xeGantt.reactData.showRightView) && !scrollbarYToLeft)) {
1020
+ const showYScroll = !(scrollbarYOpts.visible === false || scrollbarYOpts.visible === 'hidden');
1021
+ if (!showYScroll || (($xeGantt && $xeGanttView && $xeGantt.reactData.showRightView) && !scrollbarYToLeft)) {
1021
1022
  osbWidth = 0;
1022
1023
  yScrollbarVisible = 'hidden';
1023
1024
  }
1024
- else if (scrollbarYConf.visible === 'visible') {
1025
+ else if (showYScroll) {
1025
1026
  osbWidth = scrollbarWidth;
1026
1027
  yScrollbarVisible = 'visible';
1027
1028
  }
@@ -3027,6 +3028,7 @@ function computeScrollLoad($xeTable) {
3027
3028
  });
3028
3029
  }
3029
3030
  function calcScrollbar($xeTable) {
3031
+ const scrollDefaultConf = $xeTable.scrollDefaultConf;
3030
3032
  const reactData = $xeTable;
3031
3033
  const internalData = $xeTable;
3032
3034
  const { scrollXWidth, scrollYHeight } = reactData;
@@ -3044,14 +3046,18 @@ function calcScrollbar($xeTable) {
3044
3046
  let overflowY = false;
3045
3047
  let overflowX = false;
3046
3048
  if (bodyWrapperElem) {
3049
+ const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
3050
+ const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
3051
+ const barWidth = XEUtils.toNumber(getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), scrollDefaultConf.width));
3052
+ const barHeight = XEUtils.toNumber(getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), scrollDefaultConf.height));
3047
3053
  overflowY = scrollYHeight > bodyWrapperElem.clientHeight;
3048
3054
  if (yHandleEl) {
3049
- reactData.scrollbarWidth = scrollbarOpts.width || (yHandleEl.offsetWidth - yHandleEl.clientWidth) || 14;
3055
+ reactData.scrollbarWidth = (barWidth || barHeight) || (yHandleEl.offsetWidth - yHandleEl.clientWidth) || 14;
3050
3056
  }
3051
3057
  reactData.overflowY = overflowY;
3052
3058
  overflowX = scrollXWidth > bodyWrapperElem.clientWidth;
3053
3059
  if (xHandleEl) {
3054
- reactData.scrollbarHeight = scrollbarOpts.height || (xHandleEl.offsetHeight - xHandleEl.clientHeight) || 14;
3060
+ reactData.scrollbarHeight = (barHeight || barWidth) || (xHandleEl.offsetHeight - xHandleEl.clientHeight) || 14;
3055
3061
  }
3056
3062
  reactData.overflowX = overflowX;
3057
3063
  const hHeight = headerTableElem ? headerTableElem.clientHeight : 0;
@@ -12579,14 +12585,14 @@ const tableMethods = {
12579
12585
  const isRollY = overflowY && scrollTop !== lastScrollTop;
12580
12586
  if (isRollX) {
12581
12587
  // 如果禁用滚动
12582
- if (scrollbarXOpts.visible === 'hidden') {
12588
+ if (scrollbarXOpts.visible === false || scrollbarXOpts.visible === 'hidden') {
12583
12589
  evnt.preventDefault();
12584
12590
  return;
12585
12591
  }
12586
12592
  }
12587
12593
  if (isRollY) {
12588
12594
  // 如果禁用滚动
12589
- if (scrollbarYOpts.visible === 'hidden') {
12595
+ if (scrollbarYOpts.visible === false || scrollbarYOpts.visible === 'hidden') {
12590
12596
  evnt.preventDefault();
12591
12597
  return;
12592
12598
  }
@@ -292,6 +292,10 @@ export const tableProps = {
292
292
  virtualXConfig: Object,
293
293
  // 纵向虚拟滚动配置项
294
294
  virtualYConfig: Object,
295
+ useScrollbar: {
296
+ type: Boolean,
297
+ default: () => getConfig().table.useScrollbar
298
+ },
295
299
  // 滚动条配置项
296
300
  scrollbarConfig: Object,
297
301
  // 撤销/恢复历史配置项
@@ -1,5 +1,5 @@
1
1
  import XEUtils from 'xe-utils';
2
- import { getFuncText, hasEnableConf, isEnableConf } from '../../ui/src/utils';
2
+ import { getDefaultConfig, getFuncText, hasEnableConf, isEnableConf } from '../../ui/src/utils';
3
3
  import { initTpImg, toCssUnit } from '../../ui/src/dom';
4
4
  import { createReactData, createInternalData, createHandleGetRowId, getCalcHeight, hasDeepKey } from './util';
5
5
  import { VxeUI } from '../../ui';
@@ -103,10 +103,15 @@ function renderViewFixed(h, $xeTable, fixedType) {
103
103
  const osYBehavior = XEUtils.eqNull(overscrollYBehavior) ? scrollbarOpts.overscrollBehavior : overscrollYBehavior;
104
104
  return h('div', {
105
105
  ref: isFixedLeft ? 'refLeftContainer' : 'refRightContainer',
106
- class: [`vxe-table--fixed-${fixedType}-wrapper`, `sx--${scrollbarXOpts.visible}`, `sy--${scrollbarYOpts.visible}`, {
106
+ class: [
107
+ `vxe-table--fixed-${fixedType}-wrapper`,
108
+ `sx--${(scrollbarXOpts.visible === false || scrollbarXOpts.visible === 'hidden') ? 'hidden' : 'visible'}`,
109
+ `sy--${(scrollbarYOpts.visible === false || scrollbarYOpts.visible === 'hidden') ? 'hidden' : 'visible'}`,
110
+ {
107
111
  [`x-ob--${osXBehavior}`]: osXBehavior,
108
112
  [`y-ob--${osYBehavior}`]: osYBehavior
109
- }]
113
+ }
114
+ ]
110
115
  }, [
111
116
  showHeader
112
117
  ? h(TableHeaderComponent, {
@@ -449,7 +454,11 @@ function renderViewport(h, $xeTable) {
449
454
  }]
450
455
  }, [
451
456
  h('div', {
452
- class: ['vxe-table--main-wrapper', `sx--${scrollbarXOpts.visible}`, `sy--${scrollbarYOpts.visible}`]
457
+ class: [
458
+ 'vxe-table--main-wrapper',
459
+ `sx--${(scrollbarXOpts.visible === false || scrollbarXOpts.visible === 'hidden') ? 'hidden' : 'visible'}`,
460
+ `sy--${(scrollbarYOpts.visible === false || scrollbarYOpts.visible === 'hidden') ? 'hidden' : 'visible'}`
461
+ ]
453
462
  }, [
454
463
  /**
455
464
  * 表头
@@ -551,7 +560,7 @@ export default {
551
560
  data() {
552
561
  const xID = XEUtils.uniqueId();
553
562
  const reactData = createReactData();
554
- return Object.assign(Object.assign({ xID }, reactData), {
563
+ return Object.assign(Object.assign(Object.assign(Object.assign({}, {}), { xID }), reactData), {
555
564
  // 私有属性
556
565
  reScrollFlag: 0, reLayoutFlag: 0, footFlag: 0, kfFlag: 0, layoutReFlag: 0, mergeFooteCellFlag: 0, crossTableDragRowInfo: crossTableDragRowGlobal });
557
566
  },
@@ -656,18 +665,14 @@ export default {
656
665
  return Object.assign({}, getConfig().table.scrollbarConfig, props.scrollbarConfig);
657
666
  },
658
667
  computeScrollbarXOpts() {
659
- var _a;
660
668
  const $xeTable = this;
661
- const props = $xeTable;
662
669
  const scrollbarOpts = $xeTable.computeScrollbarOpts;
663
- return Object.assign({}, scrollbarOpts.x, ((_a = props.scrollbarConfig) === null || _a === void 0 ? void 0 : _a.x) || {});
670
+ return scrollbarOpts.x ? Object.assign({}, scrollbarOpts.x, scrollbarOpts.xConfig) : (scrollbarOpts.xConfig || {});
664
671
  },
665
672
  computeScrollbarYOpts() {
666
- var _a;
667
673
  const $xeTable = this;
668
- const props = $xeTable;
669
674
  const scrollbarOpts = $xeTable.computeScrollbarOpts;
670
- return Object.assign({}, scrollbarOpts.y, ((_a = props.scrollbarConfig) === null || _a === void 0 ? void 0 : _a.y) || {});
675
+ return scrollbarOpts.y ? Object.assign({}, scrollbarOpts.y, scrollbarOpts.yConfig) : (scrollbarOpts.yConfig || {});
671
676
  },
672
677
  computeScrollbarXToTop() {
673
678
  const $xeTable = this;
@@ -1189,16 +1194,20 @@ export default {
1189
1194
  },
1190
1195
  computeTableStyle() {
1191
1196
  const $xeTable = this;
1197
+ const scrollDefaultConf = $xeTable.scrollDefaultConf;
1192
1198
  const scrollbarOpts = $xeTable.computeScrollbarOpts;
1193
- const { width, height } = scrollbarOpts;
1194
- const tStys = {};
1195
- if (width) {
1196
- tStys['--vxe-ui-table-view-scrollbar-width'] = toCssUnit(width);
1197
- }
1198
- if (height) {
1199
- tStys['--vxe-ui-table-view-scrollbar-height'] = toCssUnit(height);
1199
+ const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
1200
+ const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
1201
+ const barWidth = getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), scrollDefaultConf.width);
1202
+ const barHeight = getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), scrollDefaultConf.height);
1203
+ const stys = {};
1204
+ if (barWidth || barHeight) {
1205
+ stys['--vxe-ui-table-view-scrollbar-width'] = toCssUnit(barWidth || barHeight);
1206
+ stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
1207
+ stys['--vxe-ui-table-view-scrollbar-height'] = toCssUnit(barHeight || barWidth);
1208
+ stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
1200
1209
  }
1201
- return tStys;
1210
+ return stys;
1202
1211
  },
1203
1212
  computeTableRowExpandedList() {
1204
1213
  const $xeTable = this;
@@ -1598,6 +1607,7 @@ export default {
1598
1607
  const $xeTable = this;
1599
1608
  const props = $xeTable;
1600
1609
  const internalData = $xeTable;
1610
+ $xeTable.scrollDefaultConf = Object.assign({}, getConfig().scrollbar);
1601
1611
  XEUtils.assign(internalData, createInternalData());
1602
1612
  handleKeyField($xeTable);
1603
1613
  const { editConfig, exportConfig, importConfig, treeConfig, minHeight, keepSource, areaConfig } = props;
@@ -1622,6 +1632,7 @@ export default {
1622
1632
  const areaOpts = $xeTable.computeAreaOpts;
1623
1633
  const sortOpts = $xeTable.computeSortOpts;
1624
1634
  const filterOpts = $xeTable.computeFilterOpts;
1635
+ const scrollbarOpts = $xeTable.computeScrollbarOpts;
1625
1636
  const { groupFields } = aggregateOpts;
1626
1637
  if (props.rowId) {
1627
1638
  warnLog('vxe.error.delProp', ['row-id', 'row-config.keyField']);
@@ -1870,6 +1881,12 @@ export default {
1870
1881
  // if ((hasEnableConf(printConfig, printOpts) || hasEnableConf(importConfig, importOpts) || hasEnableConf(exportConfig, exportOpts)) && !$xeTable.exportData) {
1871
1882
  // errLog('vxe.error.reqModule', ['Export'])
1872
1883
  // }
1884
+ if (scrollbarOpts.x) {
1885
+ warnLog('vxe.error.delProp', ['scrollbar-config.x', 'scrollbar-config.xConfig']);
1886
+ }
1887
+ if (scrollbarOpts.y) {
1888
+ warnLog('vxe.error.delProp', ['scrollbar-config.y', 'scrollbar-config.yConfig']);
1889
+ }
1873
1890
  Object.assign(scrollYStore, {
1874
1891
  startIndex: 0,
1875
1892
  endIndex: 1,
@@ -2073,7 +2090,7 @@ export default {
2073
2090
  const slots = $xeTable.$scopedSlots;
2074
2091
  const reactData = $xeTable;
2075
2092
  const { xID } = $xeTable;
2076
- const { loading, stripe, showHeader, height, treeConfig, mouseConfig, showFooter, highlightCell, highlightHoverRow, highlightHoverColumn, editConfig, editRules, importConfig, exportConfig, printConfig } = props;
2093
+ const { loading, stripe, useScrollbar, showHeader, height, treeConfig, mouseConfig, showFooter, highlightCell, highlightHoverRow, highlightHoverColumn, editConfig, editRules, importConfig, exportConfig, printConfig } = props;
2077
2094
  const { isGroup, overflowX, overflowY, scrollXLoad, scrollYLoad, tableData, initStore, isRowGroupStatus, columnStore, filterStore, customStore, tooltipStore } = reactData;
2078
2095
  const { leftList, rightList } = columnStore;
2079
2096
  const loadingSlot = slots.loading;
@@ -2117,7 +2134,7 @@ export default {
2117
2134
  }
2118
2135
  return h('div', {
2119
2136
  ref: 'refElem',
2120
- class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
2137
+ 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'}`, {
2121
2138
  [`size--${vSize}`]: vSize,
2122
2139
  [`valid-msg--${validOpts.msgMode}`]: !!editRules,
2123
2140
  'vxe-editable': !!editConfig,
package/es/ui/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  import { getFuncText } from './src/utils';
3
- export const version = "3.25.0-beta.0";
3
+ export const version = "3.25.0-beta.1";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
@@ -263,16 +263,14 @@ VxeUI.setConfig({
263
263
  oSize: 0
264
264
  },
265
265
  scrollbarConfig: {
266
- // width: 14,
267
- // height: 14,
268
- x: {
269
- // position: 'bottom',
270
- visible: true
271
- },
272
- y: {
273
- // position: 'right',
274
- visible: true
275
- }
266
+ // xConfig: {
267
+ // // position: 'bottom',
268
+ // // visible: true
269
+ // },
270
+ // yConfig: {
271
+ // // position: 'right',
272
+ // // visible: true
273
+ // }
276
274
  },
277
275
  undoRedoHistoryConfig: {
278
276
  stackSize: 50
package/es/ui/src/log.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const tableVersion = `table v${"3.25.0-beta.0"}`;
3
+ const tableVersion = `table v${"3.25.0-beta.1"}`;
4
4
  export function createComponentLog(name) {
5
5
  const uiVersion = VxeUI.uiVersion ? `ui v${VxeUI.uiVersion}` : '';
6
6
  const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
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.0";
3326
+ const version = "3.25.0-beta.1";
3327
3327
  core_.VxeUI.version = version;
3328
3328
  core_.VxeUI.tableVersion = version;
3329
3329
  core_.VxeUI.setConfig({
@@ -3586,16 +3586,14 @@ core_.VxeUI.setConfig({
3586
3586
  oSize: 0
3587
3587
  },
3588
3588
  scrollbarConfig: {
3589
- // width: 14,
3590
- // height: 14,
3591
- x: {
3592
- // position: 'bottom',
3593
- visible: true
3594
- },
3595
- y: {
3596
- // position: 'right',
3597
- visible: true
3598
- }
3589
+ // xConfig: {
3590
+ // // position: 'bottom',
3591
+ // // visible: true
3592
+ // },
3593
+ // yConfig: {
3594
+ // // position: 'right',
3595
+ // // visible: true
3596
+ // }
3599
3597
  },
3600
3598
  undoRedoHistoryConfig: {
3601
3599
  stackSize: 50
@@ -4285,7 +4283,7 @@ function getPopupAppendElement(appendTo) {
4285
4283
  const {
4286
4284
  log: log_log
4287
4285
  } = core_.VxeUI;
4288
- const tableVersion = `table v${"3.25.0-beta.0"}`;
4286
+ const tableVersion = `table v${"3.25.0-beta.1"}`;
4289
4287
  function createComponentLog(name) {
4290
4288
  const uiVersion = core_.VxeUI.uiVersion ? `ui v${core_.VxeUI.uiVersion}` : '';
4291
4289
  const ganttVersion = core_.VxeUI.ganttVersion ? `gantt v${core_.VxeUI.ganttVersion}` : '';
@@ -7965,6 +7963,10 @@ const tableProps = {
7965
7963
  virtualXConfig: Object,
7966
7964
  // 纵向虚拟滚动配置项
7967
7965
  virtualYConfig: Object,
7966
+ useScrollbar: {
7967
+ type: Boolean,
7968
+ default: () => props_getConfig().table.useScrollbar
7969
+ },
7968
7970
  // 滚动条配置项
7969
7971
  scrollbarConfig: Object,
7970
7972
  // 撤销/恢复历史配置项
@@ -8116,7 +8118,7 @@ if(sortMultiple){tableData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_
8116
8118
  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){// 还原行分组
8117
8119
  // 还原虚拟树
8118
8120
  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){// 还原虚拟树
8119
- 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 scrollbarOpts=$xeTable.computeScrollbarOpts;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 scrollbarXConf=scrollbarOpts.x||{};const scrollbarYConf=scrollbarOpts.y||{};const scrollbarYToLeft=$xeTable.computeScrollbarYToLeft;let xScrollbarVisible=overflowX?'visible':'hidden';if(scrollbarXConf.visible==='visible'||$xeGanttView){osbHeight=scrollbarHeight;xScrollbarVisible='visible';}else if(scrollbarXConf.visible==='hidden'||scrollbarXConf.visible===false){osbHeight=0;xScrollbarVisible='hidden';}let yScrollbarVisible=overflowY?'visible':'hidden';if(scrollbarYConf.visible==='hidden'||scrollbarYConf.visible===false||$xeGantt&&$xeGanttView&&$xeGantt.reactData.showRightView&&!scrollbarYToLeft){osbWidth=0;yScrollbarVisible='hidden';}else if(scrollbarYConf.visible==='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'){// 表头体样式处理
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'){// 表头体样式处理
8120
8122
  // 横向滚动渲染
8121
8123
  let renderColumnList=tableColumn;const isOptimizeMode=isHeaderRenderOptimize;if(isGroup){renderColumnList=visibleColumn;}else{if(!isOptimizeMode||!isColLoading&&(fixedType||!overflowX)){renderColumnList=visibleColumn;}if(fixedType){// 如果是使用优化模式
8122
8124
  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`;}// 如果是固定列
@@ -8216,7 +8218,7 @@ isShow=true;content=customContent;}else{content=cellText;}}if(isShow&&content){c
8216
8218
  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 逻辑
8217
8219
  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 逻辑
8218
8220
  const rowHeight=computeRowHeight($xeTable);scrollYStore.rowHeight=rowHeight;// 已废弃
8219
- 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 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){overflowY=scrollYHeight>bodyWrapperElem.clientHeight;if(yHandleEl){reactData.scrollbarWidth=scrollbarOpts.width||yHandleEl.offsetWidth-yHandleEl.clientWidth||14;}reactData.overflowY=overflowY;overflowX=scrollXWidth>bodyWrapperElem.clientWidth;if(xHandleEl){reactData.scrollbarHeight=scrollbarOpts.height||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(()=>{// 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
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(()=>{// 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
8220
8222
  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毫秒内频繁执行,则执行次数减缓
8221
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;// 渲染量低的场景
8222
8224
  if(renderCellSize<400){rceDelay=20;}else if(renderCellSize<600){rceDelay=40;}else if(renderCellSize<800){rceDelay=80;}if(rceTimeout){clearTimeout(rceTimeout);// 多少毫秒内至少执行一次
@@ -8871,8 +8873,8 @@ if(transform){return handleVirtualTreeExpand($xeTable,rows,expanded);}else{retur
8871
8873
  * 纵向 Y 可视渲染事件处理
8872
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;}// 如果滚轮未移动或者触摸板未变化位置
8873
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){// 如果禁用滚动
8874
- if(scrollbarXOpts.visible==='hidden'){evnt.preventDefault();return;}}if(isRollY){// 如果禁用滚动
8875
- if(scrollbarYOpts.visible==='hidden'){evnt.preventDefault();return;}const isTopWheel=deltaTop<0;// 如果滚动位置已经是顶部或底部,则不需要触发
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;// 如果滚动位置已经是顶部或底部,则不需要触发
8876
8878
  if(isTopWheel?currScrollTop<=0:currScrollTop>=bodyScrollElem.scrollHeight-bodyScrollElem.clientHeight){return;}}// 展开行处理,如果展开行嵌入表格中
8877
8879
  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();}// 用于鼠标纵向滚轮处理
8878
8880
  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 可视渲染上下剩余空间大小
@@ -21341,7 +21343,7 @@ function renderViewFixed(h, $xeTable, fixedType) {
21341
21343
  const osYBehavior = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(overscrollYBehavior) ? scrollbarOpts.overscrollBehavior : overscrollYBehavior;
21342
21344
  return h('div', {
21343
21345
  ref: isFixedLeft ? 'refLeftContainer' : 'refRightContainer',
21344
- class: [`vxe-table--fixed-${fixedType}-wrapper`, `sx--${scrollbarXOpts.visible}`, `sy--${scrollbarYOpts.visible}`, {
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'}`, {
21345
21347
  [`x-ob--${osXBehavior}`]: osXBehavior,
21346
21348
  [`y-ob--${osYBehavior}`]: osYBehavior
21347
21349
  }]
@@ -21692,7 +21694,7 @@ function renderViewport(h, $xeTable) {
21692
21694
  [`y-ob--${osYBehavior}`]: osYBehavior
21693
21695
  }]
21694
21696
  }, [h('div', {
21695
- class: ['vxe-table--main-wrapper', `sx--${scrollbarXOpts.visible}`, `sy--${scrollbarYOpts.visible}`]
21697
+ class: ['vxe-table--main-wrapper', `sx--${scrollbarXOpts.visible === false || scrollbarXOpts.visible === 'hidden' ? 'hidden' : 'visible'}`, `sy--${scrollbarYOpts.visible === false || scrollbarYOpts.visible === 'hidden' ? 'hidden' : 'visible'}`]
21696
21698
  }, [
21697
21699
  /**
21698
21700
  * 表头
@@ -21767,6 +21769,7 @@ function renderBody(h, $xeTable) {
21767
21769
  const xID = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId();
21768
21770
  const reactData = createReactData();
21769
21771
  return {
21772
+ ...{},
21770
21773
  xID,
21771
21774
  ...reactData,
21772
21775
  // 私有属性
@@ -21897,15 +21900,13 @@ function renderBody(h, $xeTable) {
21897
21900
  },
21898
21901
  computeScrollbarXOpts() {
21899
21902
  const $xeTable = this;
21900
- const props = $xeTable;
21901
21903
  const scrollbarOpts = $xeTable.computeScrollbarOpts;
21902
- return Object.assign({}, scrollbarOpts.x, props.scrollbarConfig?.x || {});
21904
+ return scrollbarOpts.x ? Object.assign({}, scrollbarOpts.x, scrollbarOpts.xConfig) : scrollbarOpts.xConfig || {};
21903
21905
  },
21904
21906
  computeScrollbarYOpts() {
21905
21907
  const $xeTable = this;
21906
- const props = $xeTable;
21907
21908
  const scrollbarOpts = $xeTable.computeScrollbarOpts;
21908
- return Object.assign({}, scrollbarOpts.y, props.scrollbarConfig?.y || {});
21909
+ return scrollbarOpts.y ? Object.assign({}, scrollbarOpts.y, scrollbarOpts.yConfig) : scrollbarOpts.yConfig || {};
21909
21910
  },
21910
21911
  computeScrollbarXToTop() {
21911
21912
  const $xeTable = this;
@@ -22486,19 +22487,20 @@ function renderBody(h, $xeTable) {
22486
22487
  },
22487
22488
  computeTableStyle() {
22488
22489
  const $xeTable = this;
22490
+ const scrollDefaultConf = $xeTable.scrollDefaultConf;
22489
22491
  const scrollbarOpts = $xeTable.computeScrollbarOpts;
22490
- const {
22491
- width,
22492
- height
22493
- } = scrollbarOpts;
22494
- const tStys = {};
22495
- if (width) {
22496
- tStys['--vxe-ui-table-view-scrollbar-width'] = toCssUnit(width);
22497
- }
22498
- if (height) {
22499
- tStys['--vxe-ui-table-view-scrollbar-height'] = toCssUnit(height);
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);
22496
+ const stys = {};
22497
+ if (barWidth || barHeight) {
22498
+ stys['--vxe-ui-table-view-scrollbar-width'] = toCssUnit(barWidth || barHeight);
22499
+ stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
22500
+ stys['--vxe-ui-table-view-scrollbar-height'] = toCssUnit(barHeight || barWidth);
22501
+ stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
22500
22502
  }
22501
- return tStys;
22503
+ return stys;
22502
22504
  },
22503
22505
  computeTableRowExpandedList() {
22504
22506
  const $xeTable = this;
@@ -22965,6 +22967,7 @@ function renderBody(h, $xeTable) {
22965
22967
  const $xeTable = this;
22966
22968
  const props = $xeTable;
22967
22969
  const internalData = $xeTable;
22970
+ $xeTable.scrollDefaultConf = Object.assign({}, table_getConfig().scrollbar);
22968
22971
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(internalData, createInternalData());
22969
22972
  handleKeyField($xeTable);
22970
22973
  const {
@@ -23000,6 +23003,7 @@ function renderBody(h, $xeTable) {
23000
23003
  const areaOpts = $xeTable.computeAreaOpts;
23001
23004
  const sortOpts = $xeTable.computeSortOpts;
23002
23005
  const filterOpts = $xeTable.computeFilterOpts;
23006
+ const scrollbarOpts = $xeTable.computeScrollbarOpts;
23003
23007
  const {
23004
23008
  groupFields
23005
23009
  } = aggregateOpts;
@@ -23250,6 +23254,12 @@ function renderBody(h, $xeTable) {
23250
23254
  // if ((hasEnableConf(printConfig, printOpts) || hasEnableConf(importConfig, importOpts) || hasEnableConf(exportConfig, exportOpts)) && !$xeTable.exportData) {
23251
23255
  // errLog('vxe.error.reqModule', ['Export'])
23252
23256
  // }
23257
+ if (scrollbarOpts.x) {
23258
+ table_warnLog('vxe.error.delProp', ['scrollbar-config.x', 'scrollbar-config.xConfig']);
23259
+ }
23260
+ if (scrollbarOpts.y) {
23261
+ table_warnLog('vxe.error.delProp', ['scrollbar-config.y', 'scrollbar-config.yConfig']);
23262
+ }
23253
23263
  Object.assign(scrollYStore, {
23254
23264
  startIndex: 0,
23255
23265
  endIndex: 1,
@@ -23470,6 +23480,7 @@ function renderBody(h, $xeTable) {
23470
23480
  const {
23471
23481
  loading,
23472
23482
  stripe,
23483
+ useScrollbar,
23473
23484
  showHeader,
23474
23485
  height,
23475
23486
  treeConfig,
@@ -23545,7 +23556,7 @@ function renderBody(h, $xeTable) {
23545
23556
  }
23546
23557
  return h('div', {
23547
23558
  ref: 'refElem',
23548
- class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
23559
+ 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'}`, {
23549
23560
  [`size--${vSize}`]: vSize,
23550
23561
  [`valid-msg--${validOpts.msgMode}`]: !!editRules,
23551
23562
  'vxe-editable': !!editConfig,