vxe-pc-ui 3.20.0 → 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 (91) 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 +86 -35
  7. package/es/list/style.css +25 -8
  8. package/es/list/style.min.css +1 -1
  9. package/es/scrollbar/src/scrollbar.js +69 -17
  10. package/es/style.css +1 -1
  11. package/es/style.min.css +1 -1
  12. package/es/tabs/src/tabs.js +19 -3
  13. package/es/tree/src/tree.js +439 -56
  14. package/es/tree/style.css +43 -0
  15. package/es/tree/style.min.css +1 -1
  16. package/es/ui/index.js +1 -1
  17. package/es/ui/src/log.js +1 -1
  18. package/es/ui/src/utils.js +3 -0
  19. package/es/vxe-list/style.css +25 -8
  20. package/es/vxe-list/style.min.css +1 -1
  21. package/es/vxe-tree/style.css +43 -0
  22. package/es/vxe-tree/style.min.css +1 -1
  23. package/lib/card/src/card.js +18 -3
  24. package/lib/card/src/card.min.js +1 -1
  25. package/lib/icon/style/style.css +1 -1
  26. package/lib/icon/style/style.min.css +1 -1
  27. package/lib/index.umd.js +640 -139
  28. package/lib/index.umd.min.js +1 -1
  29. package/lib/language/fr-FR.js +29 -29
  30. package/lib/language/fr-FR.min.js +1 -1
  31. package/lib/language/fr-FR.umd.js +29 -29
  32. package/lib/layout-aside/src/layout-aside.js +8 -8
  33. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  34. package/lib/layout-body/src/layout-body.js +26 -19
  35. package/lib/layout-body/src/layout-body.min.js +1 -1
  36. package/lib/list/src/list.js +73 -32
  37. package/lib/list/src/list.min.js +1 -1
  38. package/lib/list/style/style.css +25 -8
  39. package/lib/list/style/style.min.css +1 -1
  40. package/lib/scrollbar/src/scrollbar.js +74 -15
  41. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  42. package/lib/style.css +1 -1
  43. package/lib/style.min.css +1 -1
  44. package/lib/tabs/src/tabs.js +20 -7
  45. package/lib/tabs/src/tabs.min.js +1 -1
  46. package/lib/tree/src/tree.js +416 -53
  47. package/lib/tree/src/tree.min.js +1 -1
  48. package/lib/tree/style/style.css +43 -0
  49. package/lib/tree/style/style.min.css +1 -1
  50. package/lib/ui/index.js +1 -1
  51. package/lib/ui/index.min.js +1 -1
  52. package/lib/ui/src/log.js +1 -1
  53. package/lib/ui/src/log.min.js +1 -1
  54. package/lib/ui/src/utils.js +4 -0
  55. package/lib/ui/src/utils.min.js +1 -1
  56. package/lib/vxe-list/style/style.css +25 -8
  57. package/lib/vxe-list/style/style.min.css +1 -1
  58. package/lib/vxe-tree/style/style.css +43 -0
  59. package/lib/vxe-tree/style/style.min.css +1 -1
  60. package/package.json +1 -1
  61. package/packages/card/src/card.ts +19 -3
  62. package/packages/language/fr-FR.ts +903 -903
  63. package/packages/layout-aside/src/layout-aside.ts +8 -5
  64. package/packages/layout-body/src/layout-body.ts +26 -14
  65. package/packages/list/src/list.ts +97 -41
  66. package/packages/scrollbar/src/scrollbar.ts +79 -17
  67. package/packages/tabs/src/tabs.ts +20 -7
  68. package/packages/tree/src/tree.ts +482 -67
  69. package/packages/ui/src/utils.ts +4 -0
  70. package/styles/components/list.scss +35 -10
  71. package/styles/components/tree.scss +76 -0
  72. package/types/components/card.d.ts +10 -1
  73. package/types/components/layout-aside.d.ts +10 -1
  74. package/types/components/layout-body.d.ts +10 -1
  75. package/types/components/list.d.ts +10 -1
  76. package/types/components/scrollbar.d.ts +16 -2
  77. package/types/components/table.d.ts +47 -4
  78. package/types/components/tabs.d.ts +10 -1
  79. package/types/components/tree.d.ts +33 -2
  80. /package/es/icon/{iconfont.1791880407207.ttf → iconfont.1791950618327.ttf} +0 -0
  81. /package/es/icon/{iconfont.1791880407207.woff → iconfont.1791950618327.woff} +0 -0
  82. /package/es/icon/{iconfont.1791880407207.woff2 → iconfont.1791950618327.woff2} +0 -0
  83. /package/es/{iconfont.1791880407207.ttf → iconfont.1791950618327.ttf} +0 -0
  84. /package/es/{iconfont.1791880407207.woff → iconfont.1791950618327.woff} +0 -0
  85. /package/es/{iconfont.1791880407207.woff2 → iconfont.1791950618327.woff2} +0 -0
  86. /package/lib/icon/style/{iconfont.1791880407207.ttf → iconfont.1791950618327.ttf} +0 -0
  87. /package/lib/icon/style/{iconfont.1791880407207.woff → iconfont.1791950618327.woff} +0 -0
  88. /package/lib/icon/style/{iconfont.1791880407207.woff2 → iconfont.1791950618327.woff2} +0 -0
  89. /package/lib/{iconfont.1791880407207.ttf → iconfont.1791950618327.ttf} +0 -0
  90. /package/lib/{iconfont.1791880407207.woff → iconfont.1791950618327.woff} +0 -0
  91. /package/lib/{iconfont.1791880407207.woff2 → iconfont.1791950618327.woff2} +0 -0
@@ -97,7 +97,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
97
97
  const vSize = $xeLayoutAside.computeSize
98
98
  const collapseOpts = $xeLayoutAside.computeCollapseOpts
99
99
  const scrollbarOpts = $xeLayoutAside.computeScrollbarOpts
100
- const { native, yConfig, className, viewAttrs, viewClassName, viewInnerClassName } = scrollbarOpts
100
+ const { className, viewClassName, viewInnerClassName } = scrollbarOpts
101
101
  const defaultSlot = slots.default
102
102
 
103
103
  return h('aside', {
@@ -113,13 +113,16 @@ export default /* define-vxe-component start */ defineVxeComponent({
113
113
  useScrollbar
114
114
  ? h(VxeScrollbarComponent, {
115
115
  props: {
116
- native,
116
+ width: scrollbarOpts.width,
117
+ height: scrollbarOpts.height,
118
+ autoHide: scrollbarOpts.autoHide,
119
+ visible: scrollbarOpts.visible,
117
120
  xConfig: {
118
- visible: 'hidden'
121
+ visible: false
119
122
  },
120
- yConfig,
123
+ yConfig: scrollbarOpts.yConfig,
121
124
  className: 'vxe-layout-aside--scrollbar' + (className ? (' ' + className) : ''),
122
- viewAttrs,
125
+ viewAttrs: scrollbarOpts.viewAttrs,
123
126
  viewClassName: 'vxe-layout-aside--scrollbar-view' + (viewClassName ? (' ' + viewClassName) : ''),
124
127
  viewInnerClassName: 'vxe-layout-aside--scrollbar-inner' + (viewInnerClassName ? (' ' + viewInnerClassName) : '')
125
128
  },
@@ -70,6 +70,30 @@ export default /* define-vxe-component start */ defineVxeComponent({
70
70
  const props = $xeLayoutBody
71
71
 
72
72
  return Object.assign({}, getConfig().layoutBody.scrollbarConfig, props.scrollbarConfig)
73
+ },
74
+ computeScrollbarProps () {
75
+ const $xeLayoutBody = this
76
+ const props = $xeLayoutBody
77
+ const backtopId = ($xeLayoutBody as any).backtopId as string
78
+
79
+ const { showBacktop } = props
80
+ const scrollbarOpts = $xeLayoutBody.computeScrollbarOpts as VxeLayoutBodyPropTypes.ScrollbarConfig
81
+ const { className, viewClassName, viewInnerClassName } = scrollbarOpts
82
+ return {
83
+ width: scrollbarOpts.width,
84
+ height: scrollbarOpts.height,
85
+ autoHide: scrollbarOpts.autoHide,
86
+ visible: scrollbarOpts.visible,
87
+ xConfig: scrollbarOpts.xConfig,
88
+ yConfig: scrollbarOpts.yConfig,
89
+ className: 'vxe-layout-body--scrollbar' + (className ? (' ' + className) : ''),
90
+ viewAttrs: {
91
+ ...scrollbarOpts.viewAttrs,
92
+ id: showBacktop ? (backtopId || null) : null
93
+ },
94
+ viewClassName: 'vxe-layout-body--scrollbar-view' + (viewClassName ? (' ' + viewClassName) : ''),
95
+ viewInnerClassName: 'vxe-layout-body--scrollbar-inner' + (viewInnerClassName ? (' ' + viewInnerClassName) : '')
96
+ }
73
97
  }
74
98
  },
75
99
  methods: {
@@ -91,8 +115,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
91
115
 
92
116
  const { loading, padding, showBacktop, useScrollbar } = props
93
117
  const backtopOpts = $xeLayoutBody.computeBacktopOpts
94
- const scrollbarOpts = $xeLayoutBody.computeScrollbarOpts
95
- const { native, xConfig, yConfig, className, viewAttrs, viewClassName, viewInnerClassName } = scrollbarOpts
118
+ const scrollbarProps = $xeLayoutBody.computeScrollbarProps
96
119
  const vSize = $xeLayoutBody.computeSize
97
120
  const defaultSlot = slots.default
98
121
  const backtopSlot = slots.backtop
@@ -121,18 +144,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
121
144
  }, [
122
145
  useScrollbar
123
146
  ? h(VxeScrollbarComponent, {
124
- props: {
125
- native,
126
- xConfig,
127
- yConfig,
128
- className: 'vxe-layout-body--scrollbar' + (className ? (' ' + className) : ''),
129
- viewAttrs: {
130
- ...viewAttrs,
131
- id: showBacktop ? (backtopId || null) : null
132
- },
133
- viewClassName: 'vxe-layout-body--scrollbar-view' + (viewClassName ? (' ' + viewClassName) : ''),
134
- viewInnerClassName: 'vxe-layout-body--scrollbar-inner' + (viewInnerClassName ? (' ' + viewInnerClassName) : '')
135
- },
147
+ props: scrollbarProps,
136
148
  scopedSlots: {
137
149
  default: () => defaultSlot ? defaultSlot({}) : []
138
150
  }
@@ -4,7 +4,7 @@ import XEUtils, { XEBrowse } from 'xe-utils'
4
4
  import { VxeUI, getConfig, getIcon, getI18n, domUtils, menus, globalEvents, globalResize, createEvent, globalMixins, renderEmptyElement } from '../../ui'
5
5
  import { crossListDragRowGlobal, getCrossListDragRowInfo } from './store'
6
6
  import { addClass, getTpImg, hasClass, isScale, removeClass, toCssUnit } from '../../ui/src/dom'
7
- import { isEnableConf, getText, enModelValue, deModelValue } from '../../ui/src/utils'
7
+ import { isEnableConf, getText, enModelValue, deModelValue, getDefaultConfig } from '../../ui/src/utils'
8
8
  import { getSlotVNs } from '../../ui/src/vn'
9
9
  import { createComponentLog } from '../../ui/src/log'
10
10
  import { moveRowAnimateToTb, clearRowAnimate } from '../../ui/src/anime'
@@ -226,17 +226,18 @@ export default /* define-vxe-component start */ defineVxeComponent({
226
226
  const $xeList = this
227
227
 
228
228
  const rowHeight = $xeList.computeRowHeight
229
+ const scrollbarOpts = $xeList.computeScrollbarOpts
229
230
  const scrollbarXOpts = $xeList.computeScrollbarXOpts as VxeScrollbarPropTypes.XConfig
230
231
  const scrollbarYOpts = $xeList.computeScrollbarYOpts as VxeScrollbarPropTypes.YConfig
232
+ const barWidth = getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), getConfig().scrollbar.width)
233
+ const barHeight = getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), getConfig().scrollbar.height)
231
234
  const stys: VxeComponentStyleType = {}
232
235
  if (rowHeight) {
233
236
  stys['--vxe-ui-list-row-height'] = toCssUnit(rowHeight)
234
237
  }
235
- if (scrollbarYOpts.width) {
236
- stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(scrollbarYOpts.width)
237
- }
238
- if (scrollbarXOpts.height) {
239
- stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(scrollbarXOpts.height)
238
+ if (barWidth || barHeight) {
239
+ stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight)
240
+ stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth)
240
241
  }
241
242
  return stys
242
243
  },
@@ -274,6 +275,34 @@ export default /* define-vxe-component start */ defineVxeComponent({
274
275
  const scrollbarOpts = $xeList.computeScrollbarOpts as VxeListPropTypes.ScrollbarConfig
275
276
  return Object.assign({}, getConfig().scrollbar.yConfig, scrollbarOpts.yConfig)
276
277
  },
278
+ computeScrollXVisible () {
279
+ const $xeList = this
280
+
281
+ const scrollbarOpts = $xeList.computeScrollbarOpts as VxeListPropTypes.ScrollbarConfig
282
+ const scrollbarXOpts = $xeList.computeScrollbarXOpts as VxeScrollbarPropTypes.XConfig
283
+ return getDefaultConfig(scrollbarXOpts.visible, scrollbarOpts.visible)
284
+ },
285
+ computeScrollYVisible () {
286
+ const $xeList = this
287
+
288
+ const scrollbarOpts = $xeList.computeScrollbarOpts as VxeListPropTypes.ScrollbarConfig
289
+ const scrollbarYOpts = $xeList.computeScrollbarYOpts as VxeScrollbarPropTypes.YConfig
290
+ return getDefaultConfig(scrollbarYOpts.visible, scrollbarOpts.visible)
291
+ },
292
+ computeScrollXAutoHide () {
293
+ const $xeList = this
294
+
295
+ const scrollbarOpts = $xeList.computeScrollbarOpts as VxeListPropTypes.ScrollbarConfig
296
+ const scrollbarXOpts = $xeList.computeScrollbarXOpts as VxeScrollbarPropTypes.XConfig
297
+ return getDefaultConfig(getDefaultConfig(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide)
298
+ },
299
+ computeScrollYAutoHide () {
300
+ const $xeList = this
301
+
302
+ const scrollbarOpts = $xeList.computeScrollbarOpts as VxeListPropTypes.ScrollbarConfig
303
+ const scrollbarYOpts = $xeList.computeScrollbarYOpts as VxeScrollbarPropTypes.YConfig
304
+ return getDefaultConfig(getDefaultConfig(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide)
305
+ },
277
306
  computeScrollbarWrapperClss () {
278
307
  const $xeList = this
279
308
  const reactData = $xeList.reactData
@@ -281,20 +310,22 @@ export default /* define-vxe-component start */ defineVxeComponent({
281
310
  const scrollbarOpts = $xeList.computeScrollbarOpts as VxeListPropTypes.ScrollbarConfig
282
311
  const { padding } = scrollbarOpts
283
312
  const { yThumbHeight, xThumbWidth } = reactData
284
- const scrollbarXOpts = $xeList.computeScrollbarXOpts as VxeScrollbarPropTypes.XConfig
285
- const scrollbarYOpts = $xeList.computeScrollbarYOpts as VxeScrollbarPropTypes.YConfig
286
313
  const scrollbarXToTop = $xeList.computeScrollbarXToTop
287
314
  const scrollbarYToLeft = $xeList.computeScrollbarYToLeft
315
+ const scrollXVisible = $xeList.computeScrollXVisible
316
+ const scrollYVisible = $xeList.computeScrollYVisible
317
+ const scrollXAutoHide = $xeList.computeScrollXAutoHide as boolean
318
+ const scrollYAutoHide = $xeList.computeScrollYAutoHide as boolean
288
319
  return domUtils.buildClass([
289
320
  'vxe-scrollbar is--virtual',
290
- `ov-x--${scrollbarXOpts.visible || 'visible'}`,
291
- `ov-y--${scrollbarYOpts.visible || 'visible'}`,
321
+ `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}`,
322
+ `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}`,
292
323
  `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`,
293
324
  `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`
294
325
  ], {
295
326
  'is--padding': padding,
296
- 'ov-x--auto-hide': scrollbarXOpts.autoHide,
297
- 'ov-y--auto-hide': scrollbarYOpts.autoHide,
327
+ 'ov-x--auto-hide': scrollXAutoHide,
328
+ 'ov-y--auto-hide': scrollYAutoHide,
298
329
  'overflow-y': yThumbHeight,
299
330
  'overflow-x': xThumbWidth
300
331
  })
@@ -2498,7 +2529,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
2498
2529
  const slots = $xeList.$scopedSlots
2499
2530
 
2500
2531
  const { showCheckbox, className, loading, useScrollbar } = props
2501
- const { bodyHeight, topSpaceHeight, rowList, isAllChecked, isAllIndeterminate } = reactData
2532
+ const { bodyHeight, topSpaceHeight, rowList, isAllChecked, isAllIndeterminate, xThumbWidth, yThumbHeight } = reactData
2502
2533
  const defaultSlot = slots.default
2503
2534
  const headerSlot = slots.header
2504
2535
  const footerSlot = slots.footer
@@ -2512,8 +2543,13 @@ export default /* define-vxe-component start */ defineVxeComponent({
2512
2543
  const rowOpts = $xeList.computeRowOpts
2513
2544
  const { isHover, padding } = rowOpts
2514
2545
  const isDrag = $xeList.computeIsDrag
2515
- const scrollbarXOpts = $xeList.computeScrollbarXOpts
2516
- const scrollbarYOpts = $xeList.computeScrollbarYOpts
2546
+ const scrollbarOpts = $xeList.computeScrollbarOpts
2547
+ const scrollXVisible = $xeList.computeScrollXVisible
2548
+ const scrollYVisible = $xeList.computeScrollYVisible
2549
+ const scrollbarXToTop = $xeList.computeScrollbarXToTop
2550
+ const scrollbarYToLeft = $xeList.computeScrollbarYToLeft
2551
+ const scrollXAutoHide = $xeList.computeScrollXAutoHide
2552
+ const scrollYAutoHide = $xeList.computeScrollYAutoHide
2517
2553
  const scrollbarWrapperClss = $xeList.computeScrollbarWrapperClss
2518
2554
  const showDefChekboxHead = showCheckbox && checkboxOpts.showHeader !== false
2519
2555
 
@@ -2525,14 +2561,25 @@ export default /* define-vxe-component start */ defineVxeComponent({
2525
2561
  }
2526
2562
  return h('div', {
2527
2563
  ref: 'refElem',
2528
- class: ['vxe-list', className ? (XEUtils.isFunction(className) ? className({ $list: $xeList }) : className) : '', {
2529
- [`size--${vSize}`]: vSize,
2530
- 'is--virtual-scrollbar': useScrollbar,
2531
- 'ov-x--auto-hide': useScrollbar && scrollbarXOpts.autoHide,
2532
- 'ov-y--auto-hide': useScrollbar && scrollbarYOpts.autoHide,
2533
- 'is--drag': isDrag,
2534
- 'is--loading': loading
2535
- }],
2564
+ class: [
2565
+ 'vxe-list',
2566
+ useScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '',
2567
+ useScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '',
2568
+ useScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '',
2569
+ useScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '',
2570
+ className ? (XEUtils.isFunction(className) ? className({ $list: $xeList }) : className) : '',
2571
+ {
2572
+ [`size--${vSize}`]: vSize,
2573
+ 'is--virtual-scrollbar': useScrollbar,
2574
+ 'ov-padding': useScrollbar && scrollbarOpts.padding,
2575
+ 'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
2576
+ 'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
2577
+ 'overflow-y': yThumbHeight,
2578
+ 'overflow-x': xThumbWidth,
2579
+ 'is--drag': isDrag,
2580
+ 'is--loading': loading
2581
+ }
2582
+ ],
2536
2583
  on: leOns,
2537
2584
  style: wrapperStyles
2538
2585
  }, [
@@ -2593,17 +2640,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
2593
2640
  style: {
2594
2641
  marginTop: topSpaceHeight ? `${topSpaceHeight}px` : ''
2595
2642
  }
2596
- }, useScrollbar
2597
- ? (
2598
- defaultSlot ? defaultSlot({ items: rowList, $list: $xeList }) : rowList.map((row, i) => $xeList.renderRow(h, row, i))
2599
- )
2600
- : [
2601
- h('div', {
2602
- key: 'vi',
2603
- ref: 'refViewInnerElem',
2604
- class: 'vxe-scrollbar--view-inner'
2605
- }, defaultSlot ? defaultSlot({ items: rowList, $list: $xeList }) : rowList.map((row, i) => $xeList.renderRow(h, row, i)))
2606
- ])
2643
+ }, defaultSlot ? defaultSlot({ items: rowList, $list: $xeList }) : rowList.map((row, i) => $xeList.renderRow(h, row, i)))
2607
2644
  ]),
2608
2645
  footerSlot
2609
2646
  ? h('div', {
@@ -2618,7 +2655,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
2618
2655
  ? h('div', {
2619
2656
  class: scrollbarWrapperClss
2620
2657
  }, [
2621
- scrollbarXOpts.visible === 'hidden'
2658
+ scrollXVisible === false
2622
2659
  ? renderEmptyElement($xeList)
2623
2660
  : h('div', {
2624
2661
  ref: 'refTrackXElem',
@@ -2639,7 +2676,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
2639
2676
  }
2640
2677
  })
2641
2678
  ]),
2642
- scrollbarYOpts.visible === 'hidden'
2679
+ scrollYVisible === false
2643
2680
  ? renderEmptyElement($xeList)
2644
2681
  : h('div', {
2645
2682
  ref: 'refTrackYElem',
@@ -2700,15 +2737,34 @@ export default /* define-vxe-component start */ defineVxeComponent({
2700
2737
 
2701
2738
  $xeList.reFlag++
2702
2739
  },
2740
+ useScrollbar () {
2741
+ const $xeList = this
2742
+
2743
+ $xeList.reFlag++
2744
+ },
2703
2745
  computeRowHeight () {
2704
2746
  const $xeList = this
2705
2747
 
2706
2748
  $xeList.reFlag++
2707
2749
  },
2708
- reFlag () {
2750
+ computeScrollXVisible () {
2709
2751
  const $xeList = this
2710
2752
 
2711
2753
  $xeList.$nextTick(() => {
2754
+ $xeList.reFlag++
2755
+ })
2756
+ },
2757
+ computeScrollYVisible () {
2758
+ const $xeList = this
2759
+
2760
+ $xeList.$nextTick(() => {
2761
+ $xeList.reFlag++
2762
+ })
2763
+ },
2764
+ reFlag () {
2765
+ const $xeList = this
2766
+
2767
+ $xeList.recalculate().then(() => {
2712
2768
  $xeList.recalculate()
2713
2769
  })
2714
2770
  },
@@ -2760,13 +2816,13 @@ export default /* define-vxe-component start */ defineVxeComponent({
2760
2816
  }
2761
2817
  if (useScrollbar || autoResize) {
2762
2818
  const el = $xeList.$refs.refElem as HTMLDivElement
2763
- const viewInnerEl = $xeList.$refs.refViewInnerElem as HTMLDivElement
2819
+ const viewInnerEl = $xeList.$refs.refVirtualBody as HTMLDivElement
2764
2820
  const resizeObserver = globalResize.create(() => {
2765
2821
  $xeList.reFlag++
2766
2822
  })
2767
- resizeObserver.observe(el)
2768
- if (autoResize) {
2769
- if (el) {
2823
+ if (el) {
2824
+ resizeObserver.observe(el)
2825
+ if (autoResize) {
2770
2826
  resizeObserver.observe(el.parentElement as HTMLDivElement)
2771
2827
  }
2772
2828
  }
@@ -4,6 +4,8 @@ import XEUtils from 'xe-utils'
4
4
  import { VxeUI } from '../../ui'
5
5
  import { toCssUnit } from '../../ui/src/dom'
6
6
  import { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } from './util'
7
+ import { getDefaultConfig } from '../../ui/src/utils'
8
+
7
9
  import VxeLoadingComponent from '../../loading'
8
10
 
9
11
  import type { ScrollbarReactData, ScrollbarInternalData, VxeScrollbarEmits, ValueOf, VxeScrollbarPropTypes, VxeComponentStyleType } from '../../../types'
@@ -33,6 +35,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
33
35
  name: 'VxeScrollbar',
34
36
  props: {
35
37
  id: [String, Number] as PropType<VxeScrollbarPropTypes.Id>,
38
+ viewId: [String, Number] as PropType<VxeScrollbarPropTypes.ViewId>,
36
39
  width: [String, Number] as PropType<VxeScrollbarPropTypes.Width>,
37
40
  height: [String, Number] as PropType<VxeScrollbarPropTypes.Height>,
38
41
  minWidth: [String, Number] as PropType<VxeScrollbarPropTypes.MinWidth>,
@@ -48,6 +51,14 @@ export default /* define-vxe-component start */ defineVxeComponent({
48
51
  type: Boolean as PropType<VxeScrollbarPropTypes.Padding>,
49
52
  default: () => getConfig().scrollbar.padding
50
53
  },
54
+ autoHide: {
55
+ type: Boolean as PropType<VxeScrollbarPropTypes.AutoHide>,
56
+ default: () => getConfig().scrollbar.autoHide
57
+ },
58
+ visible: {
59
+ type: Boolean as PropType<VxeScrollbarPropTypes.Visible>,
60
+ default: () => getConfig().scrollbar.visible
61
+ },
51
62
  xConfig: Object as PropType<VxeScrollbarPropTypes.XConfig>,
52
63
  yConfig: Object as PropType<VxeScrollbarPropTypes.YConfig>,
53
64
  className: {
@@ -94,6 +105,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
94
105
  const { width, height, minWidth, minHeight, maxWidth, maxHeight } = props
95
106
  const xOpts = $xeScrollbar.computeXOpts
96
107
  const yOpts = $xeScrollbar.computeYOpts
108
+ const barWidth = yOpts.width
109
+ const barHeight = xOpts.height
97
110
  const stys: VxeComponentStyleType = {}
98
111
  if (width) {
99
112
  stys.width = toCssUnit(width)
@@ -113,14 +126,44 @@ export default /* define-vxe-component start */ defineVxeComponent({
113
126
  if (maxHeight) {
114
127
  stys.maxHeight = toCssUnit(maxHeight)
115
128
  }
116
- if (yOpts.width) {
117
- stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(yOpts.width)
118
- }
119
- if (xOpts.height) {
120
- stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(xOpts.height)
129
+ if (barWidth || barHeight) {
130
+ stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight)
131
+ stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth)
121
132
  }
122
133
  return stys
123
134
  },
135
+ computeXVisible () {
136
+ const $xeScrollbar = this
137
+ const props = $xeScrollbar
138
+
139
+ const { visible } = props
140
+ const xOpts = ($xeScrollbar as any).computeXOpts as VxeScrollbarPropTypes.XConfig
141
+ return getDefaultConfig(xOpts.visible, visible)
142
+ },
143
+ computeYVisible () {
144
+ const $xeScrollbar = this
145
+ const props = $xeScrollbar
146
+
147
+ const { visible } = props
148
+ const yOpts = ($xeScrollbar as any).computeYOpts as VxeScrollbarPropTypes.YConfig
149
+ return getDefaultConfig(yOpts.visible, visible)
150
+ },
151
+ computeXAutoHide () {
152
+ const $xeScrollbar = this
153
+ const props = $xeScrollbar
154
+
155
+ const { autoHide } = props
156
+ const xOpts = ($xeScrollbar as any).computeXOpts as VxeScrollbarPropTypes.XConfig
157
+ return getDefaultConfig(xOpts.autoHide, autoHide)
158
+ },
159
+ computeYAutoHide () {
160
+ const $xeScrollbar = this
161
+ const props = $xeScrollbar
162
+
163
+ const { autoHide } = props
164
+ const yOpts = ($xeScrollbar as any).computeYOpts as VxeScrollbarPropTypes.YConfig
165
+ return getDefaultConfig(yOpts.autoHide, autoHide)
166
+ },
124
167
  computeWrapperClss () {
125
168
  const $xeScrollbar = this
126
169
  const props = $xeScrollbar
@@ -128,22 +171,24 @@ export default /* define-vxe-component start */ defineVxeComponent({
128
171
 
129
172
  const { native, className, padding } = props
130
173
  const { yThumbHeight, xThumbWidth } = reactData
131
- const xOpts = ($xeScrollbar as any).computeXOpts as VxeScrollbarPropTypes.XConfig
132
- const yOpts = ($xeScrollbar as any).computeYOpts as VxeScrollbarPropTypes.YConfig
133
174
  const xToTop = ($xeScrollbar as any).computeXToTop as boolean
134
175
  const yToLeft = ($xeScrollbar as any).computeYToLeft as boolean
176
+ const xVisible = ($xeScrollbar as any).computeXVisible
177
+ const yVisible = ($xeScrollbar as any).computeYVisible
178
+ const xAutoHide = ($xeScrollbar as any).computeXAutoHide
179
+ const yAutoHide = ($xeScrollbar as any).computeYAutoHide
135
180
  return domUtils.buildClass([
136
181
  'vxe-scrollbar',
137
- `ov-x--${xOpts.visible || 'visible'}`,
138
- `ov-y--${yOpts.visible || 'visible'}`,
182
+ `ov-x--${xVisible === false ? 'hidden' : 'visible'}`,
183
+ `ov-y--${yVisible === false ? 'hidden' : 'visible'}`,
139
184
  `sx-pos--${xToTop ? 'top' : 'bottom'}`,
140
185
  `sy-pos--${yToLeft ? 'left' : 'right'}`,
141
186
  native ? 'is--native' : 'is--virtual',
142
187
  className
143
188
  ], {
144
189
  'is--padding': padding,
145
- 'ov-x--auto-hide': xOpts.autoHide,
146
- 'ov-y--auto-hide': yOpts.autoHide,
190
+ 'ov-x--auto-hide': xAutoHide,
191
+ 'ov-y--auto-hide': yAutoHide,
147
192
  'overflow-y': yThumbHeight,
148
193
  'overflow-x': xThumbWidth
149
194
  })
@@ -540,13 +585,13 @@ export default /* define-vxe-component start */ defineVxeComponent({
540
585
  const props = $xeScrollbar
541
586
  const slots = $xeScrollbar.$scopedSlots
542
587
 
543
- const { id, native, loading, viewAttrs } = props
588
+ const { id, native, loading, viewId, viewAttrs } = props
544
589
  const wrapperStyle = $xeScrollbar.computeWrapperStyle
545
590
  const wrapperClss = $xeScrollbar.computeWrapperClss
546
591
  const viewClss = $xeScrollbar.computeViewClss
547
592
  const viewInnerClss = $xeScrollbar.computeViewInnerClss
548
- const xOpts = $xeScrollbar.computeXOpts
549
- const yOpts = $xeScrollbar.computeYOpts
593
+ const xVisible = $xeScrollbar.computeXVisible
594
+ const yVisible = $xeScrollbar.computeYVisible
550
595
  const defaultSlot = slots.default
551
596
  return h('div', {
552
597
  ref: 'refElem',
@@ -559,7 +604,10 @@ export default /* define-vxe-component start */ defineVxeComponent({
559
604
  h('div', {
560
605
  ref: 'refViewElem',
561
606
  class: viewClss,
562
- attrs: viewAttrs,
607
+ attrs: {
608
+ id: viewId || null,
609
+ ...viewAttrs
610
+ },
563
611
  on: {
564
612
  scroll: $xeScrollbar.scrollEvent
565
613
  }
@@ -570,7 +618,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
570
618
  class: viewInnerClss
571
619
  }, defaultSlot ? defaultSlot({}) : [])
572
620
  ]),
573
- native || xOpts.visible === 'hidden'
621
+ native || xVisible === false
574
622
  ? renderEmptyElement($xeScrollbar)
575
623
  : h('div', {
576
624
  ref: 'refTrackXElem',
@@ -591,7 +639,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
591
639
  }
592
640
  })
593
641
  ]),
594
- native || yOpts.visible === 'hidden'
642
+ native || yVisible === false
595
643
  ? renderEmptyElement($xeScrollbar)
596
644
  : h('div', {
597
645
  ref: 'refTrackYElem',
@@ -662,6 +710,20 @@ export default /* define-vxe-component start */ defineVxeComponent({
662
710
 
663
711
  $xeScrollbar.reFlag++
664
712
  },
713
+ computeXVisible () {
714
+ const $xeScrollbar = this
715
+
716
+ $xeScrollbar.$nextTick(() => {
717
+ $xeScrollbar.reFlag++
718
+ })
719
+ },
720
+ computeYVisible () {
721
+ const $xeScrollbar = this
722
+
723
+ $xeScrollbar.$nextTick(() => {
724
+ $xeScrollbar.reFlag++
725
+ })
726
+ },
665
727
  reFlag () {
666
728
  const $xeScrollbar = this
667
729
 
@@ -193,6 +193,24 @@ export default /* define-vxe-component start */ defineVxeComponent({
193
193
  const props = $xeTabs
194
194
 
195
195
  return Object.assign({}, getConfig().tabs.scrollbarConfig, props.scrollbarConfig)
196
+ },
197
+ computeScrollbarProps () {
198
+ const $xeTabs = this
199
+
200
+ const scrollbarOpts = $xeTabs.computeScrollbarOpts as VxeTabsPropTypes.ScrollbarConfig
201
+ const { viewClassName, viewInnerClassName } = scrollbarOpts
202
+ return {
203
+ width: scrollbarOpts.width,
204
+ height: scrollbarOpts.height,
205
+ autoHide: scrollbarOpts.autoHide,
206
+ visible: scrollbarOpts.visible,
207
+ xConfig: scrollbarOpts.xConfig,
208
+ yConfig: scrollbarOpts.yConfig,
209
+ className: scrollbarOpts.className,
210
+ viewAttrs: scrollbarOpts.viewAttrs,
211
+ viewClassName: 'vxe-tabs-pane--scrollbar-item-view' + (viewClassName ? (' ' + viewClassName) : ''),
212
+ viewInnerClassName: 'vxe-tabs-pane--scrollbar-item-inner' + (viewClassName ? (' ' + viewInnerClassName) : '')
213
+ }
196
214
  }
197
215
  },
198
216
  methods: {
@@ -840,8 +858,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
840
858
  const { initNames, activeName } = reactData
841
859
  const { name, slots } = item
842
860
  const defaultSlot = slots ? slots.default : null
843
- const scrollbarOpts = $xeTabs.computeScrollbarOpts
844
- const { viewClassName, viewInnerClassName } = scrollbarOpts
861
+ const scrollbarProps = $xeTabs.computeScrollbarProps
845
862
  if (name && initNames.includes(name)) {
846
863
  return useScrollbar
847
864
  ? h(VxeScrollbarComponent, {
@@ -849,11 +866,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
849
866
  class: ['vxe-tabs-pane--scrollbar-item', {
850
867
  'is--visible': activeName === name
851
868
  }],
852
- props: {
853
- ...scrollbarOpts,
854
- viewClassName: 'vxe-tabs-pane--scrollbar-item-view' + (viewClassName ? (' ' + viewClassName) : ''),
855
- viewInnerClassName: 'vxe-tabs-pane--scrollbar-item-inner' + (viewClassName ? (' ' + viewInnerClassName) : '')
856
- },
869
+ props: scrollbarProps,
857
870
  scopedSlots: {
858
871
  default: () => defaultSlot ? $xeTabs.callSlot(defaultSlot, { name }, h) : []
859
872
  }