vxe-pc-ui 3.19.7 → 3.20.0

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 +48 -11
  2. package/es/card/style.css +42 -44
  3. package/es/card/style.min.css +1 -1
  4. package/es/icon/style.css +1 -1
  5. package/es/list/src/list.js +360 -19
  6. package/es/list/style.css +26 -0
  7. package/es/list/style.min.css +1 -1
  8. package/es/scrollbar/src/scrollbar.js +6 -0
  9. package/es/scrollbar/style.css +6 -5
  10. package/es/scrollbar/style.min.css +1 -1
  11. package/es/style.css +1 -1
  12. package/es/style.min.css +1 -1
  13. package/es/tabs/src/tabs.js +35 -8
  14. package/es/tabs/style.css +4 -2
  15. package/es/tabs/style.min.css +1 -1
  16. package/es/tree/src/tree.js +6 -2
  17. package/es/ui/index.js +1 -1
  18. package/es/ui/src/log.js +1 -1
  19. package/es/ui/src/utils.js +9 -0
  20. package/es/vxe-card/style.css +42 -44
  21. package/es/vxe-card/style.min.css +1 -1
  22. package/es/vxe-list/style.css +26 -0
  23. package/es/vxe-list/style.min.css +1 -1
  24. package/es/vxe-scrollbar/style.css +6 -5
  25. package/es/vxe-scrollbar/style.min.css +1 -1
  26. package/es/vxe-tabs/style.css +4 -2
  27. package/es/vxe-tabs/style.min.css +1 -1
  28. package/lib/card/src/card.js +55 -5
  29. package/lib/card/src/card.min.js +1 -1
  30. package/lib/card/style/style.css +42 -44
  31. package/lib/card/style/style.min.css +1 -1
  32. package/lib/icon/style/style.css +1 -1
  33. package/lib/icon/style/style.min.css +1 -1
  34. package/lib/index.umd.js +5966 -5536
  35. package/lib/index.umd.min.js +1 -1
  36. package/lib/list/src/list.js +344 -20
  37. package/lib/list/src/list.min.js +1 -1
  38. package/lib/list/style/style.css +26 -0
  39. package/lib/list/style/style.min.css +1 -1
  40. package/lib/scrollbar/src/scrollbar.js +6 -0
  41. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  42. package/lib/scrollbar/style/style.css +6 -5
  43. package/lib/scrollbar/style/style.min.css +1 -1
  44. package/lib/style.css +1 -1
  45. package/lib/style.min.css +1 -1
  46. package/lib/tabs/src/tabs.js +45 -8
  47. package/lib/tabs/src/tabs.min.js +1 -1
  48. package/lib/tabs/style/style.css +4 -2
  49. package/lib/tabs/style/style.min.css +1 -1
  50. package/lib/tree/src/tree.js +4 -0
  51. package/lib/tree/src/tree.min.js +1 -1
  52. package/lib/ui/index.js +1 -1
  53. package/lib/ui/index.min.js +1 -1
  54. package/lib/ui/src/log.js +1 -1
  55. package/lib/ui/src/log.min.js +1 -1
  56. package/lib/ui/src/utils.js +10 -0
  57. package/lib/ui/src/utils.min.js +1 -1
  58. package/lib/vxe-card/style/style.css +42 -44
  59. package/lib/vxe-card/style/style.min.css +1 -1
  60. package/lib/vxe-list/style/style.css +26 -0
  61. package/lib/vxe-list/style/style.min.css +1 -1
  62. package/lib/vxe-scrollbar/style/style.css +6 -5
  63. package/lib/vxe-scrollbar/style/style.min.css +1 -1
  64. package/lib/vxe-tabs/style/style.css +4 -2
  65. package/lib/vxe-tabs/style/style.min.css +1 -1
  66. package/package.json +1 -1
  67. package/packages/card/src/card.ts +65 -11
  68. package/packages/list/src/list.ts +388 -21
  69. package/packages/scrollbar/src/scrollbar.ts +6 -0
  70. package/packages/tabs/src/tabs.ts +40 -8
  71. package/packages/tree/src/tree.ts +6 -2
  72. package/packages/ui/src/utils.ts +10 -0
  73. package/styles/components/card.scss +44 -58
  74. package/styles/components/list.scss +51 -0
  75. package/styles/components/scrollbar.scss +18 -11
  76. package/styles/components/tabs.scss +2 -1
  77. package/types/components/card.d.ts +11 -0
  78. package/types/components/grid.d.ts +37 -0
  79. package/types/components/layout-aside.d.ts +7 -1
  80. package/types/components/layout-body.d.ts +7 -1
  81. package/types/components/list.d.ts +24 -2
  82. package/types/components/menu.d.ts +6 -0
  83. package/types/components/table-plugins/extend-cell-area.d.ts +1 -1
  84. package/types/components/table.d.ts +27 -4
  85. package/types/components/tabs.d.ts +11 -0
  86. /package/es/icon/{iconfont.1791794439953.ttf → iconfont.1791880407207.ttf} +0 -0
  87. /package/es/icon/{iconfont.1791794439953.woff → iconfont.1791880407207.woff} +0 -0
  88. /package/es/icon/{iconfont.1791794439953.woff2 → iconfont.1791880407207.woff2} +0 -0
  89. /package/es/{iconfont.1791794439953.ttf → iconfont.1791880407207.ttf} +0 -0
  90. /package/es/{iconfont.1791794439953.woff → iconfont.1791880407207.woff} +0 -0
  91. /package/es/{iconfont.1791794439953.woff2 → iconfont.1791880407207.woff2} +0 -0
  92. /package/lib/icon/style/{iconfont.1791794439953.ttf → iconfont.1791880407207.ttf} +0 -0
  93. /package/lib/icon/style/{iconfont.1791794439953.woff → iconfont.1791880407207.woff} +0 -0
  94. /package/lib/icon/style/{iconfont.1791794439953.woff2 → iconfont.1791880407207.woff2} +0 -0
  95. /package/lib/{iconfont.1791794439953.ttf → iconfont.1791880407207.ttf} +0 -0
  96. /package/lib/{iconfont.1791794439953.woff → iconfont.1791880407207.woff} +0 -0
  97. /package/lib/{iconfont.1791794439953.woff2 → iconfont.1791880407207.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
  }
@@ -1,8 +1,34 @@
1
+ // 局部变量
2
+ .vxe-card {
3
+ --vxe-ui-card-current-font-size: var(--vxe-ui-font-size-default);
4
+ --vxe-ui-card-current-padding: var(--vxe-ui-card-padding-default);
5
+ &.size--xlarge {
6
+ --vxe-ui-card-current-font-size: var(--vxe-ui-font-size-xlarge);
7
+ --vxe-ui-card-current-padding: var(--vxe-ui-card-padding-xlarge);
8
+ }
9
+ &.size--large {
10
+ --vxe-ui-card-current-font-size: var(--vxe-ui-font-size-large);
11
+ --vxe-ui-card-current-padding: var(--vxe-ui-card-padding-large);
12
+ }
13
+ &.size--medium {
14
+ --vxe-ui-card-current-font-size: var(--vxe-ui-font-size-medium);
15
+ --vxe-ui-card-current-padding: var(--vxe-ui-card-padding-medium);
16
+ }
17
+ &.size--small {
18
+ --vxe-ui-card-current-font-size: var(--vxe-ui-font-size-small);
19
+ --vxe-ui-card-current-padding: var(--vxe-ui-card-padding-small);
20
+ }
21
+ &.size--mini {
22
+ --vxe-ui-card-current-font-size: var(--vxe-ui-font-size-mini);
23
+ --vxe-ui-card-current-padding: var(--vxe-ui-card-padding-mini);
24
+ }
25
+ }
26
+
1
27
  .vxe-card {
2
28
  position: relative;
3
29
  display: inline-flex;
4
30
  flex-direction: column;
5
- font-size: var(--vxe-ui-font-size-default);
31
+ font-size: var(--vxe-ui-card-current-font-size);
6
32
  color: var(--vxe-ui-font-color);
7
33
  font-family: var(--vxe-ui-font-family);
8
34
  background-color: var(--vxe-ui-layout-background-color);
@@ -33,19 +59,25 @@
33
59
  flex-grow: 1;
34
60
  }
35
61
  .vxe-card--body-left,
62
+ .vxe-card--body-scrollbar-left,
36
63
  .vxe-card--body-right,
37
- .vxe-card--body-content {
64
+ .vxe-card--body-scrollbar-right,
65
+ .vxe-card--body-content,
66
+ .vxe-card--body-scrollbar-content {
38
67
  overflow: auto;
39
68
  }
40
69
  .vxe-card--header,
41
70
  .vxe-card--header-extra,
42
71
  .vxe-card--footer,
43
72
  .vxe-card--body-left,
44
- .vxe-card--body-right {
73
+ .vxe-card--body-scrollbar-left,
74
+ .vxe-card--body-right,
75
+ .vxe-card--body-scrollbar-right {
45
76
  flex-shrink: 0;
46
77
  }
47
78
  .vxe-card--header-title,
48
- .vxe-card--body-content {
79
+ .vxe-card--body-content,
80
+ .vxe-card--body-scrollbar-content {
49
81
  flex-grow: 1;
50
82
  }
51
83
  .vxe-card--header-title {
@@ -57,66 +89,20 @@
57
89
  }
58
90
 
59
91
  .vxe-card {
60
- font-size: var(--vxe-ui-font-size-default);
61
92
  & > .vxe-card--header,
62
93
  & > .vxe-card--footer {
63
- padding: var(--vxe-ui-card-padding-default);
94
+ padding: var(--vxe-ui-card-current-padding);
64
95
  }
65
96
  &.is--padding {
66
97
  & > .vxe-card--body {
67
- .vxe-card--body-content,
68
98
  .vxe-card--body-left,
69
- .vxe-card--body-right {
70
- padding: var(--vxe-ui-card-padding-default);
71
- }
72
- }
73
- }
74
- &.size--medium {
75
- font-size: var(--vxe-ui-font-size-medium);
76
- & > .vxe-card--header,
77
- & > .vxe-card--footer {
78
- padding: var(--vxe-ui-card-padding-medium);
79
- }
80
- &.is--padding {
81
- & > .vxe-card--body {
82
- .vxe-card--body-content,
83
- .vxe-card--body-left,
84
- .vxe-card--body-right {
85
- padding: var(--vxe-ui-card-padding-medium);
86
- }
87
- }
88
- }
89
- }
90
- &.size--small {
91
- font-size: var(--vxe-ui-font-size-small);
92
- & > .vxe-card--header,
93
- & > .vxe-card--footer {
94
- padding: var(--vxe-ui-card-padding-small);
95
- }
96
- &.is--padding {
97
- & > .vxe-card--body {
98
- .vxe-card--body-content,
99
- .vxe-card--body-left,
100
- .vxe-card--body-right {
101
- padding: var(--vxe-ui-card-padding-small);
102
- }
103
- }
104
- }
105
- }
106
- &.size--mini {
107
- font-size: var(--vxe-ui-font-size-mini);
108
- & > .vxe-card--header,
109
- & > .vxe-card--footer {
110
- padding: var(--vxe-ui-card-padding-mini);
111
- }
112
- &.is--padding {
113
- & > .vxe-card--body {
114
- .vxe-card--body-content,
115
- .vxe-card--body-left,
116
- .vxe-card--body-right {
117
- padding: var(--vxe-ui-card-padding-mini);
118
- }
99
+ .vxe-card--body-scrollbar-left-view,
100
+ .vxe-card--body-right,
101
+ .vxe-card--body-scrollbar-right-view,
102
+ .vxe-card--body-content,
103
+ .vxe-card--body-scrollbar-content-view {
104
+ padding: var(--vxe-ui-card-current-padding);
119
105
  }
120
106
  }
121
107
  }
122
- }
108
+ }
@@ -287,3 +287,54 @@
287
287
  padding-right: var(--vxe-ui-list-current-padding);
288
288
  @include baseMixin.createRadioIcon();
289
289
  }
290
+
291
+ // 滚动条
292
+ .vxe-list {
293
+ & > .vxe-scrollbar {
294
+ position: unset;
295
+ }
296
+ &.is--virtual-scrollbar {
297
+ & > .vxe-list--virtual-wrapper {
298
+ scrollbar-width: none;
299
+ -ms-overflow-style: none;
300
+ }
301
+ & > .vxe-list--virtual-wrapper::-webkit-scrollbar {
302
+ display: none;
303
+ }
304
+ }
305
+ }
306
+
307
+ .vxe-list {
308
+ &.is--virtual-scrollbar {
309
+ &.ov-x--auto-hide {
310
+ &:hover {
311
+ & > .vxe-scrollbar {
312
+ & > .vxe-scrollbar--track-x {
313
+ opacity: 1;
314
+ }
315
+ }
316
+ }
317
+ & > .vxe-scrollbar {
318
+ & > .vxe-scrollbar--track-x {
319
+ opacity: 0;
320
+ @include baseMixin.createAnimationTransition(opacity, 0.8s);
321
+ }
322
+ }
323
+ }
324
+ &.ov-y--auto-hide {
325
+ &:hover {
326
+ & > .vxe-scrollbar {
327
+ & > .vxe-scrollbar--track-y {
328
+ opacity: 1;
329
+ }
330
+ }
331
+ }
332
+ & > .vxe-scrollbar {
333
+ & > .vxe-scrollbar--track-y {
334
+ opacity: 0;
335
+ @include baseMixin.createAnimationTransition(opacity, 0.8s);
336
+ }
337
+ }
338
+ }
339
+ }
340
+ }
@@ -1,7 +1,6 @@
1
1
  @use '../helpers/baseMixin.scss';
2
2
 
3
3
  .vxe-scrollbar {
4
- width: 100%;
5
4
  position: relative;
6
5
  &.is--virtual {
7
6
  & > .vxe-scrollbar--view {
@@ -50,6 +49,9 @@
50
49
  background-color: var(--vxe-ui-scrollbar-thumb-active-background-color);
51
50
  }
52
51
  }
52
+ }
53
+
54
+ .vxe-scrollbar {
53
55
  &.ov-x--hidden {
54
56
  & > .vxe-scrollbar--view {
55
57
  overflow-x: hidden;
@@ -74,6 +76,7 @@
74
76
  display: none;
75
77
  position: absolute;
76
78
  background-color: var(--vxe-ui-scrollbar-track-background-color);
79
+ overflow: hidden;
77
80
  user-select: none;
78
81
  }
79
82
  .vxe-scrollbar {
@@ -152,17 +155,21 @@
152
155
 
153
156
  .vxe-scrollbar {
154
157
  &.is--padding {
155
- &.sx-pos--top {
156
- padding-top: var(--vxe-ui-scrollbar-x-height);
157
- }
158
- &.sx-pos--bottom {
159
- padding-bottom: var(--vxe-ui-scrollbar-x-height);
160
- }
161
- &.sy-pos--left {
162
- padding-left: var(--vxe-ui-scrollbar-y-width);
158
+ &.overflow-x {
159
+ &.sx-pos--top {
160
+ padding-top: var(--vxe-ui-scrollbar-x-height);
161
+ }
162
+ &.sx-pos--bottom {
163
+ padding-bottom: var(--vxe-ui-scrollbar-x-height);
164
+ }
163
165
  }
164
- &.sy-pos--right {
165
- padding-right: var(--vxe-ui-scrollbar-y-width);
166
+ &.overflow-y {
167
+ &.sy-pos--left {
168
+ padding-left: var(--vxe-ui-scrollbar-y-width);
169
+ }
170
+ &.sy-pos--right {
171
+ padding-right: var(--vxe-ui-scrollbar-y-width);
172
+ }
166
173
  }
167
174
  }
168
175
  }
@@ -470,7 +470,8 @@ $scrollbarOffsetSize: 20px;
470
470
  overflow: auto;
471
471
  }
472
472
 
473
- .vxe-tabs-pane--item {
473
+ .vxe-tabs-pane--item,
474
+ .vxe-tabs-pane--scrollbar-item {
474
475
  display: none;
475
476
  height: 100%;
476
477
  overflow: auto;
@@ -1,4 +1,5 @@
1
1
  import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentSizeType } from '@vxe-ui/core'
2
+ import { VxeScrollbarProps } from './scrollbar'
2
3
 
3
4
  /* eslint-disable @typescript-eslint/no-empty-interface,no-use-before-define,@typescript-eslint/ban-types */
4
5
 
@@ -25,6 +26,8 @@ export namespace VxeCardPropTypes {
25
26
  export type Shadow = boolean
26
27
  export type Padding = boolean
27
28
  export type Size = VxeComponentSizeType
29
+ export type UseScrollbar = boolean
30
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'native' | 'xConfig' | 'yConfig' | 'padding' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
28
31
  }
29
32
 
30
33
  export type VxeCardProps = {
@@ -37,6 +40,14 @@ export type VxeCardProps = {
37
40
  shadow?: VxeCardPropTypes.Shadow
38
41
  padding?: VxeCardPropTypes.Padding
39
42
  size?: VxeCardPropTypes.Size
43
+ /**
44
+ * 使用虚拟滚动条
45
+ */
46
+ useScrollbar?: VxeCardPropTypes.UseScrollbar
47
+ /**
48
+ * 滚动条配置项
49
+ */
50
+ scrollbarConfig?: VxeCardPropTypes.ScrollbarConfig
40
51
  }
41
52
 
42
53
  export interface CardPrivateComputed {
@@ -659,13 +659,50 @@ export interface GridMethods<D = any> {
659
659
  export interface VxeGridMethods<D = any> extends GridMethods<D>, Omit<TableMethods<D>, 'dispatchEvent'> { }
660
660
 
661
661
  export interface GridPrivateMethods<D = any> {
662
+ /**
663
+ * 内部方法
664
+ * @private
665
+ */
662
666
  callSlot<T = any>(slotFunc: NormalizedScopedSlot | ((params: T) => VxeComponentSlotType | VxeComponentSlotType[]) | string | null, params: T, h: CreateElement): VxeComponentSlotType[]
667
+ /**
668
+ * 内部方法
669
+ * @private
670
+ */
663
671
  extendTableMethods<T>(methodKeys: T[]): any
672
+ /**
673
+ * 内部方法
674
+ * @private
675
+ */
664
676
  triggerToolbarCommitEvent(params: VxeToolbarPropTypes.ButtonConfig | VxeToolbarPropTypes.ToolConfig, evnt: Event): Promise<any>
677
+ /**
678
+ * 内部方法
679
+ * @private
680
+ */
665
681
  triggerToolbarBtnEvent(button: VxeToolbarPropTypes.ButtonConfig, evnt: Event): void
682
+ /**
683
+ * 内部方法
684
+ * @private
685
+ */
666
686
  triggerToolbarTolEvent(button: VxeToolbarPropTypes.ToolConfig, evnt: Event): void
687
+ /**
688
+ * 内部方法
689
+ * @private
690
+ */
667
691
  triggerZoomEvent(evnt: Event): void
692
+ /**
693
+ * 内部方法
694
+ * @private
695
+ */
696
+ getParentElem(): HTMLElement | null
697
+ /**
698
+ * 内部方法
699
+ * @private
700
+ */
668
701
  getParentHeight(): number
702
+ /**
703
+ * 内部方法
704
+ * @private
705
+ */
669
706
  getExcludeHeight(): number
670
707
  }
671
708
  export interface VxeGridPrivateMethods<D = any> extends GridPrivateMethods<D> { }
@@ -30,7 +30,7 @@ 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, 'native' | 'yConfig' | 'padding' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
34
34
  }
35
35
 
36
36
  export interface VxeLayoutAsideProps {
@@ -41,7 +41,13 @@ export interface VxeLayoutAsideProps {
41
41
  padding?: VxeLayoutAsidePropTypes.Padding
42
42
  size?: VxeLayoutAsidePropTypes.Size
43
43
  collapseConfig?: VxeLayoutAsidePropTypes.CollapseConfig
44
+ /**
45
+ * 使用虚拟滚动条
46
+ */
44
47
  useScrollbar?: VxeLayoutAsidePropTypes.UseScrollbar
48
+ /**
49
+ * 滚动条配置项
50
+ */
45
51
  scrollbarConfig?: VxeLayoutAsidePropTypes.ScrollbarConfig
46
52
  }
47
53
 
@@ -25,7 +25,7 @@ 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, 'native' | 'xConfig' | 'yConfig' | 'padding' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
29
29
  }
30
30
  export interface VxeLayoutBodyProps {
31
31
  size?: VxeLayoutBodyPropTypes.Size
@@ -33,7 +33,13 @@ export interface VxeLayoutBodyProps {
33
33
  padding?: VxeLayoutBodyPropTypes.Padding
34
34
  showBacktop?: VxeLayoutBodyPropTypes.ShowBacktop
35
35
  backtopConfig?: VxeLayoutBodyPropTypes.BacktopConfig
36
+ /**
37
+ * 使用虚拟滚动条
38
+ */
36
39
  useScrollbar?: VxeLayoutBodyPropTypes.UseScrollbar
40
+ /**
41
+ * 滚动条配置项
42
+ */
37
43
  scrollbarConfig?: VxeLayoutBodyPropTypes.ScrollbarConfig
38
44
  }
39
45
 
@@ -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,8 @@ 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'> {}
221
224
  }
222
225
 
223
226
  export interface VxeListProps<D = any> {
@@ -240,6 +243,14 @@ export interface VxeListProps<D = any> {
240
243
  dragConfig?: VxeListPropTypes.DragConfig
241
244
  menuConfig?: VxeListPropTypes.MenuConfig
242
245
  virtualYConfig?: VxeListPropTypes.VirtualYConfig
246
+ /**
247
+ * 使用虚拟滚动条
248
+ */
249
+ useScrollbar?: VxeListPropTypes.UseScrollbar
250
+ /**
251
+ * 滚动条配置项
252
+ */
253
+ scrollbarConfig?: VxeListPropTypes.ScrollbarConfig
243
254
 
244
255
  /**
245
256
  * 已废弃,被 virtual-y-config 替换
@@ -268,6 +279,10 @@ export interface ListReactData {
268
279
  isAllChecked: boolean
269
280
  isAllIndeterminate: boolean
270
281
 
282
+ // 滚动条
283
+ yThumbHeight: number
284
+ xThumbWidth: number
285
+
271
286
  insertRowFlag: number
272
287
  removeRowFlag: number
273
288
 
@@ -277,13 +292,20 @@ export interface ListReactData {
277
292
  }
278
293
 
279
294
  export interface ListInternalData {
280
- resizeObserver: ResizeObserver | undefined
281
295
  fullData: any[]
282
296
  afterList: any[]
283
297
  fullKeyMaps: Record<string, any>
284
298
  rowMaps: Record<string, VxeListDefines.RowCacheItem>
285
- lastScrollLeft: number
299
+
300
+ // 滚动条
301
+ resizeObserver?: ResizeObserver
302
+ isThumbDrag?: boolean
303
+ thumbDragOffset: number
304
+ yThumbTop: number
305
+ xThumbLeft: number
286
306
  lastScrollTop: number
307
+ lastScrollLeft: number
308
+
287
309
  scrollYStore: {
288
310
  startIndex: number
289
311
  endIndex: number
@@ -103,7 +103,13 @@ export interface VxeMenuProps {
103
103
  expandKeys?: VxeMenuPropTypes.ExpandKeys
104
104
  options?: VxeMenuPropTypes.Options
105
105
  menuConfig?: VxeMenuPropTypes.MenuConfig
106
+ /**
107
+ * 使用虚拟滚动条
108
+ */
106
109
  useScrollbar?: VxeMenuPropTypes.UseScrollbar
110
+ /**
111
+ * 滚动条配置项
112
+ */
107
113
  scrollbarConfig?: VxeMenuPropTypes.ScrollbarConfig
108
114
  /**
109
115
  * 挂载到指定元素下
@@ -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
@@ -3,7 +3,7 @@ import { NormalizedScopedSlot } from 'vue/types/vnode'
3
3
  import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentSizeType, ValueOf, VxeGlobalConfig, VxeComponentStyleType, VxeComponentSlotType, VxeGlobalRendererOptions } from '@vxe-ui/core'
4
4
  import { VxeColumnPropTypes, VxeColumnProps, VxeColumnSlotTypes } from './column'
5
5
  import { VxeTableExtendCellAreaDefines, VxeTableExtendCellAreaEmits } from './table-plugins'
6
- import { VxeGridConstructor } from './grid'
6
+ import { VxeGridConstructor, VxeGridPrivateMethods } from './grid'
7
7
  import { VxeTooltipPropTypes } from './tooltip'
8
8
  import { VxeModalConstructor, VxeModalPrivateMethods, VxeModalPropTypes } from './modal'
9
9
  import { VxeDrawerPropTypes } from './drawer'
@@ -30,7 +30,7 @@ export type VxeTableInstance<D = any> = DefineVxeComponentInstance<{
30
30
  */
31
31
  internalData: TableInternalData<D>
32
32
  $xeParentTable: (VxeTableConstructor<D> & VxeTablePrivateMethods) | null | undefined
33
- $xeGrid: VxeGridConstructor<D> | null | undefined
33
+ $xeGrid: (VxeGridConstructor<D> & VxeGridPrivateMethods)| null | undefined
34
34
  $xeGantt: VxeTableDefines.InjectGanttType | null | undefined
35
35
  $xeTabs: (VxeTabsConstructor & VxeTabsPrivateMethods) | null
36
36
  $xeModal: (VxeModalConstructor & VxeModalPrivateMethods) | null
@@ -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
@@ -2992,6 +3004,10 @@ export namespace VxeTablePropTypes {
2992
3004
  * 导入参数
2993
3005
  */
2994
3006
  export interface ImportConfig<D = any> {
3007
+ /**
3008
+ * 是否启用,支持局部/全局启用
3009
+ */
3010
+ enabled?: boolean
2995
3011
  /**
2996
3012
  * 内置属性
2997
3013
  * @private
@@ -3300,6 +3316,10 @@ export namespace VxeTablePropTypes {
3300
3316
  * 导出参数
3301
3317
  */
3302
3318
  export interface ExportConfig<D = any> extends ExportAndPrintConfig<D> {
3319
+ /**
3320
+ * 是否启用,支持局部/全局启用
3321
+ */
3322
+ enabled?: boolean
3303
3323
  // 内置属性
3304
3324
  _typeMaps?: Record<string, number>
3305
3325
  /**
@@ -3384,6 +3404,10 @@ export namespace VxeTablePropTypes {
3384
3404
  * 打印参数
3385
3405
  */
3386
3406
  export interface PrintConfig<D = any> extends ExportAndPrintConfig<D> {
3407
+ /**
3408
+ * 是否启用,支持局部/全局启用
3409
+ */
3410
+ enabled?: boolean
3387
3411
  /**
3388
3412
  * 列宽计算模式,支持默认default,等比例scale,自适应auto
3389
3413
  */
@@ -5530,12 +5554,11 @@ export interface TablePrivateMethods<D = any> {
5530
5554
  * @private
5531
5555
  */
5532
5556
  callSlot<T>(slotFunc: NormalizedScopedSlot | ((params: T) => VxeComponentSlotType | VxeComponentSlotType[]) | string | null, params: T, h: CreateElement): VxeComponentSlotType[]
5533
-
5534
5557
  /**
5535
5558
  * 内部方法
5536
5559
  * @private
5537
5560
  */
5538
- getParentElem(): Element | null
5561
+ getParentElem(): HTMLElement | null
5539
5562
  /**
5540
5563
  * 内部方法
5541
5564
  * @private
@@ -1,5 +1,6 @@
1
1
  import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentSizeType } from '@vxe-ui/core'
2
2
  import { VxeTabPaneProps, VxeTabPaneDefines, VxeTabPanePropTypes } from './tab-pane'
3
+ import { VxeScrollbarProps } from './scrollbar'
3
4
 
4
5
  /* eslint-disable @typescript-eslint/no-empty-interface,no-use-before-define,@typescript-eslint/ban-types */
5
6
 
@@ -105,6 +106,8 @@ export namespace VxeTabsPropTypes {
105
106
  option: Omit<VxeTabPaneProps, 'slots'>
106
107
  }) => boolean
107
108
  }
109
+ export type UseScrollbar = boolean
110
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'native' | 'xConfig' | 'yConfig' | 'padding' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
108
111
  }
109
112
 
110
113
  export type VxeTabsProps = {
@@ -131,6 +134,14 @@ export type VxeTabsProps = {
131
134
  * 刷新配置项
132
135
  */
133
136
  refreshConfig?: VxeTabsPropTypes.RefreshConfig
137
+ /**
138
+ * 使用虚拟滚动条
139
+ */
140
+ useScrollbar?: VxeTabsPropTypes.UseScrollbar
141
+ /**
142
+ * 滚动条配置项
143
+ */
144
+ scrollbarConfig?: VxeTabsPropTypes.ScrollbarConfig
134
145
 
135
146
  /**
136
147
  * 请使用 closeConfig.beforeMethod