vxe-pc-ui 3.18.22 → 3.19.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 (148) hide show
  1. package/es/calendar/src/calendar.js +1 -1
  2. package/es/card/src/card.js +1 -1
  3. package/es/carousel/src/carousel.js +1 -1
  4. package/es/countdown/src/countdown.js +1 -1
  5. package/es/date-range-picker/src/date-range-picker.js +3 -3
  6. package/es/icon/style.css +1 -1
  7. package/es/icon-picker/src/icon-picker.js +1 -1
  8. package/es/layout-aside/src/layout-aside.js +25 -10
  9. package/es/layout-aside/style.css +2 -4
  10. package/es/layout-aside/style.min.css +1 -1
  11. package/es/layout-body/src/layout-body.js +22 -14
  12. package/es/layout-body/style.css +2 -3
  13. package/es/layout-body/style.min.css +1 -1
  14. package/es/list/src/list.js +1 -1
  15. package/es/menu/src/menu.js +16 -4
  16. package/es/menu/style.css +10 -2
  17. package/es/menu/style.min.css +1 -1
  18. package/es/scrollbar/src/scrollbar.js +72 -10
  19. package/es/scrollbar/style.css +18 -15
  20. package/es/scrollbar/style.min.css +1 -1
  21. package/es/select/src/select.js +2 -2
  22. package/es/style.css +1 -1
  23. package/es/style.min.css +1 -1
  24. package/es/table-select/src/table-select.js +1 -1
  25. package/es/tabs/src/tabs.js +1 -1
  26. package/es/text-ellipsis/style.css +29 -10
  27. package/es/text-ellipsis/style.min.css +1 -1
  28. package/es/ui/index.js +8 -2
  29. package/es/ui/src/log.js +1 -1
  30. package/es/upload/src/upload.js +1 -1
  31. package/es/upload/style.css +5 -3
  32. package/es/upload/style.min.css +1 -1
  33. package/es/vxe-layout-aside/style.css +2 -4
  34. package/es/vxe-layout-aside/style.min.css +1 -1
  35. package/es/vxe-layout-body/style.css +2 -3
  36. package/es/vxe-layout-body/style.min.css +1 -1
  37. package/es/vxe-menu/style.css +10 -2
  38. package/es/vxe-menu/style.min.css +1 -1
  39. package/es/vxe-scrollbar/style.css +18 -15
  40. package/es/vxe-scrollbar/style.min.css +1 -1
  41. package/es/vxe-text-ellipsis/style.css +29 -10
  42. package/es/vxe-text-ellipsis/style.min.css +1 -1
  43. package/es/vxe-upload/style.css +5 -3
  44. package/es/vxe-upload/style.min.css +1 -1
  45. package/lib/calendar/src/calendar.js +1 -1
  46. package/lib/calendar/src/calendar.min.js +1 -1
  47. package/lib/card/src/card.js +1 -1
  48. package/lib/card/src/card.min.js +1 -1
  49. package/lib/carousel/src/carousel.js +1 -1
  50. package/lib/carousel/src/carousel.min.js +1 -1
  51. package/lib/countdown/src/countdown.js +1 -1
  52. package/lib/countdown/src/countdown.min.js +1 -1
  53. package/lib/date-range-picker/src/date-range-picker.js +3 -3
  54. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  55. package/lib/icon/style/style.css +1 -1
  56. package/lib/icon/style/style.min.css +1 -1
  57. package/lib/icon-picker/src/icon-picker.js +1 -1
  58. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  59. package/lib/index.umd.js +1418 -1290
  60. package/lib/index.umd.min.js +1 -1
  61. package/lib/layout-aside/src/layout-aside.js +30 -10
  62. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  63. package/lib/layout-aside/style/style.css +2 -4
  64. package/lib/layout-aside/style/style.min.css +1 -1
  65. package/lib/layout-body/src/layout-body.js +32 -14
  66. package/lib/layout-body/src/layout-body.min.js +1 -1
  67. package/lib/layout-body/style/style.css +2 -3
  68. package/lib/layout-body/style/style.min.css +1 -1
  69. package/lib/list/src/list.js +1 -1
  70. package/lib/list/src/list.min.js +1 -1
  71. package/lib/menu/src/menu.js +20 -6
  72. package/lib/menu/src/menu.min.js +1 -1
  73. package/lib/menu/style/style.css +10 -2
  74. package/lib/menu/style/style.min.css +1 -1
  75. package/lib/scrollbar/src/scrollbar.js +81 -11
  76. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  77. package/lib/scrollbar/style/style.css +18 -15
  78. package/lib/scrollbar/style/style.min.css +1 -1
  79. package/lib/select/src/select.js +2 -2
  80. package/lib/select/src/select.min.js +1 -1
  81. package/lib/style.css +1 -1
  82. package/lib/style.min.css +1 -1
  83. package/lib/table-select/src/table-select.js +1 -1
  84. package/lib/table-select/src/table-select.min.js +1 -1
  85. package/lib/tabs/src/tabs.js +1 -1
  86. package/lib/tabs/src/tabs.min.js +1 -1
  87. package/lib/text-ellipsis/style/style.css +29 -10
  88. package/lib/text-ellipsis/style/style.min.css +1 -1
  89. package/lib/ui/index.js +8 -2
  90. package/lib/ui/index.min.js +1 -1
  91. package/lib/ui/src/log.js +1 -1
  92. package/lib/ui/src/log.min.js +1 -1
  93. package/lib/upload/src/upload.js +1 -1
  94. package/lib/upload/src/upload.min.js +1 -1
  95. package/lib/upload/style/style.css +5 -3
  96. package/lib/upload/style/style.min.css +1 -1
  97. package/lib/vxe-layout-aside/style/style.css +2 -4
  98. package/lib/vxe-layout-aside/style/style.min.css +1 -1
  99. package/lib/vxe-layout-body/style/style.css +2 -3
  100. package/lib/vxe-layout-body/style/style.min.css +1 -1
  101. package/lib/vxe-menu/style/style.css +10 -2
  102. package/lib/vxe-menu/style/style.min.css +1 -1
  103. package/lib/vxe-scrollbar/style/style.css +18 -15
  104. package/lib/vxe-scrollbar/style/style.min.css +1 -1
  105. package/lib/vxe-text-ellipsis/style/style.css +29 -10
  106. package/lib/vxe-text-ellipsis/style/style.min.css +1 -1
  107. package/lib/vxe-upload/style/style.css +5 -3
  108. package/lib/vxe-upload/style/style.min.css +1 -1
  109. package/package.json +1 -1
  110. package/packages/calendar/src/calendar.ts +1 -1
  111. package/packages/card/src/card.ts +1 -1
  112. package/packages/carousel/src/carousel.ts +1 -1
  113. package/packages/countdown/src/countdown.ts +1 -1
  114. package/packages/date-range-picker/src/date-range-picker.ts +3 -3
  115. package/packages/icon-picker/src/icon-picker.ts +1 -1
  116. package/packages/layout-aside/src/layout-aside.ts +26 -10
  117. package/packages/layout-body/src/layout-body.ts +26 -14
  118. package/packages/list/src/list.ts +1 -1
  119. package/packages/menu/src/menu.ts +17 -4
  120. package/packages/scrollbar/src/scrollbar.ts +80 -10
  121. package/packages/select/src/select.ts +2 -2
  122. package/packages/table-select/src/table-select.ts +1 -1
  123. package/packages/tabs/src/tabs.ts +1 -1
  124. package/packages/ui/index.ts +8 -3
  125. package/packages/upload/src/upload.ts +1 -1
  126. package/styles/components/layout-aside.scss +2 -4
  127. package/styles/components/layout-body.scss +2 -3
  128. package/styles/components/menu.scss +11 -2
  129. package/styles/components/scrollbar.scss +26 -19
  130. package/styles/components/text-ellipsis.scss +23 -64
  131. package/styles/components/upload.scss +5 -3
  132. package/styles/theme/base.scss +2 -0
  133. package/types/components/layout-aside.d.ts +3 -0
  134. package/types/components/layout-body.d.ts +3 -0
  135. package/types/components/menu.d.ts +3 -0
  136. package/types/components/scrollbar.d.ts +16 -0
  137. /package/es/icon/{iconfont.1791471260167.ttf → iconfont.1791539006762.ttf} +0 -0
  138. /package/es/icon/{iconfont.1791471260167.woff → iconfont.1791539006762.woff} +0 -0
  139. /package/es/icon/{iconfont.1791471260167.woff2 → iconfont.1791539006762.woff2} +0 -0
  140. /package/es/{iconfont.1791471260167.ttf → iconfont.1791539006762.ttf} +0 -0
  141. /package/es/{iconfont.1791471260167.woff → iconfont.1791539006762.woff} +0 -0
  142. /package/es/{iconfont.1791471260167.woff2 → iconfont.1791539006762.woff2} +0 -0
  143. /package/lib/icon/style/{iconfont.1791471260167.ttf → iconfont.1791539006762.ttf} +0 -0
  144. /package/lib/icon/style/{iconfont.1791471260167.woff → iconfont.1791539006762.woff} +0 -0
  145. /package/lib/icon/style/{iconfont.1791471260167.woff2 → iconfont.1791539006762.woff2} +0 -0
  146. /package/lib/{iconfont.1791471260167.ttf → iconfont.1791539006762.ttf} +0 -0
  147. /package/lib/{iconfont.1791471260167.woff → iconfont.1791539006762.woff} +0 -0
  148. /package/lib/{iconfont.1791471260167.woff2 → iconfont.1791539006762.woff2} +0 -0
@@ -1,9 +1,9 @@
1
1
  import { PropType, CreateElement, VNode } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import { getConfig, createEvent, globalMixins, renderEmptyElement } from '../../ui'
4
- import VxeLoadingComponent from '../../loading'
5
- import VxeUIBacktopComponent from '../../backtop'
6
4
  import XEUtils from 'xe-utils'
5
+ import VxeScrollbarComponent from '../../scrollbar'
6
+ import VxeUIBacktopComponent from '../../backtop'
7
7
 
8
8
  import type { LayoutBodyInternalData, VxeLayoutBodyPropTypes, LayoutBodyReactData, VxeLayoutBodyEmits, VxeComponentSizeType, ValueOf } from '../../../types'
9
9
 
@@ -28,6 +28,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
28
28
  default: () => getConfig().layoutBody.showBacktop
29
29
  },
30
30
  backtopConfig: Object as PropType<VxeLayoutBodyPropTypes.BacktopConfig>,
31
+ scrollbarConfig: Object as PropType<VxeLayoutBodyPropTypes.ScrollbarConfig>,
31
32
  size: {
32
33
  type: String as PropType<VxeLayoutBodyPropTypes.Size>,
33
34
  default: () => getConfig().layoutBody.size || getConfig().size
@@ -58,6 +59,12 @@ export default /* define-vxe-component start */ defineVxeComponent({
58
59
  return Object.assign({}, getConfig().layoutBody.backtopConfig, props.backtopConfig, {
59
60
  target: '#' + backtopId
60
61
  })
62
+ },
63
+ computeScrollbarOpts () {
64
+ const $xeLayoutBody = this
65
+ const props = $xeLayoutBody
66
+
67
+ return Object.assign({}, getConfig().layoutBody.scrollbarConfig, props.scrollbarConfig)
61
68
  }
62
69
  },
63
70
  methods: {
@@ -79,6 +86,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
79
86
 
80
87
  const { loading, padding, showBacktop } = props
81
88
  const backtopOpts = $xeLayoutBody.computeBacktopOpts
89
+ const scrollbarOpts = $xeLayoutBody.computeScrollbarOpts
90
+ const { native, xConfig, yConfig, className, viewAttrs, viewClassName, viewInnerClassName } = scrollbarOpts
82
91
  const vSize = $xeLayoutBody.computeSize
83
92
  const defaultSlot = slots.default
84
93
  const backtopSlot = slots.backtop
@@ -105,19 +114,22 @@ export default /* define-vxe-component start */ defineVxeComponent({
105
114
  'is--padding': padding
106
115
  }]
107
116
  }, [
108
- h('div', {
109
- attrs: {
110
- id: showBacktop ? backtopId : ''
111
- },
112
- class: 'vxe-layout-body--inner'
113
- }, defaultSlot ? defaultSlot({}) : []),
114
- /**
115
- * 加载中
116
- */
117
- h(VxeLoadingComponent, {
118
- class: 'vxe-list-view--loading',
117
+ h(VxeScrollbarComponent, {
119
118
  props: {
120
- value: loading
119
+ loading,
120
+ native,
121
+ xConfig,
122
+ yConfig,
123
+ className: 'vxe-layout-body--scrollbar' + (className ? (' ' + className) : ''),
124
+ viewAttrs: {
125
+ ...viewAttrs,
126
+ id: showBacktop ? (backtopId || null) : null
127
+ },
128
+ viewClassName: 'vxe-layout-body--view' + (viewClassName ? (' ' + viewClassName) : ''),
129
+ viewInnerClassName: 'vxe-layout-body--inner' + (viewInnerClassName ? (' ' + viewInnerClassName) : '')
130
+ },
131
+ scopedSlots: {
132
+ default: () => defaultSlot ? defaultSlot({}) : []
121
133
  }
122
134
  }),
123
135
  /**
@@ -9,7 +9,7 @@ import { getSlotVNs } from '../../ui/src/vn'
9
9
  import { createComponentLog } from '../../ui/src/log'
10
10
  import { moveRowAnimateToTb, clearRowAnimate } from '../../ui/src/anime'
11
11
  import { getItemCacheObj } from './util'
12
- import VxeLoadingComponent from '../../loading/src/loading'
12
+ import VxeLoadingComponent from '../../loading'
13
13
 
14
14
  import type { VxeListPropTypes, VxeListEmits, VxeComponentSizeType, ListReactData, VxeListDefines, ValueOf, ListInternalData, VxeListConstructor, VxeListPrivateMethods, VxeComponentStyleType } from '../../../types'
15
15
 
@@ -7,6 +7,7 @@ import { getLastZIndex, nextZIndex, isEnableConf } from '../../ui/src/utils'
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
8
  import { createComponentLog } from '../../ui/src/log'
9
9
  import VxeLoadingComponent from '../../loading'
10
+ import VxeScrollbarComponent from '../../scrollbar'
10
11
 
11
12
  import type { VxeMenuDefines, MenuInternalData, MenuReactData, VxeMenuPropTypes, VxeLayoutAsideConstructor, VxeMenuEmits, VxeLayoutAsidePropTypes, VxeComponentPermissionInfo, VxeComponentSizeType, ValueOf } from '../../../types'
12
13
 
@@ -75,6 +76,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
75
76
  default: () => getConfig().menu.size || getConfig().size
76
77
  },
77
78
  menuConfig: Object as PropType<VxeMenuPropTypes.MenuConfig>,
79
+ scrollbarConfig: Object as PropType<VxeMenuPropTypes.ScrollbarConfig>,
78
80
  appendTo: {
79
81
  type: [String, Function] as PropType<VxeMenuPropTypes.AppendTo>,
80
82
  default: () => getConfig().menu.appendTo
@@ -137,6 +139,12 @@ export default /* define-vxe-component start */ defineVxeComponent({
137
139
  const propsOpts = $xeMenu.computePropsOpts as VxeMenuPropTypes.OptionProps
138
140
  return propsOpts.routerLink || 'routerLink'
139
141
  },
142
+ computeScrollbarOpts () {
143
+ const $xeMenu = this
144
+ const props = $xeMenu
145
+
146
+ return Object.assign({}, getConfig().menu.scrollbarConfig, props.scrollbarConfig)
147
+ },
140
148
  computeCurrBorder () {
141
149
  const $xeMenu = this
142
150
  const props = $xeMenu
@@ -773,6 +781,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
773
781
  const isCollapsed = $xeMenu.computeIsCollapsed
774
782
  const currBorder = $xeMenu.computeCurrBorder
775
783
  const varStyle = $xeMenu.computeVarStyle
784
+ const scrollbarOpts = $xeMenu.computeScrollbarOpts
776
785
  const headerSlot = slots.header
777
786
  const footerSlot = slots.footer
778
787
  let ons: Record<string, any> = {}
@@ -823,9 +832,13 @@ export default /* define-vxe-component start */ defineVxeComponent({
823
832
  class: 'vxe-menu--header'
824
833
  }, headerSlot(stParams))
825
834
  : renderEmptyElement($xeMenu),
826
- h('div', {
827
- class: 'vxe-menu--body'
828
- }, menuList.map(child => $xeMenu.renderDefaultChildren(h, child, menuList))),
835
+ h(VxeScrollbarComponent, {
836
+ class: 'vxe-menu--body',
837
+ props: scrollbarOpts,
838
+ scopedSlots: {
839
+ default: () => menuList.map(child => $xeMenu.renderDefaultChildren(h, child, menuList))
840
+ }
841
+ }),
829
842
  footerSlot
830
843
  ? h('div', {
831
844
  class: 'vxe-menu--footer'
@@ -838,7 +851,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
838
851
  * 加载中
839
852
  */
840
853
  h(VxeLoadingComponent, {
841
- class: 'vxe-list-view--loading',
854
+ class: 'vxe-menu-view--loading',
842
855
  props: {
843
856
  value: loading
844
857
  }
@@ -32,6 +32,7 @@ function createInternalData (): ScrollbarInternalData {
32
32
  export default /* define-vxe-component start */ defineVxeComponent({
33
33
  name: 'VxeScrollbar',
34
34
  props: {
35
+ id: [String, Number] as PropType<VxeScrollbarPropTypes.Id>,
35
36
  width: [String, Number] as PropType<VxeScrollbarPropTypes.Width>,
36
37
  height: [String, Number] as PropType<VxeScrollbarPropTypes.Height>,
37
38
  minWidth: [String, Number] as PropType<VxeScrollbarPropTypes.MinWidth>,
@@ -45,8 +46,22 @@ export default /* define-vxe-component start */ defineVxeComponent({
45
46
  },
46
47
  xConfig: Object as PropType<VxeScrollbarPropTypes.XConfig>,
47
48
  yConfig: Object as PropType<VxeScrollbarPropTypes.YConfig>,
48
- className: String as PropType<VxeScrollbarPropTypes.ClassName>,
49
- viewClassName: String as PropType<VxeScrollbarPropTypes.ViewClassName>,
49
+ className: {
50
+ type: String as PropType<VxeScrollbarPropTypes.ClassName>,
51
+ default: () => getConfig().scrollbar.className
52
+ },
53
+ viewAttrs: {
54
+ type: Object as PropType<VxeScrollbarPropTypes.ViewAttrs>,
55
+ default: () => getConfig().scrollbar.viewAttrs
56
+ },
57
+ viewClassName: {
58
+ type: String as PropType<VxeScrollbarPropTypes.ViewClassName>,
59
+ default: () => getConfig().scrollbar.viewClassName
60
+ },
61
+ viewInnerClassName: {
62
+ type: String as PropType<VxeScrollbarPropTypes.ViewInnerClassName>,
63
+ default: () => getConfig().scrollbar.viewInnerClassName
64
+ },
50
65
  autoResize: {
51
66
  type: Boolean as PropType<VxeScrollbarPropTypes.AutoResize>,
52
67
  default: () => getConfig().scrollbar.autoResize
@@ -105,8 +120,10 @@ export default /* define-vxe-component start */ defineVxeComponent({
105
120
  computeWrapperClss () {
106
121
  const $xeScrollbar = this
107
122
  const props = $xeScrollbar
123
+ const reactData = $xeScrollbar.reactData
108
124
 
109
125
  const { native, className } = props
126
+ const { yThumbHeight, xThumbWidth } = reactData
110
127
  const xOpts = ($xeScrollbar as any).computeXOpts as VxeScrollbarPropTypes.XConfig
111
128
  const yOpts = ($xeScrollbar as any).computeYOpts as VxeScrollbarPropTypes.YConfig
112
129
  return domUtils.buildClass([
@@ -117,7 +134,9 @@ export default /* define-vxe-component start */ defineVxeComponent({
117
134
  className
118
135
  ], {
119
136
  'ov-x--auto-hide': xOpts.autoHide,
120
- 'ov-y--auto-hide': yOpts.autoHide
137
+ 'ov-y--auto-hide': yOpts.autoHide,
138
+ 'overflow-y': yThumbHeight,
139
+ 'overflow-x': xThumbWidth
121
140
  })
122
141
  },
123
142
  computeViewClss () {
@@ -130,6 +149,16 @@ export default /* define-vxe-component start */ defineVxeComponent({
130
149
  viewClassName
131
150
  ])
132
151
  },
152
+ computeViewInnerClss () {
153
+ const $xeScrollbar = this
154
+ const props = $xeScrollbar
155
+
156
+ const { viewInnerClassName } = props
157
+ return domUtils.buildClass([
158
+ 'vxe-scrollbar--view-inner',
159
+ viewInnerClassName
160
+ ])
161
+ },
133
162
  computeXOpts () {
134
163
  const $xeScrollbar = this
135
164
  const props = $xeScrollbar
@@ -441,28 +470,34 @@ export default /* define-vxe-component start */ defineVxeComponent({
441
470
  const props = $xeScrollbar
442
471
  const slots = $xeScrollbar.$scopedSlots
443
472
 
444
- const { native, loading } = props
473
+ const { id, native, loading, viewAttrs } = props
445
474
  const wrapperStyle = $xeScrollbar.computeWrapperStyle
446
475
  const wrapperClss = $xeScrollbar.computeWrapperClss
447
476
  const viewClss = $xeScrollbar.computeViewClss
477
+ const viewInnerClss = $xeScrollbar.computeViewInnerClss
448
478
  const xOpts = $xeScrollbar.computeXOpts
449
479
  const yOpts = $xeScrollbar.computeYOpts
450
480
  const defaultSlot = slots.default
451
481
  return h('div', {
452
482
  ref: 'refElem',
483
+ attrs: {
484
+ id: id || null
485
+ },
453
486
  class: wrapperClss,
454
487
  style: wrapperStyle
455
488
  }, [
456
489
  h('div', {
457
490
  ref: 'refViewElem',
458
491
  class: viewClss,
492
+ attrs: viewAttrs,
459
493
  on: {
460
494
  scroll: $xeScrollbar.scrollEvent
461
495
  }
462
496
  }, [
463
497
  h('div', {
498
+ key: 'vi',
464
499
  ref: 'refViewInnerElem',
465
- class: 'vxe-scrollbar--view-inner'
500
+ class: viewInnerClss
466
501
  }, defaultSlot ? defaultSlot({}) : [])
467
502
  ]),
468
503
  native || xOpts.visible === 'hidden'
@@ -517,6 +552,36 @@ export default /* define-vxe-component start */ defineVxeComponent({
517
552
  }
518
553
  },
519
554
  watch: {
555
+ height () {
556
+ const $xeScrollbar = this
557
+
558
+ $xeScrollbar.reFlag++
559
+ },
560
+ width () {
561
+ const $xeScrollbar = this
562
+
563
+ $xeScrollbar.reFlag++
564
+ },
565
+ minHeight () {
566
+ const $xeScrollbar = this
567
+
568
+ $xeScrollbar.reFlag++
569
+ },
570
+ minWidth () {
571
+ const $xeScrollbar = this
572
+
573
+ $xeScrollbar.reFlag++
574
+ },
575
+ maxHeight () {
576
+ const $xeScrollbar = this
577
+
578
+ $xeScrollbar.reFlag++
579
+ },
580
+ maxWidth () {
581
+ const $xeScrollbar = this
582
+
583
+ $xeScrollbar.reFlag++
584
+ },
520
585
  native () {
521
586
  const $xeScrollbar = this
522
587
 
@@ -546,19 +611,24 @@ export default /* define-vxe-component start */ defineVxeComponent({
546
611
  const internalData = $xeScrollbar.internalData
547
612
 
548
613
  const { autoResize } = props
614
+ const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
549
615
  const viewInnerEl = $xeScrollbar.$refs.refViewInnerElem as HTMLDivElement
550
- if (autoResize && viewInnerEl) {
616
+ if (autoResize) {
551
617
  const resizeObserver = globalResize.create(() => {
552
618
  if (props.autoResize) {
553
619
  $xeScrollbar.reFlag++
554
620
  }
555
621
  })
556
- resizeObserver.observe(viewInnerEl)
622
+ if (viewEl) {
623
+ resizeObserver.observe(viewEl)
624
+ }
625
+ if (viewInnerEl) {
626
+ resizeObserver.observe(viewInnerEl)
627
+ }
557
628
  internalData.resizeObserver = resizeObserver
558
629
  }
559
- $xeScrollbar.$nextTick(() => {
560
- $xeScrollbar.recalculate()
561
- })
630
+
631
+ $xeScrollbar.reFlag++
562
632
  },
563
633
  beforeDestroy () {
564
634
  const $xeScrollbar = this
@@ -6,8 +6,8 @@ import { getEventTargetNode, getPopupAppendElement, toCssUnit, updatePanelPlacem
6
6
  import { getLastZIndex, nextZIndex, getFuncText, eqEmptyValue } from '../../ui/src/utils'
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
8
  import { createComponentLog } from '../../ui/src/log'
9
- import VxeInputComponent from '../../input/src/input'
10
- import VxeButtonComponent from '../../button/src/button'
9
+ import VxeInputComponent from '../../input'
10
+ import VxeButtonComponent from '../../button'
11
11
 
12
12
  import type { VxeSelectPropTypes, SelectInternalData, ValueOf, VxeComponentSizeType, SelectReactData, VxeSelectEmits, VxeButtonDefines, VxeInputDefines, VxeSelectDefines, VxeOptionProps, VxeDrawerConstructor, VxeDrawerMethods, VxeFormDefines, VxeFormConstructor, VxeFormPrivateMethods, VxeModalConstructor, VxeModalMethods, VxeInputConstructor, VxeComponentSlotType, VxeComponentStyleType, VxeCardConstructor, VxeCardPrivateMethods } from '../../../types'
13
13
  import type { VxeTableConstructor, VxeTablePrivateMethods } from '../../../types/components/table'
@@ -6,7 +6,7 @@ import { getEventTargetNode, updatePanelPlacement, toCssUnit, getPopupAppendElem
6
6
  import { getOnName } from '../../ui/src/vn'
7
7
  import { getLastZIndex, nextZIndex } from '../../ui/src/utils'
8
8
  import { createComponentLog } from '../../ui/src/log'
9
- import VxeInputComponent from '../../input/src/input'
9
+ import VxeInputComponent from '../../input'
10
10
 
11
11
  import type { TableSelectReactData, VxeTableSelectPropTypes, TableSelectInternalData, VxeTableSelectEmits, VxeInputConstructor, VxeFormDefines, ValueOf, VxeComponentStyleType, VxeComponentSizeType, VxeModalConstructor, VxeModalMethods, VxeDrawerConstructor, VxeDrawerMethods, VxeFormConstructor, VxeFormPrivateMethods } from '../../../types'
12
12
  import type { VxeTableConstructor, VxeTablePrivateMethods, VxeTablePropTypes } from '../../../types/components/table'
@@ -6,7 +6,7 @@ import { getSlotVNs } from '../../ui/src/vn'
6
6
  import { toCssUnit, addClass, removeClass } from '../../ui/src/dom'
7
7
  import { isEnableConf } from '../../ui/src/utils'
8
8
  import { createComponentLog } from '../../ui/src/log'
9
- import VxeLoadingComponent from '../../loading/src/loading'
9
+ import VxeLoadingComponent from '../../loading'
10
10
 
11
11
  import type { VxeTabsPropTypes, VxeTabPaneProps, VxeTabsEmits, TabsInternalData, TabsReactData, VxeComponentSizeType, VxeTabsConstructor, VxeTabsPrivateMethods, VxeTabPaneDefines, ValueOf, VxeComponentStyleType } from '../../../types'
12
12
 
@@ -221,11 +221,16 @@ setConfig({
221
221
  digits: 2,
222
222
  controls: true
223
223
  },
224
- layoutAside: {},
225
- layoutBody: {
226
- backtopConfig: {
224
+ layoutAside: {
225
+ scrollbarConfig: {
226
+ yConfig: {
227
+ autoHide: true
228
+ }
227
229
  }
228
230
  },
231
+ layoutBody: {
232
+ backtopConfig: {}
233
+ },
229
234
  layoutContainer: {},
230
235
  layoutFooter: {},
231
236
  layoutHeader: {},
@@ -6,7 +6,7 @@ import { getSlotVNs } from '../../ui/src/vn'
6
6
  import { createComponentLog } from '../../ui/src/log'
7
7
  import { initTpImg, getTpImg, getEventTargetNode, toCssUnit } from '../../ui/src/dom'
8
8
  import { readLocalFile } from './util'
9
- import VxeButtonComponent from '../../button/src/button'
9
+ import VxeButtonComponent from '../../button'
10
10
 
11
11
  import type { VxeUploadDefines, VxeUploadConstructor, VxeUploadPropTypes, UploadReactData, UploadInternalData, VxeUploadEmits, VxeComponentSizeType, VxeFormDefines, VxeFormConstructor, VxeFormPrivateMethods, ValueOf, VxeComponentEventParams } from '../../../types'
12
12
  import type { VxeTableConstructor, VxeTablePrivateMethods } from '../../../types/components/table'
@@ -15,9 +15,7 @@
15
15
  padding: var(--vxe-ui-layout-padding-default);
16
16
  }
17
17
  }
18
- .vxe-layout-aside--inner {
18
+ .vxe-layout-aside--scrollbar {
19
19
  flex-grow: 1;
20
- overflow-y: auto;
21
- overflow-x: hidden;
22
- outline: 0;
20
+ overflow: hidden;
23
21
  }
@@ -8,8 +8,7 @@
8
8
  padding: var(--vxe-ui-layout-padding-double);
9
9
  }
10
10
  }
11
- .vxe-layout-body--inner {
11
+ .vxe-layout-body--scrollbar {
12
12
  flex-grow: 1;
13
- overflow: auto;
14
- outline: 0;
13
+ overflow: hidden;
15
14
  }
@@ -98,11 +98,12 @@
98
98
 
99
99
  .vxe-menu--collapse-wrapper {
100
100
  display: none;
101
+ flex-direction: column;
101
102
  position: absolute;
102
- overflow: auto;
103
+ overflow: hidden;
103
104
  background-color: var(--vxe-ui-layout-background-color);
104
105
  &.is--collapsed {
105
- display: block;
106
+ display: flex;
106
107
  @include baseMixin.createAnimationTransition(all, 0.25s);
107
108
  }
108
109
  &:not(.is--enter) {
@@ -117,6 +118,14 @@
117
118
  width: var(--vxe-ui-layout-aside-default-width);
118
119
  box-shadow: var(--vxe-ui-menu-collapse-wrapper-box-shadow);
119
120
  }
121
+ & > .vxe-menu--header,
122
+ & > .vxe-menu--footer {
123
+ flex-shrink: 0;
124
+ }
125
+ & > .vxe-menu--body {
126
+ flex-grow: 1;
127
+ overflow: hidden;
128
+ }
120
129
  }
121
130
 
122
131
  .vxe-menu--item-link {
@@ -7,8 +7,6 @@
7
7
  & > .vxe-scrollbar--view {
8
8
  scrollbar-width: none;
9
9
  -ms-overflow-style: none;
10
- overflow-x: auto;
11
- overflow-y: auto;
12
10
  }
13
11
  & > .vxe-scrollbar--view::-webkit-scrollbar {
14
12
  display: none;
@@ -21,7 +19,7 @@
21
19
  }
22
20
  & > .vxe-scrollbar--track-x {
23
21
  opacity: 0;
24
- @include baseMixin.createAnimationTransition(opacity, 0.3s);
22
+ @include baseMixin.createAnimationTransition(opacity, 0.8s);
25
23
  }
26
24
  }
27
25
  &.ov-y--auto-hide {
@@ -32,25 +30,11 @@
32
30
  }
33
31
  & > .vxe-scrollbar--track-y {
34
32
  opacity: 0;
35
- @include baseMixin.createAnimationTransition(opacity, 0.3s);
33
+ @include baseMixin.createAnimationTransition(opacity, 0.8s);
36
34
  }
37
35
  }
38
36
  }
39
37
  &.is--native {
40
- & > .vxe-scrollbar--view {
41
- overflow-x: auto;
42
- overflow-y: auto;
43
- }
44
- &.ov-x--hidden {
45
- & > .vxe-scrollbar--view {
46
- overflow-x: hidden;
47
- }
48
- }
49
- &.ov-y--hidden {
50
- & > .vxe-scrollbar--view {
51
- overflow-y: hidden;
52
- }
53
- }
54
38
  & > .vxe-scrollbar--view::-webkit-scrollbar {
55
39
  width: var(--vxe-ui-scrollbar-y-width);
56
40
  height: var(--vxe-ui-scrollbar-x-height);
@@ -66,25 +50,47 @@
66
50
  background-color: var(--vxe-ui-scrollbar-thumb-active-background-color);
67
51
  }
68
52
  }
53
+ &.ov-x--hidden {
54
+ & > .vxe-scrollbar--view {
55
+ overflow-x: hidden;
56
+ }
57
+ }
58
+ &.ov-y--hidden {
59
+ & > .vxe-scrollbar--view {
60
+ overflow-y: hidden;
61
+ }
62
+ }
69
63
  }
70
64
 
71
65
  .vxe-scrollbar--view {
72
66
  height: 100%;
73
67
  width: 100%;
68
+ overflow-x: auto;
69
+ overflow-y: auto;
74
70
  }
75
71
 
76
72
  .vxe-scrollbar--track-x,
77
73
  .vxe-scrollbar--track-y {
74
+ display: none;
78
75
  position: absolute;
79
76
  background-color: var(--vxe-ui-scrollbar-track-background-color);
80
77
  user-select: none;
81
78
  }
79
+ .vxe-scrollbar {
80
+ &.overflow-y {
81
+ & > .vxe-scrollbar--track-x,
82
+ & > .vxe-scrollbar--track-y {
83
+ display: block;
84
+ }
85
+ }
86
+ }
82
87
 
83
88
  .vxe-scrollbar--track-x {
84
89
  width: 100%;
85
90
  bottom: 0;
86
91
  left: 0;
87
92
  height: var(--vxe-ui-scrollbar-x-height);
93
+ padding: var(--vxe-ui-scrollbar-track-padding) 0;
88
94
  }
89
95
 
90
96
  .vxe-scrollbar--track-y {
@@ -92,6 +98,7 @@
92
98
  right: 0;
93
99
  top: 0;
94
100
  width: var(--vxe-ui-scrollbar-y-width);
101
+ padding: 0 var(--vxe-ui-scrollbar-track-padding);
95
102
  }
96
103
 
97
104
  .vxe-scrollbar--thumb-y {
@@ -103,7 +110,7 @@
103
110
 
104
111
  .vxe-scrollbar--thumb-x,
105
112
  .vxe-scrollbar--thumb-y {
106
- border-radius: var(--vxe-ui-base-border-radius);
113
+ border-radius: var(--vxe-ui-scrollbar-thumb-border-radius);
107
114
  background-color: var(--vxe-ui-scrollbar-thumb-background-color);
108
115
  &:hover {
109
116
  background-color: var(--vxe-ui-scrollbar-thumb-hover-background-color);
@@ -1,63 +1,34 @@
1
1
  @use "sass:map";
2
2
  @use "sass:list";
3
+ @use '../helpers/themeStatus.scss';
3
4
 
4
- $btnThemeList: (
5
- (
6
- name: "primary",
7
- textColor: var(--vxe-ui-font-primary-color),
8
- btnColor: #fff,
9
- btnLightenColor: var(--vxe-ui-font-primary-lighten-color),
10
- btnDarkenColor: var(--vxe-ui-font-primary-darken-color),
11
- btnDisabledColor: var(--vxe-ui-font-primary-disabled-color)
12
- ),
13
- (
14
- name: "success",
15
- textColor: var(--vxe-ui-status-success-color),
16
- btnColor: #fff,
17
- btnLightenColor: var(--vxe-ui-status-success-lighten-color),
18
- btnDarkenColor: var(--vxe-ui-status-success-darken-color),
19
- btnDisabledColor: var(--vxe-ui-status-success-disabled-color)
20
- ),
21
- (
22
- name: "info",
23
- textColor: var(--vxe-ui-status-info-color),
24
- btnColor: #fff,
25
- btnLightenColor: var(--vxe-ui-status-info-lighten-color),
26
- btnDarkenColor: var(--vxe-ui-status-info-darken-color),
27
- btnDisabledColor: var(--vxe-ui-status-info-disabled-color)
28
- ),
29
- (
30
- name: "warning",
31
- textColor: var(--vxe-ui-status-warning-color),
32
- btnColor: #fff,
33
- btnLightenColor: var(--vxe-ui-status-warning-lighten-color),
34
- btnDarkenColor: var(--vxe-ui-status-warning-darken-color),
35
- btnDisabledColor: var(--vxe-ui-status-warning-disabled-color)
36
- ),
37
- (
38
- name: "danger",
39
- textColor: var(--vxe-ui-status-danger-color),
40
- btnColor: #fff,
41
- btnLightenColor: var(--vxe-ui-status-danger-lighten-color),
42
- btnDarkenColor: var(--vxe-ui-status-danger-darken-color),
43
- btnDisabledColor: var(--vxe-ui-status-danger-disabled-color)
44
- ),
45
- (
46
- name: "error",
47
- textColor: var(--vxe-ui-status-error-color),
48
- btnColor: #fff,
49
- btnLightenColor: var(--vxe-ui-status-error-lighten-color),
50
- btnDarkenColor: var(--vxe-ui-status-error-darken-color),
51
- btnDisabledColor: var(--vxe-ui-status-error-disabled-color)
52
- )
53
- );
5
+ // 局部变量
6
+ .vxe-text-ellipsis {
7
+ --vxe-ui-text-ellipsis-current-font-size: inherit;
8
+ &.size--xlarge {
9
+ --vxe-ui-text-ellipsis-current-font-size: var(--vxe-ui-font-size-xlarge);
10
+ }
11
+ &.size--large {
12
+ --vxe-ui-text-ellipsis-current-font-size: var(--vxe-ui-font-size-large);
13
+ }
14
+ &.size--medium {
15
+ --vxe-ui-text-ellipsis-current-font-size: var(--vxe-ui-font-size-medium);
16
+ }
17
+ &.size--small {
18
+ --vxe-ui-text-ellipsis-current-font-size: var(--vxe-ui-font-size-small);
19
+ }
20
+ &.size--mini {
21
+ --vxe-ui-text-ellipsis-current-font-size: var(--vxe-ui-font-size-mini);
22
+ }
23
+ }
54
24
 
55
25
  .vxe-text-ellipsis {
56
26
  display: block;
57
27
  overflow: hidden;
58
28
  white-space: normal;
59
- @for $index from 0 to list.length($btnThemeList) {
60
- $item: list.nth($btnThemeList, $index + 1);
29
+ font-size: var(--vxe-ui-text-ellipsis-current-font-size);
30
+ @for $index from 0 to list.length(themeStatus.$btnThemeList) {
31
+ $item: list.nth(themeStatus.$btnThemeList, $index + 1);
61
32
  &.theme--#{map.get($item, name)} {
62
33
  color: map.get($item, textColor);
63
34
  & > .vxe-text-ellipsis--link {
@@ -117,15 +88,3 @@ $btnThemeList: (
117
88
  text-decoration: none;
118
89
  color: inherit;
119
90
  }
120
-
121
- .vxe-text-ellipsis {
122
- &.size--medium {
123
- font-size: var(--vxe-ui-font-size-medium);
124
- }
125
- &.size--small {
126
- font-size: var(--vxe-ui-font-size-small);
127
- }
128
- &.size--mini {
129
- font-size: var(--vxe-ui-font-size-mini);
130
- }
131
- }
@@ -412,9 +412,8 @@
412
412
  flex-direction: row;
413
413
  justify-content: center;
414
414
  align-items: center;
415
- width: 1.8em;
416
- height: 1.8em;
417
- font-size: 0.8em;
415
+ width: 1.2em;
416
+ height: 1.2em;
418
417
  border-radius: 50%;
419
418
  color: #fff;
420
419
  background-color: var(--vxe-ui-status-error-color);
@@ -423,6 +422,9 @@
423
422
  &:hover {
424
423
  background-color: var(--vxe-ui-status-error-lighten-color);
425
424
  }
425
+ i {
426
+ font-size: 0.6em;
427
+ }
426
428
  }
427
429
 
428
430
  .vxe-upload--file-message-over-error {