vxe-pc-ui 3.19.8 → 3.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 (97) hide show
  1. package/es/card/src/card.js +18 -3
  2. package/es/icon/style.css +1 -1
  3. package/es/language/fr-FR.js +29 -29
  4. package/es/layout-aside/src/layout-aside.js +8 -5
  5. package/es/layout-body/src/layout-body.js +22 -11
  6. package/es/list/src/list.js +409 -21
  7. package/es/list/style.css +43 -0
  8. package/es/list/style.min.css +1 -1
  9. package/es/scrollbar/src/scrollbar.js +69 -17
  10. package/es/scrollbar/style.css +1 -0
  11. package/es/style.css +1 -1
  12. package/es/style.min.css +1 -1
  13. package/es/tabs/src/tabs.js +19 -3
  14. package/es/tree/src/tree.js +439 -56
  15. package/es/tree/style.css +43 -0
  16. package/es/tree/style.min.css +1 -1
  17. package/es/ui/index.js +1 -1
  18. package/es/ui/src/log.js +1 -1
  19. package/es/ui/src/utils.js +12 -0
  20. package/es/vxe-list/style.css +43 -0
  21. package/es/vxe-list/style.min.css +1 -1
  22. package/es/vxe-scrollbar/style.css +1 -0
  23. package/es/vxe-tree/style.css +43 -0
  24. package/es/vxe-tree/style.min.css +1 -1
  25. package/lib/card/src/card.js +18 -3
  26. package/lib/card/src/card.min.js +1 -1
  27. package/lib/icon/style/style.css +1 -1
  28. package/lib/icon/style/style.min.css +1 -1
  29. package/lib/index.umd.js +956 -126
  30. package/lib/index.umd.min.js +1 -1
  31. package/lib/language/fr-FR.js +29 -29
  32. package/lib/language/fr-FR.min.js +1 -1
  33. package/lib/language/fr-FR.umd.js +29 -29
  34. package/lib/layout-aside/src/layout-aside.js +8 -8
  35. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  36. package/lib/layout-body/src/layout-body.js +26 -19
  37. package/lib/layout-body/src/layout-body.min.js +1 -1
  38. package/lib/list/src/list.js +383 -22
  39. package/lib/list/src/list.min.js +1 -1
  40. package/lib/list/style/style.css +43 -0
  41. package/lib/list/style/style.min.css +1 -1
  42. package/lib/scrollbar/src/scrollbar.js +74 -15
  43. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  44. package/lib/scrollbar/style/style.css +1 -0
  45. package/lib/style.css +1 -1
  46. package/lib/style.min.css +1 -1
  47. package/lib/tabs/src/tabs.js +20 -7
  48. package/lib/tabs/src/tabs.min.js +1 -1
  49. package/lib/tree/src/tree.js +416 -53
  50. package/lib/tree/src/tree.min.js +1 -1
  51. package/lib/tree/style/style.css +43 -0
  52. package/lib/tree/style/style.min.css +1 -1
  53. package/lib/ui/index.js +1 -1
  54. package/lib/ui/index.min.js +1 -1
  55. package/lib/ui/src/log.js +1 -1
  56. package/lib/ui/src/log.min.js +1 -1
  57. package/lib/ui/src/utils.js +14 -0
  58. package/lib/ui/src/utils.min.js +1 -1
  59. package/lib/vxe-list/style/style.css +43 -0
  60. package/lib/vxe-list/style/style.min.css +1 -1
  61. package/lib/vxe-scrollbar/style/style.css +1 -0
  62. package/lib/vxe-tree/style/style.css +43 -0
  63. package/lib/vxe-tree/style/style.min.css +1 -1
  64. package/package.json +1 -1
  65. package/packages/card/src/card.ts +19 -3
  66. package/packages/language/fr-FR.ts +903 -903
  67. package/packages/layout-aside/src/layout-aside.ts +8 -5
  68. package/packages/layout-body/src/layout-body.ts +26 -14
  69. package/packages/list/src/list.ts +444 -25
  70. package/packages/scrollbar/src/scrollbar.ts +79 -17
  71. package/packages/tabs/src/tabs.ts +20 -7
  72. package/packages/tree/src/tree.ts +482 -67
  73. package/packages/ui/src/utils.ts +14 -0
  74. package/styles/components/list.scss +76 -0
  75. package/styles/components/scrollbar.scss +3 -0
  76. package/styles/components/tree.scss +76 -0
  77. package/types/components/card.d.ts +10 -1
  78. package/types/components/layout-aside.d.ts +10 -1
  79. package/types/components/layout-body.d.ts +10 -1
  80. package/types/components/list.d.ts +33 -2
  81. package/types/components/scrollbar.d.ts +16 -2
  82. package/types/components/table-plugins/extend-cell-area.d.ts +1 -1
  83. package/types/components/table.d.ts +71 -4
  84. package/types/components/tabs.d.ts +10 -1
  85. package/types/components/tree.d.ts +33 -2
  86. /package/es/icon/{iconfont.1791862954819.ttf → iconfont.1791950618327.ttf} +0 -0
  87. /package/es/icon/{iconfont.1791862954819.woff → iconfont.1791950618327.woff} +0 -0
  88. /package/es/icon/{iconfont.1791862954819.woff2 → iconfont.1791950618327.woff2} +0 -0
  89. /package/es/{iconfont.1791862954819.ttf → iconfont.1791950618327.ttf} +0 -0
  90. /package/es/{iconfont.1791862954819.woff → iconfont.1791950618327.woff} +0 -0
  91. /package/es/{iconfont.1791862954819.woff2 → iconfont.1791950618327.woff2} +0 -0
  92. /package/lib/icon/style/{iconfont.1791862954819.ttf → iconfont.1791950618327.ttf} +0 -0
  93. /package/lib/icon/style/{iconfont.1791862954819.woff → iconfont.1791950618327.woff} +0 -0
  94. /package/lib/icon/style/{iconfont.1791862954819.woff2 → iconfont.1791950618327.woff2} +0 -0
  95. /package/lib/{iconfont.1791862954819.ttf → iconfont.1791950618327.ttf} +0 -0
  96. /package/lib/{iconfont.1791862954819.woff → iconfont.1791950618327.woff} +0 -0
  97. /package/lib/{iconfont.1791862954819.woff2 → iconfont.1791950618327.woff2} +0 -0
@@ -6,6 +6,16 @@ export function isEnableConf (conf: any): boolean {
6
6
  return conf && conf.enabled !== false
7
7
  }
8
8
 
9
+ /**
10
+ * 用于开关类型的配置项
11
+ * 局部启用规则:conf={}
12
+ * 局部禁用规则:conf={enabled:false}
13
+ * 全局默认启用规则:conf.enabled=true
14
+ */
15
+ export function hasEnableConf (conf: any, opts: any): boolean {
16
+ return opts && (conf ? opts.enabled !== false : opts.enabled)
17
+ }
18
+
9
19
  export function nextZIndex () {
10
20
  return DomZIndex.getNext()
11
21
  }
@@ -62,3 +72,7 @@ export function enModelValue (nodeid: string | number | null | undefined) {
62
72
  export function deModelValue (nodeid: string | number | null) {
63
73
  return nodeid ? decodeURIComponent(`${nodeid}`) : nodeid
64
74
  }
75
+
76
+ export function getDefaultConfig <T = any, D = any> (val1: T, def1: D): (T | D) {
77
+ return XEUtils.eqNull(val1) ? def1 : val1
78
+ }
@@ -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
+ }
@@ -27,7 +27,16 @@ export namespace VxeCardPropTypes {
27
27
  export type Padding = boolean
28
28
  export type Size = VxeComponentSizeType
29
29
  export type UseScrollbar = boolean
30
- export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'native' | 'yConfig' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
30
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
31
+ /**
32
+ * 滚动条宽度
33
+ */
34
+ width?: number | string
35
+ /**
36
+ * 滚动条高度
37
+ */
38
+ height?: number | string
39
+ }
31
40
  }
32
41
 
33
42
  export type VxeCardProps = {
@@ -30,7 +30,16 @@ export namespace VxeLayoutAsidePropTypes {
30
30
  animation?: boolean
31
31
  }
32
32
  export type UseScrollbar = boolean
33
- export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'native' | 'yConfig' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
33
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
34
+ /**
35
+ * 滚动条宽度
36
+ */
37
+ width?: number | string
38
+ /**
39
+ * 滚动条高度
40
+ */
41
+ height?: number | string
42
+ }
34
43
  }
35
44
 
36
45
  export interface VxeLayoutAsideProps {
@@ -25,7 +25,16 @@ export namespace VxeLayoutBodyPropTypes {
25
25
  export type ShowBacktop = boolean
26
26
  export interface BacktopConfig extends Omit<VxeBacktopProps, 'target'> {}
27
27
  export type UseScrollbar = boolean
28
- export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'native' | 'xConfig' | 'yConfig' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
28
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
29
+ /**
30
+ * 滚动条宽度
31
+ */
32
+ width?: number | string
33
+ /**
34
+ * 滚动条高度
35
+ */
36
+ height?: number | string
37
+ }
29
38
  }
30
39
  export interface VxeLayoutBodyProps {
31
40
  size?: VxeLayoutBodyPropTypes.Size
@@ -1,5 +1,6 @@
1
1
  import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentSizeType, ValueOf } from '@vxe-ui/core'
2
2
  import { VxeContextMenuPropTypes, VxeContextMenuDefines } from './context-menu'
3
+ import { VxeScrollbarProps } from './scrollbar'
3
4
 
4
5
  /* eslint-disable @typescript-eslint/no-empty-interface,no-use-before-define,@typescript-eslint/ban-types,@typescript-eslint/no-unused-vars */
5
6
 
@@ -218,6 +219,17 @@ export namespace VxeListPropTypes {
218
219
  */
219
220
  enabled?: boolean
220
221
  }
222
+ export type UseScrollbar = boolean
223
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible'> {
224
+ /**
225
+ * 滚动条宽度
226
+ */
227
+ width?: number | string
228
+ /**
229
+ * 滚动条高度
230
+ */
231
+ height?: number | string
232
+ }
221
233
  }
222
234
 
223
235
  export interface VxeListProps<D = any> {
@@ -240,6 +252,14 @@ export interface VxeListProps<D = any> {
240
252
  dragConfig?: VxeListPropTypes.DragConfig
241
253
  menuConfig?: VxeListPropTypes.MenuConfig
242
254
  virtualYConfig?: VxeListPropTypes.VirtualYConfig
255
+ /**
256
+ * 使用虚拟滚动条
257
+ */
258
+ useScrollbar?: VxeListPropTypes.UseScrollbar
259
+ /**
260
+ * 滚动条配置项
261
+ */
262
+ scrollbarConfig?: VxeListPropTypes.ScrollbarConfig
243
263
 
244
264
  /**
245
265
  * 已废弃,被 virtual-y-config 替换
@@ -268,6 +288,10 @@ export interface ListReactData {
268
288
  isAllChecked: boolean
269
289
  isAllIndeterminate: boolean
270
290
 
291
+ // 滚动条
292
+ yThumbHeight: number
293
+ xThumbWidth: number
294
+
271
295
  insertRowFlag: number
272
296
  removeRowFlag: number
273
297
 
@@ -277,13 +301,20 @@ export interface ListReactData {
277
301
  }
278
302
 
279
303
  export interface ListInternalData {
280
- resizeObserver: ResizeObserver | undefined
281
304
  fullData: any[]
282
305
  afterList: any[]
283
306
  fullKeyMaps: Record<string, any>
284
307
  rowMaps: Record<string, VxeListDefines.RowCacheItem>
285
- lastScrollLeft: number
308
+
309
+ // 滚动条
310
+ resizeObserver?: ResizeObserver
311
+ isThumbDrag?: boolean
312
+ thumbDragOffset: number
313
+ yThumbTop: number
314
+ xThumbLeft: number
286
315
  lastScrollTop: number
316
+ lastScrollLeft: number
317
+
287
318
  scrollYStore: {
288
319
  startIndex: number
289
320
  endIndex: number
@@ -28,6 +28,8 @@ export namespace VxeScrollbarPropTypes {
28
28
  export type Loading = boolean
29
29
  export type Native = boolean
30
30
  export type Padding = boolean
31
+ export type AutoHide = boolean
32
+ export type Visible = boolean
31
33
  export interface XConfig {
32
34
  height?: number | string
33
35
  // showArrows?: boolean
@@ -39,7 +41,7 @@ export namespace VxeScrollbarPropTypes {
39
41
  * 滚动条显示位置
40
42
  */
41
43
  position?: 'top' | 'bottom' | ''
42
- visible?: 'auto' | 'hidden' | 'visible' | ''
44
+ visible?: boolean
43
45
  /**
44
46
  * 滚动到边界触发的阈值会触发 scroll-boundary 事件
45
47
  */
@@ -56,7 +58,7 @@ export namespace VxeScrollbarPropTypes {
56
58
  * 滚动条显示位置
57
59
  */
58
60
  position?: 'left' | 'right' | ''
59
- visible?: 'auto' | 'hidden' | 'visible' | ''
61
+ visible?: boolean
60
62
  /**
61
63
  * 滚动到边界触发的阈值会触发 scroll-boundary 事件
62
64
  */
@@ -75,6 +77,10 @@ export interface VxeScrollbarProps {
75
77
  * ID
76
78
  */
77
79
  id?: VxeScrollbarPropTypes.Id
80
+ /**
81
+ * View ID
82
+ */
83
+ viewId?: VxeScrollbarPropTypes.ViewId
78
84
  /**
79
85
  * 容器宽度
80
86
  */
@@ -111,6 +117,14 @@ export interface VxeScrollbarProps {
111
117
  * 滚动条是否需要边距
112
118
  */
113
119
  padding?: VxeScrollbarPropTypes.Padding
120
+ /**
121
+ * 是否自动隐藏
122
+ */
123
+ autoHide?: VxeScrollbarPropTypes.AutoHide
124
+ /**
125
+ * 是否显示
126
+ */
127
+ visible?: VxeScrollbarPropTypes.Visible
114
128
  /**
115
129
  * 纵向滚动条宽度
116
130
  */
@@ -92,7 +92,7 @@ export interface VxeTableExtendCellAreaPrivateMethods<D = any> {
92
92
  * 内部方法
93
93
  * @private
94
94
  */
95
- triggerClAreaMnEvent(evnt: MouseEvent, params: VxeTableDefines.CellClickEventParams<D>): void
95
+ triggerClAaMnEvent(evnt: MouseEvent, params: VxeTableDefines.CellClickEventParams<D>): void
96
96
  /**
97
97
  * 内部方法
98
98
  * @private
@@ -1870,6 +1870,10 @@ export namespace VxeTablePropTypes {
1870
1870
  * 鼠标配置项
1871
1871
  */
1872
1872
  export interface MouseConfig {
1873
+ /**
1874
+ * 是否启用,支持局部/全局启用
1875
+ */
1876
+ enabled?: boolean
1873
1877
  /**
1874
1878
  * 开启单元格选中功能(只对 edit-config.mode=cell 有效)
1875
1879
  */
@@ -1889,6 +1893,10 @@ export namespace VxeTablePropTypes {
1889
1893
  * 区域配置项
1890
1894
  */
1891
1895
  export interface AreaConfig<D = any> {
1896
+ /**
1897
+ * 是否启用,支持局部/全局启用
1898
+ */
1899
+ enabled?: boolean
1892
1900
  /**
1893
1901
  * 是否显示操作提示消息
1894
1902
  */
@@ -2025,6 +2033,10 @@ export namespace VxeTablePropTypes {
2025
2033
  * 按键配置项
2026
2034
  */
2027
2035
  export interface KeyboardConfig<D = any> {
2036
+ /**
2037
+ * 是否启用,支持局部/全局启用
2038
+ */
2039
+ enabled?: boolean
2028
2040
  /**
2029
2041
  * 是否启用全选
2030
2042
  * Window/Linux对应按键: Ctrl+A
@@ -2928,33 +2940,52 @@ export namespace VxeTablePropTypes {
2928
2940
  }
2929
2941
 
2930
2942
  export interface ScrollbarXConfig {
2943
+ /**
2944
+ * 滚动条高度
2945
+ */
2946
+ height?: number
2931
2947
  /**
2932
2948
  * 滚动条显示位置
2933
2949
  */
2934
2950
  position?: 'top' | 'bottom' | ''
2935
2951
  /**
2936
- * 滚动条显示方式
2952
+ * 是否显示
2937
2953
  */
2938
2954
  visible?: 'auto' | 'visible' | 'hidden' | boolean
2955
+ /**
2956
+ * 是否自动隐藏滚动条
2957
+ */
2958
+ autoHide?: boolean
2939
2959
  /**
2940
2960
  * 滚动行为
2961
+ * @deprecated
2941
2962
  */
2942
2963
  overscrollBehavior?: 'contain' | 'none' | ''
2943
2964
  }
2944
2965
  export interface ScrollbarYConfig {
2966
+ /**
2967
+ * 滚动条宽度
2968
+ */
2969
+ width?: number
2945
2970
  /**
2946
2971
  * 滚动条显示位置
2947
2972
  */
2948
2973
  position?: 'left' | 'right' | ''
2949
2974
  /**
2950
- * 滚动条显示方式
2975
+ * 是否显示
2951
2976
  */
2952
2977
  visible?: 'auto' | 'visible' | 'hidden' | boolean
2978
+ /**
2979
+ * 是否自动隐藏滚动条
2980
+ */
2981
+ autoHide?: boolean
2953
2982
  /**
2954
2983
  * 滚动行为
2984
+ * @deprecated
2955
2985
  */
2956
2986
  overscrollBehavior?: 'contain' | 'none' | ''
2957
2987
  }
2988
+ export type UseScrollbar = boolean
2958
2989
  /**
2959
2990
  * 滚动条配置项
2960
2991
  */
@@ -2967,18 +2998,38 @@ export namespace VxeTablePropTypes {
2967
2998
  * 滚动条高度
2968
2999
  */
2969
3000
  height?: number
3001
+ padding?: boolean
3002
+ /**
3003
+ * 是否自动隐藏滚动条
3004
+ */
3005
+ autoHide?: boolean
3006
+ /**
3007
+ * 是否显示
3008
+ */
3009
+ visible?: boolean
2970
3010
  /**
2971
3011
  * 滚动行为
3012
+ * @deprecated
2972
3013
  */
2973
3014
  overscrollBehavior?: 'contain' | 'none' | ''
2974
3015
  /**
2975
- * 横向滚动条
3016
+ * 已废弃,请使用 xConfig
3017
+ * @deprecated
2976
3018
  */
2977
3019
  x?: ScrollbarXConfig
2978
3020
  /**
2979
- * 纵向滚动条
3021
+ * 横向滚动条
3022
+ */
3023
+ xConfig?: ScrollbarXConfig
3024
+ /**
3025
+ * 已废弃,请使用 yConfig
3026
+ * @deprecated
2980
3027
  */
2981
3028
  y?: ScrollbarYConfig
3029
+ /**
3030
+ * 纵向滚动条
3031
+ */
3032
+ yConfig?: ScrollbarYConfig
2982
3033
  }
2983
3034
 
2984
3035
  /**
@@ -2992,6 +3043,10 @@ export namespace VxeTablePropTypes {
2992
3043
  * 导入参数
2993
3044
  */
2994
3045
  export interface ImportConfig<D = any> {
3046
+ /**
3047
+ * 是否启用,支持局部/全局启用
3048
+ */
3049
+ enabled?: boolean
2995
3050
  /**
2996
3051
  * 内置属性
2997
3052
  * @private
@@ -3300,6 +3355,10 @@ export namespace VxeTablePropTypes {
3300
3355
  * 导出参数
3301
3356
  */
3302
3357
  export interface ExportConfig<D = any> extends ExportAndPrintConfig<D> {
3358
+ /**
3359
+ * 是否启用,支持局部/全局启用
3360
+ */
3361
+ enabled?: boolean
3303
3362
  // 内置属性
3304
3363
  _typeMaps?: Record<string, number>
3305
3364
  /**
@@ -3384,6 +3443,10 @@ export namespace VxeTablePropTypes {
3384
3443
  * 打印参数
3385
3444
  */
3386
3445
  export interface PrintConfig<D = any> extends ExportAndPrintConfig<D> {
3446
+ /**
3447
+ * 是否启用,支持局部/全局启用
3448
+ */
3449
+ enabled?: boolean
3387
3450
  /**
3388
3451
  * 列宽计算模式,支持默认default,等比例scale,自适应auto
3389
3452
  */
@@ -3815,6 +3878,10 @@ export interface VxeTableProps<D = any> {
3815
3878
  * 纵向虚拟滚动配置
3816
3879
  */
3817
3880
  virtualYConfig?: VxeTablePropTypes.VirtualYConfig
3881
+ /**
3882
+ * 使用虚拟滚动条
3883
+ */
3884
+ useScrollbar?: VxeTablePropTypes.UseScrollbar
3818
3885
  /**
3819
3886
  * 滚动条配置项
3820
3887
  */
@@ -107,7 +107,16 @@ export namespace VxeTabsPropTypes {
107
107
  }) => boolean
108
108
  }
109
109
  export type UseScrollbar = boolean
110
- export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'native' | 'yConfig' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
110
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
111
+ /**
112
+ * 滚动条宽度
113
+ */
114
+ width?: number | string
115
+ /**
116
+ * 滚动条高度
117
+ */
118
+ height?: number | string
119
+ }
111
120
  }
112
121
 
113
122
  export type VxeTabsProps = {
@@ -1,6 +1,7 @@
1
1
  import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentSizeType, ValueOf } from '@vxe-ui/core'
2
2
  import { VxeContextMenuPropTypes, VxeContextMenuDefines } from './context-menu'
3
3
  import { VxeTooltipPropTypes } from './tooltip'
4
+ import { VxeScrollbarProps } from './scrollbar'
4
5
 
5
6
  /* eslint-disable no-use-before-define,@typescript-eslint/ban-types,@typescript-eslint/no-unused-vars */
6
7
 
@@ -324,6 +325,17 @@ export namespace VxeTreePropTypes {
324
325
  */
325
326
  enabled?: boolean
326
327
  }
328
+ export type UseScrollbar = boolean
329
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible'> {
330
+ /**
331
+ * 滚动条宽度
332
+ */
333
+ width?: number | string
334
+ /**
335
+ * 滚动条高度
336
+ */
337
+ height?: number | string
338
+ }
327
339
  }
328
340
 
329
341
  export interface VxeTreeProps<D = any> {
@@ -403,6 +415,14 @@ export interface VxeTreeProps<D = any> {
403
415
  iconLoaded?: VxeTreePropTypes.IconLoaded
404
416
  size?: VxeTreePropTypes.Size
405
417
  virtualYConfig?: VxeTreePropTypes.VirtualYConfig
418
+ /**
419
+ * 使用虚拟滚动条
420
+ */
421
+ useScrollbar?: VxeTreePropTypes.UseScrollbar
422
+ /**
423
+ * 滚动条配置项
424
+ */
425
+ scrollbarConfig?: VxeTreePropTypes.ScrollbarConfig
406
426
  }
407
427
 
408
428
  export interface TreePrivateComputed<D = any> {
@@ -431,6 +451,10 @@ export interface TreeReactData {
431
451
  updateExpandedFlag: number
432
452
  updateCheckboxFlag: number
433
453
 
454
+ // 滚动条
455
+ yThumbHeight: number
456
+ xThumbWidth: number
457
+
434
458
  insertNodeFlag: number
435
459
  removeNodeFlag: number
436
460
 
@@ -446,7 +470,6 @@ export interface TreeReactData {
446
470
 
447
471
  export interface TreeInternalData {
448
472
  initialized?: boolean
449
- resizeObserver?: ResizeObserver
450
473
  lastFilterValue?: string
451
474
  afterTreeList: any[]
452
475
  treeFullData: any[]
@@ -456,8 +479,16 @@ export interface TreeInternalData {
456
479
  selectCheckboxMaps: Record<string, any>
457
480
  treeExpandedMaps: Record<string, boolean>
458
481
  treeExpandLazyLoadedMaps: Record<string, boolean>
459
- lastScrollLeft: number
482
+
483
+ // 滚动条
484
+ resizeObserver?: ResizeObserver
485
+ isThumbDrag?: boolean
486
+ thumbDragOffset: number
487
+ yThumbTop: number
488
+ xThumbLeft: number
460
489
  lastScrollTop: number
490
+ lastScrollLeft: number
491
+
461
492
  scrollYStore: {
462
493
  startIndex: number
463
494
  endIndex: number