@vxe-ui/core 3.4.35 → 3.4.37
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/src/core.js +1 -1
- package/es/src/log.js +1 -1
- package/es/src/mixins.js +206 -11
- package/es/src/popper-utils.js +1 -1
- package/lib/index.umd.js +237 -12
- package/lib/index.umd.min.js +1 -1
- package/lib/src/core.js +1 -1
- package/lib/src/core.min.js +1 -1
- package/lib/src/log.js +1 -1
- package/lib/src/log.min.js +1 -1
- package/lib/src/mixins.js +234 -11
- package/lib/src/mixins.min.js +1 -1
- package/lib/src/popper-utils.js +1 -1
- package/lib/src/popper-utils.min.js +1 -1
- package/package.json +1 -1
- package/packages/src/mixins.ts +240 -11
- package/packages/src/popper-utils.ts +1 -1
- package/types/core/mixins.d.ts +101 -9
package/packages/src/mixins.ts
CHANGED
|
@@ -1,9 +1,35 @@
|
|
|
1
1
|
import XEUtils from 'xe-utils'
|
|
2
2
|
import Vue from 'vue'
|
|
3
3
|
import { handleCheckInfo } from './permission'
|
|
4
|
+
import { scrollbarUtils } from './scrollbar-utils'
|
|
4
5
|
|
|
5
|
-
import { VxeComponentSizeType, VxeComponentIsVScrollbar } from '../../types'
|
|
6
|
+
import { VxeGlobalUseMixins, VxeComponentSizeType, VxeComponentIsVScrollbar, VxeUseInitVScrollbarReactData, VxeUseInitVScrollbarInternalData } from '../../types'
|
|
6
7
|
|
|
8
|
+
const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils
|
|
9
|
+
|
|
10
|
+
function getVmInternalData ($xeVm: {
|
|
11
|
+
reactData: VxeUseInitVScrollbarReactData
|
|
12
|
+
internalData: VxeUseInitVScrollbarInternalData
|
|
13
|
+
getScrollViewElem(): HTMLDivElement | null | undefined
|
|
14
|
+
}) {
|
|
15
|
+
// 新版本 $xeVm.internalData
|
|
16
|
+
// 老版本 $xeVm
|
|
17
|
+
return $xeVm.internalData || $xeVm
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function getVmReactData ($xeVm: {
|
|
21
|
+
reactData: VxeUseInitVScrollbarReactData
|
|
22
|
+
internalData: VxeUseInitVScrollbarInternalData
|
|
23
|
+
getScrollViewElem(): HTMLDivElement | null | undefined
|
|
24
|
+
}) {
|
|
25
|
+
// 新版本 $xeVm.reactData
|
|
26
|
+
// 老版本 $xeVm
|
|
27
|
+
return $xeVm.reactData || $xeVm
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* 组件尺寸上下文
|
|
32
|
+
*/
|
|
7
33
|
export const sizeMixin = Vue.extend({
|
|
8
34
|
inject: {
|
|
9
35
|
$xeSizeInfo: {
|
|
@@ -26,15 +52,29 @@ export const sizeMixin = Vue.extend({
|
|
|
26
52
|
}
|
|
27
53
|
})
|
|
28
54
|
|
|
55
|
+
/**
|
|
56
|
+
* 权限码处理
|
|
57
|
+
*/
|
|
58
|
+
export const permissionMixin = Vue.extend({
|
|
59
|
+
computed: {
|
|
60
|
+
computePermissionInfo (this: any) {
|
|
61
|
+
return handleCheckInfo(this.permissionCode, this.permissionMethod)
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* 虚拟滚动条是否启用
|
|
68
|
+
*/
|
|
29
69
|
export const vScrollbarMixin = Vue.extend({
|
|
30
70
|
inject: {
|
|
31
|
-
$
|
|
71
|
+
$xeVmInfo: {
|
|
32
72
|
default: null
|
|
33
73
|
}
|
|
34
74
|
},
|
|
35
75
|
provide (this: any) {
|
|
36
76
|
return {
|
|
37
|
-
$
|
|
77
|
+
$xeVmInfo: {
|
|
38
78
|
getIsVScrollbar: () => this.computeIsVScrollbar
|
|
39
79
|
}
|
|
40
80
|
}
|
|
@@ -42,22 +82,211 @@ export const vScrollbarMixin = Vue.extend({
|
|
|
42
82
|
computed: {
|
|
43
83
|
computeIsVScrollbar (this: any): VxeComponentIsVScrollbar {
|
|
44
84
|
const { useScrollbar } = this
|
|
45
|
-
const $
|
|
46
|
-
return XEUtils.isBoolean(useScrollbar) ? useScrollbar : ($
|
|
85
|
+
const $xeVmInfo = this.$xeVmInfo
|
|
86
|
+
return XEUtils.isBoolean(useScrollbar) ? useScrollbar : ($xeVmInfo ? $xeVmInfo.getIsVScrollbar() : null)
|
|
47
87
|
}
|
|
48
88
|
}
|
|
49
89
|
})
|
|
50
90
|
|
|
51
|
-
export const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
91
|
+
export const initVScrollbarMixin = Vue.extend({
|
|
92
|
+
...({} as {
|
|
93
|
+
data(): {
|
|
94
|
+
reactData: VxeUseInitVScrollbarReactData
|
|
95
|
+
internalData: VxeUseInitVScrollbarInternalData
|
|
96
|
+
getScrollViewElem(): HTMLDivElement | null | undefined
|
|
97
|
+
}
|
|
98
|
+
}),
|
|
99
|
+
methods: {
|
|
100
|
+
updateThumbSize () {
|
|
101
|
+
const $xeVm = this
|
|
102
|
+
const reactData = getVmReactData($xeVm)
|
|
103
|
+
|
|
104
|
+
const viewEl = $xeVm.getScrollViewElem()
|
|
105
|
+
if (!viewEl) {
|
|
106
|
+
return
|
|
107
|
+
}
|
|
108
|
+
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
109
|
+
return
|
|
110
|
+
}
|
|
111
|
+
const trackXEl = $xeVm.$refs.refTrackXElem as HTMLDivElement
|
|
112
|
+
const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0
|
|
113
|
+
const thumbXElem = $xeVm.$refs.refThumbXElem as HTMLDivElement
|
|
114
|
+
if (thumbXElem) {
|
|
115
|
+
thumbXElem.style.width = xThumbWidth + 'px'
|
|
116
|
+
}
|
|
117
|
+
reactData.xThumbWidth = xThumbWidth
|
|
118
|
+
|
|
119
|
+
const trackYEl = $xeVm.$refs.refTrackYElem as HTMLDivElement
|
|
120
|
+
const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0
|
|
121
|
+
const thumbYElem = $xeVm.$refs.refThumbYElem as HTMLDivElement
|
|
122
|
+
if (thumbYElem) {
|
|
123
|
+
thumbYElem.style.height = yThumbHeight + 'px'
|
|
124
|
+
}
|
|
125
|
+
reactData.yThumbHeight = yThumbHeight
|
|
126
|
+
},
|
|
127
|
+
updateThumbOffset () {
|
|
128
|
+
const $xeVm = this
|
|
129
|
+
const reactData = getVmReactData($xeVm)
|
|
130
|
+
const internalData = getVmInternalData($xeVm)
|
|
131
|
+
|
|
132
|
+
const viewEl = $xeVm.getScrollViewElem()
|
|
133
|
+
if (!viewEl) {
|
|
134
|
+
return
|
|
135
|
+
}
|
|
136
|
+
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
137
|
+
return
|
|
138
|
+
}
|
|
139
|
+
const { xThumbWidth, yThumbHeight } = reactData
|
|
140
|
+
const trackXEl = $xeVm.$refs.refTrackXElem as HTMLDivElement
|
|
141
|
+
const thumbXElem = $xeVm.$refs.refThumbXElem as HTMLDivElement
|
|
142
|
+
const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0
|
|
143
|
+
internalData.xThumbLeft = xThumbLeft
|
|
144
|
+
if (thumbXElem && xThumbWidth) {
|
|
145
|
+
thumbXElem.style.width = xThumbWidth + 'px'
|
|
146
|
+
thumbXElem.style.transform = `translateX(${xThumbLeft}px)`
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
const trackYEl = $xeVm.$refs.refTrackYElem as HTMLDivElement
|
|
150
|
+
const thumbYElem = $xeVm.$refs.refThumbYElem as HTMLDivElement
|
|
151
|
+
const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0
|
|
152
|
+
internalData.yThumbTop = yThumbTop
|
|
153
|
+
if (thumbYElem && yThumbHeight) {
|
|
154
|
+
thumbYElem.style.height = yThumbHeight + 'px'
|
|
155
|
+
thumbYElem.style.transform = `translateY(${yThumbTop}px)`
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
clickTrackXEvent (evnt: MouseEvent) {
|
|
159
|
+
const $xeVm = this
|
|
160
|
+
const reactData = getVmReactData($xeVm)
|
|
161
|
+
|
|
162
|
+
const trackEl = evnt.currentTarget as HTMLDivElement
|
|
163
|
+
if (trackEl !== evnt.target) {
|
|
164
|
+
return
|
|
165
|
+
}
|
|
166
|
+
const viewEl = $xeVm.getScrollViewElem()
|
|
167
|
+
if (!viewEl) {
|
|
168
|
+
return
|
|
169
|
+
}
|
|
170
|
+
const { xThumbWidth } = reactData
|
|
171
|
+
const trackRect = trackEl.getBoundingClientRect()
|
|
172
|
+
viewEl.scrollTo({
|
|
173
|
+
left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
|
|
174
|
+
behavior: 'auto'
|
|
175
|
+
})
|
|
176
|
+
},
|
|
177
|
+
clickTrackYEvent (evnt: MouseEvent) {
|
|
178
|
+
const $xeVm = this
|
|
179
|
+
const reactData = getVmReactData($xeVm)
|
|
180
|
+
|
|
181
|
+
const trackEl = evnt.currentTarget as HTMLDivElement
|
|
182
|
+
if (trackEl !== evnt.target) {
|
|
183
|
+
return
|
|
184
|
+
}
|
|
185
|
+
const viewEl = $xeVm.getScrollViewElem()
|
|
186
|
+
if (!viewEl) {
|
|
187
|
+
return
|
|
188
|
+
}
|
|
189
|
+
const { yThumbHeight } = reactData
|
|
190
|
+
const trackRect = trackEl.getBoundingClientRect()
|
|
191
|
+
viewEl.scrollTo({
|
|
192
|
+
top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
|
|
193
|
+
behavior: 'auto'
|
|
194
|
+
})
|
|
195
|
+
},
|
|
196
|
+
pointerdownThumbXEvent (evnt: PointerEvent) {
|
|
197
|
+
const $xeVm = this
|
|
198
|
+
const reactData = getVmReactData($xeVm)
|
|
199
|
+
const internalData = getVmInternalData($xeVm)
|
|
200
|
+
|
|
201
|
+
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
202
|
+
internalData.isThumbDrag = true
|
|
203
|
+
thumbEl.setPointerCapture(evnt.pointerId)
|
|
204
|
+
|
|
205
|
+
const viewEl = $xeVm.getScrollViewElem()
|
|
206
|
+
if (!viewEl) {
|
|
207
|
+
return
|
|
208
|
+
}
|
|
209
|
+
const { xThumbWidth } = reactData
|
|
210
|
+
const trackEl = thumbEl.parentElement as HTMLDivElement
|
|
211
|
+
const trackRect = trackEl.getBoundingClientRect()
|
|
212
|
+
const pointerPosition = evnt.clientX - trackRect.left
|
|
213
|
+
// 记录 thumb 的偏移
|
|
214
|
+
const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth)
|
|
215
|
+
internalData.thumbDragOffset = pointerPosition - thumbOffset
|
|
216
|
+
},
|
|
217
|
+
pointermoveThumbXEvent (evnt: PointerEvent) {
|
|
218
|
+
const $xeVm = this
|
|
219
|
+
const reactData = getVmReactData($xeVm)
|
|
220
|
+
const internalData = getVmInternalData($xeVm)
|
|
221
|
+
|
|
222
|
+
const { isThumbDrag, thumbDragOffset } = internalData
|
|
223
|
+
if (isThumbDrag) {
|
|
224
|
+
const viewEl = $xeVm.getScrollViewElem()
|
|
225
|
+
if (!viewEl) {
|
|
226
|
+
return
|
|
227
|
+
}
|
|
228
|
+
const { xThumbWidth } = reactData
|
|
229
|
+
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
230
|
+
const trackEl = thumbEl.parentElement as HTMLDivElement
|
|
231
|
+
const trackRect = trackEl.getBoundingClientRect()
|
|
232
|
+
// 更新偏移
|
|
233
|
+
viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth)
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
cleatPointerThumbEvent (evnt: PointerEvent) {
|
|
237
|
+
const $xeVm = this
|
|
238
|
+
const internalData = getVmInternalData($xeVm)
|
|
239
|
+
|
|
240
|
+
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
241
|
+
thumbEl.releasePointerCapture(evnt.pointerId)
|
|
242
|
+
internalData.isThumbDrag = false
|
|
243
|
+
},
|
|
244
|
+
pointerdownThumbYEvent (evnt: PointerEvent) {
|
|
245
|
+
const $xeVm = this
|
|
246
|
+
const reactData = getVmReactData($xeVm)
|
|
247
|
+
const internalData = getVmInternalData($xeVm)
|
|
248
|
+
|
|
249
|
+
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
250
|
+
internalData.isThumbDrag = true
|
|
251
|
+
thumbEl.setPointerCapture(evnt.pointerId)
|
|
252
|
+
|
|
253
|
+
const viewEl = $xeVm.getScrollViewElem()
|
|
254
|
+
if (!viewEl) {
|
|
255
|
+
return
|
|
256
|
+
}
|
|
257
|
+
const { yThumbHeight } = reactData
|
|
258
|
+
const trackEl = thumbEl.parentElement as HTMLDivElement
|
|
259
|
+
const trackRect = trackEl.getBoundingClientRect()
|
|
260
|
+
const pointerPosition = evnt.clientY - trackRect.top
|
|
261
|
+
// 记录 thumb 的偏移
|
|
262
|
+
const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight)
|
|
263
|
+
internalData.thumbDragOffset = pointerPosition - thumbOffset
|
|
264
|
+
},
|
|
265
|
+
pointermoveThumbYEvent (evnt: PointerEvent) {
|
|
266
|
+
const $xeVm = this
|
|
267
|
+
const reactData = getVmReactData($xeVm)
|
|
268
|
+
const internalData = getVmInternalData($xeVm)
|
|
269
|
+
|
|
270
|
+
const { isThumbDrag, thumbDragOffset } = internalData
|
|
271
|
+
if (isThumbDrag) {
|
|
272
|
+
const viewEl = $xeVm.getScrollViewElem()
|
|
273
|
+
if (!viewEl) {
|
|
274
|
+
return
|
|
275
|
+
}
|
|
276
|
+
const { yThumbHeight } = reactData
|
|
277
|
+
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
278
|
+
const trackEl = thumbEl.parentElement as HTMLDivElement
|
|
279
|
+
const trackRect = trackEl.getBoundingClientRect()
|
|
280
|
+
// 更新偏移
|
|
281
|
+
viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight)
|
|
282
|
+
}
|
|
55
283
|
}
|
|
56
284
|
}
|
|
57
285
|
})
|
|
58
286
|
|
|
59
|
-
export const globalMixins = {
|
|
287
|
+
export const globalMixins: VxeGlobalUseMixins = {
|
|
60
288
|
sizeMixin,
|
|
289
|
+
permissionMixin,
|
|
61
290
|
vScrollbarMixin,
|
|
62
|
-
|
|
291
|
+
initVScrollbarMixin
|
|
63
292
|
}
|
|
@@ -41,7 +41,7 @@ export const popperUtils: VxePopperUtils = {
|
|
|
41
41
|
const { defaultTop, defaultLeft, placement, defaultPlacement, appendTo, teleportTo, marginSize, isMinWidth } = Object.assign({
|
|
42
42
|
appendTo: '',
|
|
43
43
|
teleportTo: false,
|
|
44
|
-
marginSize:
|
|
44
|
+
marginSize: 12,
|
|
45
45
|
isMinWidth: true
|
|
46
46
|
}, options)
|
|
47
47
|
let panelPlacement: 'top' | 'bottom' = 'bottom'
|
package/types/core/mixins.d.ts
CHANGED
|
@@ -3,17 +3,109 @@ import { VxeComponentSizeType, VxeComponentIsVScrollbar, VxeComponentPermissionI
|
|
|
3
3
|
|
|
4
4
|
/* eslint-disable @typescript-eslint/ban-types */
|
|
5
5
|
|
|
6
|
+
type ToComputed<T> = {
|
|
7
|
+
[K in keyof T]: T[K] extends (...args: infer A) => infer R
|
|
8
|
+
? () => (...args: A) => R
|
|
9
|
+
: () => T[K]
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface VxeUseSizeResult {
|
|
13
|
+
computeSize: VxeComponentSizeType
|
|
14
|
+
}
|
|
15
|
+
export type VxeUseSizeComputed = ToComputed<VxeUseSizeResult>
|
|
16
|
+
|
|
17
|
+
export interface VxeUsePermissionResult {
|
|
18
|
+
computePermissionInfo: VxeComponentPermissionInfo
|
|
19
|
+
}
|
|
20
|
+
export type VxeUsePermissionComputed = ToComputed<VxeUsePermissionResult>
|
|
21
|
+
|
|
22
|
+
export interface VxeUseVScrollbarResult {
|
|
23
|
+
computeIsVScrollbar: VxeComponentIsVScrollbar
|
|
24
|
+
}
|
|
25
|
+
export type VxeUseVScrollbarComputed = ToComputed<VxeUseVScrollbarResult>
|
|
26
|
+
|
|
27
|
+
export interface VxeUseInitVScrollbarReactData {
|
|
28
|
+
yThumbHeight: number
|
|
29
|
+
xThumbWidth: number
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface VxeUseInitVScrollbarInternalData {
|
|
33
|
+
scrollObserver?: ResizeObserver
|
|
34
|
+
isThumbDrag?: boolean
|
|
35
|
+
thumbDragOffset: number
|
|
36
|
+
yThumbTop: number
|
|
37
|
+
xThumbLeft: number
|
|
38
|
+
lastScrollTop: number
|
|
39
|
+
lastScrollLeft: number
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface VxeUseInitVScrollbarResult {
|
|
43
|
+
/**
|
|
44
|
+
* 内部方法
|
|
45
|
+
* @private
|
|
46
|
+
*/
|
|
47
|
+
updateThumbSize(): void
|
|
48
|
+
/**
|
|
49
|
+
* 内部方法
|
|
50
|
+
* @private
|
|
51
|
+
*/
|
|
52
|
+
updateThumbOffset(): void
|
|
53
|
+
/**
|
|
54
|
+
* 内部方法
|
|
55
|
+
* @private
|
|
56
|
+
*/
|
|
57
|
+
clickTrackXEvent(evnt: MouseEvent): void
|
|
58
|
+
/**
|
|
59
|
+
* 内部方法
|
|
60
|
+
* @private
|
|
61
|
+
*/
|
|
62
|
+
clickTrackYEvent(evnt: MouseEvent): void
|
|
63
|
+
/**
|
|
64
|
+
* 内部方法
|
|
65
|
+
* @private
|
|
66
|
+
*/
|
|
67
|
+
pointerdownThumbXEvent(evnt: PointerEvent): void
|
|
68
|
+
/**
|
|
69
|
+
* 内部方法
|
|
70
|
+
* @private
|
|
71
|
+
*/
|
|
72
|
+
pointermoveThumbXEvent(evnt: PointerEvent): void
|
|
73
|
+
/**
|
|
74
|
+
* 内部方法
|
|
75
|
+
* @private
|
|
76
|
+
*/
|
|
77
|
+
cleatPointerThumbEvent(evnt: PointerEvent): void
|
|
78
|
+
/**
|
|
79
|
+
* 内部方法
|
|
80
|
+
* @private
|
|
81
|
+
*/
|
|
82
|
+
pointerdownThumbYEvent(evnt: PointerEvent): void
|
|
83
|
+
/**
|
|
84
|
+
* 内部方法
|
|
85
|
+
* @private
|
|
86
|
+
*/
|
|
87
|
+
pointermoveThumbYEvent(evnt: PointerEvent): void
|
|
88
|
+
}
|
|
89
|
+
export type VxeUseInitVScrollbarComputed = ToComputed<VxeUseInitVScrollbarResult>
|
|
90
|
+
|
|
6
91
|
/**
|
|
7
92
|
* 通用方法
|
|
8
93
|
*/
|
|
9
94
|
export interface VxeGlobalUseMixins {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
95
|
+
/**
|
|
96
|
+
* 组件尺寸上下文
|
|
97
|
+
*/
|
|
98
|
+
sizeMixin: ExtendedVue<Vue, {}, {}, VxeUseSizeResult, Record<string, any>>
|
|
99
|
+
/**
|
|
100
|
+
* 权限码处理
|
|
101
|
+
*/
|
|
102
|
+
permissionMixin: ExtendedVue<Vue, {}, {}, VxeUsePermissionResult, Record<string, any>>
|
|
103
|
+
/**
|
|
104
|
+
* 虚拟滚动条是否启用
|
|
105
|
+
*/
|
|
106
|
+
vScrollbarMixin: ExtendedVue<Vue, {}, {}, VxeUseVScrollbarResult, Record<string, any>>
|
|
107
|
+
/**
|
|
108
|
+
* 虚拟滚动条是否启用
|
|
109
|
+
*/
|
|
110
|
+
initVScrollbarMixin: ExtendedVue<Vue, {}, VxeUseInitVScrollbarResult, {}, Record<string, any>>
|
|
19
111
|
}
|