vxe-table 4.23.0-beta.0 → 4.23.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.
@@ -299,6 +299,10 @@ export const tableProps = {
299
299
  virtualXConfig: Object,
300
300
  // 纵向虚拟滚动配置项
301
301
  virtualYConfig: Object,
302
+ useScrollbar: {
303
+ type: Boolean,
304
+ default: () => getConfig().table.useScrollbar
305
+ },
302
306
  // 滚动条配置项
303
307
  scrollbarConfig: Object,
304
308
  // 撤销/恢复历史配置项
@@ -2,7 +2,7 @@ import { h, reactive, ref, provide, inject, nextTick, Teleport, onActivated, onD
2
2
  import { defineVxeComponent } from '../../ui/src/comp';
3
3
  import XEUtils from 'xe-utils';
4
4
  import { initTpImg, getTpImg, isPx, isScale, hasClass, addClass, removeClass, wheelScrollTopTo, wheelScrollLeftTo, getEventTargetNode, getPaddingTopBottomSize, setScrollTop, setScrollLeft, toCssUnit, hasControlKey, checkTargetElement, hasAxternalInputTarget } from '../../ui/src/dom';
5
- import { getLastZIndex, nextZIndex, hasChildrenList, getFuncText, isEnableConf, formatText, eqEmptyValue, hasEnableConf } from '../../ui/src/utils';
5
+ import { getLastZIndex, nextZIndex, hasChildrenList, getFuncText, isEnableConf, formatText, eqEmptyValue, hasEnableConf, getDefaultConfig } from '../../ui/src/utils';
6
6
  import { VxeUI } from '../../ui';
7
7
  import { createReactData, createInternalData, getRowUniqueId, createRowId, clearTableAllStatus, getColumnList, toFilters, hasDeepKey, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, getColReMaxWidth, createHandleUpdateRowId, createHandleGetRowId, getCalcHeight, getCellRestHeight, getLastChildColumn, getRowMaxHeight, handleCustomStoreConfig, encodeRowid } from './util';
8
8
  import { getSlotVNs } from '../../ui/src/vn';
@@ -44,6 +44,7 @@ export default defineVxeComponent({
44
44
  const { slots, emit } = context;
45
45
  const xID = XEUtils.uniqueId();
46
46
  const browseObj = XEUtils.browse();
47
+ const scrollDefaultConf = Object.assign({}, getConfig().scrollbar);
47
48
  // 使用已安装的组件,如果未安装则不渲染
48
49
  const VxeUILoadingComponent = VxeUI.getComponent('VxeLoading');
49
50
  const VxeUITooltipComponent = VxeUI.getComponent('VxeTooltip');
@@ -186,14 +187,12 @@ export default defineVxeComponent({
186
187
  return Object.assign({}, getConfig().table.scrollbarConfig, props.scrollbarConfig);
187
188
  });
188
189
  const computeScrollbarXOpts = computed(() => {
189
- var _a;
190
190
  const scrollbarOpts = computeScrollbarOpts.value;
191
- return Object.assign({}, scrollbarOpts.x, ((_a = props.scrollbarConfig) === null || _a === void 0 ? void 0 : _a.x) || {});
191
+ return scrollbarOpts.x ? Object.assign({}, scrollbarOpts.x, scrollbarOpts.xConfig) : (scrollbarOpts.xConfig || {});
192
192
  });
193
193
  const computeScrollbarYOpts = computed(() => {
194
- var _a;
195
194
  const scrollbarOpts = computeScrollbarOpts.value;
196
- return Object.assign({}, scrollbarOpts.y, ((_a = props.scrollbarConfig) === null || _a === void 0 ? void 0 : _a.y) || {});
195
+ return scrollbarOpts.y ? Object.assign({}, scrollbarOpts.y, scrollbarOpts.yConfig) : (scrollbarOpts.yConfig || {});
197
196
  });
198
197
  const computeScrollbarXToTop = computed(() => {
199
198
  const scrollbarXOpts = computeScrollbarXOpts.value;
@@ -540,15 +539,18 @@ export default defineVxeComponent({
540
539
  });
541
540
  const computeTableStyle = computed(() => {
542
541
  const scrollbarOpts = computeScrollbarOpts.value;
543
- const { width, height } = scrollbarOpts;
544
- const tStys = {};
545
- if (width) {
546
- tStys['--vxe-ui-table-view-scrollbar-width'] = toCssUnit(width);
547
- }
548
- if (height) {
549
- tStys['--vxe-ui-table-view-scrollbar-height'] = toCssUnit(height);
542
+ const scrollbarXOpts = computeScrollbarXOpts.value;
543
+ const scrollbarYOpts = computeScrollbarYOpts.value;
544
+ const barWidth = getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), scrollDefaultConf.width);
545
+ const barHeight = getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), scrollDefaultConf.height);
546
+ const stys = {};
547
+ if (barWidth || barHeight) {
548
+ stys['--vxe-ui-table-view-scrollbar-width'] = toCssUnit(barWidth || barHeight);
549
+ stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
550
+ stys['--vxe-ui-table-view-scrollbar-height'] = toCssUnit(barHeight || barWidth);
551
+ stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
550
552
  }
551
- return tStys;
553
+ return stys;
552
554
  });
553
555
  const computeTableRowExpandedList = computed(() => {
554
556
  const { tableData, rowExpandedFlag, expandColumn, rowGroupExpandedFlag, treeExpandedFlag } = reactData;
@@ -2461,7 +2463,6 @@ export default defineVxeComponent({
2461
2463
  const isHeaderRenderOptimize = computeIsHeaderRenderOptimize.value;
2462
2464
  const isBodyRenderOptimize = computeIsBodyRenderOptimize.value;
2463
2465
  const isFooterRenderOptimize = computeIsFooterRenderOptimize.value;
2464
- const scrollbarOpts = computeScrollbarOpts.value;
2465
2466
  const mouseOpts = computeMouseOpts.value;
2466
2467
  const bodyWrapperElem = getRefElem(elemStore['main-body-wrapper']);
2467
2468
  const bodyTableElem = getRefElem(elemStore['main-body-table']);
@@ -2469,24 +2470,26 @@ export default defineVxeComponent({
2469
2470
  emptyPlaceholderElem.style.top = `${tHeaderHeight}px`;
2470
2471
  emptyPlaceholderElem.style.height = bodyWrapperElem ? `${bodyWrapperElem.offsetHeight - osbHeight}px` : '';
2471
2472
  }
2472
- const scrollbarXConf = scrollbarOpts.x || {};
2473
- const scrollbarYConf = scrollbarOpts.y || {};
2473
+ const scrollbarXOpts = computeScrollbarXOpts.value;
2474
+ const scrollbarYOpts = computeScrollbarYOpts.value;
2474
2475
  const scrollbarYToLeft = computeScrollbarYToLeft.value;
2475
2476
  let xScrollbarVisible = overflowX ? 'visible' : 'hidden';
2476
- if (scrollbarXConf.visible === 'visible' || $xeGanttView) {
2477
+ const hideXScroll = scrollbarXOpts.visible === false || scrollbarXOpts.visible === 'hidden';
2478
+ if (!hideXScroll || $xeGanttView) {
2477
2479
  osbHeight = scrollbarHeight;
2478
2480
  xScrollbarVisible = 'visible';
2479
2481
  }
2480
- else if (scrollbarXConf.visible === 'hidden' || scrollbarXConf.visible === false) {
2482
+ else if (hideXScroll) {
2481
2483
  osbHeight = 0;
2482
2484
  xScrollbarVisible = 'hidden';
2483
2485
  }
2484
2486
  let yScrollbarVisible = overflowY ? 'visible' : 'hidden';
2485
- if ((scrollbarYConf.visible === 'hidden' || scrollbarYConf.visible === false) || (($xeGantt && $xeGanttView && $xeGantt.reactData.showRightView) && !scrollbarYToLeft)) {
2487
+ const showYScroll = !(scrollbarYOpts.visible === false || scrollbarYOpts.visible === 'hidden');
2488
+ if (!showYScroll || (($xeGantt && $xeGanttView && $xeGantt.reactData.showRightView) && !scrollbarYToLeft)) {
2486
2489
  osbWidth = 0;
2487
2490
  yScrollbarVisible = 'hidden';
2488
2491
  }
2489
- else if (scrollbarYConf.visible === 'visible') {
2492
+ else if (showYScroll) {
2490
2493
  osbWidth = scrollbarWidth;
2491
2494
  yScrollbarVisible = 'visible';
2492
2495
  }
@@ -3307,14 +3310,18 @@ export default defineVxeComponent({
3307
3310
  let overflowY = false;
3308
3311
  let overflowX = false;
3309
3312
  if (bodyWrapperElem) {
3313
+ const scrollbarXOpts = computeScrollbarXOpts.value;
3314
+ const scrollbarYOpts = computeScrollbarYOpts.value;
3315
+ const barWidth = XEUtils.toNumber(getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), scrollDefaultConf.width));
3316
+ const barHeight = XEUtils.toNumber(getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), scrollDefaultConf.height));
3310
3317
  overflowY = scrollYHeight > bodyWrapperElem.clientHeight;
3311
3318
  if (yHandleEl) {
3312
- reactData.scrollbarWidth = scrollbarOpts.width || (yHandleEl.offsetWidth - yHandleEl.clientWidth) || 14;
3319
+ reactData.scrollbarWidth = (barWidth || barHeight) || (yHandleEl.offsetWidth - yHandleEl.clientWidth) || 14;
3313
3320
  }
3314
3321
  reactData.overflowY = overflowY;
3315
3322
  overflowX = scrollXWidth > bodyWrapperElem.clientWidth;
3316
3323
  if (xHandleEl) {
3317
- reactData.scrollbarHeight = scrollbarOpts.height || (xHandleEl.offsetHeight - xHandleEl.clientHeight) || 14;
3324
+ reactData.scrollbarHeight = (barHeight || barWidth) || (xHandleEl.offsetHeight - xHandleEl.clientHeight) || 14;
3318
3325
  }
3319
3326
  const hHeight = headerTableElem ? headerTableElem.clientHeight : 0;
3320
3327
  const fHeight = footerTableElem ? footerTableElem.clientHeight : 0;
@@ -12880,14 +12887,14 @@ export default defineVxeComponent({
12880
12887
  const isRollY = overflowY && scrollTop !== lastScrollTop;
12881
12888
  if (isRollX) {
12882
12889
  // 如果禁用滚动
12883
- if (scrollbarXOpts.visible === 'hidden') {
12890
+ if (scrollbarXOpts.visible === false || scrollbarXOpts.visible === 'hidden') {
12884
12891
  evnt.preventDefault();
12885
12892
  return;
12886
12893
  }
12887
12894
  }
12888
12895
  if (isRollY) {
12889
12896
  // 如果禁用滚动
12890
- if (scrollbarYOpts.visible === 'hidden') {
12897
+ if (scrollbarYOpts.visible === false || scrollbarYOpts.visible === 'hidden') {
12891
12898
  evnt.preventDefault();
12892
12899
  return;
12893
12900
  }
@@ -13484,10 +13491,15 @@ export default defineVxeComponent({
13484
13491
  const osYBehavior = XEUtils.eqNull(overscrollYBehavior) ? scrollbarOpts.overscrollBehavior : overscrollYBehavior;
13485
13492
  return h('div', {
13486
13493
  ref: isFixedLeft ? refLeftContainer : refRightContainer,
13487
- class: [`vxe-table--fixed-${fixedType}-wrapper`, `sx--${scrollbarXOpts.visible}`, `sy--${scrollbarYOpts.visible}`, {
13494
+ class: [
13495
+ `vxe-table--fixed-${fixedType}-wrapper`,
13496
+ `sx--${(scrollbarXOpts.visible === false || scrollbarXOpts.visible === 'hidden') ? 'hidden' : 'visible'}`,
13497
+ `sy--${(scrollbarYOpts.visible === false || scrollbarYOpts.visible === 'hidden') ? 'hidden' : 'visible'}`,
13498
+ {
13488
13499
  [`x-ob--${osXBehavior}`]: osXBehavior,
13489
13500
  [`y-ob--${osYBehavior}`]: osYBehavior
13490
- }]
13501
+ }
13502
+ ]
13491
13503
  }, [
13492
13504
  showHeader
13493
13505
  ? h(TableHeaderComponent, {
@@ -13796,7 +13808,11 @@ export default defineVxeComponent({
13796
13808
  }]
13797
13809
  }, [
13798
13810
  h('div', {
13799
- class: ['vxe-table--main-wrapper', `sx--${scrollbarXOpts.visible}`, `sy--${scrollbarYOpts.visible}`]
13811
+ class: [
13812
+ 'vxe-table--main-wrapper',
13813
+ `sx--${(scrollbarXOpts.visible === false || scrollbarXOpts.visible === 'hidden') ? 'hidden' : 'visible'}`,
13814
+ `sy--${(scrollbarYOpts.visible === false || scrollbarYOpts.visible === 'hidden') ? 'hidden' : 'visible'}`
13815
+ ]
13800
13816
  }, [
13801
13817
  /**
13802
13818
  * 表头
@@ -13852,7 +13868,7 @@ export default defineVxeComponent({
13852
13868
  ]);
13853
13869
  };
13854
13870
  const renderVN = () => {
13855
- const { loading, stripe, showHeader, height, treeConfig, mouseConfig, showFooter, highlightCell, highlightHoverRow, highlightHoverColumn, editConfig, editRules, importConfig, exportConfig, printConfig } = props;
13871
+ const { loading, stripe, useScrollbar, showHeader, height, treeConfig, mouseConfig, showFooter, highlightCell, highlightHoverRow, highlightHoverColumn, editConfig, editRules, importConfig, exportConfig, printConfig } = props;
13856
13872
  const { isGroup, overflowX, overflowY, scrollXLoad, scrollYLoad, tableData, initStore, isRowGroupStatus, columnStore, filterStore, customStore, tooltipStore } = reactData;
13857
13873
  const { teleportToWrapperElem, popupToWrapperElem, customPopupToElem } = internalData;
13858
13874
  const { leftList, rightList } = columnStore;
@@ -13895,7 +13911,7 @@ export default defineVxeComponent({
13895
13911
  if (isCrossTableDrag && !tableData.length) {
13896
13912
  tbOns.onDragover = $xeTable.handleCrossTableRowDragoverEmptyEvent;
13897
13913
  }
13898
- return h('div', Object.assign({ ref: refElem, class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
13914
+ 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'}`, {
13899
13915
  [`size--${vSize}`]: vSize,
13900
13916
  [`valid-msg--${validOpts.msgMode}`]: !!editRules,
13901
13917
  'vxe-editable': !!editConfig,
@@ -14486,6 +14502,7 @@ export default defineVxeComponent({
14486
14502
  const areaOpts = computeAreaOpts.value;
14487
14503
  const sortOpts = computeSortOpts.value;
14488
14504
  const filterOpts = computeFilterOpts.value;
14505
+ const scrollbarOpts = computeScrollbarOpts.value;
14489
14506
  const { groupFields } = aggregateOpts;
14490
14507
  if ($xeGantt) {
14491
14508
  const { refClassifyWrapperElem } = $xeGantt.getRefMaps();
@@ -14717,6 +14734,12 @@ export default defineVxeComponent({
14717
14734
  // if (hasEnableConf(printConfig, printOpts) || hasEnableConf(importConfig, importOpts) || hasEnableConf(exportConfig, exportOpts)) && !$xeTable.exportData) {
14718
14735
  // errLog('vxe.error.reqModule', ['Export'])
14719
14736
  // }
14737
+ if (scrollbarOpts.x) {
14738
+ warnLog('vxe.error.delProp', ['scrollbar-config.x', 'scrollbar-config.xConfig']);
14739
+ }
14740
+ if (scrollbarOpts.y) {
14741
+ warnLog('vxe.error.delProp', ['scrollbar-config.y', 'scrollbar-config.yConfig']);
14742
+ }
14720
14743
  Object.assign(scrollYStore, {
14721
14744
  startIndex: 0,
14722
14745
  endIndex: 0,
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 = "4.23.0-beta.0";
3
+ export const version = "4.23.0-beta.1";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
@@ -262,16 +262,14 @@ VxeUI.setConfig({
262
262
  oSize: 0
263
263
  },
264
264
  scrollbarConfig: {
265
- // width: 14,
266
- // height: 14,
267
- x: {
268
- // position: 'bottom',
269
- visible: true
270
- },
271
- y: {
272
- // position: 'right',
273
- visible: true
274
- }
265
+ // xConfig: {
266
+ // // position: 'bottom',
267
+ // // visible: true
268
+ // },
269
+ // yConfig: {
270
+ // // position: 'right',
271
+ // // visible: true
272
+ // }
275
273
  },
276
274
  undoRedoHistoryConfig: {
277
275
  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${"4.23.0-beta.0"}`;
3
+ const tableVersion = `table v${"4.23.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}` : '';