vxe-pc-ui 4.20.9 → 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 +1863 -2038
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- 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/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/list/src/list.js +8 -164
- package/es/scrollbar/src/scrollbar.js +20 -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/tooltip/src/tooltip.js +2 -4
- package/es/tooltip/style.css +2 -0
- package/es/tooltip/style.min.css +1 -1
- package/es/tree/src/tree.js +17 -172
- 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/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/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 +813 -756
- package/lib/index.umd.min.js +1 -1
- package/lib/list/src/list.js +25 -194
- package/lib/list/src/list.min.js +1 -1
- package/lib/scrollbar/src/scrollbar.js +34 -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/tooltip/src/tooltip.js +2 -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 +36 -201
- 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/date-panel/src/date-panel.ts +58 -36
- package/packages/icon-picker/src/icon-picker.ts +80 -38
- package/packages/list/src/list.ts +24 -181
- package/packages/scrollbar/src/scrollbar.ts +36 -188
- package/packages/select/src/select.ts +278 -8
- package/packages/tooltip/src/tooltip.ts +2 -4
- package/packages/tree/src/tree.ts +33 -189
- 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/gantt-module/gantt-view.d.ts +7 -16
- package/types/components/icon-picker.d.ts +21 -1
- package/types/components/list.d.ts +4 -0
- package/types/components/scrollbar.d.ts +7 -14
- package/types/components/select.d.ts +28 -3
- package/types/components/table.d.ts +20 -18
- package/types/components/tree.d.ts +7 -16
- /package/es/icon/{iconfont.1792139440389.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/es/icon/{iconfont.1792139440389.woff → iconfont.1792219842406.woff} +0 -0
- /package/es/icon/{iconfont.1792139440389.woff2 → iconfont.1792219842406.woff2} +0 -0
- /package/es/{iconfont.1792139440389.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/es/{iconfont.1792139440389.woff → iconfont.1792219842406.woff} +0 -0
- /package/es/{iconfont.1792139440389.woff2 → iconfont.1792219842406.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1792139440389.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1792139440389.woff → iconfont.1792219842406.woff} +0 -0
- /package/lib/icon/style/{iconfont.1792139440389.woff2 → iconfont.1792219842406.woff2} +0 -0
- /package/lib/{iconfont.1792139440389.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/lib/{iconfont.1792139440389.woff → iconfont.1792219842406.woff} +0 -0
- /package/lib/{iconfont.1792139440389.woff2 → iconfont.1792219842406.woff2} +0 -0
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import { ref, h, reactive, computed, PropType, 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
8
|
|
|
9
9
|
import type { ScrollbarReactData, ScrollbarInternalData, VxeScrollbarEmits, ScrollbarMethods, ScrollbarPrivateMethods, VxeScrollbarPropTypes, ValueOf, ScrollbarPrivateRef, VxeScrollbarPrivateComputed, VxeScrollbarConstructor, VxeScrollbarPrivateMethods, VxeComponentStyleType } from '../../../types'
|
|
10
10
|
|
|
11
|
-
const { getConfig, createEvent, domUtils,
|
|
12
|
-
|
|
13
|
-
const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils
|
|
11
|
+
const { getConfig, createEvent, domUtils, globalResize, globalEvents, renderEmptyElement } = VxeUI
|
|
14
12
|
|
|
15
13
|
function createReactData (): ScrollbarReactData {
|
|
16
14
|
return {
|
|
@@ -21,7 +19,7 @@ function createReactData (): ScrollbarReactData {
|
|
|
21
19
|
|
|
22
20
|
function createInternalData (): ScrollbarInternalData {
|
|
23
21
|
return {
|
|
24
|
-
//
|
|
22
|
+
// scrollObserver: undefined,
|
|
25
23
|
// isThumbDrag: false,
|
|
26
24
|
thumbDragOffset: 0,
|
|
27
25
|
yThumbTop: 0,
|
|
@@ -85,6 +83,10 @@ export default defineVxeComponent({
|
|
|
85
83
|
type: String as PropType<VxeScrollbarPropTypes.ViewInnerClassName>,
|
|
86
84
|
default: () => getConfig().scrollbar.viewInnerClassName
|
|
87
85
|
},
|
|
86
|
+
size: {
|
|
87
|
+
type: String as PropType<VxeScrollbarPropTypes.Size>,
|
|
88
|
+
default: () => getConfig().scrollbar.size || getConfig().size
|
|
89
|
+
},
|
|
88
90
|
/**
|
|
89
91
|
* 已废弃
|
|
90
92
|
* @deprecated
|
|
@@ -111,15 +113,13 @@ export default defineVxeComponent({
|
|
|
111
113
|
const refElem = ref<HTMLDivElement>()
|
|
112
114
|
const refViewElem = ref<HTMLDivElement>()
|
|
113
115
|
const refViewInnerElem = ref<HTMLDivElement>()
|
|
114
|
-
const refTrackXElem = ref<HTMLDivElement>()
|
|
115
|
-
const refTrackYElem = ref<HTMLDivElement>()
|
|
116
|
-
const refThumbXElem = ref<HTMLDivElement>()
|
|
117
|
-
const refThumbYElem = ref<HTMLDivElement>()
|
|
118
116
|
|
|
119
117
|
const reactData = reactive(createReactData())
|
|
120
118
|
|
|
121
119
|
const internalData = createInternalData()
|
|
122
120
|
|
|
121
|
+
const { computeSize } = useFns.useSize(props)
|
|
122
|
+
|
|
123
123
|
const computeWrapperStyle = computed(() => {
|
|
124
124
|
const { width, height, minWidth, minHeight, maxWidth, maxHeight } = props
|
|
125
125
|
const barWidth = computeYWidth.value
|
|
@@ -187,6 +187,7 @@ export default defineVxeComponent({
|
|
|
187
187
|
const computeWrapperClss = computed(() => {
|
|
188
188
|
const { native, theme, className, padding } = props
|
|
189
189
|
const { yThumbHeight, xThumbWidth } = reactData
|
|
190
|
+
const vSize = computeSize.value
|
|
190
191
|
const xToTop = computeXToTop.value
|
|
191
192
|
const yToLeft = computeYToLeft.value
|
|
192
193
|
const xVisible = computeXVisible.value
|
|
@@ -195,6 +196,7 @@ export default defineVxeComponent({
|
|
|
195
196
|
const yAutoHide = computeYAutoHide.value
|
|
196
197
|
return domUtils.buildClass([
|
|
197
198
|
'vxe-scrollbar',
|
|
199
|
+
vSize ? `size--${vSize}` : '',
|
|
198
200
|
theme ? `theme--${theme}` : '',
|
|
199
201
|
`ov-x--${xVisible === false ? 'hidden' : 'visible'}`,
|
|
200
202
|
`ov-y--${yVisible === false ? 'hidden' : 'visible'}`,
|
|
@@ -263,17 +265,33 @@ export default defineVxeComponent({
|
|
|
263
265
|
getComputeMaps: () => computeMaps
|
|
264
266
|
} as unknown as VxeScrollbarConstructor & VxeScrollbarPrivateMethods
|
|
265
267
|
|
|
268
|
+
const {
|
|
269
|
+
refTrackXElem,
|
|
270
|
+
refTrackYElem,
|
|
271
|
+
refThumbXElem,
|
|
272
|
+
refThumbYElem,
|
|
273
|
+
updateThumbSize,
|
|
274
|
+
updateThumbOffset,
|
|
275
|
+
clickTrackXEvent,
|
|
276
|
+
clickTrackYEvent,
|
|
277
|
+
pointerdownThumbXEvent,
|
|
278
|
+
pointermoveThumbXEvent,
|
|
279
|
+
cleatPointerThumbEvent,
|
|
280
|
+
pointerdownThumbYEvent,
|
|
281
|
+
pointermoveThumbYEvent
|
|
282
|
+
} = useFns.useInitVScrollbar($xeScrollbar)
|
|
283
|
+
|
|
266
284
|
const dispatchEvent = (type: ValueOf<VxeScrollbarEmits>, params: Record<string, any>, evnt: Event | null) => {
|
|
267
285
|
emit(type, createEvent(evnt, { $scrollbar: $xeScrollbar }, params))
|
|
268
286
|
}
|
|
269
287
|
|
|
270
288
|
const scrollbarMethods: ScrollbarMethods = {
|
|
271
289
|
dispatchEvent,
|
|
272
|
-
|
|
290
|
+
getScrollViewElem () {
|
|
273
291
|
const viewEl = refViewElem.value
|
|
274
292
|
return viewEl || null
|
|
275
293
|
},
|
|
276
|
-
|
|
294
|
+
getScrollViewInnerElem () {
|
|
277
295
|
const viewInnerEl = refViewInnerElem.value
|
|
278
296
|
return viewInnerEl || null
|
|
279
297
|
},
|
|
@@ -333,60 +351,6 @@ export default defineVxeComponent({
|
|
|
333
351
|
}
|
|
334
352
|
}
|
|
335
353
|
|
|
336
|
-
const updateThumbSize = () => {
|
|
337
|
-
const viewEl = refViewElem.value
|
|
338
|
-
if (!viewEl) {
|
|
339
|
-
return
|
|
340
|
-
}
|
|
341
|
-
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
342
|
-
return
|
|
343
|
-
}
|
|
344
|
-
const trackXEl = refTrackXElem.value
|
|
345
|
-
const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0
|
|
346
|
-
const thumbXElem = refThumbXElem.value
|
|
347
|
-
if (thumbXElem) {
|
|
348
|
-
thumbXElem.style.width = xThumbWidth + 'px'
|
|
349
|
-
}
|
|
350
|
-
reactData.xThumbWidth = xThumbWidth
|
|
351
|
-
|
|
352
|
-
const trackYEl = refTrackYElem.value
|
|
353
|
-
|
|
354
|
-
const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0
|
|
355
|
-
const thumbYElem = refThumbYElem.value
|
|
356
|
-
if (thumbYElem) {
|
|
357
|
-
thumbYElem.style.height = yThumbHeight + 'px'
|
|
358
|
-
}
|
|
359
|
-
reactData.yThumbHeight = yThumbHeight
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
const updateThumbOffset = () => {
|
|
363
|
-
const viewEl = refViewElem.value
|
|
364
|
-
if (!viewEl) {
|
|
365
|
-
return
|
|
366
|
-
}
|
|
367
|
-
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
368
|
-
return
|
|
369
|
-
}
|
|
370
|
-
const { xThumbWidth, yThumbHeight } = reactData
|
|
371
|
-
const trackXEl = refTrackXElem.value
|
|
372
|
-
const thumbXElem = refThumbXElem.value
|
|
373
|
-
const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0
|
|
374
|
-
internalData.xThumbLeft = xThumbLeft
|
|
375
|
-
if (thumbXElem && xThumbWidth) {
|
|
376
|
-
thumbXElem.style.width = xThumbWidth + 'px'
|
|
377
|
-
thumbXElem.style.transform = `translateX(${xThumbLeft}px)`
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
const trackYEl = refTrackYElem.value
|
|
381
|
-
const thumbYElem = refThumbYElem.value
|
|
382
|
-
const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0
|
|
383
|
-
internalData.yThumbTop = yThumbTop
|
|
384
|
-
if (thumbYElem && yThumbHeight) {
|
|
385
|
-
thumbYElem.style.height = yThumbHeight + 'px'
|
|
386
|
-
thumbYElem.style.transform = `translateY(${yThumbTop}px)`
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
|
|
390
354
|
const scrollEvent = (evnt: Event) => {
|
|
391
355
|
const { xThumbWidth, yThumbHeight } = reactData
|
|
392
356
|
const { lastScrollTop, lastScrollLeft } = internalData
|
|
@@ -460,122 +424,6 @@ export default defineVxeComponent({
|
|
|
460
424
|
}, evnt)
|
|
461
425
|
}
|
|
462
426
|
|
|
463
|
-
const clickTrackXEvent = (evnt: MouseEvent) => {
|
|
464
|
-
const trackEl = evnt.currentTarget as HTMLDivElement
|
|
465
|
-
if (trackEl !== evnt.target) {
|
|
466
|
-
return
|
|
467
|
-
}
|
|
468
|
-
const viewEl = refViewElem.value
|
|
469
|
-
if (!viewEl) {
|
|
470
|
-
return
|
|
471
|
-
}
|
|
472
|
-
const { xThumbWidth } = reactData
|
|
473
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
474
|
-
viewEl.scrollTo({
|
|
475
|
-
left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
|
|
476
|
-
behavior: 'auto'
|
|
477
|
-
})
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
const clickTrackYEvent = (evnt: MouseEvent) => {
|
|
481
|
-
const trackEl = evnt.currentTarget as HTMLDivElement
|
|
482
|
-
if (trackEl !== evnt.target) {
|
|
483
|
-
return
|
|
484
|
-
}
|
|
485
|
-
const viewEl = refViewElem.value
|
|
486
|
-
if (!viewEl) {
|
|
487
|
-
return
|
|
488
|
-
}
|
|
489
|
-
const { yThumbHeight } = reactData
|
|
490
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
491
|
-
viewEl.scrollTo({
|
|
492
|
-
top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
|
|
493
|
-
behavior: 'auto'
|
|
494
|
-
})
|
|
495
|
-
}
|
|
496
|
-
|
|
497
|
-
const pointerdownThumbXEvent = (evnt: PointerEvent) => {
|
|
498
|
-
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
499
|
-
internalData.isThumbDrag = true
|
|
500
|
-
thumbEl.setPointerCapture(evnt.pointerId)
|
|
501
|
-
|
|
502
|
-
const viewEl = refViewElem.value
|
|
503
|
-
if (!viewEl) {
|
|
504
|
-
return
|
|
505
|
-
}
|
|
506
|
-
const { xThumbWidth } = reactData
|
|
507
|
-
const trackEl = thumbEl.parentElement as HTMLDivElement
|
|
508
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
509
|
-
const pointerPosition = evnt.clientX - trackRect.left
|
|
510
|
-
// 记录 thumb 的偏移
|
|
511
|
-
const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth)
|
|
512
|
-
internalData.thumbDragOffset = pointerPosition - thumbOffset
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
const pointermoveThumbXEvent = (evnt: PointerEvent) => {
|
|
516
|
-
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
517
|
-
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
518
|
-
return
|
|
519
|
-
}
|
|
520
|
-
const { isThumbDrag, thumbDragOffset } = internalData
|
|
521
|
-
if (isThumbDrag) {
|
|
522
|
-
const viewEl = refViewElem.value
|
|
523
|
-
if (!viewEl) {
|
|
524
|
-
return
|
|
525
|
-
}
|
|
526
|
-
const { xThumbWidth } = reactData
|
|
527
|
-
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
528
|
-
const trackEl = thumbEl.parentElement as HTMLDivElement
|
|
529
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
530
|
-
// 更新偏移
|
|
531
|
-
viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth)
|
|
532
|
-
}
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
-
const cleatPointerThumbEvent = (evnt: PointerEvent) => {
|
|
536
|
-
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
537
|
-
thumbEl.releasePointerCapture(evnt.pointerId)
|
|
538
|
-
internalData.isThumbDrag = false
|
|
539
|
-
}
|
|
540
|
-
|
|
541
|
-
const pointerdownThumbYEvent = (evnt: PointerEvent) => {
|
|
542
|
-
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
543
|
-
internalData.isThumbDrag = true
|
|
544
|
-
thumbEl.setPointerCapture(evnt.pointerId)
|
|
545
|
-
|
|
546
|
-
const viewEl = refViewElem.value
|
|
547
|
-
if (!viewEl) {
|
|
548
|
-
return
|
|
549
|
-
}
|
|
550
|
-
const { yThumbHeight } = reactData
|
|
551
|
-
const trackEl = thumbEl.parentElement as HTMLDivElement
|
|
552
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
553
|
-
const pointerPosition = evnt.clientY - trackRect.top
|
|
554
|
-
// 记录 thumb 的偏移
|
|
555
|
-
const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight)
|
|
556
|
-
internalData.thumbDragOffset = pointerPosition - thumbOffset
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
const pointermoveThumbYEvent = (evnt: PointerEvent) => {
|
|
560
|
-
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
561
|
-
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
562
|
-
return
|
|
563
|
-
}
|
|
564
|
-
const { isThumbDrag, thumbDragOffset } = internalData
|
|
565
|
-
if (isThumbDrag) {
|
|
566
|
-
const viewEl = refViewElem.value
|
|
567
|
-
if (!viewEl) {
|
|
568
|
-
return
|
|
569
|
-
}
|
|
570
|
-
const { yThumbHeight } = reactData
|
|
571
|
-
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
572
|
-
const trackEl = thumbEl.parentElement as HTMLDivElement
|
|
573
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
574
|
-
// 更新偏移
|
|
575
|
-
viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight)
|
|
576
|
-
}
|
|
577
|
-
}
|
|
578
|
-
|
|
579
427
|
const scrollbarPrivateMethods: ScrollbarPrivateMethods = {
|
|
580
428
|
}
|
|
581
429
|
|
|
@@ -704,18 +552,18 @@ export default defineVxeComponent({
|
|
|
704
552
|
const viewEl = refViewElem.value
|
|
705
553
|
const viewInnerEl = refViewInnerElem.value
|
|
706
554
|
if (autoResize) {
|
|
707
|
-
const
|
|
555
|
+
const scrollObserver = globalResize.create(() => {
|
|
708
556
|
if (props.autoResize) {
|
|
709
557
|
reFlag.value++
|
|
710
558
|
}
|
|
711
559
|
})
|
|
712
560
|
if (viewEl) {
|
|
713
|
-
|
|
561
|
+
scrollObserver.observe(viewEl)
|
|
714
562
|
}
|
|
715
563
|
if (viewInnerEl) {
|
|
716
|
-
|
|
564
|
+
scrollObserver.observe(viewInnerEl)
|
|
717
565
|
}
|
|
718
|
-
internalData.
|
|
566
|
+
internalData.scrollObserver = scrollObserver
|
|
719
567
|
}
|
|
720
568
|
|
|
721
569
|
reFlag.value++
|
|
@@ -725,9 +573,9 @@ export default defineVxeComponent({
|
|
|
725
573
|
})
|
|
726
574
|
|
|
727
575
|
onBeforeUnmount(() => {
|
|
728
|
-
const {
|
|
729
|
-
if (
|
|
730
|
-
|
|
576
|
+
const { scrollObserver } = internalData
|
|
577
|
+
if (scrollObserver) {
|
|
578
|
+
scrollObserver.disconnect()
|
|
731
579
|
}
|
|
732
580
|
globalEvents.off($xeScrollbar, 'resize')
|
|
733
581
|
})
|