vxe-pc-ui 4.19.7 → 4.19.8

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 (85) hide show
  1. package/dist/all.esm.js +1893 -1837
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/card/src/card.js +35 -12
  5. package/es/card/style.css +42 -44
  6. package/es/card/style.min.css +1 -1
  7. package/es/icon/style.css +1 -1
  8. package/es/list/src/list.js +6 -2
  9. package/es/scrollbar/src/scrollbar.js +9 -1
  10. package/es/scrollbar/style.css +5 -5
  11. package/es/scrollbar/style.min.css +1 -1
  12. package/es/style.css +1 -1
  13. package/es/style.min.css +1 -1
  14. package/es/tabs/src/tabs.js +27 -8
  15. package/es/tabs/style.css +4 -2
  16. package/es/tabs/style.min.css +1 -1
  17. package/es/tree/src/tree.js +6 -2
  18. package/es/ui/index.js +1 -1
  19. package/es/ui/src/log.js +1 -1
  20. package/es/vxe-card/style.css +42 -44
  21. package/es/vxe-card/style.min.css +1 -1
  22. package/es/vxe-scrollbar/style.css +5 -5
  23. package/es/vxe-scrollbar/style.min.css +1 -1
  24. package/es/vxe-tabs/style.css +4 -2
  25. package/es/vxe-tabs/style.min.css +1 -1
  26. package/lib/card/src/card.js +42 -6
  27. package/lib/card/src/card.min.js +1 -1
  28. package/lib/card/style/style.css +42 -44
  29. package/lib/card/style/style.min.css +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 +2474 -2390
  33. package/lib/index.umd.min.js +1 -1
  34. package/lib/list/src/list.js +5 -1
  35. package/lib/list/src/list.min.js +1 -1
  36. package/lib/scrollbar/src/scrollbar.js +9 -1
  37. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  38. package/lib/scrollbar/style/style.css +5 -5
  39. package/lib/scrollbar/style/style.min.css +1 -1
  40. package/lib/style.css +1 -1
  41. package/lib/style.min.css +1 -1
  42. package/lib/tabs/src/tabs.js +40 -8
  43. package/lib/tabs/src/tabs.min.js +1 -1
  44. package/lib/tabs/style/style.css +4 -2
  45. package/lib/tabs/style/style.min.css +1 -1
  46. package/lib/tree/src/tree.js +5 -1
  47. package/lib/tree/src/tree.min.js +1 -1
  48. package/lib/ui/index.js +1 -1
  49. package/lib/ui/index.min.js +1 -1
  50. package/lib/ui/src/log.js +1 -1
  51. package/lib/ui/src/log.min.js +1 -1
  52. package/lib/vxe-card/style/style.css +42 -44
  53. package/lib/vxe-card/style/style.min.css +1 -1
  54. package/lib/vxe-scrollbar/style/style.css +5 -5
  55. package/lib/vxe-scrollbar/style/style.min.css +1 -1
  56. package/lib/vxe-tabs/style/style.css +4 -2
  57. package/lib/vxe-tabs/style/style.min.css +1 -1
  58. package/package.json +1 -1
  59. package/packages/card/src/card.ts +55 -12
  60. package/packages/list/src/list.ts +6 -2
  61. package/packages/scrollbar/src/scrollbar.ts +10 -1
  62. package/packages/tabs/src/tabs.ts +34 -8
  63. package/packages/tree/src/tree.ts +6 -2
  64. package/styles/components/card.scss +44 -58
  65. package/styles/components/scrollbar.scss +15 -11
  66. package/styles/components/tabs.scss +2 -1
  67. package/types/components/card.d.ts +11 -0
  68. package/types/components/grid.d.ts +37 -0
  69. package/types/components/layout-aside.d.ts +6 -0
  70. package/types/components/layout-body.d.ts +6 -0
  71. package/types/components/menu.d.ts +6 -0
  72. package/types/components/table.d.ts +1 -2
  73. package/types/components/tabs.d.ts +11 -0
  74. /package/es/icon/{iconfont.1791794447472.ttf → iconfont.1791862962954.ttf} +0 -0
  75. /package/es/icon/{iconfont.1791794447472.woff → iconfont.1791862962954.woff} +0 -0
  76. /package/es/icon/{iconfont.1791794447472.woff2 → iconfont.1791862962954.woff2} +0 -0
  77. /package/es/{iconfont.1791794447472.ttf → iconfont.1791862962954.ttf} +0 -0
  78. /package/es/{iconfont.1791794447472.woff → iconfont.1791862962954.woff} +0 -0
  79. /package/es/{iconfont.1791794447472.woff2 → iconfont.1791862962954.woff2} +0 -0
  80. /package/lib/icon/style/{iconfont.1791794447472.ttf → iconfont.1791862962954.ttf} +0 -0
  81. /package/lib/icon/style/{iconfont.1791794447472.woff → iconfont.1791862962954.woff} +0 -0
  82. /package/lib/icon/style/{iconfont.1791794447472.woff2 → iconfont.1791862962954.woff2} +0 -0
  83. /package/lib/{iconfont.1791794447472.ttf → iconfont.1791862962954.ttf} +0 -0
  84. /package/lib/{iconfont.1791794447472.woff → iconfont.1791862962954.woff} +0 -0
  85. /package/lib/{iconfont.1791794447472.woff2 → iconfont.1791862962954.woff2} +0 -0
@@ -7,6 +7,7 @@ import { isEnableConf } from '../../ui/src/utils'
7
7
  import { createComponentLog } from '../../ui/src/log'
8
8
  import XEUtils from 'xe-utils'
9
9
  import VxeLoadingComponent from '../../loading'
10
+ import VxeScrollbarComponent from '../../scrollbar'
10
11
 
11
12
  import type { VxeTabsPropTypes, VxeTabPaneProps, VxeTabsEmits, TabsInternalData, TabsReactData, TabsPrivateRef, VxeTabsPrivateComputed, VxeTabsConstructor, VxeTabsPrivateMethods, VxeTabPaneDefines, ValueOf, TabsMethods, TabsPrivateMethods, VxeComponentStyleType } from '../../../types'
12
13
 
@@ -52,6 +53,11 @@ export default defineVxeComponent({
52
53
  type: String as PropType<VxeTabsPropTypes.Size>,
53
54
  default: () => getConfig().tabs.size || getConfig().size
54
55
  },
56
+ useScrollbar: {
57
+ type: Boolean as PropType<VxeTabsPropTypes.UseScrollbar>,
58
+ default: () => getConfig().tabs.useScrollbar
59
+ },
60
+ scrollbarConfig: Object as PropType<VxeTabsPropTypes.ScrollbarConfig>,
55
61
  // 已废弃
56
62
  beforeCloseMethod: Function as PropType<VxeTabsPropTypes.BeforeCloseMethod>
57
63
  },
@@ -165,6 +171,10 @@ export default defineVxeComponent({
165
171
  return $xeParentTabs ? $xeParentTabs.reactData.resizeFlag : null
166
172
  })
167
173
 
174
+ const computeScrollbarOpts = computed(() => {
175
+ return Object.assign({}, getConfig().tabs.scrollbarConfig, props.scrollbarConfig)
176
+ })
177
+
168
178
  const computeMaps: VxeTabsPrivateComputed = {
169
179
  }
170
180
 
@@ -761,17 +771,33 @@ export default defineVxeComponent({
761
771
  }
762
772
 
763
773
  const renderTabPane = (item: VxeTabPaneProps | VxeTabPaneDefines.TabConfig) => {
774
+ const { useScrollbar } = props
764
775
  const { initNames, activeName } = reactData
765
776
  const { name, slots } = item
766
777
  const defaultSlot = slots ? slots.default : null
767
- return name && initNames.includes(name)
768
- ? h('div', {
769
- key: `${name}`,
770
- class: ['vxe-tabs-pane--item', {
771
- 'is--visible': activeName === name
772
- }]
773
- }, defaultSlot ? callSlot(defaultSlot, { name }) : [])
774
- : renderEmptyElement($xeTabs)
778
+ const scrollbarOpts = computeScrollbarOpts.value
779
+ const { viewClassName, viewInnerClassName } = scrollbarOpts
780
+ if (name && initNames.includes(name)) {
781
+ return useScrollbar
782
+ ? h(VxeScrollbarComponent, {
783
+ key: `${name}`,
784
+ class: ['vxe-tabs-pane--scrollbar-item', {
785
+ 'is--visible': activeName === name
786
+ }],
787
+ ...scrollbarOpts,
788
+ viewClassName: 'vxe-tabs-pane--scrollbar-item-view' + (viewClassName ? (' ' + viewClassName) : ''),
789
+ viewInnerClassName: 'vxe-tabs-pane--scrollbar-item-inner' + (viewClassName ? (' ' + viewInnerClassName) : '')
790
+ }, {
791
+ default: () => defaultSlot ? callSlot(defaultSlot, { name }) : []
792
+ })
793
+ : h('div', {
794
+ key: `${name}`,
795
+ class: ['vxe-tabs-pane--item', {
796
+ 'is--visible': activeName === name
797
+ }]
798
+ }, defaultSlot ? callSlot(defaultSlot, { name }) : [])
799
+ }
800
+ return renderEmptyElement($xeTabs)
775
801
  }
776
802
 
777
803
  const renderTabContent = (tabList: VxeTabsPropTypes.Options | VxeTabPaneDefines.TabConfig[]) => {
@@ -6,7 +6,7 @@ import { createComponentLog } from '../../ui/src/log'
6
6
  import { getCrossTreeDragNodeInfo } from './store'
7
7
  import XEUtils from 'xe-utils'
8
8
  import { getSlotVNs } from '../../ui/src/vn'
9
- import { toCssUnit, isScale, getPaddingTopBottomSize, addClass, removeClass, getTpImg, hasControlKey, getEventTargetNode } from '../../ui/src/dom'
9
+ import { toCssUnit, isScale, getPaddingTopBottomSize, addClass, removeClass, getTpImg, hasControlKey, getEventTargetNode, hasClass } from '../../ui/src/dom'
10
10
  import { isEnableConf, enModelValue, deModelValue, getText } from '../../ui/src/utils'
11
11
  import { moveRowAnimateToTb, clearRowAnimate } from '../../ui/src/anime'
12
12
  import VxeLoadingComponent from '../../loading'
@@ -936,11 +936,15 @@ export default defineVxeComponent({
936
936
  const { rowHeight } = scrollYStore
937
937
  const el = refElem.value
938
938
  if (el && el.clientWidth && el.clientHeight) {
939
- const parentEl = getParentElem()
939
+ let parentEl = getParentElem()
940
940
  const headerWrapperEl = refHeaderWrapperElem.value
941
941
  const footerWrapperEl = refFooterWrapperElem.value
942
942
  const headHeight = headerWrapperEl ? headerWrapperEl.clientHeight : 0
943
943
  const footHeight = footerWrapperEl ? footerWrapperEl.clientHeight : 0
944
+ // 如果是虚拟滚动条
945
+ if (parentEl && hasClass(parentEl, 'vxe-scrollbar--view-inner')) {
946
+ parentEl = parentEl.parentElement
947
+ }
944
948
  if (parentEl) {
945
949
  const parentPaddingSize = getPaddingTopBottomSize(parentEl)
946
950
  reactData.parentHeight = Math.max(headHeight + footHeight + rowHeight, parentEl.clientHeight - parentPaddingSize - headHeight - footHeight)
@@ -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
+ }
@@ -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 {
@@ -74,6 +73,7 @@
74
73
  display: none;
75
74
  position: absolute;
76
75
  background-color: var(--vxe-ui-scrollbar-track-background-color);
76
+ overflow: hidden;
77
77
  user-select: none;
78
78
  }
79
79
  .vxe-scrollbar {
@@ -152,17 +152,21 @@
152
152
 
153
153
  .vxe-scrollbar {
154
154
  &.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);
155
+ &.overflow-x {
156
+ &.sx-pos--top {
157
+ padding-top: var(--vxe-ui-scrollbar-x-height);
158
+ }
159
+ &.sx-pos--bottom {
160
+ padding-bottom: var(--vxe-ui-scrollbar-x-height);
161
+ }
163
162
  }
164
- &.sy-pos--right {
165
- padding-right: var(--vxe-ui-scrollbar-y-width);
163
+ &.overflow-y {
164
+ &.sy-pos--left {
165
+ padding-left: var(--vxe-ui-scrollbar-y-width);
166
+ }
167
+ &.sy-pos--right {
168
+ padding-right: var(--vxe-ui-scrollbar-y-width);
169
+ }
166
170
  }
167
171
  }
168
172
  }
@@ -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,5 +1,6 @@
1
1
  import { RenderFunction, SetupContext, Ref } from 'vue'
2
2
  import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentBaseOptions, VxeComponentEventParams, ValueOf, VxeComponentSizeType } from '@vxe-ui/core'
3
+ import { VxeScrollbarProps } from './scrollbar'
3
4
 
4
5
  /* eslint-disable no-use-before-define,@typescript-eslint/ban-types */
5
6
 
@@ -32,6 +33,8 @@ export namespace VxeCardPropTypes {
32
33
  export type Shadow = boolean
33
34
  export type Padding = boolean
34
35
  export type Size = VxeComponentSizeType
36
+ export type UseScrollbar = boolean
37
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'native' | 'yConfig' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
35
38
  }
36
39
 
37
40
  export type VxeCardProps = {
@@ -44,6 +47,14 @@ export type VxeCardProps = {
44
47
  shadow?: VxeCardPropTypes.Shadow
45
48
  padding?: VxeCardPropTypes.Padding
46
49
  size?: VxeCardPropTypes.Size
50
+ /**
51
+ * 使用虚拟滚动条
52
+ */
53
+ useScrollbar?: VxeCardPropTypes.UseScrollbar
54
+ /**
55
+ * 滚动条配置项
56
+ */
57
+ scrollbarConfig?: VxeCardPropTypes.ScrollbarConfig
47
58
  }
48
59
 
49
60
  export interface CardPrivateComputed {
@@ -661,13 +661,50 @@ export interface GridMethods<D = any> {
661
661
  export interface VxeGridMethods<D = any> extends GridMethods<D>, Omit<TableMethods<D>, 'dispatchEvent'> { }
662
662
 
663
663
  export interface GridPrivateMethods<D = any> {
664
+ /**
665
+ * 内部方法
666
+ * @private
667
+ */
664
668
  callSlot<T = any>(slotFunc: ((params: T) => VxeComponentSlotType | VxeComponentSlotType[]) | string | null, params: T): VxeComponentSlotType[]
669
+ /**
670
+ * 内部方法
671
+ * @private
672
+ */
665
673
  extendTableMethods<T>(methodKeys: T[]): any
674
+ /**
675
+ * 内部方法
676
+ * @private
677
+ */
666
678
  triggerToolbarCommitEvent(params: VxeToolbarPropTypes.ButtonConfig | VxeToolbarPropTypes.ToolConfig, evnt: Event): Promise<any>
679
+ /**
680
+ * 内部方法
681
+ * @private
682
+ */
667
683
  triggerToolbarBtnEvent(button: VxeToolbarPropTypes.ButtonConfig, evnt: Event): void
684
+ /**
685
+ * 内部方法
686
+ * @private
687
+ */
668
688
  triggerToolbarTolEvent(button: VxeToolbarPropTypes.ToolConfig, evnt: Event): void
689
+ /**
690
+ * 内部方法
691
+ * @private
692
+ */
669
693
  triggerZoomEvent(evnt: Event): void
694
+ /**
695
+ * 内部方法
696
+ * @private
697
+ */
698
+ getParentElem(): HTMLElement | null
699
+ /**
700
+ * 内部方法
701
+ * @private
702
+ */
670
703
  getParentHeight(): number
704
+ /**
705
+ * 内部方法
706
+ * @private
707
+ */
671
708
  getExcludeHeight(): number
672
709
  }
673
710
  export interface VxeGridPrivateMethods<D = any> extends GridPrivateMethods<D> { }
@@ -48,7 +48,13 @@ export interface VxeLayoutAsideProps {
48
48
  padding?: VxeLayoutAsidePropTypes.Padding
49
49
  size?: VxeLayoutAsidePropTypes.Size
50
50
  collapseConfig?: VxeLayoutAsidePropTypes.CollapseConfig
51
+ /**
52
+ * 使用虚拟滚动条
53
+ */
51
54
  useScrollbar?: VxeLayoutAsidePropTypes.UseScrollbar
55
+ /**
56
+ * 滚动条配置项
57
+ */
52
58
  scrollbarConfig?: VxeLayoutAsidePropTypes.ScrollbarConfig
53
59
  }
54
60
  export interface LayoutAsidePrivateComputed {
@@ -40,7 +40,13 @@ export interface VxeLayoutBodyProps {
40
40
  padding?: VxeLayoutBodyPropTypes.Padding
41
41
  showBacktop?: VxeLayoutBodyPropTypes.ShowBacktop
42
42
  backtopConfig?: VxeLayoutBodyPropTypes.BacktopConfig
43
+ /**
44
+ * 使用虚拟滚动条
45
+ */
43
46
  useScrollbar?: VxeLayoutBodyPropTypes.UseScrollbar
47
+ /**
48
+ * 滚动条配置项
49
+ */
44
50
  scrollbarConfig?: VxeLayoutBodyPropTypes.ScrollbarConfig
45
51
  }
46
52
 
@@ -109,7 +109,13 @@ export interface VxeMenuProps {
109
109
  expandKeys?: VxeMenuPropTypes.ExpandKeys
110
110
  options?: VxeMenuPropTypes.Options
111
111
  menuConfig?: VxeMenuPropTypes.MenuConfig
112
+ /**
113
+ * 使用虚拟滚动条
114
+ */
112
115
  useScrollbar?: VxeMenuPropTypes.UseScrollbar
116
+ /**
117
+ * 滚动条配置项
118
+ */
113
119
  scrollbarConfig?: VxeMenuPropTypes.ScrollbarConfig
114
120
  /**
115
121
  * 挂载到指定元素下
@@ -5514,12 +5514,11 @@ export interface TablePrivateMethods<D = any> {
5514
5514
  * @private
5515
5515
  */
5516
5516
  callSlot<T>(slotFunc: ((params: T) => VxeComponentSlotType | VxeComponentSlotType[]) | string | null, params: T): VxeComponentSlotType[]
5517
-
5518
5517
  /**
5519
5518
  * 内部方法
5520
5519
  * @private
5521
5520
  */
5522
- getParentElem(): Element | null
5521
+ getParentElem(): HTMLElement | null
5523
5522
  /**
5524
5523
  * 内部方法
5525
5524
  * @private
@@ -1,6 +1,7 @@
1
1
  import { RenderFunction, SetupContext, Ref } from 'vue'
2
2
  import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentBaseOptions, VxeComponentEventParams, ValueOf, VxeComponentSizeType } from '@vxe-ui/core'
3
3
  import { VxeTabPaneProps, VxeTabPaneDefines, VxeTabPanePropTypes } from './tab-pane'
4
+ import { VxeScrollbarProps } from './scrollbar'
4
5
 
5
6
  /* eslint-disable no-use-before-define,@typescript-eslint/ban-types */
6
7
 
@@ -112,6 +113,8 @@ export namespace VxeTabsPropTypes {
112
113
  option: Omit<VxeTabPaneProps, 'slots'>
113
114
  }) => boolean
114
115
  }
116
+ export type UseScrollbar = boolean
117
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'native' | 'yConfig' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
115
118
  }
116
119
 
117
120
  export type VxeTabsProps = {
@@ -138,6 +141,14 @@ export type VxeTabsProps = {
138
141
  * 刷新配置项
139
142
  */
140
143
  refreshConfig?: VxeTabsPropTypes.RefreshConfig
144
+ /**
145
+ * 使用虚拟滚动条
146
+ */
147
+ useScrollbar?: VxeTabsPropTypes.UseScrollbar
148
+ /**
149
+ * 滚动条配置项
150
+ */
151
+ scrollbarConfig?: VxeTabsPropTypes.ScrollbarConfig
141
152
 
142
153
  /**
143
154
  * 请使用 closeConfig.beforeMethod