vxe-pc-ui 4.20.8 → 4.20.10
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/dist/all.esm.js +2041 -2125
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/card/src/card.js +8 -6
- package/es/date-panel/src/date-panel.js +58 -36
- package/es/date-panel/style.css +22 -20
- package/es/date-panel/style.min.css +1 -1
- package/es/drawer/src/drawer.js +7 -5
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +74 -38
- package/es/icon-picker/style.css +9 -3
- package/es/icon-picker/style.min.css +1 -1
- package/es/layout-aside/src/layout-aside.js +6 -4
- package/es/layout-body/src/layout-body.js +6 -4
- package/es/layout-container/src/layout-container.js +11 -3
- package/es/list/src/list.js +81 -208
- package/es/menu/src/menu.js +7 -5
- package/es/modal/src/modal.js +7 -5
- package/es/scrollbar/src/scrollbar.js +28 -173
- package/es/select/src/select.js +243 -8
- package/es/select/style.css +44 -0
- package/es/select/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tabs/src/tabs.js +5 -4
- package/es/tooltip/src/tooltip.js +7 -5
- package/es/tooltip/style.css +2 -0
- package/es/tooltip/style.min.css +1 -1
- package/es/tree/src/tree.js +86 -212
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-date-panel/style.css +22 -20
- package/es/vxe-date-panel/style.min.css +1 -1
- package/es/vxe-icon-picker/style.css +9 -3
- package/es/vxe-icon-picker/style.min.css +1 -1
- package/es/vxe-select/style.css +44 -0
- package/es/vxe-select/style.min.css +1 -1
- package/es/vxe-tooltip/style.css +2 -0
- package/es/vxe-tooltip/style.min.css +1 -1
- package/lib/card/src/card.js +9 -6
- package/lib/card/src/card.min.js +1 -1
- package/lib/date-panel/src/date-panel.js +56 -34
- package/lib/date-panel/src/date-panel.min.js +1 -1
- package/lib/date-panel/style/style.css +22 -20
- package/lib/date-panel/style/style.min.css +1 -1
- package/lib/drawer/src/drawer.js +7 -4
- package/lib/drawer/src/drawer.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/icon-picker/src/icon-picker.js +101 -45
- package/lib/icon-picker/src/icon-picker.min.js +1 -1
- package/lib/icon-picker/style/style.css +9 -3
- package/lib/icon-picker/style/style.min.css +1 -1
- package/lib/index.umd.js +1049 -859
- package/lib/index.umd.min.js +1 -1
- package/lib/layout-aside/src/layout-aside.js +7 -4
- package/lib/layout-aside/src/layout-aside.min.js +1 -1
- package/lib/layout-body/src/layout-body.js +7 -4
- package/lib/layout-body/src/layout-body.min.js +1 -1
- package/lib/layout-container/src/layout-container.js +20 -4
- package/lib/layout-container/src/layout-container.min.js +1 -1
- package/lib/list/src/list.js +95 -232
- package/lib/list/src/list.min.js +1 -1
- package/lib/menu/src/menu.js +8 -4
- package/lib/menu/src/menu.min.js +1 -1
- package/lib/modal/src/modal.js +7 -4
- package/lib/modal/src/modal.min.js +1 -1
- package/lib/scrollbar/src/scrollbar.js +42 -199
- package/lib/scrollbar/src/scrollbar.min.js +1 -1
- package/lib/select/src/select.js +315 -68
- package/lib/select/src/select.min.js +1 -1
- package/lib/select/style/style.css +44 -0
- package/lib/select/style/style.min.css +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tabs/src/tabs.js +6 -5
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/tooltip/src/tooltip.js +7 -4
- package/lib/tooltip/src/tooltip.min.js +1 -1
- package/lib/tooltip/style/style.css +2 -0
- package/lib/tooltip/style/style.min.css +1 -1
- package/lib/tree/src/tree.js +101 -235
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/ui/index.js +1 -1
- 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-date-panel/style/style.css +22 -20
- package/lib/vxe-date-panel/style/style.min.css +1 -1
- package/lib/vxe-icon-picker/style/style.css +9 -3
- package/lib/vxe-icon-picker/style/style.min.css +1 -1
- package/lib/vxe-select/style/style.css +44 -0
- package/lib/vxe-select/style/style.min.css +1 -1
- package/lib/vxe-tooltip/style/style.css +2 -0
- package/lib/vxe-tooltip/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/card/src/card.ts +8 -6
- package/packages/date-panel/src/date-panel.ts +58 -36
- package/packages/drawer/src/drawer.ts +7 -5
- package/packages/icon-picker/src/icon-picker.ts +80 -38
- package/packages/layout-aside/src/layout-aside.ts +6 -4
- package/packages/layout-body/src/layout-body.ts +6 -4
- package/packages/layout-container/src/layout-container.ts +13 -3
- package/packages/list/src/list.ts +98 -224
- package/packages/menu/src/menu.ts +7 -5
- package/packages/modal/src/modal.ts +7 -5
- package/packages/scrollbar/src/scrollbar.ts +44 -189
- package/packages/select/src/select.ts +278 -8
- package/packages/tabs/src/tabs.ts +5 -4
- package/packages/tooltip/src/tooltip.ts +7 -5
- package/packages/tree/src/tree.ts +103 -228
- package/styles/components/date-panel.scss +31 -29
- package/styles/components/icon-picker.scss +9 -3
- package/styles/components/select.scss +77 -0
- package/styles/components/tooltip.scss +1 -0
- package/types/components/card.d.ts +2 -2
- package/types/components/drawer.d.ts +2 -2
- package/types/components/gantt-module/gantt-view.d.ts +7 -16
- package/types/components/grid.d.ts +3 -1
- package/types/components/icon-picker.d.ts +21 -1
- package/types/components/layout-aside.d.ts +2 -2
- package/types/components/layout-body.d.ts +2 -2
- package/types/components/layout-container.d.ts +3 -1
- package/types/components/list.d.ts +6 -2
- package/types/components/menu.d.ts +2 -2
- package/types/components/modal.d.ts +2 -2
- package/types/components/scrollbar.d.ts +17 -14
- package/types/components/select.d.ts +28 -3
- package/types/components/table.d.ts +28 -22
- package/types/components/tabs.d.ts +2 -2
- package/types/components/tooltip.d.ts +2 -2
- package/types/components/tree.d.ts +8 -17
- /package/es/icon/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/es/icon/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
- /package/es/icon/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
- /package/es/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/es/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
- /package/es/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
- /package/lib/icon/style/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
- /package/lib/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/lib/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
- /package/lib/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { ref, h, reactive, computed, onMounted, onBeforeUnmount, nextTick, watch } from 'vue';
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp';
|
|
3
3
|
import XEUtils from 'xe-utils';
|
|
4
|
-
import { VxeUI } from '../../ui';
|
|
4
|
+
import { VxeUI, useFns } from '../../ui';
|
|
5
5
|
import { toCssUnit } from '../../ui/src/dom';
|
|
6
6
|
import { getDefaultConfig } from '../../ui/src/utils';
|
|
7
7
|
import VxeLoadingComponent from '../../loading';
|
|
8
|
-
const { getConfig, createEvent, domUtils,
|
|
9
|
-
const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils;
|
|
8
|
+
const { getConfig, createEvent, domUtils, globalResize, globalEvents, renderEmptyElement } = VxeUI;
|
|
10
9
|
function createReactData() {
|
|
11
10
|
return {
|
|
12
11
|
yThumbHeight: 0,
|
|
@@ -15,7 +14,7 @@ function createReactData() {
|
|
|
15
14
|
}
|
|
16
15
|
function createInternalData() {
|
|
17
16
|
return {
|
|
18
|
-
//
|
|
17
|
+
// scrollObserver: undefined,
|
|
19
18
|
// isThumbDrag: false,
|
|
20
19
|
thumbDragOffset: 0,
|
|
21
20
|
yThumbTop: 0,
|
|
@@ -78,10 +77,22 @@ export default defineVxeComponent({
|
|
|
78
77
|
type: String,
|
|
79
78
|
default: () => getConfig().scrollbar.viewInnerClassName
|
|
80
79
|
},
|
|
80
|
+
size: {
|
|
81
|
+
type: String,
|
|
82
|
+
default: () => getConfig().scrollbar.size || getConfig().size
|
|
83
|
+
},
|
|
84
|
+
/**
|
|
85
|
+
* 已废弃
|
|
86
|
+
* @deprecated
|
|
87
|
+
*/
|
|
81
88
|
autoResize: {
|
|
82
89
|
type: Boolean,
|
|
83
90
|
default: () => getConfig().scrollbar.autoResize
|
|
84
91
|
},
|
|
92
|
+
/**
|
|
93
|
+
* 已废弃
|
|
94
|
+
* @deprecated
|
|
95
|
+
*/
|
|
85
96
|
syncResize: [Boolean, String, Number]
|
|
86
97
|
},
|
|
87
98
|
emits: [
|
|
@@ -94,12 +105,9 @@ export default defineVxeComponent({
|
|
|
94
105
|
const refElem = ref();
|
|
95
106
|
const refViewElem = ref();
|
|
96
107
|
const refViewInnerElem = ref();
|
|
97
|
-
const refTrackXElem = ref();
|
|
98
|
-
const refTrackYElem = ref();
|
|
99
|
-
const refThumbXElem = ref();
|
|
100
|
-
const refThumbYElem = ref();
|
|
101
108
|
const reactData = reactive(createReactData());
|
|
102
109
|
const internalData = createInternalData();
|
|
110
|
+
const { computeSize } = useFns.useSize(props);
|
|
103
111
|
const computeWrapperStyle = computed(() => {
|
|
104
112
|
const { width, height, minWidth, minHeight, maxWidth, maxHeight } = props;
|
|
105
113
|
const barWidth = computeYWidth.value;
|
|
@@ -160,6 +168,7 @@ export default defineVxeComponent({
|
|
|
160
168
|
const computeWrapperClss = computed(() => {
|
|
161
169
|
const { native, theme, className, padding } = props;
|
|
162
170
|
const { yThumbHeight, xThumbWidth } = reactData;
|
|
171
|
+
const vSize = computeSize.value;
|
|
163
172
|
const xToTop = computeXToTop.value;
|
|
164
173
|
const yToLeft = computeYToLeft.value;
|
|
165
174
|
const xVisible = computeXVisible.value;
|
|
@@ -168,6 +177,7 @@ export default defineVxeComponent({
|
|
|
168
177
|
const yAutoHide = computeYAutoHide.value;
|
|
169
178
|
return domUtils.buildClass([
|
|
170
179
|
'vxe-scrollbar',
|
|
180
|
+
vSize ? `size--${vSize}` : '',
|
|
171
181
|
theme ? `theme--${theme}` : '',
|
|
172
182
|
`ov-x--${xVisible === false ? 'hidden' : 'visible'}`,
|
|
173
183
|
`ov-y--${yVisible === false ? 'hidden' : 'visible'}`,
|
|
@@ -224,16 +234,17 @@ export default defineVxeComponent({
|
|
|
224
234
|
getRefMaps: () => refMaps,
|
|
225
235
|
getComputeMaps: () => computeMaps
|
|
226
236
|
};
|
|
237
|
+
const { refTrackXElem, refTrackYElem, refThumbXElem, refThumbYElem, updateThumbSize, updateThumbOffset, clickTrackXEvent, clickTrackYEvent, pointerdownThumbXEvent, pointermoveThumbXEvent, cleatPointerThumbEvent, pointerdownThumbYEvent, pointermoveThumbYEvent } = useFns.useInitVScrollbar($xeScrollbar);
|
|
227
238
|
const dispatchEvent = (type, params, evnt) => {
|
|
228
239
|
emit(type, createEvent(evnt, { $scrollbar: $xeScrollbar }, params));
|
|
229
240
|
};
|
|
230
241
|
const scrollbarMethods = {
|
|
231
242
|
dispatchEvent,
|
|
232
|
-
|
|
243
|
+
getScrollViewElem() {
|
|
233
244
|
const viewEl = refViewElem.value;
|
|
234
245
|
return viewEl || null;
|
|
235
246
|
},
|
|
236
|
-
|
|
247
|
+
getScrollViewInnerElem() {
|
|
237
248
|
const viewInnerEl = refViewInnerElem.value;
|
|
238
249
|
return viewInnerEl || null;
|
|
239
250
|
},
|
|
@@ -293,55 +304,6 @@ export default defineVxeComponent({
|
|
|
293
304
|
return nextTick();
|
|
294
305
|
}
|
|
295
306
|
};
|
|
296
|
-
const updateThumbSize = () => {
|
|
297
|
-
const viewEl = refViewElem.value;
|
|
298
|
-
if (!viewEl) {
|
|
299
|
-
return;
|
|
300
|
-
}
|
|
301
|
-
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
302
|
-
return;
|
|
303
|
-
}
|
|
304
|
-
const trackXEl = refTrackXElem.value;
|
|
305
|
-
const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
|
|
306
|
-
const thumbXElem = refThumbXElem.value;
|
|
307
|
-
if (thumbXElem) {
|
|
308
|
-
thumbXElem.style.width = xThumbWidth + 'px';
|
|
309
|
-
}
|
|
310
|
-
reactData.xThumbWidth = xThumbWidth;
|
|
311
|
-
const trackYEl = refTrackYElem.value;
|
|
312
|
-
const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
|
|
313
|
-
const thumbYElem = refThumbYElem.value;
|
|
314
|
-
if (thumbYElem) {
|
|
315
|
-
thumbYElem.style.height = yThumbHeight + 'px';
|
|
316
|
-
}
|
|
317
|
-
reactData.yThumbHeight = yThumbHeight;
|
|
318
|
-
};
|
|
319
|
-
const updateThumbOffset = () => {
|
|
320
|
-
const viewEl = refViewElem.value;
|
|
321
|
-
if (!viewEl) {
|
|
322
|
-
return;
|
|
323
|
-
}
|
|
324
|
-
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
325
|
-
return;
|
|
326
|
-
}
|
|
327
|
-
const { xThumbWidth, yThumbHeight } = reactData;
|
|
328
|
-
const trackXEl = refTrackXElem.value;
|
|
329
|
-
const thumbXElem = refThumbXElem.value;
|
|
330
|
-
const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
|
|
331
|
-
internalData.xThumbLeft = xThumbLeft;
|
|
332
|
-
if (thumbXElem && xThumbWidth) {
|
|
333
|
-
thumbXElem.style.width = xThumbWidth + 'px';
|
|
334
|
-
thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
|
|
335
|
-
}
|
|
336
|
-
const trackYEl = refTrackYElem.value;
|
|
337
|
-
const thumbYElem = refThumbYElem.value;
|
|
338
|
-
const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
|
|
339
|
-
internalData.yThumbTop = yThumbTop;
|
|
340
|
-
if (thumbYElem && yThumbHeight) {
|
|
341
|
-
thumbYElem.style.height = yThumbHeight + 'px';
|
|
342
|
-
thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
|
|
343
|
-
}
|
|
344
|
-
};
|
|
345
307
|
const scrollEvent = (evnt) => {
|
|
346
308
|
const { xThumbWidth, yThumbHeight } = reactData;
|
|
347
309
|
const { lastScrollTop, lastScrollLeft } = internalData;
|
|
@@ -416,113 +378,6 @@ export default defineVxeComponent({
|
|
|
416
378
|
scrollWidth: scrollWidth
|
|
417
379
|
}, evnt);
|
|
418
380
|
};
|
|
419
|
-
const clickTrackXEvent = (evnt) => {
|
|
420
|
-
const trackEl = evnt.currentTarget;
|
|
421
|
-
if (trackEl !== evnt.target) {
|
|
422
|
-
return;
|
|
423
|
-
}
|
|
424
|
-
const viewEl = refViewElem.value;
|
|
425
|
-
if (!viewEl) {
|
|
426
|
-
return;
|
|
427
|
-
}
|
|
428
|
-
const { xThumbWidth } = reactData;
|
|
429
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
430
|
-
viewEl.scrollTo({
|
|
431
|
-
left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
|
|
432
|
-
behavior: 'auto'
|
|
433
|
-
});
|
|
434
|
-
};
|
|
435
|
-
const clickTrackYEvent = (evnt) => {
|
|
436
|
-
const trackEl = evnt.currentTarget;
|
|
437
|
-
if (trackEl !== evnt.target) {
|
|
438
|
-
return;
|
|
439
|
-
}
|
|
440
|
-
const viewEl = refViewElem.value;
|
|
441
|
-
if (!viewEl) {
|
|
442
|
-
return;
|
|
443
|
-
}
|
|
444
|
-
const { yThumbHeight } = reactData;
|
|
445
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
446
|
-
viewEl.scrollTo({
|
|
447
|
-
top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
|
|
448
|
-
behavior: 'auto'
|
|
449
|
-
});
|
|
450
|
-
};
|
|
451
|
-
const pointerdownThumbXEvent = (evnt) => {
|
|
452
|
-
const thumbEl = evnt.currentTarget;
|
|
453
|
-
internalData.isThumbDrag = true;
|
|
454
|
-
thumbEl.setPointerCapture(evnt.pointerId);
|
|
455
|
-
const viewEl = refViewElem.value;
|
|
456
|
-
if (!viewEl) {
|
|
457
|
-
return;
|
|
458
|
-
}
|
|
459
|
-
const { xThumbWidth } = reactData;
|
|
460
|
-
const trackEl = thumbEl.parentElement;
|
|
461
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
462
|
-
const pointerPosition = evnt.clientX - trackRect.left;
|
|
463
|
-
// 记录 thumb 的偏移
|
|
464
|
-
const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
465
|
-
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
466
|
-
};
|
|
467
|
-
const pointermoveThumbXEvent = (evnt) => {
|
|
468
|
-
const thumbEl = evnt.currentTarget;
|
|
469
|
-
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
470
|
-
return;
|
|
471
|
-
}
|
|
472
|
-
const { isThumbDrag, thumbDragOffset } = internalData;
|
|
473
|
-
if (isThumbDrag) {
|
|
474
|
-
const viewEl = refViewElem.value;
|
|
475
|
-
if (!viewEl) {
|
|
476
|
-
return;
|
|
477
|
-
}
|
|
478
|
-
const { xThumbWidth } = reactData;
|
|
479
|
-
const thumbEl = evnt.currentTarget;
|
|
480
|
-
const trackEl = thumbEl.parentElement;
|
|
481
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
482
|
-
// 更新偏移
|
|
483
|
-
viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
484
|
-
}
|
|
485
|
-
};
|
|
486
|
-
const cleatPointerThumbEvent = (evnt) => {
|
|
487
|
-
const thumbEl = evnt.currentTarget;
|
|
488
|
-
thumbEl.releasePointerCapture(evnt.pointerId);
|
|
489
|
-
internalData.isThumbDrag = false;
|
|
490
|
-
};
|
|
491
|
-
const pointerdownThumbYEvent = (evnt) => {
|
|
492
|
-
const thumbEl = evnt.currentTarget;
|
|
493
|
-
internalData.isThumbDrag = true;
|
|
494
|
-
thumbEl.setPointerCapture(evnt.pointerId);
|
|
495
|
-
const viewEl = refViewElem.value;
|
|
496
|
-
if (!viewEl) {
|
|
497
|
-
return;
|
|
498
|
-
}
|
|
499
|
-
const { yThumbHeight } = reactData;
|
|
500
|
-
const trackEl = thumbEl.parentElement;
|
|
501
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
502
|
-
const pointerPosition = evnt.clientY - trackRect.top;
|
|
503
|
-
// 记录 thumb 的偏移
|
|
504
|
-
const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
505
|
-
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
506
|
-
};
|
|
507
|
-
const pointermoveThumbYEvent = (evnt) => {
|
|
508
|
-
const thumbEl = evnt.currentTarget;
|
|
509
|
-
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
510
|
-
return;
|
|
511
|
-
}
|
|
512
|
-
const { isThumbDrag, thumbDragOffset } = internalData;
|
|
513
|
-
if (isThumbDrag) {
|
|
514
|
-
const viewEl = refViewElem.value;
|
|
515
|
-
if (!viewEl) {
|
|
516
|
-
return;
|
|
517
|
-
}
|
|
518
|
-
const { yThumbHeight } = reactData;
|
|
519
|
-
const thumbEl = evnt.currentTarget;
|
|
520
|
-
const trackEl = thumbEl.parentElement;
|
|
521
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
522
|
-
// 更新偏移
|
|
523
|
-
viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
524
|
-
}
|
|
525
|
-
};
|
|
526
381
|
const scrollbarPrivateMethods = {};
|
|
527
382
|
Object.assign($xeScrollbar, scrollbarMethods, scrollbarPrivateMethods);
|
|
528
383
|
const renderVN = () => {
|
|
@@ -638,18 +493,18 @@ export default defineVxeComponent({
|
|
|
638
493
|
const viewEl = refViewElem.value;
|
|
639
494
|
const viewInnerEl = refViewInnerElem.value;
|
|
640
495
|
if (autoResize) {
|
|
641
|
-
const
|
|
496
|
+
const scrollObserver = globalResize.create(() => {
|
|
642
497
|
if (props.autoResize) {
|
|
643
498
|
reFlag.value++;
|
|
644
499
|
}
|
|
645
500
|
});
|
|
646
501
|
if (viewEl) {
|
|
647
|
-
|
|
502
|
+
scrollObserver.observe(viewEl);
|
|
648
503
|
}
|
|
649
504
|
if (viewInnerEl) {
|
|
650
|
-
|
|
505
|
+
scrollObserver.observe(viewInnerEl);
|
|
651
506
|
}
|
|
652
|
-
internalData.
|
|
507
|
+
internalData.scrollObserver = scrollObserver;
|
|
653
508
|
}
|
|
654
509
|
reFlag.value++;
|
|
655
510
|
globalEvents.on($xeScrollbar, 'resize', () => {
|
|
@@ -657,9 +512,9 @@ export default defineVxeComponent({
|
|
|
657
512
|
});
|
|
658
513
|
});
|
|
659
514
|
onBeforeUnmount(() => {
|
|
660
|
-
const {
|
|
661
|
-
if (
|
|
662
|
-
|
|
515
|
+
const { scrollObserver } = internalData;
|
|
516
|
+
if (scrollObserver) {
|
|
517
|
+
scrollObserver.disconnect();
|
|
663
518
|
}
|
|
664
519
|
globalEvents.off($xeScrollbar, 'resize');
|
|
665
520
|
});
|