vxe-table 4.23.0-beta.0 → 4.23.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/all.esm.js +540 -103
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/locale/lang/fr-FR.js +29 -29
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/src/props.js +9 -1
- package/es/table/src/scrollbar.js +54 -0
- package/es/table/src/table.js +458 -89
- package/es/table/src/util.js +11 -2
- package/es/table/style.css +30 -0
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +9 -11
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +30 -0
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +118 -38
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/fr-FR.js +29 -29
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/fr-FR.umd.js +29 -29
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/src/props.js +9 -1
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/scrollbar.js +63 -0
- package/lib/table/src/scrollbar.min.js +1 -0
- package/lib/table/src/table.js +33 -23
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +11 -2
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +30 -0
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +9 -11
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +30 -0
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/locale/lang/fr-FR.ts +903 -903
- package/packages/table/src/props.ts +9 -1
- package/packages/table/src/scrollbar.ts +57 -0
- package/packages/table/src/table.ts +494 -91
- package/packages/table/src/util.ts +15 -2
- package/packages/ui/index.ts +8 -10
- package/styles/components/table.scss +65 -0
- /package/es/{iconfont.1791880428511.ttf → iconfont.1792035024476.ttf} +0 -0
- /package/es/{iconfont.1791880428511.woff → iconfont.1792035024476.woff} +0 -0
- /package/es/{iconfont.1791880428511.woff2 → iconfont.1792035024476.woff2} +0 -0
- /package/lib/{iconfont.1791880428511.ttf → iconfont.1792035024476.ttf} +0 -0
- /package/lib/{iconfont.1791880428511.woff → iconfont.1792035024476.woff} +0 -0
- /package/lib/{iconfont.1791880428511.woff2 → iconfont.1792035024476.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.
|
|
59
|
+
const version = "4.23.0-beta.2";
|
|
60
60
|
VxeUI.version = version;
|
|
61
61
|
VxeUI.tableVersion = version;
|
|
62
62
|
VxeUI.setConfig({
|
|
@@ -318,16 +318,14 @@ VxeUI.setConfig({
|
|
|
318
318
|
oSize: 0
|
|
319
319
|
},
|
|
320
320
|
scrollbarConfig: {
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
visible: true
|
|
330
|
-
}
|
|
321
|
+
// xConfig: {
|
|
322
|
+
// // position: 'bottom',
|
|
323
|
+
// // visible: true
|
|
324
|
+
// },
|
|
325
|
+
// yConfig: {
|
|
326
|
+
// // position: 'right',
|
|
327
|
+
// // visible: true
|
|
328
|
+
// }
|
|
331
329
|
},
|
|
332
330
|
undoRedoHistoryConfig: {
|
|
333
331
|
stackSize: 50
|
|
@@ -940,7 +938,7 @@ function getPopupWrapperElement(panelElem) {
|
|
|
940
938
|
}
|
|
941
939
|
|
|
942
940
|
const { log } = VxeUI;
|
|
943
|
-
const tableVersion = `table v${"4.23.0-beta.
|
|
941
|
+
const tableVersion = `table v${"4.23.0-beta.2"}`;
|
|
944
942
|
function createComponentLog(name) {
|
|
945
943
|
const uiVersion = VxeUI.uiVersion ? `ui v${VxeUI.uiVersion}` : '';
|
|
946
944
|
const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
|
|
@@ -1192,9 +1190,15 @@ function createInternalData$3() {
|
|
|
1192
1190
|
// 当前行
|
|
1193
1191
|
currentRow: null,
|
|
1194
1192
|
currentCol: null,
|
|
1195
|
-
//
|
|
1196
|
-
|
|
1193
|
+
// resizeObserver: undefined,
|
|
1194
|
+
// 滚动条
|
|
1195
|
+
// scrollObserver: undefined,
|
|
1196
|
+
// isThumbDrag: false,
|
|
1197
|
+
thumbDragOffset: 0,
|
|
1198
|
+
yThumbTop: 0,
|
|
1199
|
+
xThumbLeft: 0,
|
|
1197
1200
|
lastScrollTop: 0,
|
|
1201
|
+
lastScrollLeft: 0,
|
|
1198
1202
|
// 单选框属性,已选中保留的行
|
|
1199
1203
|
radioReserveRow: null,
|
|
1200
1204
|
// 复选框属性,已选中保留的行集合
|
|
@@ -1327,6 +1331,9 @@ function createReactData$2() {
|
|
|
1327
1331
|
scrollbarWidth: 0,
|
|
1328
1332
|
// 横向滚动条的高度
|
|
1329
1333
|
scrollbarHeight: 0,
|
|
1334
|
+
// 滚动条
|
|
1335
|
+
yThumbHeight: 0,
|
|
1336
|
+
xThumbWidth: 0,
|
|
1330
1337
|
// 行高
|
|
1331
1338
|
rowHeight: 0,
|
|
1332
1339
|
// 表格父容器的高度
|
|
@@ -3852,7 +3859,10 @@ const tableProps = {
|
|
|
3852
3859
|
type: Boolean,
|
|
3853
3860
|
default: () => getConfig$7().table.highlightCurrentRow
|
|
3854
3861
|
},
|
|
3855
|
-
|
|
3862
|
+
/**
|
|
3863
|
+
* (即将废弃)鼠标移到行是否要高亮显示
|
|
3864
|
+
* @deprecated
|
|
3865
|
+
*/
|
|
3856
3866
|
highlightHoverRow: {
|
|
3857
3867
|
type: Boolean,
|
|
3858
3868
|
default: () => getConfig$7().table.highlightHoverRow
|
|
@@ -4075,6 +4085,10 @@ const tableProps = {
|
|
|
4075
4085
|
virtualXConfig: Object,
|
|
4076
4086
|
// 纵向虚拟滚动配置项
|
|
4077
4087
|
virtualYConfig: Object,
|
|
4088
|
+
useScrollbar: {
|
|
4089
|
+
type: Boolean,
|
|
4090
|
+
default: () => getDefaultConfig(getConfig$7().table.useScrollbar, getConfig$7().useScrollbar)
|
|
4091
|
+
},
|
|
4078
4092
|
// 滚动条配置项
|
|
4079
4093
|
scrollbarConfig: Object,
|
|
4080
4094
|
// 撤销/恢复历史配置项
|
|
@@ -4285,6 +4299,61 @@ function clearColAnimate(elem, clss) {
|
|
|
4285
4299
|
}, 500);
|
|
4286
4300
|
}
|
|
4287
4301
|
|
|
4302
|
+
/**
|
|
4303
|
+
* 计算滚动条滑块的长度
|
|
4304
|
+
*/
|
|
4305
|
+
function getThumbSize(viewportSize, contentSize, trackSize) {
|
|
4306
|
+
if (contentSize <= viewportSize) {
|
|
4307
|
+
return 0;
|
|
4308
|
+
}
|
|
4309
|
+
const ratio = viewportSize / contentSize;
|
|
4310
|
+
const ideal = trackSize * ratio;
|
|
4311
|
+
return Math.max(20, Math.min(ideal, trackSize));
|
|
4312
|
+
}
|
|
4313
|
+
/**
|
|
4314
|
+
* 计算滚动条滑块的偏移位置
|
|
4315
|
+
*/
|
|
4316
|
+
function getThumbOffsetSize(offsetSize, viewportSize, contentSize, trackSize, thumbSize) {
|
|
4317
|
+
const maxScroll = contentSize - viewportSize;
|
|
4318
|
+
if (maxScroll <= 0) {
|
|
4319
|
+
return 0;
|
|
4320
|
+
}
|
|
4321
|
+
const maxThumbOffset = trackSize - thumbSize;
|
|
4322
|
+
if (maxThumbOffset <= 0) {
|
|
4323
|
+
return 0;
|
|
4324
|
+
}
|
|
4325
|
+
const clamped = Math.min(Math.max(offsetSize, 0), maxScroll);
|
|
4326
|
+
const ratio = clamped / maxScroll;
|
|
4327
|
+
return ratio * maxThumbOffset;
|
|
4328
|
+
}
|
|
4329
|
+
/**
|
|
4330
|
+
* 根据点击轨道的位置,计算滑块的偏移位置
|
|
4331
|
+
*/
|
|
4332
|
+
function getScrollFromClick(clickPosition, viewportSize, contentSize, trackSize, thumbSize) {
|
|
4333
|
+
const maxThumbOffset = trackSize - thumbSize;
|
|
4334
|
+
const maxScroll = contentSize - viewportSize;
|
|
4335
|
+
if (maxScroll <= 0 || maxThumbOffset <= 0) {
|
|
4336
|
+
return 0;
|
|
4337
|
+
}
|
|
4338
|
+
let thumbOffset = clickPosition - thumbSize / 2;
|
|
4339
|
+
thumbOffset = Math.min(Math.max(thumbOffset, 0), maxThumbOffset);
|
|
4340
|
+
const scrollOffset = (thumbOffset / maxThumbOffset) * maxScroll;
|
|
4341
|
+
return scrollOffset;
|
|
4342
|
+
}
|
|
4343
|
+
/**
|
|
4344
|
+
* 拖拽 thumb 时,根据鼠标位置计算滑块的偏移位置
|
|
4345
|
+
*/
|
|
4346
|
+
function getScrollFromDrag(pointerPosition, dragOffset, viewportSize, contentSize, trackSize, thumbSize) {
|
|
4347
|
+
const maxScroll = contentSize - viewportSize;
|
|
4348
|
+
const maxThumbOffset = trackSize - thumbSize;
|
|
4349
|
+
if (maxScroll <= 0 || maxThumbOffset <= 0) {
|
|
4350
|
+
return 0;
|
|
4351
|
+
}
|
|
4352
|
+
let thumbOffset = pointerPosition - dragOffset;
|
|
4353
|
+
thumbOffset = Math.min(Math.max(thumbOffset, 0), maxThumbOffset);
|
|
4354
|
+
return (thumbOffset / maxThumbOffset) * maxScroll;
|
|
4355
|
+
}
|
|
4356
|
+
|
|
4288
4357
|
// 跨表拖拽
|
|
4289
4358
|
const crossTableDragRowInfo = reactive({
|
|
4290
4359
|
row: null
|
|
@@ -15974,7 +16043,7 @@ renderer$2.mixin({
|
|
|
15974
16043
|
});
|
|
15975
16044
|
|
|
15976
16045
|
const { warnLog: warnLog$2, errLog: errLog$2 } = createComponentLog('table');
|
|
15977
|
-
const { getConfig: getConfig$2, getIcon: getIcon$1, getI18n: getI18n$2, renderer: renderer$1, formats, createEvent: createEvent$2, globalResize, interceptor, hooks: hooks$1, globalEvents: globalEvents$1, GLOBAL_EVENT_KEYS: GLOBAL_EVENT_KEYS$1, useFns: useFns$2, renderEmptyElement: renderEmptyElement$1 } = VxeUI;
|
|
16046
|
+
const { getConfig: getConfig$2, getIcon: getIcon$1, getI18n: getI18n$2, renderer: renderer$1, formats, createEvent: createEvent$2, globalResize, interceptor, hooks: hooks$1, domUtils, globalEvents: globalEvents$1, GLOBAL_EVENT_KEYS: GLOBAL_EVENT_KEYS$1, useFns: useFns$2, renderEmptyElement: renderEmptyElement$1 } = VxeUI;
|
|
15978
16047
|
const supportMaxRow = 5e6;
|
|
15979
16048
|
const customStorageKey = 'VXE_CUSTOM_STORE';
|
|
15980
16049
|
const maxYHeight = 5e6;
|
|
@@ -15989,6 +16058,7 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
15989
16058
|
const { slots, emit } = context;
|
|
15990
16059
|
const xID = XEUtils.uniqueId();
|
|
15991
16060
|
const browseObj = XEUtils.browse();
|
|
16061
|
+
const scrollDefaultConf = Object.assign({}, getConfig$2().scrollbar);
|
|
15992
16062
|
// 使用已安装的组件,如果未安装则不渲染
|
|
15993
16063
|
const VxeUILoadingComponent = VxeUI.getComponent('VxeLoading');
|
|
15994
16064
|
const VxeUITooltipComponent = VxeUI.getComponent('VxeTooltip');
|
|
@@ -16048,6 +16118,10 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
16048
16118
|
const refScrollYBottomCornerElem = ref();
|
|
16049
16119
|
const refScrollXSpaceElem = ref();
|
|
16050
16120
|
const refScrollYSpaceElem = ref();
|
|
16121
|
+
const refTrackXElem = ref();
|
|
16122
|
+
const refTrackYElem = ref();
|
|
16123
|
+
const refThumbXElem = ref();
|
|
16124
|
+
const refThumbYElem = ref();
|
|
16051
16125
|
let $xeToolbar;
|
|
16052
16126
|
const computeTableId = computed(() => {
|
|
16053
16127
|
const { id } = props;
|
|
@@ -16131,14 +16205,42 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
16131
16205
|
return Object.assign({}, getConfig$2().table.scrollbarConfig, props.scrollbarConfig);
|
|
16132
16206
|
});
|
|
16133
16207
|
const computeScrollbarXOpts = computed(() => {
|
|
16134
|
-
var _a;
|
|
16135
16208
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
16136
|
-
return Object.assign({}, scrollbarOpts.x,
|
|
16209
|
+
return scrollbarOpts.x ? Object.assign({}, scrollbarOpts.x, scrollbarOpts.xConfig) : (scrollbarOpts.xConfig || {});
|
|
16137
16210
|
});
|
|
16138
16211
|
const computeScrollbarYOpts = computed(() => {
|
|
16139
|
-
var _a;
|
|
16140
16212
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
16141
|
-
return Object.assign({}, scrollbarOpts.y,
|
|
16213
|
+
return scrollbarOpts.y ? Object.assign({}, scrollbarOpts.y, scrollbarOpts.yConfig) : (scrollbarOpts.yConfig || {});
|
|
16214
|
+
});
|
|
16215
|
+
const computeScrollXHeight = computed(() => {
|
|
16216
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
16217
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
16218
|
+
return XEUtils.toNumber(getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), scrollDefaultConf.height));
|
|
16219
|
+
});
|
|
16220
|
+
const computeScrollYWidth = computed(() => {
|
|
16221
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
16222
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
16223
|
+
return XEUtils.toNumber(getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), scrollDefaultConf.width));
|
|
16224
|
+
});
|
|
16225
|
+
const computeScrollXVisible = computed(() => {
|
|
16226
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
16227
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
16228
|
+
return getDefaultConfig(scrollbarXOpts.visible, scrollbarOpts.visible);
|
|
16229
|
+
});
|
|
16230
|
+
const computeScrollYVisible = computed(() => {
|
|
16231
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
16232
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
16233
|
+
return getDefaultConfig(scrollbarYOpts.visible, scrollbarOpts.visible);
|
|
16234
|
+
});
|
|
16235
|
+
const computeScrollXAutoHide = computed(() => {
|
|
16236
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
16237
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
16238
|
+
return getDefaultConfig(getDefaultConfig(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), scrollDefaultConf.autoHide);
|
|
16239
|
+
});
|
|
16240
|
+
const computeScrollYAutoHide = computed(() => {
|
|
16241
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
16242
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
16243
|
+
return getDefaultConfig(getDefaultConfig(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), scrollDefaultConf.autoHide);
|
|
16142
16244
|
});
|
|
16143
16245
|
const computeScrollbarXToTop = computed(() => {
|
|
16144
16246
|
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
@@ -16148,6 +16250,23 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
16148
16250
|
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
16149
16251
|
return scrollbarYOpts.position === 'left';
|
|
16150
16252
|
});
|
|
16253
|
+
const computeScrollbarWrapperClss = computed(() => {
|
|
16254
|
+
const { yThumbHeight, xThumbWidth } = reactData;
|
|
16255
|
+
const scrollbarXToTop = computeScrollbarXToTop.value;
|
|
16256
|
+
const scrollbarYToLeft = computeScrollbarYToLeft.value;
|
|
16257
|
+
const scrollXVisible = computeScrollXVisible.value;
|
|
16258
|
+
const scrollYVisible = computeScrollYVisible.value;
|
|
16259
|
+
return domUtils.buildClass([
|
|
16260
|
+
'vxe-scrollbar is--virtual',
|
|
16261
|
+
`ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}`,
|
|
16262
|
+
`ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}`,
|
|
16263
|
+
`sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`,
|
|
16264
|
+
`sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`
|
|
16265
|
+
], {
|
|
16266
|
+
'overflow-y': yThumbHeight,
|
|
16267
|
+
'overflow-x': xThumbWidth
|
|
16268
|
+
});
|
|
16269
|
+
});
|
|
16151
16270
|
const computeScrollYThreshold = computed(() => {
|
|
16152
16271
|
const virtualYOpts = computeVirtualYOpts.value;
|
|
16153
16272
|
const { threshold } = virtualYOpts;
|
|
@@ -16177,6 +16296,10 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
16177
16296
|
}
|
|
16178
16297
|
return cellOpts;
|
|
16179
16298
|
});
|
|
16299
|
+
const computeCellHeitht = computed(() => {
|
|
16300
|
+
const cellOpts = computeCellOpts.value;
|
|
16301
|
+
return cellOpts.height;
|
|
16302
|
+
});
|
|
16180
16303
|
const computeHeaderCellOpts = computed(() => {
|
|
16181
16304
|
const headerCellOpts = Object.assign({}, getConfig$2().table.headerCellConfig, props.headerCellConfig);
|
|
16182
16305
|
const defaultRowHeight = computeDefaultRowHeight.value;
|
|
@@ -16476,16 +16599,16 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
16476
16599
|
return '';
|
|
16477
16600
|
});
|
|
16478
16601
|
const computeTableStyle = computed(() => {
|
|
16479
|
-
const
|
|
16480
|
-
const
|
|
16481
|
-
const
|
|
16482
|
-
if (
|
|
16483
|
-
|
|
16484
|
-
|
|
16485
|
-
|
|
16486
|
-
|
|
16602
|
+
const barWidth = computeScrollYWidth.value;
|
|
16603
|
+
const barHeight = computeScrollXHeight.value;
|
|
16604
|
+
const stys = {};
|
|
16605
|
+
if (barWidth || barHeight) {
|
|
16606
|
+
stys['--vxe-ui-table-view-scrollbar-width'] = toCssUnit(barWidth || barHeight);
|
|
16607
|
+
stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
|
|
16608
|
+
stys['--vxe-ui-table-view-scrollbar-height'] = toCssUnit(barHeight || barWidth);
|
|
16609
|
+
stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
|
|
16487
16610
|
}
|
|
16488
|
-
return
|
|
16611
|
+
return stys;
|
|
16489
16612
|
});
|
|
16490
16613
|
const computeTableRowExpandedList = computed(() => {
|
|
16491
16614
|
const { tableData, rowExpandedFlag, expandColumn, rowGroupExpandedFlag, treeExpandedFlag } = reactData;
|
|
@@ -16673,8 +16796,15 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
16673
16796
|
computeScrollbarOpts,
|
|
16674
16797
|
computeScrollbarXOpts,
|
|
16675
16798
|
computeScrollbarYOpts,
|
|
16799
|
+
computeScrollXHeight,
|
|
16800
|
+
computeScrollYWidth,
|
|
16801
|
+
computeScrollXVisible,
|
|
16802
|
+
computeScrollYVisible,
|
|
16803
|
+
computeScrollXAutoHide,
|
|
16804
|
+
computeScrollYAutoHide,
|
|
16676
16805
|
computeScrollbarXToTop,
|
|
16677
16806
|
computeScrollbarYToLeft,
|
|
16807
|
+
computeScrollbarWrapperClss,
|
|
16678
16808
|
computeColumnOpts,
|
|
16679
16809
|
computeCurrentColumnOpts,
|
|
16680
16810
|
computeScrollXThreshold,
|
|
@@ -17791,14 +17921,6 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
17791
17921
|
if (!bodyWrapperElem) {
|
|
17792
17922
|
return;
|
|
17793
17923
|
}
|
|
17794
|
-
const yHandleEl = refScrollYHandleElem.value;
|
|
17795
|
-
if (!yHandleEl) {
|
|
17796
|
-
return;
|
|
17797
|
-
}
|
|
17798
|
-
const xHandleEl = refScrollXHandleElem.value;
|
|
17799
|
-
if (!xHandleEl) {
|
|
17800
|
-
return;
|
|
17801
|
-
}
|
|
17802
17924
|
const columnOpts = computeColumnOpts.value;
|
|
17803
17925
|
let tWidth = 0;
|
|
17804
17926
|
const minCellWidth = 40; // 列宽最少限制 40px
|
|
@@ -18391,7 +18513,6 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
18391
18513
|
const isHeaderRenderOptimize = computeIsHeaderRenderOptimize.value;
|
|
18392
18514
|
const isBodyRenderOptimize = computeIsBodyRenderOptimize.value;
|
|
18393
18515
|
const isFooterRenderOptimize = computeIsFooterRenderOptimize.value;
|
|
18394
|
-
const scrollbarOpts = computeScrollbarOpts.value;
|
|
18395
18516
|
const mouseOpts = computeMouseOpts.value;
|
|
18396
18517
|
const bodyWrapperElem = getRefElem(elemStore['main-body-wrapper']);
|
|
18397
18518
|
const bodyTableElem = getRefElem(elemStore['main-body-table']);
|
|
@@ -18399,24 +18520,26 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
18399
18520
|
emptyPlaceholderElem.style.top = `${tHeaderHeight}px`;
|
|
18400
18521
|
emptyPlaceholderElem.style.height = bodyWrapperElem ? `${bodyWrapperElem.offsetHeight - osbHeight}px` : '';
|
|
18401
18522
|
}
|
|
18402
|
-
const
|
|
18403
|
-
const
|
|
18523
|
+
const scrollXVisible = computeScrollXVisible.value;
|
|
18524
|
+
const scrollYVisible = computeScrollYVisible.value;
|
|
18404
18525
|
const scrollbarYToLeft = computeScrollbarYToLeft.value;
|
|
18405
18526
|
let xScrollbarVisible = overflowX ? 'visible' : 'hidden';
|
|
18406
|
-
|
|
18527
|
+
const hideXScroll = scrollXVisible === false || scrollXVisible === 'hidden';
|
|
18528
|
+
if (scrollXVisible === 'visible' || $xeGanttView) {
|
|
18407
18529
|
osbHeight = scrollbarHeight;
|
|
18408
18530
|
xScrollbarVisible = 'visible';
|
|
18409
18531
|
}
|
|
18410
|
-
else if (
|
|
18532
|
+
else if (hideXScroll) {
|
|
18411
18533
|
osbHeight = 0;
|
|
18412
18534
|
xScrollbarVisible = 'hidden';
|
|
18413
18535
|
}
|
|
18414
18536
|
let yScrollbarVisible = overflowY ? 'visible' : 'hidden';
|
|
18415
|
-
|
|
18537
|
+
const hideYScroll = scrollYVisible === false || scrollYVisible === 'hidden';
|
|
18538
|
+
if (hideYScroll || (($xeGantt && $xeGanttView && $xeGantt.reactData.showRightView) && !scrollbarYToLeft)) {
|
|
18416
18539
|
osbWidth = 0;
|
|
18417
18540
|
yScrollbarVisible = 'hidden';
|
|
18418
18541
|
}
|
|
18419
|
-
else if (
|
|
18542
|
+
else if (scrollYVisible === 'visible') {
|
|
18420
18543
|
osbWidth = scrollbarWidth;
|
|
18421
18544
|
yScrollbarVisible = 'visible';
|
|
18422
18545
|
}
|
|
@@ -19224,7 +19347,6 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
19224
19347
|
const calcScrollbar = () => {
|
|
19225
19348
|
const { scrollXWidth, scrollYHeight } = reactData;
|
|
19226
19349
|
const { elemStore } = internalData;
|
|
19227
|
-
const scrollbarOpts = computeScrollbarOpts.value;
|
|
19228
19350
|
const el = refElem.value;
|
|
19229
19351
|
if (!el || !el.clientWidth) {
|
|
19230
19352
|
return;
|
|
@@ -19234,17 +19356,30 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
19234
19356
|
const footerTableElem = getRefElem(elemStore['main-footer-table']);
|
|
19235
19357
|
const xHandleEl = refScrollXHandleElem.value;
|
|
19236
19358
|
const yHandleEl = refScrollYHandleElem.value;
|
|
19359
|
+
const thumbXElem = refThumbXElem.value;
|
|
19360
|
+
const thumbYElem = refThumbYElem.value;
|
|
19237
19361
|
let overflowY = false;
|
|
19238
19362
|
let overflowX = false;
|
|
19239
19363
|
if (bodyWrapperElem) {
|
|
19364
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
19365
|
+
const barWidth = computeScrollYWidth.value;
|
|
19366
|
+
const barHeight = computeScrollXHeight.value;
|
|
19240
19367
|
overflowY = scrollYHeight > bodyWrapperElem.clientHeight;
|
|
19241
|
-
|
|
19242
|
-
|
|
19368
|
+
// 如果是虚拟滚动条
|
|
19369
|
+
if (thumbYElem) {
|
|
19370
|
+
reactData.scrollbarHeight = scrollbarOpts.padding ? thumbYElem.offsetWidth : 0;
|
|
19371
|
+
}
|
|
19372
|
+
else if (yHandleEl) {
|
|
19373
|
+
reactData.scrollbarWidth = (barWidth || barHeight) || (yHandleEl.offsetWidth - yHandleEl.clientWidth) || 14;
|
|
19243
19374
|
}
|
|
19244
19375
|
reactData.overflowY = overflowY;
|
|
19245
19376
|
overflowX = scrollXWidth > bodyWrapperElem.clientWidth;
|
|
19246
|
-
|
|
19247
|
-
|
|
19377
|
+
// 如果是虚拟滚动条
|
|
19378
|
+
if (thumbXElem) {
|
|
19379
|
+
reactData.scrollbarHeight = scrollbarOpts.padding ? thumbXElem.offsetHeight : 0;
|
|
19380
|
+
}
|
|
19381
|
+
else if (xHandleEl) {
|
|
19382
|
+
reactData.scrollbarHeight = (barHeight || barWidth) || (xHandleEl.offsetHeight - xHandleEl.clientHeight) || 14;
|
|
19248
19383
|
}
|
|
19249
19384
|
const hHeight = headerTableElem ? headerTableElem.clientHeight : 0;
|
|
19250
19385
|
const fHeight = footerTableElem ? footerTableElem.clientHeight : 0;
|
|
@@ -19310,6 +19445,10 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
19310
19445
|
}
|
|
19311
19446
|
});
|
|
19312
19447
|
};
|
|
19448
|
+
const updateScrollbar = () => {
|
|
19449
|
+
updateThumbSize();
|
|
19450
|
+
updateThumbOffset();
|
|
19451
|
+
};
|
|
19313
19452
|
const defaultMinRunDelay = 50;
|
|
19314
19453
|
const handleLazyRecalculate = (reFull, reWidth, reHeight, options) => {
|
|
19315
19454
|
const minRunDelay = (options ? options.minRunDelay : defaultMinRunDelay) || defaultMinRunDelay;
|
|
@@ -19330,6 +19469,7 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
19330
19469
|
const refreshDelay = resizeOpts.refreshDelay || 30;
|
|
19331
19470
|
const reDelay = rceDelay + refreshDelay;
|
|
19332
19471
|
const el = refElem.value;
|
|
19472
|
+
updateScrollbar();
|
|
19333
19473
|
if (el && el.clientWidth) {
|
|
19334
19474
|
autoCellWidth();
|
|
19335
19475
|
updateRowExpandStyle();
|
|
@@ -27331,6 +27471,18 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
27331
27471
|
}
|
|
27332
27472
|
return nextTick();
|
|
27333
27473
|
},
|
|
27474
|
+
/**
|
|
27475
|
+
* @private
|
|
27476
|
+
*/
|
|
27477
|
+
updateScrollbar() {
|
|
27478
|
+
return updateScrollbar();
|
|
27479
|
+
},
|
|
27480
|
+
/**
|
|
27481
|
+
* @private
|
|
27482
|
+
*/
|
|
27483
|
+
updateThumbOffset() {
|
|
27484
|
+
return updateThumbOffset();
|
|
27485
|
+
},
|
|
27334
27486
|
/**
|
|
27335
27487
|
* 表头单元格按下事件
|
|
27336
27488
|
*/
|
|
@@ -28478,19 +28630,18 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
28478
28630
|
},
|
|
28479
28631
|
handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, params) {
|
|
28480
28632
|
const { highlightHoverRow } = props;
|
|
28481
|
-
const { lastScrollLeft, lastScrollTop } = internalData;
|
|
28482
|
-
const
|
|
28483
|
-
|
|
28484
|
-
if (!xHandleEl || !yHandleEl) {
|
|
28633
|
+
const { elemStore, lastScrollLeft, lastScrollTop } = internalData;
|
|
28634
|
+
const bodyScrollElem = getRefElem(elemStore['main-body-scroll']);
|
|
28635
|
+
if (!bodyScrollElem) {
|
|
28485
28636
|
return;
|
|
28486
28637
|
}
|
|
28487
28638
|
const rowOpts = computeRowOpts.value;
|
|
28488
28639
|
const validTip = refValidTooltip.value;
|
|
28489
28640
|
const tooltip = refTooltip.value;
|
|
28490
|
-
const bodyHeight =
|
|
28491
|
-
const bodyWidth =
|
|
28492
|
-
const scrollHeight =
|
|
28493
|
-
const scrollWidth =
|
|
28641
|
+
const bodyHeight = bodyScrollElem.clientHeight;
|
|
28642
|
+
const bodyWidth = bodyScrollElem.clientWidth;
|
|
28643
|
+
const scrollHeight = bodyScrollElem.scrollHeight;
|
|
28644
|
+
const scrollWidth = bodyScrollElem.scrollWidth;
|
|
28494
28645
|
let isTop = false;
|
|
28495
28646
|
let isBottom = false;
|
|
28496
28647
|
let isLeft = false;
|
|
@@ -28552,6 +28703,7 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
28552
28703
|
isLeft,
|
|
28553
28704
|
isRight,
|
|
28554
28705
|
direction }, params);
|
|
28706
|
+
updateThumbOffset();
|
|
28555
28707
|
updateRowExpandStyle();
|
|
28556
28708
|
checkLastSyncScroll(isRollX, isRollY);
|
|
28557
28709
|
if (isRollX) {
|
|
@@ -28596,6 +28748,7 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
28596
28748
|
}
|
|
28597
28749
|
},
|
|
28598
28750
|
triggerBodyScrollEvent(evnt, fixedType) {
|
|
28751
|
+
const { useScrollbar } = props;
|
|
28599
28752
|
const { scrollYLoad, scrollXLoad } = reactData;
|
|
28600
28753
|
const { elemStore, intoRunScroll, lastScrollTop, lastScrollLeft, inWheelScroll, inVirtualScroll, inHeaderScroll, inBodyScroll, scrollRenderType, inFooterScroll } = internalData;
|
|
28601
28754
|
if (inWheelScroll || inVirtualScroll || inHeaderScroll || inFooterScroll) {
|
|
@@ -28615,19 +28768,21 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
28615
28768
|
if (!bodyScrollElem) {
|
|
28616
28769
|
return;
|
|
28617
28770
|
}
|
|
28618
|
-
if (!
|
|
28619
|
-
|
|
28620
|
-
|
|
28621
|
-
|
|
28622
|
-
|
|
28771
|
+
if (!useScrollbar) {
|
|
28772
|
+
if (!xHandleEl) {
|
|
28773
|
+
return;
|
|
28774
|
+
}
|
|
28775
|
+
if (!yHandleEl) {
|
|
28776
|
+
return;
|
|
28777
|
+
}
|
|
28623
28778
|
}
|
|
28624
28779
|
if (inBodyScroll) {
|
|
28625
28780
|
if (scrollRenderType !== fixedType) {
|
|
28626
28781
|
return;
|
|
28627
28782
|
}
|
|
28628
28783
|
}
|
|
28629
|
-
let scrollTop =
|
|
28630
|
-
let scrollLeft =
|
|
28784
|
+
let scrollTop = 0;
|
|
28785
|
+
let scrollLeft = 0;
|
|
28631
28786
|
if (leftScrollElem && fixedType === 'left') {
|
|
28632
28787
|
scrollTop = leftScrollElem.scrollTop;
|
|
28633
28788
|
}
|
|
@@ -28768,8 +28923,8 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
28768
28923
|
const rightFixedWidth = computeRightFixedWidth.value;
|
|
28769
28924
|
const { elemStore, lastScrollTop, lastScrollLeft } = internalData;
|
|
28770
28925
|
const rowOpts = computeRowOpts.value;
|
|
28771
|
-
const
|
|
28772
|
-
const
|
|
28926
|
+
const scrollXVisible = computeScrollXVisible.value;
|
|
28927
|
+
const scrollYVisible = computeScrollYVisible.value;
|
|
28773
28928
|
const xHandleEl = refScrollXHandleElem.value;
|
|
28774
28929
|
const yHandleEl = refScrollYHandleElem.value;
|
|
28775
28930
|
const leftScrollElem = getRefElem(elemStore['left-body-scroll']);
|
|
@@ -28792,14 +28947,14 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
28792
28947
|
const isRollY = overflowY && scrollTop !== lastScrollTop;
|
|
28793
28948
|
if (isRollX) {
|
|
28794
28949
|
// 如果禁用滚动
|
|
28795
|
-
if (
|
|
28950
|
+
if (scrollXVisible === false || scrollXVisible === 'hidden') {
|
|
28796
28951
|
evnt.preventDefault();
|
|
28797
28952
|
return;
|
|
28798
28953
|
}
|
|
28799
28954
|
}
|
|
28800
28955
|
if (isRollY) {
|
|
28801
28956
|
// 如果禁用滚动
|
|
28802
|
-
if (
|
|
28957
|
+
if (scrollYVisible === false || scrollYVisible === 'hidden') {
|
|
28803
28958
|
evnt.preventDefault();
|
|
28804
28959
|
return;
|
|
28805
28960
|
}
|
|
@@ -29364,6 +29519,168 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
29364
29519
|
return nextTick();
|
|
29365
29520
|
}
|
|
29366
29521
|
};
|
|
29522
|
+
const updateThumbSize = () => {
|
|
29523
|
+
const { elemStore } = internalData;
|
|
29524
|
+
const viewEl = getRefElem(elemStore['main-body-scroll']);
|
|
29525
|
+
if (!viewEl) {
|
|
29526
|
+
return;
|
|
29527
|
+
}
|
|
29528
|
+
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
29529
|
+
return;
|
|
29530
|
+
}
|
|
29531
|
+
const trackXEl = refTrackXElem.value;
|
|
29532
|
+
const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
|
|
29533
|
+
const thumbXElem = refThumbXElem.value;
|
|
29534
|
+
if (thumbXElem) {
|
|
29535
|
+
thumbXElem.style.width = xThumbWidth + 'px';
|
|
29536
|
+
}
|
|
29537
|
+
reactData.xThumbWidth = xThumbWidth;
|
|
29538
|
+
const trackYEl = refTrackYElem.value;
|
|
29539
|
+
const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
|
|
29540
|
+
const thumbYElem = refThumbYElem.value;
|
|
29541
|
+
if (thumbYElem) {
|
|
29542
|
+
thumbYElem.style.height = yThumbHeight + 'px';
|
|
29543
|
+
}
|
|
29544
|
+
reactData.yThumbHeight = yThumbHeight;
|
|
29545
|
+
};
|
|
29546
|
+
const updateThumbOffset = () => {
|
|
29547
|
+
const { elemStore } = internalData;
|
|
29548
|
+
const viewEl = getRefElem(elemStore['main-body-scroll']);
|
|
29549
|
+
if (!viewEl) {
|
|
29550
|
+
return;
|
|
29551
|
+
}
|
|
29552
|
+
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
29553
|
+
return;
|
|
29554
|
+
}
|
|
29555
|
+
const { xThumbWidth, yThumbHeight } = reactData;
|
|
29556
|
+
const trackXEl = refTrackXElem.value;
|
|
29557
|
+
const thumbXElem = refThumbXElem.value;
|
|
29558
|
+
const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
|
|
29559
|
+
internalData.xThumbLeft = xThumbLeft;
|
|
29560
|
+
if (thumbXElem && xThumbWidth) {
|
|
29561
|
+
thumbXElem.style.width = xThumbWidth + 'px';
|
|
29562
|
+
thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
|
|
29563
|
+
}
|
|
29564
|
+
const trackYEl = refTrackYElem.value;
|
|
29565
|
+
const thumbYElem = refThumbYElem.value;
|
|
29566
|
+
const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
|
|
29567
|
+
internalData.yThumbTop = yThumbTop;
|
|
29568
|
+
if (thumbYElem && yThumbHeight) {
|
|
29569
|
+
thumbYElem.style.height = yThumbHeight + 'px';
|
|
29570
|
+
thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
|
|
29571
|
+
}
|
|
29572
|
+
};
|
|
29573
|
+
const clickTrackXEvent = (evnt) => {
|
|
29574
|
+
const { elemStore } = internalData;
|
|
29575
|
+
const trackEl = evnt.currentTarget;
|
|
29576
|
+
if (trackEl !== evnt.target) {
|
|
29577
|
+
return;
|
|
29578
|
+
}
|
|
29579
|
+
const viewEl = getRefElem(elemStore['main-body-scroll']);
|
|
29580
|
+
if (!viewEl) {
|
|
29581
|
+
return;
|
|
29582
|
+
}
|
|
29583
|
+
const { xThumbWidth } = reactData;
|
|
29584
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
29585
|
+
viewEl.scrollTo({
|
|
29586
|
+
left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
|
|
29587
|
+
behavior: 'auto'
|
|
29588
|
+
});
|
|
29589
|
+
};
|
|
29590
|
+
const clickTrackYEvent = (evnt) => {
|
|
29591
|
+
const { elemStore } = internalData;
|
|
29592
|
+
const trackEl = evnt.currentTarget;
|
|
29593
|
+
if (trackEl !== evnt.target) {
|
|
29594
|
+
return;
|
|
29595
|
+
}
|
|
29596
|
+
const viewEl = getRefElem(elemStore['main-body-scroll']);
|
|
29597
|
+
if (!viewEl) {
|
|
29598
|
+
return;
|
|
29599
|
+
}
|
|
29600
|
+
const { yThumbHeight } = reactData;
|
|
29601
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
29602
|
+
viewEl.scrollTo({
|
|
29603
|
+
top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
|
|
29604
|
+
behavior: 'auto'
|
|
29605
|
+
});
|
|
29606
|
+
};
|
|
29607
|
+
const pointerdownThumbXEvent = (evnt) => {
|
|
29608
|
+
const { elemStore } = internalData;
|
|
29609
|
+
const thumbEl = evnt.currentTarget;
|
|
29610
|
+
internalData.isThumbDrag = true;
|
|
29611
|
+
thumbEl.setPointerCapture(evnt.pointerId);
|
|
29612
|
+
const viewEl = getRefElem(elemStore['main-body-scroll']);
|
|
29613
|
+
if (!viewEl) {
|
|
29614
|
+
return;
|
|
29615
|
+
}
|
|
29616
|
+
const { xThumbWidth } = reactData;
|
|
29617
|
+
const trackEl = thumbEl.parentElement;
|
|
29618
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
29619
|
+
const pointerPosition = evnt.clientX - trackRect.left;
|
|
29620
|
+
// 记录 thumb 的偏移
|
|
29621
|
+
const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
29622
|
+
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
29623
|
+
};
|
|
29624
|
+
const pointermoveThumbXEvent = (evnt) => {
|
|
29625
|
+
const thumbEl = evnt.currentTarget;
|
|
29626
|
+
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
29627
|
+
return;
|
|
29628
|
+
}
|
|
29629
|
+
const { elemStore, isThumbDrag, thumbDragOffset } = internalData;
|
|
29630
|
+
if (isThumbDrag) {
|
|
29631
|
+
const viewEl = getRefElem(elemStore['main-body-scroll']);
|
|
29632
|
+
if (!viewEl) {
|
|
29633
|
+
return;
|
|
29634
|
+
}
|
|
29635
|
+
const { xThumbWidth } = reactData;
|
|
29636
|
+
const thumbEl = evnt.currentTarget;
|
|
29637
|
+
const trackEl = thumbEl.parentElement;
|
|
29638
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
29639
|
+
// 更新偏移
|
|
29640
|
+
viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
29641
|
+
}
|
|
29642
|
+
};
|
|
29643
|
+
const cleatPointerThumbEvent = (evnt) => {
|
|
29644
|
+
const thumbEl = evnt.currentTarget;
|
|
29645
|
+
thumbEl.releasePointerCapture(evnt.pointerId);
|
|
29646
|
+
internalData.isThumbDrag = false;
|
|
29647
|
+
};
|
|
29648
|
+
const pointerdownThumbYEvent = (evnt) => {
|
|
29649
|
+
const { elemStore } = internalData;
|
|
29650
|
+
const thumbEl = evnt.currentTarget;
|
|
29651
|
+
internalData.isThumbDrag = true;
|
|
29652
|
+
thumbEl.setPointerCapture(evnt.pointerId);
|
|
29653
|
+
const viewEl = getRefElem(elemStore['main-body-scroll']);
|
|
29654
|
+
if (!viewEl) {
|
|
29655
|
+
return;
|
|
29656
|
+
}
|
|
29657
|
+
const { yThumbHeight } = reactData;
|
|
29658
|
+
const trackEl = thumbEl.parentElement;
|
|
29659
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
29660
|
+
const pointerPosition = evnt.clientY - trackRect.top;
|
|
29661
|
+
// 记录 thumb 的偏移
|
|
29662
|
+
const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
29663
|
+
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
29664
|
+
};
|
|
29665
|
+
const pointermoveThumbYEvent = (evnt) => {
|
|
29666
|
+
const thumbEl = evnt.currentTarget;
|
|
29667
|
+
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
29668
|
+
return;
|
|
29669
|
+
}
|
|
29670
|
+
const { elemStore, isThumbDrag, thumbDragOffset } = internalData;
|
|
29671
|
+
if (isThumbDrag) {
|
|
29672
|
+
const viewEl = getRefElem(elemStore['main-body-scroll']);
|
|
29673
|
+
if (!viewEl) {
|
|
29674
|
+
return;
|
|
29675
|
+
}
|
|
29676
|
+
const { yThumbHeight } = reactData;
|
|
29677
|
+
const thumbEl = evnt.currentTarget;
|
|
29678
|
+
const trackEl = thumbEl.parentElement;
|
|
29679
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
29680
|
+
// 更新偏移
|
|
29681
|
+
viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
29682
|
+
}
|
|
29683
|
+
};
|
|
29367
29684
|
// 检测对应模块是否安装
|
|
29368
29685
|
// 'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(name => {
|
|
29369
29686
|
// ($xeTable as any)[name] = function () {
|
|
@@ -29388,6 +29705,8 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
29388
29705
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
29389
29706
|
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
29390
29707
|
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
29708
|
+
const scrollXVisible = computeScrollXVisible.value;
|
|
29709
|
+
const scrollYVisible = computeScrollYVisible.value;
|
|
29391
29710
|
const { overscrollBehavior: overscrollXBehavior } = scrollbarXOpts;
|
|
29392
29711
|
const { overscrollBehavior: overscrollYBehavior } = scrollbarYOpts;
|
|
29393
29712
|
const isFixedLeft = fixedType === 'left';
|
|
@@ -29396,10 +29715,15 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
29396
29715
|
const osYBehavior = XEUtils.eqNull(overscrollYBehavior) ? scrollbarOpts.overscrollBehavior : overscrollYBehavior;
|
|
29397
29716
|
return h('div', {
|
|
29398
29717
|
ref: isFixedLeft ? refLeftContainer : refRightContainer,
|
|
29399
|
-
class: [
|
|
29718
|
+
class: [
|
|
29719
|
+
`vxe-table--fixed-${fixedType}-wrapper`,
|
|
29720
|
+
`sx--${(scrollXVisible === false || scrollXVisible === 'hidden') ? 'hidden' : 'visible'}`,
|
|
29721
|
+
`sy--${(scrollYVisible === false || scrollYVisible === 'hidden') ? 'hidden' : 'visible'}`,
|
|
29722
|
+
{
|
|
29400
29723
|
[`x-ob--${osXBehavior}`]: osXBehavior,
|
|
29401
29724
|
[`y-ob--${osYBehavior}`]: osYBehavior
|
|
29402
|
-
}
|
|
29725
|
+
}
|
|
29726
|
+
]
|
|
29403
29727
|
}, [
|
|
29404
29728
|
showHeader
|
|
29405
29729
|
? h(TableHeaderComponent, {
|
|
@@ -29658,6 +29982,7 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
29658
29982
|
};
|
|
29659
29983
|
const renderScrollY = () => {
|
|
29660
29984
|
return h('div', {
|
|
29985
|
+
key: 'vsy',
|
|
29661
29986
|
ref: refScrollYVirtualElem,
|
|
29662
29987
|
class: 'vxe-table--scroll-y-virtual'
|
|
29663
29988
|
}, [
|
|
@@ -29695,12 +30020,15 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
29695
30020
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
29696
30021
|
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
29697
30022
|
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
30023
|
+
const scrollXVisible = computeScrollXVisible.value;
|
|
30024
|
+
const scrollYVisible = computeScrollYVisible.value;
|
|
29698
30025
|
const { overscrollBehavior: overscrollXBehavior } = scrollbarXOpts;
|
|
29699
30026
|
const { overscrollBehavior: overscrollYBehavior } = scrollbarYOpts;
|
|
29700
30027
|
const { leftList, rightList } = columnStore;
|
|
29701
30028
|
const osXBehavior = XEUtils.eqNull(overscrollXBehavior) ? scrollbarOpts.overscrollBehavior : overscrollXBehavior;
|
|
29702
30029
|
const osYBehavior = XEUtils.eqNull(overscrollYBehavior) ? scrollbarOpts.overscrollBehavior : overscrollYBehavior;
|
|
29703
30030
|
return h('div', {
|
|
30031
|
+
key: 'tvw',
|
|
29704
30032
|
ref: refTableViewportElem,
|
|
29705
30033
|
class: ['vxe-table--viewport-wrapper', {
|
|
29706
30034
|
[`x-ob--${osXBehavior}`]: osXBehavior,
|
|
@@ -29708,7 +30036,11 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
29708
30036
|
}]
|
|
29709
30037
|
}, [
|
|
29710
30038
|
h('div', {
|
|
29711
|
-
class: [
|
|
30039
|
+
class: [
|
|
30040
|
+
'vxe-table--main-wrapper',
|
|
30041
|
+
`sx--${(scrollXVisible === false || scrollXVisible === 'hidden') ? 'hidden' : 'visible'}`,
|
|
30042
|
+
`sy--${(scrollYVisible === false || scrollYVisible === 'hidden') ? 'hidden' : 'visible'}`
|
|
30043
|
+
]
|
|
29712
30044
|
}, [
|
|
29713
30045
|
/**
|
|
29714
30046
|
* 表头
|
|
@@ -29749,9 +30081,10 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
29749
30081
|
renderRowExpandedVNs()
|
|
29750
30082
|
]);
|
|
29751
30083
|
};
|
|
29752
|
-
const
|
|
30084
|
+
const renderNativeBody = () => {
|
|
29753
30085
|
const scrollbarYToLeft = computeScrollbarYToLeft.value;
|
|
29754
30086
|
return h('div', {
|
|
30087
|
+
key: 'lnb',
|
|
29755
30088
|
class: 'vxe-table--layout-wrapper'
|
|
29756
30089
|
}, scrollbarYToLeft
|
|
29757
30090
|
? [
|
|
@@ -29763,8 +30096,74 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
29763
30096
|
renderScrollY()
|
|
29764
30097
|
]);
|
|
29765
30098
|
};
|
|
30099
|
+
const renderVirtualBody = () => {
|
|
30100
|
+
const $xeGanttView = internalData.xeGanttView;
|
|
30101
|
+
const { useScrollbar } = props;
|
|
30102
|
+
const { xThumbWidth, yThumbHeight } = reactData;
|
|
30103
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
30104
|
+
const scrollXAutoHide = computeScrollXAutoHide.value;
|
|
30105
|
+
const scrollYAutoHide = computeScrollYAutoHide.value;
|
|
30106
|
+
const scrollXVisible = computeScrollXVisible.value;
|
|
30107
|
+
const scrollYVisible = computeScrollYVisible.value;
|
|
30108
|
+
const scrollbarXToTop = computeScrollbarXToTop.value;
|
|
30109
|
+
const scrollbarYToLeft = computeScrollbarYToLeft.value;
|
|
30110
|
+
const scrollbarWrapperClss = computeScrollbarWrapperClss.value;
|
|
30111
|
+
const hideXScroll = scrollXVisible === false || scrollXVisible === 'hidden';
|
|
30112
|
+
const hideYScroll = scrollYVisible === false || scrollYVisible === 'hidden';
|
|
30113
|
+
return h('div', {
|
|
30114
|
+
key: 'lvb',
|
|
30115
|
+
class: ['vxe-table--layout-wrapper', `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
|
|
30116
|
+
'is--virtual-scrollbar': useScrollbar,
|
|
30117
|
+
'ov-padding': useScrollbar && scrollbarOpts.padding,
|
|
30118
|
+
'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
|
|
30119
|
+
'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
|
|
30120
|
+
'overflow-y': yThumbHeight,
|
|
30121
|
+
'overflow-x': xThumbWidth
|
|
30122
|
+
}]
|
|
30123
|
+
}, [
|
|
30124
|
+
renderViewport(),
|
|
30125
|
+
h('div', {
|
|
30126
|
+
class: scrollbarWrapperClss
|
|
30127
|
+
}, [
|
|
30128
|
+
hideXScroll
|
|
30129
|
+
? renderEmptyElement$1($xeTable)
|
|
30130
|
+
: h('div', {
|
|
30131
|
+
ref: refTrackXElem,
|
|
30132
|
+
class: 'vxe-scrollbar--track-x',
|
|
30133
|
+
onClick: clickTrackXEvent
|
|
30134
|
+
}, [
|
|
30135
|
+
h('div', {
|
|
30136
|
+
ref: refThumbXElem,
|
|
30137
|
+
class: 'vxe-scrollbar--thumb-x',
|
|
30138
|
+
onPointerdown: pointerdownThumbXEvent,
|
|
30139
|
+
onPointermove: pointermoveThumbXEvent,
|
|
30140
|
+
onPointerup: cleatPointerThumbEvent,
|
|
30141
|
+
onPointercancel: cleatPointerThumbEvent,
|
|
30142
|
+
onLostpointercapture: cleatPointerThumbEvent
|
|
30143
|
+
})
|
|
30144
|
+
]),
|
|
30145
|
+
hideYScroll || (($xeGantt && $xeGanttView && $xeGantt.reactData.showRightView) && !scrollbarYToLeft)
|
|
30146
|
+
? renderEmptyElement$1($xeTable)
|
|
30147
|
+
: h('div', {
|
|
30148
|
+
ref: refTrackYElem,
|
|
30149
|
+
class: 'vxe-scrollbar--track-y',
|
|
30150
|
+
onClick: clickTrackYEvent
|
|
30151
|
+
}, [
|
|
30152
|
+
h('div', {
|
|
30153
|
+
ref: refThumbYElem,
|
|
30154
|
+
class: 'vxe-scrollbar--thumb-y',
|
|
30155
|
+
onPointerdown: pointerdownThumbYEvent,
|
|
30156
|
+
onPointermove: pointermoveThumbYEvent,
|
|
30157
|
+
onPointerup: cleatPointerThumbEvent,
|
|
30158
|
+
onPointercancel: cleatPointerThumbEvent,
|
|
30159
|
+
onLostpointercapture: cleatPointerThumbEvent
|
|
30160
|
+
})
|
|
30161
|
+
])
|
|
30162
|
+
])
|
|
30163
|
+
]);
|
|
30164
|
+
};
|
|
29766
30165
|
const renderVN = () => {
|
|
29767
|
-
const { loading, stripe, showHeader, height, treeConfig, mouseConfig, showFooter, highlightCell, highlightHoverRow, highlightHoverColumn, editConfig, editRules, importConfig, exportConfig, printConfig } = props;
|
|
30166
|
+
const { loading, stripe, useScrollbar, showHeader, height, treeConfig, mouseConfig, showFooter, highlightCell, highlightHoverRow, highlightHoverColumn, editConfig, editRules, importConfig, exportConfig, printConfig } = props;
|
|
29768
30167
|
const { isGroup, overflowX, overflowY, scrollXLoad, scrollYLoad, tableData, initStore, isRowGroupStatus, columnStore, filterStore, customStore, tooltipStore } = reactData;
|
|
29769
30168
|
const { teleportToWrapperElem, popupToWrapperElem, customPopupToElem } = internalData;
|
|
29770
30169
|
const { leftList, rightList } = columnStore;
|
|
@@ -29807,7 +30206,7 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
29807
30206
|
if (isCrossTableDrag && !tableData.length) {
|
|
29808
30207
|
tbOns.onDragover = $xeTable.handleCrossTableRowDragoverEmptyEvent;
|
|
29809
30208
|
}
|
|
29810
|
-
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'}`, {
|
|
30209
|
+
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'}`, {
|
|
29811
30210
|
[`size--${vSize}`]: vSize,
|
|
29812
30211
|
[`valid-msg--${validOpts.msgMode}`]: !!editRules,
|
|
29813
30212
|
'vxe-editable': !!editConfig,
|
|
@@ -29868,15 +30267,17 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
29868
30267
|
h('div', {
|
|
29869
30268
|
key: 'tw',
|
|
29870
30269
|
class: 'vxe-table--render-wrapper'
|
|
29871
|
-
},
|
|
29872
|
-
? [
|
|
29873
|
-
|
|
29874
|
-
|
|
29875
|
-
|
|
29876
|
-
|
|
29877
|
-
|
|
29878
|
-
|
|
29879
|
-
|
|
30270
|
+
}, useScrollbar
|
|
30271
|
+
? [renderVirtualBody()]
|
|
30272
|
+
: (scrollbarXToTop
|
|
30273
|
+
? [
|
|
30274
|
+
renderScrollX(),
|
|
30275
|
+
renderNativeBody()
|
|
30276
|
+
]
|
|
30277
|
+
: [
|
|
30278
|
+
renderNativeBody(),
|
|
30279
|
+
renderScrollX()
|
|
30280
|
+
])),
|
|
29880
30281
|
/**
|
|
29881
30282
|
* 空数据
|
|
29882
30283
|
*/
|
|
@@ -30183,6 +30584,7 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
30183
30584
|
$xeTable.refreshColumn();
|
|
30184
30585
|
});
|
|
30185
30586
|
});
|
|
30587
|
+
const reScrollFlag = ref(0);
|
|
30186
30588
|
const reLayoutFlag = ref(0);
|
|
30187
30589
|
watch(computeSize, () => {
|
|
30188
30590
|
reLayoutFlag.value++;
|
|
@@ -30215,36 +30617,47 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
30215
30617
|
watch(() => props.maxHeight, () => {
|
|
30216
30618
|
reLayoutFlag.value++;
|
|
30217
30619
|
});
|
|
30620
|
+
watch(() => VxeUI.getLanguage(), () => {
|
|
30621
|
+
reLayoutFlag.value++;
|
|
30622
|
+
});
|
|
30218
30623
|
watch(computeScrollbarXToTop, () => {
|
|
30624
|
+
reScrollFlag.value++;
|
|
30219
30625
|
reLayoutFlag.value++;
|
|
30220
30626
|
});
|
|
30221
30627
|
watch(computeScrollbarYToLeft, () => {
|
|
30628
|
+
reScrollFlag.value++;
|
|
30222
30629
|
reLayoutFlag.value++;
|
|
30223
30630
|
});
|
|
30224
|
-
watch(
|
|
30631
|
+
watch(computeScrollXVisible, () => {
|
|
30632
|
+
reScrollFlag.value++;
|
|
30225
30633
|
reLayoutFlag.value++;
|
|
30226
30634
|
});
|
|
30227
|
-
watch(() => {
|
|
30228
|
-
|
|
30229
|
-
return scrollbarXOpts.visible;
|
|
30230
|
-
}, () => {
|
|
30635
|
+
watch(computeScrollYVisible, () => {
|
|
30636
|
+
reScrollFlag.value++;
|
|
30231
30637
|
reLayoutFlag.value++;
|
|
30232
30638
|
});
|
|
30233
|
-
watch(() => {
|
|
30234
|
-
|
|
30235
|
-
return scrollbarYOpts.visible;
|
|
30236
|
-
}, () => {
|
|
30639
|
+
watch(computeScrollXHeight, () => {
|
|
30640
|
+
reScrollFlag.value++;
|
|
30237
30641
|
reLayoutFlag.value++;
|
|
30238
30642
|
});
|
|
30239
|
-
watch(() => {
|
|
30240
|
-
|
|
30241
|
-
|
|
30242
|
-
}
|
|
30643
|
+
watch(computeScrollYWidth, () => {
|
|
30644
|
+
reScrollFlag.value++;
|
|
30645
|
+
reLayoutFlag.value++;
|
|
30646
|
+
});
|
|
30647
|
+
watch(computeCellHeitht, () => {
|
|
30243
30648
|
reLayoutFlag.value++;
|
|
30244
30649
|
});
|
|
30245
30650
|
watch(reLayoutFlag, () => {
|
|
30246
30651
|
$xeTable.recalculate(true);
|
|
30247
30652
|
});
|
|
30653
|
+
watch(reScrollFlag, () => {
|
|
30654
|
+
nextTick(() => {
|
|
30655
|
+
$xeTable.updateScrollbar();
|
|
30656
|
+
nextTick(() => {
|
|
30657
|
+
$xeTable.updateScrollbar();
|
|
30658
|
+
});
|
|
30659
|
+
});
|
|
30660
|
+
});
|
|
30248
30661
|
const footFlag = ref(0);
|
|
30249
30662
|
watch(() => props.footerData ? props.footerData.length : -1, () => {
|
|
30250
30663
|
footFlag.value++;
|
|
@@ -30360,7 +30773,6 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
30360
30773
|
}
|
|
30361
30774
|
});
|
|
30362
30775
|
$xeTable.preventEvent(null, 'created', { $table: $xeTable });
|
|
30363
|
-
let resizeObserver;
|
|
30364
30776
|
onActivated(() => {
|
|
30365
30777
|
$xeTable.recalculate().then(() => $xeTable.refreshScroll());
|
|
30366
30778
|
$xeTable.preventEvent(null, 'activated', { $table: $xeTable });
|
|
@@ -30376,7 +30788,7 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
30376
30788
|
});
|
|
30377
30789
|
onMounted(() => {
|
|
30378
30790
|
const { editConfig, exportConfig, importConfig, treeConfig, minHeight, keepSource, areaConfig } = props;
|
|
30379
|
-
const { scrollXStore, scrollYStore } = internalData;
|
|
30791
|
+
const { elemStore, scrollXStore, scrollYStore } = internalData;
|
|
30380
30792
|
const columnOpts = computeColumnOpts.value;
|
|
30381
30793
|
const columnDragOpts = computeColumnDragOpts.value;
|
|
30382
30794
|
const aggregateOpts = computeAggregateOpts.value;
|
|
@@ -30398,6 +30810,7 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
30398
30810
|
const areaOpts = computeAreaOpts.value;
|
|
30399
30811
|
const sortOpts = computeSortOpts.value;
|
|
30400
30812
|
const filterOpts = computeFilterOpts.value;
|
|
30813
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
30401
30814
|
const { groupFields } = aggregateOpts;
|
|
30402
30815
|
if ($xeGantt) {
|
|
30403
30816
|
const { refClassifyWrapperElem } = $xeGantt.getRefMaps();
|
|
@@ -30629,6 +31042,12 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
30629
31042
|
// if (hasEnableConf(printConfig, printOpts) || hasEnableConf(importConfig, importOpts) || hasEnableConf(exportConfig, exportOpts)) && !$xeTable.exportData) {
|
|
30630
31043
|
// errLog('vxe.error.reqModule', ['Export'])
|
|
30631
31044
|
// }
|
|
31045
|
+
if (scrollbarOpts.x) {
|
|
31046
|
+
warnLog$2('vxe.error.delProp', ['scrollbar-config.x', 'scrollbar-config.xConfig']);
|
|
31047
|
+
}
|
|
31048
|
+
if (scrollbarOpts.y) {
|
|
31049
|
+
warnLog$2('vxe.error.delProp', ['scrollbar-config.y', 'scrollbar-config.yConfig']);
|
|
31050
|
+
}
|
|
30632
31051
|
Object.assign(scrollYStore, {
|
|
30633
31052
|
startIndex: 0,
|
|
30634
31053
|
endIndex: 0,
|
|
@@ -30642,12 +31061,26 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
30642
31061
|
handleUpdateRowGroup(groupFields);
|
|
30643
31062
|
initData();
|
|
30644
31063
|
nextTick(() => {
|
|
30645
|
-
|
|
30646
|
-
|
|
31064
|
+
const { useScrollbar, autoResize } = props;
|
|
31065
|
+
const el = refElem.value;
|
|
31066
|
+
if (useScrollbar) {
|
|
31067
|
+
const viewInnerEl = getRefElem(elemStore['main-body-table']);
|
|
31068
|
+
const scrollObserver = globalResize.create(() => {
|
|
31069
|
+
reScrollFlag.value++;
|
|
31070
|
+
});
|
|
31071
|
+
if (el) {
|
|
31072
|
+
scrollObserver.observe(el);
|
|
31073
|
+
}
|
|
31074
|
+
if (viewInnerEl) {
|
|
31075
|
+
scrollObserver.observe(viewInnerEl);
|
|
31076
|
+
}
|
|
31077
|
+
internalData.scrollObserver = scrollObserver;
|
|
31078
|
+
}
|
|
31079
|
+
if (autoResize) {
|
|
30647
31080
|
const parentEl = $xeTable.getParentElem();
|
|
30648
|
-
resizeObserver = globalResize.create(() => {
|
|
31081
|
+
const resizeObserver = globalResize.create(() => {
|
|
30649
31082
|
if (props.autoResize) {
|
|
30650
|
-
|
|
31083
|
+
handleResizeEvent();
|
|
30651
31084
|
}
|
|
30652
31085
|
});
|
|
30653
31086
|
if (el) {
|
|
@@ -30656,6 +31089,7 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
30656
31089
|
if (parentEl) {
|
|
30657
31090
|
resizeObserver.observe(parentEl);
|
|
30658
31091
|
}
|
|
31092
|
+
internalData.resizeObserver = resizeObserver;
|
|
30659
31093
|
}
|
|
30660
31094
|
});
|
|
30661
31095
|
if (virtualYOpts.mode !== 'scroll') {
|
|
@@ -30677,7 +31111,7 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
30677
31111
|
$xeTable.preventEvent(null, 'mounted', { $table: $xeTable });
|
|
30678
31112
|
});
|
|
30679
31113
|
onBeforeUnmount(() => {
|
|
30680
|
-
const { _sToTime } = internalData;
|
|
31114
|
+
const { resizeObserver, scrollObserver, _sToTime } = internalData;
|
|
30681
31115
|
if (_sToTime) {
|
|
30682
31116
|
clearTimeout(_sToTime);
|
|
30683
31117
|
}
|
|
@@ -30688,6 +31122,9 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
30688
31122
|
internalData.cvCacheMaps = {};
|
|
30689
31123
|
internalData.prevDragRow = null;
|
|
30690
31124
|
internalData.prevDragCol = null;
|
|
31125
|
+
if (scrollObserver) {
|
|
31126
|
+
scrollObserver.disconnect();
|
|
31127
|
+
}
|
|
30691
31128
|
if (resizeObserver) {
|
|
30692
31129
|
resizeObserver.disconnect();
|
|
30693
31130
|
}
|