vxe-pc-ui 3.20.9 → 3.20.11
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/es/date-panel/src/date-panel.js +70 -39
- 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 +11 -3
- package/es/icon-picker/style.css +9 -3
- package/es/icon-picker/style.min.css +1 -1
- package/es/list/src/list.js +12 -183
- package/es/scrollbar/src/scrollbar.js +24 -188
- package/es/select/src/select.js +276 -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 +21 -191
- 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 +74 -43
- 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 +56 -38
- 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 +726 -743
- package/lib/index.umd.min.js +1 -1
- package/lib/list/src/list.js +10 -189
- package/lib/list/src/list.min.js +1 -1
- package/lib/scrollbar/src/scrollbar.js +21 -192
- package/lib/scrollbar/src/scrollbar.min.js +1 -1
- package/lib/select/src/select.js +325 -69
- 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 +20 -197
- 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 +70 -39
- package/packages/icon-picker/src/icon-picker.ts +12 -3
- package/packages/list/src/list.ts +15 -203
- package/packages/scrollbar/src/scrollbar.ts +24 -199
- package/packages/select/src/select.ts +307 -11
- package/packages/tabs/src/tabs.ts +2 -4
- package/packages/tooltip/src/tooltip.ts +2 -4
- package/packages/tree/src/tree.ts +24 -212
- 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 +17 -17
- 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 +30 -20
- package/types/components/tree.d.ts +7 -16
- /package/es/icon/{iconfont.1792139429655.ttf → iconfont.1792226835421.ttf} +0 -0
- /package/es/icon/{iconfont.1792139429655.woff → iconfont.1792226835421.woff} +0 -0
- /package/es/icon/{iconfont.1792139429655.woff2 → iconfont.1792226835421.woff2} +0 -0
- /package/es/{iconfont.1792139429655.ttf → iconfont.1792226835421.ttf} +0 -0
- /package/es/{iconfont.1792139429655.woff → iconfont.1792226835421.woff} +0 -0
- /package/es/{iconfont.1792139429655.woff2 → iconfont.1792226835421.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1792139429655.ttf → iconfont.1792226835421.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1792139429655.woff → iconfont.1792226835421.woff} +0 -0
- /package/lib/icon/style/{iconfont.1792139429655.woff2 → iconfont.1792226835421.woff2} +0 -0
- /package/lib/{iconfont.1792139429655.ttf → iconfont.1792226835421.ttf} +0 -0
- /package/lib/{iconfont.1792139429655.woff → iconfont.1792226835421.woff} +0 -0
- /package/lib/{iconfont.1792139429655.woff2 → iconfont.1792226835421.woff2} +0 -0
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { CreateElement, VNode, PropType } 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, globalMixins } from '../../ui'
|
|
5
5
|
import { toCssUnit } from '../../ui/src/dom'
|
|
6
6
|
import { getDefaultConfig } from '../../ui/src/utils'
|
|
7
7
|
|
|
8
8
|
import VxeLoadingComponent from '../../loading'
|
|
9
9
|
|
|
10
|
-
import type { ScrollbarReactData, ScrollbarInternalData, VxeScrollbarEmits, ValueOf, VxeScrollbarPropTypes, VxeComponentStyleType } from '../../../types'
|
|
10
|
+
import type { ScrollbarReactData, ScrollbarInternalData, VxeScrollbarEmits, ValueOf, VxeScrollbarPropTypes, VxeComponentStyleType, VxeUseSizeComputed, VxeUseInitVScrollbarComputed } from '../../../types'
|
|
11
11
|
|
|
12
|
-
const { getConfig, createEvent, domUtils,
|
|
13
|
-
|
|
14
|
-
const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils
|
|
12
|
+
const { getConfig, createEvent, domUtils, globalResize, globalEvents, renderEmptyElement } = VxeUI
|
|
15
13
|
|
|
16
14
|
function createReactData (): ScrollbarReactData {
|
|
17
15
|
return {
|
|
@@ -22,7 +20,7 @@ function createReactData (): ScrollbarReactData {
|
|
|
22
20
|
|
|
23
21
|
function createInternalData (): ScrollbarInternalData {
|
|
24
22
|
return {
|
|
25
|
-
//
|
|
23
|
+
// scrollObserver: undefined,
|
|
26
24
|
// isThumbDrag: false,
|
|
27
25
|
thumbDragOffset: 0,
|
|
28
26
|
yThumbTop: 0,
|
|
@@ -34,6 +32,10 @@ function createInternalData (): ScrollbarInternalData {
|
|
|
34
32
|
|
|
35
33
|
export default /* define-vxe-component start */ defineVxeComponent({
|
|
36
34
|
name: 'VxeScrollbar',
|
|
35
|
+
mixins: [
|
|
36
|
+
globalMixins.sizeMixin,
|
|
37
|
+
globalMixins.initVScrollbarMixin
|
|
38
|
+
],
|
|
37
39
|
props: {
|
|
38
40
|
id: [String, Number] as PropType<VxeScrollbarPropTypes.Id>,
|
|
39
41
|
viewId: [String, Number] as PropType<VxeScrollbarPropTypes.ViewId>,
|
|
@@ -86,6 +88,10 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
86
88
|
type: String as PropType<VxeScrollbarPropTypes.ViewInnerClassName>,
|
|
87
89
|
default: () => getConfig().scrollbar.viewInnerClassName
|
|
88
90
|
},
|
|
91
|
+
size: {
|
|
92
|
+
type: String as PropType<VxeScrollbarPropTypes.Size>,
|
|
93
|
+
default: () => getConfig().scrollbar.size || getConfig().size
|
|
94
|
+
},
|
|
89
95
|
/**
|
|
90
96
|
* 已废弃
|
|
91
97
|
* @deprecated
|
|
@@ -115,6 +121,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
115
121
|
}
|
|
116
122
|
},
|
|
117
123
|
computed: {
|
|
124
|
+
...({} as VxeUseSizeComputed & VxeUseInitVScrollbarComputed),
|
|
118
125
|
computeWrapperStyle () {
|
|
119
126
|
const $xeScrollbar = this
|
|
120
127
|
const props = $xeScrollbar
|
|
@@ -198,6 +205,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
198
205
|
|
|
199
206
|
const { native, theme, className, padding } = props
|
|
200
207
|
const { yThumbHeight, xThumbWidth } = reactData
|
|
208
|
+
const vSize = $xeScrollbar.computeSize
|
|
201
209
|
const xToTop = ($xeScrollbar as any).computeXToTop as boolean
|
|
202
210
|
const yToLeft = ($xeScrollbar as any).computeYToLeft as boolean
|
|
203
211
|
const xVisible = ($xeScrollbar as any).computeXVisible
|
|
@@ -206,6 +214,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
206
214
|
const yAutoHide = ($xeScrollbar as any).computeYAutoHide
|
|
207
215
|
return domUtils.buildClass([
|
|
208
216
|
'vxe-scrollbar',
|
|
217
|
+
vSize ? `size--${vSize}` : '',
|
|
209
218
|
theme ? `theme--${theme}` : '',
|
|
210
219
|
`ov-x--${xVisible === false ? 'hidden' : 'visible'}`,
|
|
211
220
|
`ov-y--${yVisible === false ? 'hidden' : 'visible'}`,
|
|
@@ -274,13 +283,13 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
274
283
|
const $xeScrollbar = this
|
|
275
284
|
$xeScrollbar.$emit(type, createEvent(evnt, { $scrollbar: $xeScrollbar }, params))
|
|
276
285
|
},
|
|
277
|
-
|
|
286
|
+
getScrollViewElem () {
|
|
278
287
|
const $xeScrollbar = this
|
|
279
288
|
|
|
280
289
|
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
281
290
|
return viewEl || null
|
|
282
291
|
},
|
|
283
|
-
|
|
292
|
+
getScrollViewInnerElem () {
|
|
284
293
|
const $xeScrollbar = this
|
|
285
294
|
|
|
286
295
|
const viewInnerEl = $xeScrollbar.$refs.refViewInnerElem as HTMLDivElement
|
|
@@ -356,64 +365,6 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
356
365
|
$xeScrollbar.updateThumbOffset()
|
|
357
366
|
return $xeScrollbar.$nextTick()
|
|
358
367
|
},
|
|
359
|
-
updateThumbSize () {
|
|
360
|
-
const $xeScrollbar = this
|
|
361
|
-
const reactData = $xeScrollbar.reactData
|
|
362
|
-
|
|
363
|
-
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
364
|
-
if (!viewEl) {
|
|
365
|
-
return
|
|
366
|
-
}
|
|
367
|
-
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
368
|
-
return
|
|
369
|
-
}
|
|
370
|
-
const trackXEl = $xeScrollbar.$refs.refTrackXElem as HTMLDivElement
|
|
371
|
-
const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0
|
|
372
|
-
const thumbXElem = $xeScrollbar.$refs.refThumbXElem as HTMLDivElement
|
|
373
|
-
if (thumbXElem) {
|
|
374
|
-
thumbXElem.style.width = xThumbWidth + 'px'
|
|
375
|
-
}
|
|
376
|
-
reactData.xThumbWidth = xThumbWidth
|
|
377
|
-
|
|
378
|
-
const trackYEl = $xeScrollbar.$refs.refTrackYElem as HTMLDivElement
|
|
379
|
-
const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0
|
|
380
|
-
const thumbYElem = $xeScrollbar.$refs.refThumbYElem as HTMLDivElement
|
|
381
|
-
if (thumbYElem) {
|
|
382
|
-
thumbYElem.style.height = yThumbHeight + 'px'
|
|
383
|
-
}
|
|
384
|
-
reactData.yThumbHeight = yThumbHeight
|
|
385
|
-
},
|
|
386
|
-
updateThumbOffset () {
|
|
387
|
-
const $xeScrollbar = this
|
|
388
|
-
const reactData = $xeScrollbar.reactData
|
|
389
|
-
const internalData = $xeScrollbar.internalData
|
|
390
|
-
|
|
391
|
-
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
392
|
-
if (!viewEl) {
|
|
393
|
-
return
|
|
394
|
-
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
395
|
-
return
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
const { xThumbWidth, yThumbHeight } = reactData
|
|
399
|
-
const trackXEl = $xeScrollbar.$refs.refTrackXElem as HTMLDivElement
|
|
400
|
-
const thumbXElem = $xeScrollbar.$refs.refThumbXElem as HTMLDivElement
|
|
401
|
-
const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0
|
|
402
|
-
internalData.xThumbLeft = xThumbLeft
|
|
403
|
-
if (thumbXElem && xThumbWidth) {
|
|
404
|
-
thumbXElem.style.width = xThumbWidth + 'px'
|
|
405
|
-
thumbXElem.style.transform = `translateX(${xThumbLeft}px)`
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
const trackYEl = $xeScrollbar.$refs.refTrackYElem as HTMLDivElement
|
|
409
|
-
const thumbYElem = $xeScrollbar.$refs.refThumbYElem as HTMLDivElement
|
|
410
|
-
const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0
|
|
411
|
-
internalData.yThumbTop = yThumbTop
|
|
412
|
-
if (thumbYElem && yThumbHeight) {
|
|
413
|
-
thumbYElem.style.height = yThumbHeight + 'px'
|
|
414
|
-
thumbYElem.style.transform = `translateY(${yThumbTop}px)`
|
|
415
|
-
}
|
|
416
|
-
},
|
|
417
368
|
scrollEvent (evnt: Event) {
|
|
418
369
|
const $xeScrollbar = this
|
|
419
370
|
const reactData = $xeScrollbar.reactData
|
|
@@ -490,132 +441,6 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
490
441
|
scrollWidth: scrollWidth
|
|
491
442
|
}, evnt)
|
|
492
443
|
},
|
|
493
|
-
clickTrackXEvent (evnt: MouseEvent) {
|
|
494
|
-
const $xeScrollbar = this
|
|
495
|
-
const reactData = $xeScrollbar.reactData
|
|
496
|
-
|
|
497
|
-
const trackEl = evnt.currentTarget as HTMLDivElement
|
|
498
|
-
if (trackEl !== evnt.target) {
|
|
499
|
-
return
|
|
500
|
-
}
|
|
501
|
-
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
502
|
-
if (!viewEl) {
|
|
503
|
-
return
|
|
504
|
-
}
|
|
505
|
-
const { xThumbWidth } = reactData
|
|
506
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
507
|
-
viewEl.scrollTo({
|
|
508
|
-
left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
|
|
509
|
-
behavior: 'auto'
|
|
510
|
-
})
|
|
511
|
-
},
|
|
512
|
-
clickTrackYEvent (evnt: MouseEvent) {
|
|
513
|
-
const $xeScrollbar = this
|
|
514
|
-
const reactData = $xeScrollbar.reactData
|
|
515
|
-
|
|
516
|
-
const trackEl = evnt.currentTarget as HTMLDivElement
|
|
517
|
-
if (trackEl !== evnt.target) {
|
|
518
|
-
return
|
|
519
|
-
}
|
|
520
|
-
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
521
|
-
if (!viewEl) {
|
|
522
|
-
return
|
|
523
|
-
}
|
|
524
|
-
const { yThumbHeight } = reactData
|
|
525
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
526
|
-
viewEl.scrollTo({
|
|
527
|
-
top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
|
|
528
|
-
behavior: 'auto'
|
|
529
|
-
})
|
|
530
|
-
},
|
|
531
|
-
pointerdownThumbXEvent (evnt: PointerEvent) {
|
|
532
|
-
const $xeScrollbar = this
|
|
533
|
-
const reactData = $xeScrollbar.reactData
|
|
534
|
-
const internalData = $xeScrollbar.internalData
|
|
535
|
-
|
|
536
|
-
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
537
|
-
internalData.isThumbDrag = true
|
|
538
|
-
thumbEl.setPointerCapture(evnt.pointerId)
|
|
539
|
-
|
|
540
|
-
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
541
|
-
if (!viewEl) {
|
|
542
|
-
return
|
|
543
|
-
}
|
|
544
|
-
const { xThumbWidth } = reactData
|
|
545
|
-
const trackEl = thumbEl.parentElement as HTMLDivElement
|
|
546
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
547
|
-
const pointerPosition = evnt.clientX - trackRect.left
|
|
548
|
-
// 记录 thumb 的偏移
|
|
549
|
-
const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth)
|
|
550
|
-
internalData.thumbDragOffset = pointerPosition - thumbOffset
|
|
551
|
-
},
|
|
552
|
-
pointermoveThumbXEvent (evnt: PointerEvent) {
|
|
553
|
-
const $xeScrollbar = this
|
|
554
|
-
const reactData = $xeScrollbar.reactData
|
|
555
|
-
const internalData = $xeScrollbar.internalData
|
|
556
|
-
|
|
557
|
-
const { isThumbDrag, thumbDragOffset } = internalData
|
|
558
|
-
if (isThumbDrag) {
|
|
559
|
-
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
560
|
-
if (!viewEl) {
|
|
561
|
-
return
|
|
562
|
-
}
|
|
563
|
-
const { xThumbWidth } = reactData
|
|
564
|
-
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
565
|
-
const trackEl = thumbEl.parentElement as HTMLDivElement
|
|
566
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
567
|
-
// 更新偏移
|
|
568
|
-
viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth)
|
|
569
|
-
}
|
|
570
|
-
},
|
|
571
|
-
cleatPointerThumbEvent (evnt: PointerEvent) {
|
|
572
|
-
const $xeScrollbar = this
|
|
573
|
-
const internalData = $xeScrollbar.internalData
|
|
574
|
-
|
|
575
|
-
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
576
|
-
thumbEl.releasePointerCapture(evnt.pointerId)
|
|
577
|
-
internalData.isThumbDrag = false
|
|
578
|
-
},
|
|
579
|
-
pointerdownThumbYEvent (evnt: PointerEvent) {
|
|
580
|
-
const $xeScrollbar = this
|
|
581
|
-
const reactData = $xeScrollbar.reactData
|
|
582
|
-
const internalData = $xeScrollbar.internalData
|
|
583
|
-
|
|
584
|
-
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
585
|
-
internalData.isThumbDrag = true
|
|
586
|
-
thumbEl.setPointerCapture(evnt.pointerId)
|
|
587
|
-
|
|
588
|
-
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
589
|
-
if (!viewEl) {
|
|
590
|
-
return
|
|
591
|
-
}
|
|
592
|
-
const { yThumbHeight } = reactData
|
|
593
|
-
const trackEl = thumbEl.parentElement as HTMLDivElement
|
|
594
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
595
|
-
const pointerPosition = evnt.clientY - trackRect.top
|
|
596
|
-
// 记录 thumb 的偏移
|
|
597
|
-
const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight)
|
|
598
|
-
internalData.thumbDragOffset = pointerPosition - thumbOffset
|
|
599
|
-
},
|
|
600
|
-
pointermoveThumbYEvent (evnt: PointerEvent) {
|
|
601
|
-
const $xeScrollbar = this
|
|
602
|
-
const reactData = $xeScrollbar.reactData
|
|
603
|
-
const internalData = $xeScrollbar.internalData
|
|
604
|
-
|
|
605
|
-
const { isThumbDrag, thumbDragOffset } = internalData
|
|
606
|
-
if (isThumbDrag) {
|
|
607
|
-
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
608
|
-
if (!viewEl) {
|
|
609
|
-
return
|
|
610
|
-
}
|
|
611
|
-
const { yThumbHeight } = reactData
|
|
612
|
-
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
613
|
-
const trackEl = thumbEl.parentElement as HTMLDivElement
|
|
614
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
615
|
-
// 更新偏移
|
|
616
|
-
viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight)
|
|
617
|
-
}
|
|
618
|
-
},
|
|
619
444
|
|
|
620
445
|
//
|
|
621
446
|
// Render
|
|
@@ -797,18 +622,18 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
797
622
|
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
798
623
|
const viewInnerEl = $xeScrollbar.$refs.refViewInnerElem as HTMLDivElement
|
|
799
624
|
if (autoResize) {
|
|
800
|
-
const
|
|
625
|
+
const scrollObserver = globalResize.create(() => {
|
|
801
626
|
if (props.autoResize) {
|
|
802
627
|
$xeScrollbar.reFlag++
|
|
803
628
|
}
|
|
804
629
|
})
|
|
805
630
|
if (viewEl) {
|
|
806
|
-
|
|
631
|
+
scrollObserver.observe(viewEl)
|
|
807
632
|
}
|
|
808
633
|
if (viewInnerEl) {
|
|
809
|
-
|
|
634
|
+
scrollObserver.observe(viewInnerEl)
|
|
810
635
|
}
|
|
811
|
-
internalData.
|
|
636
|
+
internalData.scrollObserver = scrollObserver
|
|
812
637
|
}
|
|
813
638
|
|
|
814
639
|
$xeScrollbar.reFlag++
|
|
@@ -820,9 +645,9 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
820
645
|
const $xeScrollbar = this
|
|
821
646
|
const internalData = $xeScrollbar.internalData
|
|
822
647
|
|
|
823
|
-
const {
|
|
824
|
-
if (
|
|
825
|
-
|
|
648
|
+
const { scrollObserver } = internalData
|
|
649
|
+
if (scrollObserver) {
|
|
650
|
+
scrollObserver.disconnect()
|
|
826
651
|
}
|
|
827
652
|
globalEvents.off($xeScrollbar, 'resize')
|
|
828
653
|
},
|