vxe-pc-ui 4.19.8 → 4.20.1

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.
Files changed (100) hide show
  1. package/dist/all.esm.js +878 -115
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/card/src/card.js +17 -3
  5. package/es/icon/style.css +1 -1
  6. package/es/language/fr-FR.js +29 -29
  7. package/es/layout-aside/src/layout-aside.js +8 -5
  8. package/es/layout-body/src/layout-body.js +19 -11
  9. package/es/list/src/list.js +364 -21
  10. package/es/list/style.css +43 -0
  11. package/es/list/style.min.css +1 -1
  12. package/es/scrollbar/src/scrollbar.js +59 -17
  13. package/es/scrollbar/style.css +1 -0
  14. package/es/style.css +1 -1
  15. package/es/style.min.css +1 -1
  16. package/es/tabs/src/tabs.js +19 -4
  17. package/es/tree/src/tree.js +393 -55
  18. package/es/tree/style.css +43 -0
  19. package/es/tree/style.min.css +1 -1
  20. package/es/ui/index.js +1 -1
  21. package/es/ui/src/log.js +1 -1
  22. package/es/ui/src/utils.js +12 -0
  23. package/es/vxe-list/style.css +43 -0
  24. package/es/vxe-list/style.min.css +1 -1
  25. package/es/vxe-scrollbar/style.css +1 -0
  26. package/es/vxe-tree/style.css +43 -0
  27. package/es/vxe-tree/style.min.css +1 -1
  28. package/lib/card/src/card.js +17 -3
  29. package/lib/card/src/card.min.js +1 -1
  30. package/lib/icon/style/style.css +1 -1
  31. package/lib/icon/style/style.min.css +1 -1
  32. package/lib/index.umd.js +914 -126
  33. package/lib/index.umd.min.js +1 -1
  34. package/lib/language/fr-FR.js +29 -29
  35. package/lib/language/fr-FR.min.js +1 -1
  36. package/lib/language/fr-FR.umd.js +29 -29
  37. package/lib/layout-aside/src/layout-aside.js +7 -7
  38. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  39. package/lib/layout-body/src/layout-body.js +27 -21
  40. package/lib/layout-body/src/layout-body.min.js +1 -1
  41. package/lib/list/src/list.js +368 -21
  42. package/lib/list/src/list.min.js +1 -1
  43. package/lib/list/style/style.css +43 -0
  44. package/lib/list/style/style.min.css +1 -1
  45. package/lib/scrollbar/src/scrollbar.js +67 -15
  46. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  47. package/lib/scrollbar/style/style.css +1 -0
  48. package/lib/style.css +1 -1
  49. package/lib/style.min.css +1 -1
  50. package/lib/tabs/src/tabs.js +22 -10
  51. package/lib/tabs/src/tabs.min.js +1 -1
  52. package/lib/tree/src/tree.js +397 -53
  53. package/lib/tree/src/tree.min.js +1 -1
  54. package/lib/tree/style/style.css +43 -0
  55. package/lib/tree/style/style.min.css +1 -1
  56. package/lib/ui/index.js +1 -1
  57. package/lib/ui/index.min.js +1 -1
  58. package/lib/ui/src/log.js +1 -1
  59. package/lib/ui/src/log.min.js +1 -1
  60. package/lib/ui/src/utils.js +14 -0
  61. package/lib/ui/src/utils.min.js +1 -1
  62. package/lib/vxe-list/style/style.css +43 -0
  63. package/lib/vxe-list/style/style.min.css +1 -1
  64. package/lib/vxe-scrollbar/style/style.css +1 -0
  65. package/lib/vxe-tree/style/style.css +43 -0
  66. package/lib/vxe-tree/style/style.min.css +1 -1
  67. package/package.json +1 -1
  68. package/packages/card/src/card.ts +18 -3
  69. package/packages/language/fr-FR.ts +903 -903
  70. package/packages/layout-aside/src/layout-aside.ts +8 -5
  71. package/packages/layout-body/src/layout-body.ts +23 -14
  72. package/packages/list/src/list.ts +397 -24
  73. package/packages/scrollbar/src/scrollbar.ts +63 -16
  74. package/packages/tabs/src/tabs.ts +19 -5
  75. package/packages/tree/src/tree.ts +432 -64
  76. package/packages/ui/src/utils.ts +14 -0
  77. package/styles/components/list.scss +76 -0
  78. package/styles/components/scrollbar.scss +3 -0
  79. package/styles/components/tree.scss +76 -0
  80. package/types/components/card.d.ts +10 -1
  81. package/types/components/layout-aside.d.ts +10 -1
  82. package/types/components/layout-body.d.ts +10 -1
  83. package/types/components/list.d.ts +33 -2
  84. package/types/components/scrollbar.d.ts +17 -2
  85. package/types/components/table-plugins/extend-cell-area.d.ts +1 -1
  86. package/types/components/table.d.ts +71 -4
  87. package/types/components/tabs.d.ts +10 -1
  88. package/types/components/tree.d.ts +33 -2
  89. /package/es/icon/{iconfont.1791862962954.ttf → iconfont.1791950625324.ttf} +0 -0
  90. /package/es/icon/{iconfont.1791862962954.woff → iconfont.1791950625324.woff} +0 -0
  91. /package/es/icon/{iconfont.1791862962954.woff2 → iconfont.1791950625324.woff2} +0 -0
  92. /package/es/{iconfont.1791862962954.ttf → iconfont.1791950625324.ttf} +0 -0
  93. /package/es/{iconfont.1791862962954.woff → iconfont.1791950625324.woff} +0 -0
  94. /package/es/{iconfont.1791862962954.woff2 → iconfont.1791950625324.woff2} +0 -0
  95. /package/lib/icon/style/{iconfont.1791862962954.ttf → iconfont.1791950625324.ttf} +0 -0
  96. /package/lib/icon/style/{iconfont.1791862962954.woff → iconfont.1791950625324.woff} +0 -0
  97. /package/lib/icon/style/{iconfont.1791862962954.woff2 → iconfont.1791950625324.woff2} +0 -0
  98. /package/lib/{iconfont.1791862962954.ttf → iconfont.1791950625324.ttf} +0 -0
  99. /package/lib/{iconfont.1791862962954.woff → iconfont.1791950625324.woff} +0 -0
  100. /package/lib/{iconfont.1791862962954.woff2 → iconfont.1791950625324.woff2} +0 -0
@@ -287,3 +287,79 @@
287
287
  padding-right: var(--vxe-ui-list-current-padding);
288
288
  @include baseMixin.createRadioIcon();
289
289
  }
290
+
291
+ // 滚动条
292
+ .vxe-list {
293
+ &.ov-padding {
294
+ &.overflow-x {
295
+ &.sx-pos--top {
296
+ padding-top: var(--vxe-ui-scrollbar-x-height);
297
+ }
298
+ &.sx-pos--bottom {
299
+ padding-bottom: var(--vxe-ui-scrollbar-x-height);
300
+ }
301
+ }
302
+ &.overflow-y {
303
+ &.sy-pos--left {
304
+ padding-left: var(--vxe-ui-scrollbar-y-width);
305
+ }
306
+ &.sy-pos--right {
307
+ padding-right: var(--vxe-ui-scrollbar-y-width);
308
+ }
309
+ }
310
+ }
311
+ &.ov-x--hidden {
312
+ & > .vxe-list--virtual-wrapper {
313
+ overflow-x: hidden;
314
+ }
315
+ }
316
+ &.ov-y--hidden {
317
+ & > .vxe-list--virtual-wrapper {
318
+ overflow-y: hidden;
319
+ }
320
+ }
321
+ &.is--virtual-scrollbar {
322
+ &.ov-x--auto-hide {
323
+ &:hover {
324
+ & > .vxe-scrollbar {
325
+ & > .vxe-scrollbar--track-x {
326
+ opacity: 1;
327
+ }
328
+ }
329
+ }
330
+ & > .vxe-scrollbar {
331
+ & > .vxe-scrollbar--track-x {
332
+ opacity: 0;
333
+ @include baseMixin.createAnimationTransition(opacity, 0.8s);
334
+ }
335
+ }
336
+ }
337
+ &.ov-y--auto-hide {
338
+ &:hover {
339
+ & > .vxe-scrollbar {
340
+ & > .vxe-scrollbar--track-y {
341
+ opacity: 1;
342
+ }
343
+ }
344
+ }
345
+ & > .vxe-scrollbar {
346
+ & > .vxe-scrollbar--track-y {
347
+ opacity: 0;
348
+ @include baseMixin.createAnimationTransition(opacity, 0.8s);
349
+ }
350
+ }
351
+ }
352
+ }
353
+ & > .vxe-scrollbar {
354
+ position: unset;
355
+ }
356
+ &.is--virtual-scrollbar {
357
+ & > .vxe-list--virtual-wrapper {
358
+ scrollbar-width: none;
359
+ -ms-overflow-style: none;
360
+ }
361
+ & > .vxe-list--virtual-wrapper::-webkit-scrollbar {
362
+ display: none;
363
+ }
364
+ }
365
+ }
@@ -49,6 +49,9 @@
49
49
  background-color: var(--vxe-ui-scrollbar-thumb-active-background-color);
50
50
  }
51
51
  }
52
+ }
53
+
54
+ .vxe-scrollbar {
52
55
  &.ov-x--hidden {
53
56
  & > .vxe-scrollbar--view {
54
57
  overflow-x: hidden;
@@ -308,3 +308,79 @@
308
308
  width: 0;
309
309
  float: left;
310
310
  }
311
+
312
+ // 滚动条
313
+ .vxe-tree {
314
+ &.ov-padding {
315
+ &.overflow-x {
316
+ &.sx-pos--top {
317
+ padding-top: var(--vxe-ui-scrollbar-x-height);
318
+ }
319
+ &.sx-pos--bottom {
320
+ padding-bottom: var(--vxe-ui-scrollbar-x-height);
321
+ }
322
+ }
323
+ &.overflow-y {
324
+ &.sy-pos--left {
325
+ padding-left: var(--vxe-ui-scrollbar-y-width);
326
+ }
327
+ &.sy-pos--right {
328
+ padding-right: var(--vxe-ui-scrollbar-y-width);
329
+ }
330
+ }
331
+ }
332
+ &.ov-x--hidden {
333
+ & > .vxe-tree--node-list-wrapper {
334
+ overflow-x: hidden;
335
+ }
336
+ }
337
+ &.ov-y--hidden {
338
+ & > .vxe-tree--node-list-wrapper {
339
+ overflow-y: hidden;
340
+ }
341
+ }
342
+ &.is--virtual-scrollbar {
343
+ &.ov-x--auto-hide {
344
+ &:hover {
345
+ & > .vxe-scrollbar {
346
+ & > .vxe-scrollbar--track-x {
347
+ opacity: 1;
348
+ }
349
+ }
350
+ }
351
+ & > .vxe-scrollbar {
352
+ & > .vxe-scrollbar--track-x {
353
+ opacity: 0;
354
+ @include baseMixin.createAnimationTransition(opacity, 0.8s);
355
+ }
356
+ }
357
+ }
358
+ &.ov-y--auto-hide {
359
+ &:hover {
360
+ & > .vxe-scrollbar {
361
+ & > .vxe-scrollbar--track-y {
362
+ opacity: 1;
363
+ }
364
+ }
365
+ }
366
+ & > .vxe-scrollbar {
367
+ & > .vxe-scrollbar--track-y {
368
+ opacity: 0;
369
+ @include baseMixin.createAnimationTransition(opacity, 0.8s);
370
+ }
371
+ }
372
+ }
373
+ }
374
+ & > .vxe-scrollbar {
375
+ position: unset;
376
+ }
377
+ &.is--virtual-scrollbar {
378
+ & > .vxe-tree--node-list-wrapper {
379
+ scrollbar-width: none;
380
+ -ms-overflow-style: none;
381
+ }
382
+ & > .vxe-tree--node-list-wrapper::-webkit-scrollbar {
383
+ display: none;
384
+ }
385
+ }
386
+ }
@@ -34,7 +34,16 @@ export namespace VxeCardPropTypes {
34
34
  export type Padding = boolean
35
35
  export type Size = VxeComponentSizeType
36
36
  export type UseScrollbar = boolean
37
- export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'native' | 'yConfig' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
37
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
38
+ /**
39
+ * 滚动条宽度
40
+ */
41
+ width?: number | string
42
+ /**
43
+ * 滚动条高度
44
+ */
45
+ height?: number | string
46
+ }
38
47
  }
39
48
 
40
49
  export type VxeCardProps = {
@@ -37,7 +37,16 @@ export namespace VxeLayoutAsidePropTypes {
37
37
  animation?: boolean
38
38
  }
39
39
  export type UseScrollbar = boolean
40
- export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'native' | 'yConfig' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
40
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
41
+ /**
42
+ * 滚动条宽度
43
+ */
44
+ width?: number | string
45
+ /**
46
+ * 滚动条高度
47
+ */
48
+ height?: number | string
49
+ }
41
50
  }
42
51
 
43
52
  export interface VxeLayoutAsideProps {
@@ -32,7 +32,16 @@ export namespace VxeLayoutBodyPropTypes {
32
32
  export type ShowBacktop = boolean
33
33
  export interface BacktopConfig extends Omit<VxeBacktopProps, 'target'> {}
34
34
  export type UseScrollbar = boolean
35
- export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'native' | 'xConfig' | 'yConfig' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
35
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
36
+ /**
37
+ * 滚动条宽度
38
+ */
39
+ width?: number | string
40
+ /**
41
+ * 滚动条高度
42
+ */
43
+ height?: number | string
44
+ }
36
45
  }
37
46
  export interface VxeLayoutBodyProps {
38
47
  size?: VxeLayoutBodyPropTypes.Size
@@ -1,6 +1,7 @@
1
1
  import { RenderFunction, SetupContext, Ref } from 'vue'
2
2
  import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentBaseOptions, VxeComponentEventParams, VxeComponentSizeType, ValueOf } from '@vxe-ui/core'
3
3
  import { VxeContextMenuPropTypes, VxeContextMenuDefines } from './context-menu'
4
+ import { VxeScrollbarProps } from './scrollbar'
4
5
 
5
6
  /* eslint-disable no-use-before-define,@typescript-eslint/ban-types */
6
7
 
@@ -226,6 +227,17 @@ export namespace VxeListPropTypes {
226
227
  */
227
228
  enabled?: boolean
228
229
  }
230
+ export type UseScrollbar = boolean
231
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible'> {
232
+ /**
233
+ * 滚动条宽度
234
+ */
235
+ width?: number | string
236
+ /**
237
+ * 滚动条高度
238
+ */
239
+ height?: number | string
240
+ }
229
241
  }
230
242
 
231
243
  export interface VxeListProps<D = any> {
@@ -248,6 +260,14 @@ export interface VxeListProps<D = any> {
248
260
  dragConfig?: VxeListPropTypes.DragConfig
249
261
  menuConfig?: VxeListPropTypes.MenuConfig
250
262
  virtualYConfig?: VxeListPropTypes.VirtualYConfig
263
+ /**
264
+ * 使用虚拟滚动条
265
+ */
266
+ useScrollbar?: VxeListPropTypes.UseScrollbar
267
+ /**
268
+ * 滚动条配置项
269
+ */
270
+ scrollbarConfig?: VxeListPropTypes.ScrollbarConfig
251
271
 
252
272
  /**
253
273
  * 已废弃,被 virtual-y-config 替换
@@ -276,6 +296,10 @@ export interface ListReactData {
276
296
  isAllChecked: boolean
277
297
  isAllIndeterminate: boolean
278
298
 
299
+ // 滚动条
300
+ yThumbHeight: number
301
+ xThumbWidth: number
302
+
279
303
  insertRowFlag: number
280
304
  removeRowFlag: number
281
305
 
@@ -285,13 +309,20 @@ export interface ListReactData {
285
309
  }
286
310
 
287
311
  export interface ListInternalData {
288
- resizeObserver: ResizeObserver | undefined
289
312
  fullData: any[]
290
313
  afterList: any[]
291
314
  fullKeyMaps: Record<string, any>
292
315
  rowMaps: Record<string, VxeListDefines.RowCacheItem>
293
- lastScrollLeft: number
316
+
317
+ // 滚动条
318
+ resizeObserver?: ResizeObserver
319
+ isThumbDrag?: boolean
320
+ thumbDragOffset: number
321
+ yThumbTop: number
322
+ xThumbLeft: number
294
323
  lastScrollTop: number
324
+ lastScrollLeft: number
325
+
295
326
  scrollYStore: {
296
327
  startIndex: number
297
328
  endIndex: number
@@ -25,6 +25,7 @@ export interface VxeScrollbarPrivateRef extends ScrollbarPrivateRef { }
25
25
 
26
26
  export namespace VxeScrollbarPropTypes {
27
27
  export type Id = number | string
28
+ export type ViewId = number | string
28
29
  export type Width = number | string
29
30
  export type Height = number | string
30
31
  export type MinWidth = number | string
@@ -34,6 +35,8 @@ export namespace VxeScrollbarPropTypes {
34
35
  export type Loading = boolean
35
36
  export type Native = boolean
36
37
  export type Padding = boolean
38
+ export type AutoHide = boolean
39
+ export type Visible = boolean
37
40
  export interface XConfig {
38
41
  height?: number | string
39
42
  // showArrows?: boolean
@@ -45,7 +48,7 @@ export namespace VxeScrollbarPropTypes {
45
48
  * 滚动条显示位置
46
49
  */
47
50
  position?: 'top' | 'bottom' | ''
48
- visible?: 'auto' | 'hidden' | 'visible' | ''
51
+ visible?: boolean
49
52
  /**
50
53
  * 滚动到边界触发的阈值会触发 scroll-boundary 事件
51
54
  */
@@ -62,7 +65,7 @@ export namespace VxeScrollbarPropTypes {
62
65
  * 滚动条显示位置
63
66
  */
64
67
  position?: 'left' | 'right' | ''
65
- visible?: 'auto' | 'hidden' | 'visible' | ''
68
+ visible?: boolean
66
69
  /**
67
70
  * 滚动到边界触发的阈值会触发 scroll-boundary 事件
68
71
  */
@@ -81,6 +84,10 @@ export interface VxeScrollbarProps {
81
84
  * ID
82
85
  */
83
86
  id?: VxeScrollbarPropTypes.Id
87
+ /**
88
+ * View ID
89
+ */
90
+ viewId?: VxeScrollbarPropTypes.ViewId
84
91
  /**
85
92
  * 容器宽度
86
93
  */
@@ -109,6 +116,14 @@ export interface VxeScrollbarProps {
109
116
  * 是否加载中
110
117
  */
111
118
  loading?: VxeScrollbarPropTypes.Loading
119
+ /**
120
+ * 是否自动隐藏
121
+ */
122
+ autoHide?: VxeScrollbarPropTypes.AutoHide
123
+ /**
124
+ * 是否显示
125
+ */
126
+ visible?: VxeScrollbarPropTypes.Visible
112
127
  /**
113
128
  * 是否使用原生滚动条
114
129
  */
@@ -93,7 +93,7 @@ export interface VxeTableExtendCellAreaPrivateMethods<D = any> {
93
93
  * 内部方法
94
94
  * @private
95
95
  */
96
- triggerClAreaMnEvent(evnt: MouseEvent, params: VxeTableDefines.CellClickEventParams<D>): void
96
+ triggerClAaMnEvent(evnt: MouseEvent, params: VxeTableDefines.CellClickEventParams<D>): void
97
97
  /**
98
98
  * 内部方法
99
99
  * @private
@@ -1907,6 +1907,10 @@ export namespace VxeTablePropTypes {
1907
1907
  * 鼠标配置项
1908
1908
  */
1909
1909
  export interface MouseConfig {
1910
+ /**
1911
+ * 是否启用,支持局部/全局启用
1912
+ */
1913
+ enabled?: boolean
1910
1914
  /**
1911
1915
  * 开启单元格选中功能(只对 edit-config.mode=cell 有效)
1912
1916
  */
@@ -1926,6 +1930,10 @@ export namespace VxeTablePropTypes {
1926
1930
  * 区域配置项
1927
1931
  */
1928
1932
  export interface AreaConfig<D = any> {
1933
+ /**
1934
+ * 是否启用,支持局部/全局启用
1935
+ */
1936
+ enabled?: boolean
1929
1937
  /**
1930
1938
  * 是否显示操作提示消息
1931
1939
  */
@@ -2062,6 +2070,10 @@ export namespace VxeTablePropTypes {
2062
2070
  * 按键配置项
2063
2071
  */
2064
2072
  export interface KeyboardConfig<D = any> {
2073
+ /**
2074
+ * 是否启用,支持局部/全局启用
2075
+ */
2076
+ enabled?: boolean
2065
2077
  /**
2066
2078
  * 是否启用全选
2067
2079
  * Window/Linux对应按键: Ctrl+A
@@ -2960,33 +2972,52 @@ export namespace VxeTablePropTypes {
2960
2972
  }
2961
2973
 
2962
2974
  export interface ScrollbarXConfig {
2975
+ /**
2976
+ * 滚动条高度
2977
+ */
2978
+ height?: number
2963
2979
  /**
2964
2980
  * 滚动条显示位置
2965
2981
  */
2966
2982
  position?: 'top' | 'bottom' | ''
2967
2983
  /**
2968
- * 滚动条显示方式
2984
+ * 是否显示
2969
2985
  */
2970
2986
  visible?: 'auto' | 'visible' | 'hidden' | boolean
2987
+ /**
2988
+ * 是否自动隐藏滚动条
2989
+ */
2990
+ autoHide?: boolean
2971
2991
  /**
2972
2992
  * 滚动行为
2993
+ * @deprecated
2973
2994
  */
2974
2995
  overscrollBehavior?: 'contain' | 'none' | ''
2975
2996
  }
2976
2997
  export interface ScrollbarYConfig {
2998
+ /**
2999
+ * 滚动条宽度
3000
+ */
3001
+ width?: number
2977
3002
  /**
2978
3003
  * 滚动条显示位置
2979
3004
  */
2980
3005
  position?: 'left' | 'right' | ''
2981
3006
  /**
2982
- * 滚动条显示方式
3007
+ * 是否显示
2983
3008
  */
2984
3009
  visible?: 'auto' | 'visible' | 'hidden' | boolean
3010
+ /**
3011
+ * 是否自动隐藏滚动条
3012
+ */
3013
+ autoHide?: boolean
2985
3014
  /**
2986
3015
  * 滚动行为
3016
+ * @deprecated
2987
3017
  */
2988
3018
  overscrollBehavior?: 'contain' | 'none' | ''
2989
3019
  }
3020
+ export type UseScrollbar = boolean
2990
3021
  /**
2991
3022
  * 滚动条配置项
2992
3023
  */
@@ -2999,18 +3030,38 @@ export namespace VxeTablePropTypes {
2999
3030
  * 滚动条高度
3000
3031
  */
3001
3032
  height?: number
3033
+ padding?: boolean
3034
+ /**
3035
+ * 是否自动隐藏滚动条
3036
+ */
3037
+ autoHide?: boolean
3038
+ /**
3039
+ * 是否显示
3040
+ */
3041
+ visible?: boolean
3002
3042
  /**
3003
3043
  * 滚动行为
3044
+ * @deprecated
3004
3045
  */
3005
3046
  overscrollBehavior?: 'contain' | 'none' | ''
3006
3047
  /**
3007
- * 横向滚动条
3048
+ * 已废弃,请使用 xConfig
3049
+ * @deprecated
3008
3050
  */
3009
3051
  x?: ScrollbarXConfig
3010
3052
  /**
3011
- * 纵向滚动条
3053
+ * 横向滚动条
3054
+ */
3055
+ xConfig?: ScrollbarXConfig
3056
+ /**
3057
+ * 已废弃,请使用 yConfig
3058
+ * @deprecated
3012
3059
  */
3013
3060
  y?: ScrollbarYConfig
3061
+ /**
3062
+ * 纵向滚动条
3063
+ */
3064
+ yConfig?: ScrollbarYConfig
3014
3065
  }
3015
3066
 
3016
3067
  /**
@@ -3024,6 +3075,10 @@ export namespace VxeTablePropTypes {
3024
3075
  * 导入参数
3025
3076
  */
3026
3077
  export interface ImportConfig<D = any> {
3078
+ /**
3079
+ * 是否启用,支持局部/全局启用
3080
+ */
3081
+ enabled?: boolean
3027
3082
  /**
3028
3083
  * 内置属性
3029
3084
  * @private
@@ -3332,6 +3387,10 @@ export namespace VxeTablePropTypes {
3332
3387
  * 导出参数
3333
3388
  */
3334
3389
  export interface ExportConfig<D = any> extends ExportAndPrintConfig<D> {
3390
+ /**
3391
+ * 是否启用,支持局部/全局启用
3392
+ */
3393
+ enabled?: boolean
3335
3394
  // 内置属性
3336
3395
  _typeMaps?: Record<string, number>
3337
3396
  /**
@@ -3412,6 +3471,10 @@ export namespace VxeTablePropTypes {
3412
3471
  * 打印参数
3413
3472
  */
3414
3473
  export interface PrintConfig<D = any> extends ExportAndPrintConfig<D> {
3474
+ /**
3475
+ * 是否启用,支持局部/全局启用
3476
+ */
3477
+ enabled?: boolean
3415
3478
  /**
3416
3479
  * 列宽计算模式,支持默认default,等比例scale,自适应auto
3417
3480
  */
@@ -3844,6 +3907,10 @@ export interface VxeTableProps<D = any> {
3844
3907
  * 纵向虚拟滚动配置
3845
3908
  */
3846
3909
  virtualYConfig?: VxeTablePropTypes.VirtualYConfig
3910
+ /**
3911
+ * 使用虚拟滚动条
3912
+ */
3913
+ useScrollbar?: VxeTablePropTypes.UseScrollbar
3847
3914
  /**
3848
3915
  * 滚动条配置项
3849
3916
  */
@@ -114,7 +114,16 @@ export namespace VxeTabsPropTypes {
114
114
  }) => boolean
115
115
  }
116
116
  export type UseScrollbar = boolean
117
- export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'native' | 'yConfig' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
117
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
118
+ /**
119
+ * 滚动条宽度
120
+ */
121
+ width?: number | string
122
+ /**
123
+ * 滚动条高度
124
+ */
125
+ height?: number | string
126
+ }
118
127
  }
119
128
 
120
129
  export type VxeTabsProps = {
@@ -2,6 +2,7 @@ import { RenderFunction, SetupContext, Ref, ComputedRef } from 'vue'
2
2
  import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentBaseOptions, VxeComponentEventParams, VxeComponentSizeType, ValueOf } from '@vxe-ui/core'
3
3
  import { VxeContextMenuPropTypes, VxeContextMenuDefines } from './context-menu'
4
4
  import { VxeTooltipPropTypes } from './tooltip'
5
+ import { VxeScrollbarProps } from './scrollbar'
5
6
 
6
7
  /* eslint-disable no-use-before-define,@typescript-eslint/ban-types */
7
8
 
@@ -331,6 +332,17 @@ export namespace VxeTreePropTypes {
331
332
  */
332
333
  enabled?: boolean
333
334
  }
335
+ export type UseScrollbar = boolean
336
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible'> {
337
+ /**
338
+ * 滚动条宽度
339
+ */
340
+ width?: number | string
341
+ /**
342
+ * 滚动条高度
343
+ */
344
+ height?: number | string
345
+ }
334
346
  }
335
347
 
336
348
  export interface VxeTreeProps<D = any> {
@@ -410,6 +422,14 @@ export interface VxeTreeProps<D = any> {
410
422
  iconLoaded?: VxeTreePropTypes.IconLoaded
411
423
  size?: VxeTreePropTypes.Size
412
424
  virtualYConfig?: VxeTreePropTypes.VirtualYConfig
425
+ /**
426
+ * 使用虚拟滚动条
427
+ */
428
+ useScrollbar?: VxeTreePropTypes.UseScrollbar
429
+ /**
430
+ * 滚动条配置项
431
+ */
432
+ scrollbarConfig?: VxeTreePropTypes.ScrollbarConfig
413
433
  }
414
434
 
415
435
  export interface TreePrivateComputed<D = any> {
@@ -438,6 +458,10 @@ export interface TreeReactData {
438
458
  updateExpandedFlag: number
439
459
  updateCheckboxFlag: number
440
460
 
461
+ // 滚动条
462
+ yThumbHeight: number
463
+ xThumbWidth: number
464
+
441
465
  insertNodeFlag: number
442
466
  removeNodeFlag: number
443
467
 
@@ -453,7 +477,6 @@ export interface TreeReactData {
453
477
 
454
478
  export interface TreeInternalData {
455
479
  initialized?: boolean
456
- resizeObserver?: ResizeObserver
457
480
  lastFilterValue?: string
458
481
  afterTreeList: any[]
459
482
  treeFullData: any[]
@@ -463,8 +486,16 @@ export interface TreeInternalData {
463
486
  selectCheckboxMaps: Record<string, any>
464
487
  treeExpandedMaps: Record<string, boolean>
465
488
  treeExpandLazyLoadedMaps: Record<string, boolean>
466
- lastScrollLeft: number
489
+
490
+ // 滚动条
491
+ resizeObserver?: ResizeObserver
492
+ isThumbDrag?: boolean
493
+ thumbDragOffset: number
494
+ yThumbTop: number
495
+ xThumbLeft: number
467
496
  lastScrollTop: number
497
+ lastScrollLeft: number
498
+
468
499
  scrollYStore: {
469
500
  startIndex: number
470
501
  endIndex: number