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
@@ -3,7 +3,7 @@ import XEUtils from 'xe-utils';
3
3
  import { VxeUI, getConfig, getIcon, getI18n, domUtils, menus, globalEvents, globalResize, createEvent, globalMixins, renderEmptyElement } from '../../ui';
4
4
  import { crossListDragRowGlobal, getCrossListDragRowInfo } from './store';
5
5
  import { addClass, getTpImg, hasClass, isScale, removeClass, toCssUnit } from '../../ui/src/dom';
6
- import { isEnableConf, getText, enModelValue, deModelValue } from '../../ui/src/utils';
6
+ import { isEnableConf, getText, enModelValue, deModelValue, getDefaultConfig } from '../../ui/src/utils';
7
7
  import { getSlotVNs } from '../../ui/src/vn';
8
8
  import { createComponentLog } from '../../ui/src/log';
9
9
  import { moveRowAnimateToTb, clearRowAnimate } from '../../ui/src/anime';
@@ -185,17 +185,18 @@ export default {
185
185
  computeWrapperStyles() {
186
186
  const $xeList = this;
187
187
  const rowHeight = $xeList.computeRowHeight;
188
+ const scrollbarOpts = $xeList.computeScrollbarOpts;
188
189
  const scrollbarXOpts = $xeList.computeScrollbarXOpts;
189
190
  const scrollbarYOpts = $xeList.computeScrollbarYOpts;
191
+ const barWidth = getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), getConfig().scrollbar.width);
192
+ const barHeight = getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), getConfig().scrollbar.height);
190
193
  const stys = {};
191
194
  if (rowHeight) {
192
195
  stys['--vxe-ui-list-row-height'] = toCssUnit(rowHeight);
193
196
  }
194
- if (scrollbarYOpts.width) {
195
- stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(scrollbarYOpts.width);
196
- }
197
- if (scrollbarXOpts.height) {
198
- stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(scrollbarXOpts.height);
197
+ if (barWidth || barHeight) {
198
+ stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
199
+ stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
199
200
  }
200
201
  return stys;
201
202
  },
@@ -230,26 +231,52 @@ export default {
230
231
  const scrollbarOpts = $xeList.computeScrollbarOpts;
231
232
  return Object.assign({}, getConfig().scrollbar.yConfig, scrollbarOpts.yConfig);
232
233
  },
234
+ computeScrollXVisible() {
235
+ const $xeList = this;
236
+ const scrollbarOpts = $xeList.computeScrollbarOpts;
237
+ const scrollbarXOpts = $xeList.computeScrollbarXOpts;
238
+ return getDefaultConfig(scrollbarXOpts.visible, scrollbarOpts.visible);
239
+ },
240
+ computeScrollYVisible() {
241
+ const $xeList = this;
242
+ const scrollbarOpts = $xeList.computeScrollbarOpts;
243
+ const scrollbarYOpts = $xeList.computeScrollbarYOpts;
244
+ return getDefaultConfig(scrollbarYOpts.visible, scrollbarOpts.visible);
245
+ },
246
+ computeScrollXAutoHide() {
247
+ const $xeList = this;
248
+ const scrollbarOpts = $xeList.computeScrollbarOpts;
249
+ const scrollbarXOpts = $xeList.computeScrollbarXOpts;
250
+ return getDefaultConfig(getDefaultConfig(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
251
+ },
252
+ computeScrollYAutoHide() {
253
+ const $xeList = this;
254
+ const scrollbarOpts = $xeList.computeScrollbarOpts;
255
+ const scrollbarYOpts = $xeList.computeScrollbarYOpts;
256
+ return getDefaultConfig(getDefaultConfig(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
257
+ },
233
258
  computeScrollbarWrapperClss() {
234
259
  const $xeList = this;
235
260
  const reactData = $xeList.reactData;
236
261
  const scrollbarOpts = $xeList.computeScrollbarOpts;
237
262
  const { padding } = scrollbarOpts;
238
263
  const { yThumbHeight, xThumbWidth } = reactData;
239
- const scrollbarXOpts = $xeList.computeScrollbarXOpts;
240
- const scrollbarYOpts = $xeList.computeScrollbarYOpts;
241
264
  const scrollbarXToTop = $xeList.computeScrollbarXToTop;
242
265
  const scrollbarYToLeft = $xeList.computeScrollbarYToLeft;
266
+ const scrollXVisible = $xeList.computeScrollXVisible;
267
+ const scrollYVisible = $xeList.computeScrollYVisible;
268
+ const scrollXAutoHide = $xeList.computeScrollXAutoHide;
269
+ const scrollYAutoHide = $xeList.computeScrollYAutoHide;
243
270
  return domUtils.buildClass([
244
271
  'vxe-scrollbar is--virtual',
245
- `ov-x--${scrollbarXOpts.visible || 'visible'}`,
246
- `ov-y--${scrollbarYOpts.visible || 'visible'}`,
272
+ `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}`,
273
+ `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}`,
247
274
  `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`,
248
275
  `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`
249
276
  ], {
250
277
  'is--padding': padding,
251
- 'ov-x--auto-hide': scrollbarXOpts.autoHide,
252
- 'ov-y--auto-hide': scrollbarYOpts.autoHide,
278
+ 'ov-x--auto-hide': scrollXAutoHide,
279
+ 'ov-y--auto-hide': scrollYAutoHide,
253
280
  'overflow-y': yThumbHeight,
254
281
  'overflow-x': xThumbWidth
255
282
  });
@@ -2315,7 +2342,7 @@ export default {
2315
2342
  const reactData = $xeList.reactData;
2316
2343
  const slots = $xeList.$scopedSlots;
2317
2344
  const { showCheckbox, className, loading, useScrollbar } = props;
2318
- const { bodyHeight, topSpaceHeight, rowList, isAllChecked, isAllIndeterminate } = reactData;
2345
+ const { bodyHeight, topSpaceHeight, rowList, isAllChecked, isAllIndeterminate, xThumbWidth, yThumbHeight } = reactData;
2319
2346
  const defaultSlot = slots.default;
2320
2347
  const headerSlot = slots.header;
2321
2348
  const footerSlot = slots.footer;
@@ -2329,8 +2356,13 @@ export default {
2329
2356
  const rowOpts = $xeList.computeRowOpts;
2330
2357
  const { isHover, padding } = rowOpts;
2331
2358
  const isDrag = $xeList.computeIsDrag;
2332
- const scrollbarXOpts = $xeList.computeScrollbarXOpts;
2333
- const scrollbarYOpts = $xeList.computeScrollbarYOpts;
2359
+ const scrollbarOpts = $xeList.computeScrollbarOpts;
2360
+ const scrollXVisible = $xeList.computeScrollXVisible;
2361
+ const scrollYVisible = $xeList.computeScrollYVisible;
2362
+ const scrollbarXToTop = $xeList.computeScrollbarXToTop;
2363
+ const scrollbarYToLeft = $xeList.computeScrollbarYToLeft;
2364
+ const scrollXAutoHide = $xeList.computeScrollXAutoHide;
2365
+ const scrollYAutoHide = $xeList.computeScrollYAutoHide;
2334
2366
  const scrollbarWrapperClss = $xeList.computeScrollbarWrapperClss;
2335
2367
  const showDefChekboxHead = showCheckbox && checkboxOpts.showHeader !== false;
2336
2368
  const leOns = {};
@@ -2339,14 +2371,25 @@ export default {
2339
2371
  }
2340
2372
  return h('div', {
2341
2373
  ref: 'refElem',
2342
- class: ['vxe-list', className ? (XEUtils.isFunction(className) ? className({ $list: $xeList }) : className) : '', {
2374
+ class: [
2375
+ 'vxe-list',
2376
+ useScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '',
2377
+ useScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '',
2378
+ useScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '',
2379
+ useScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '',
2380
+ className ? (XEUtils.isFunction(className) ? className({ $list: $xeList }) : className) : '',
2381
+ {
2343
2382
  [`size--${vSize}`]: vSize,
2344
2383
  'is--virtual-scrollbar': useScrollbar,
2345
- 'ov-x--auto-hide': useScrollbar && scrollbarXOpts.autoHide,
2346
- 'ov-y--auto-hide': useScrollbar && scrollbarYOpts.autoHide,
2384
+ 'ov-padding': useScrollbar && scrollbarOpts.padding,
2385
+ 'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
2386
+ 'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
2387
+ 'overflow-y': yThumbHeight,
2388
+ 'overflow-x': xThumbWidth,
2347
2389
  'is--drag': isDrag,
2348
2390
  'is--loading': loading
2349
- }],
2391
+ }
2392
+ ],
2350
2393
  on: leOns,
2351
2394
  style: wrapperStyles
2352
2395
  }, [
@@ -2407,15 +2450,7 @@ export default {
2407
2450
  style: {
2408
2451
  marginTop: topSpaceHeight ? `${topSpaceHeight}px` : ''
2409
2452
  }
2410
- }, useScrollbar
2411
- ? (defaultSlot ? defaultSlot({ items: rowList, $list: $xeList }) : rowList.map((row, i) => $xeList.renderRow(h, row, i)))
2412
- : [
2413
- h('div', {
2414
- key: 'vi',
2415
- ref: 'refViewInnerElem',
2416
- class: 'vxe-scrollbar--view-inner'
2417
- }, defaultSlot ? defaultSlot({ items: rowList, $list: $xeList }) : rowList.map((row, i) => $xeList.renderRow(h, row, i)))
2418
- ])
2453
+ }, defaultSlot ? defaultSlot({ items: rowList, $list: $xeList }) : rowList.map((row, i) => $xeList.renderRow(h, row, i)))
2419
2454
  ]),
2420
2455
  footerSlot
2421
2456
  ? h('div', {
@@ -2430,7 +2465,7 @@ export default {
2430
2465
  ? h('div', {
2431
2466
  class: scrollbarWrapperClss
2432
2467
  }, [
2433
- scrollbarXOpts.visible === 'hidden'
2468
+ scrollXVisible === false
2434
2469
  ? renderEmptyElement($xeList)
2435
2470
  : h('div', {
2436
2471
  ref: 'refTrackXElem',
@@ -2451,7 +2486,7 @@ export default {
2451
2486
  }
2452
2487
  })
2453
2488
  ]),
2454
- scrollbarYOpts.visible === 'hidden'
2489
+ scrollYVisible === false
2455
2490
  ? renderEmptyElement($xeList)
2456
2491
  : h('div', {
2457
2492
  ref: 'refTrackYElem',
@@ -2508,13 +2543,29 @@ export default {
2508
2543
  const $xeList = this;
2509
2544
  $xeList.reFlag++;
2510
2545
  },
2546
+ useScrollbar() {
2547
+ const $xeList = this;
2548
+ $xeList.reFlag++;
2549
+ },
2511
2550
  computeRowHeight() {
2512
2551
  const $xeList = this;
2513
2552
  $xeList.reFlag++;
2514
2553
  },
2515
- reFlag() {
2554
+ computeScrollXVisible() {
2516
2555
  const $xeList = this;
2517
2556
  $xeList.$nextTick(() => {
2557
+ $xeList.reFlag++;
2558
+ });
2559
+ },
2560
+ computeScrollYVisible() {
2561
+ const $xeList = this;
2562
+ $xeList.$nextTick(() => {
2563
+ $xeList.reFlag++;
2564
+ });
2565
+ },
2566
+ reFlag() {
2567
+ const $xeList = this;
2568
+ $xeList.recalculate().then(() => {
2518
2569
  $xeList.recalculate();
2519
2570
  });
2520
2571
  },
@@ -2561,13 +2612,13 @@ export default {
2561
2612
  }
2562
2613
  if (useScrollbar || autoResize) {
2563
2614
  const el = $xeList.$refs.refElem;
2564
- const viewInnerEl = $xeList.$refs.refViewInnerElem;
2615
+ const viewInnerEl = $xeList.$refs.refVirtualBody;
2565
2616
  const resizeObserver = globalResize.create(() => {
2566
2617
  $xeList.reFlag++;
2567
2618
  });
2568
- resizeObserver.observe(el);
2569
- if (autoResize) {
2570
- if (el) {
2619
+ if (el) {
2620
+ resizeObserver.observe(el);
2621
+ if (autoResize) {
2571
2622
  resizeObserver.observe(el.parentElement);
2572
2623
  }
2573
2624
  }
package/es/list/style.css CHANGED
@@ -381,17 +381,24 @@
381
381
  vertical-align: middle;
382
382
  }
383
383
 
384
- .vxe-list > .vxe-scrollbar {
385
- position: unset;
384
+ .vxe-list.ov-padding.overflow-x.sx-pos--top {
385
+ padding-top: var(--vxe-ui-scrollbar-x-height);
386
386
  }
387
- .vxe-list.is--virtual-scrollbar > .vxe-list--virtual-wrapper {
388
- scrollbar-width: none;
389
- -ms-overflow-style: none;
387
+ .vxe-list.ov-padding.overflow-x.sx-pos--bottom {
388
+ padding-bottom: var(--vxe-ui-scrollbar-x-height);
390
389
  }
391
- .vxe-list.is--virtual-scrollbar > .vxe-list--virtual-wrapper::-webkit-scrollbar {
392
- display: none;
390
+ .vxe-list.ov-padding.overflow-y.sy-pos--left {
391
+ padding-left: var(--vxe-ui-scrollbar-y-width);
392
+ }
393
+ .vxe-list.ov-padding.overflow-y.sy-pos--right {
394
+ padding-right: var(--vxe-ui-scrollbar-y-width);
395
+ }
396
+ .vxe-list.ov-x--hidden > .vxe-list--virtual-wrapper {
397
+ overflow-x: hidden;
398
+ }
399
+ .vxe-list.ov-y--hidden > .vxe-list--virtual-wrapper {
400
+ overflow-y: hidden;
393
401
  }
394
-
395
402
  .vxe-list.is--virtual-scrollbar.ov-x--auto-hide:hover > .vxe-scrollbar > .vxe-scrollbar--track-x {
396
403
  opacity: 1;
397
404
  }
@@ -405,4 +412,14 @@
405
412
  .vxe-list.is--virtual-scrollbar.ov-y--auto-hide > .vxe-scrollbar > .vxe-scrollbar--track-y {
406
413
  opacity: 0;
407
414
  transition: opacity 0.8s ease-in-out;
415
+ }
416
+ .vxe-list > .vxe-scrollbar {
417
+ position: unset;
418
+ }
419
+ .vxe-list.is--virtual-scrollbar > .vxe-list--virtual-wrapper {
420
+ scrollbar-width: none;
421
+ -ms-overflow-style: none;
422
+ }
423
+ .vxe-list.is--virtual-scrollbar > .vxe-list--virtual-wrapper::-webkit-scrollbar {
424
+ display: none;
408
425
  }
@@ -1 +1 @@
1
- @charset "UTF-8";.vxe-list{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-default)}.vxe-list.size--medium{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-medium)}.vxe-list.size--small{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-small)}.vxe-list.size--mini{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-mini)}.vxe-list{position:relative;display:block;padding:0;font-size:var(--vxe-ui-list-current-font-size);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);direction:ltr}.vxe-list .vxe-list--virtual-wrapper{position:relative;overflow-x:auto;overflow-y:auto;outline:0}.vxe-list .vxe-list--y-space{width:0;float:left}.vxe-list .vxe-list--body,.vxe-list .vxe-list--virtual-wrapper{padding:0;margin:0;border:0;outline:0}.vxe-list--header-wrapper{display:flex;flex-direction:row;align-items:center;min-height:var(--vxe-ui-list-row-height)}.vxe-list--header-left{display:flex;flex-direction:row;align-items:center;flex-shrink:0}.vxe-list--header-content{flex-grow:1;overflow:auto}.vxe-list--body.trigger--row>.vxe-list--row:not(.is--drag-disabled):active{cursor:grabbing}.vxe-list--body.is--padding>.vxe-list--row{padding:0 var(--vxe-ui-list-current-padding)}.vxe-list--body.checkbox--highlight .vxe-list--row.is-checkbox--checked{background-color:var(--vxe-ui-list-row-checkbox-checked-background-color)}.vxe-list--body.radio--highlight .vxe-list--row.is-radio--checked{background-color:var(--vxe-ui-list-row-radio-checked-background-color)}.vxe-list--body.row--hover .vxe-list--row:hover{background-color:var(--vxe-ui-list-row-hover-background-color)}.vxe-list--body.row--hover .vxe-list--row:hover.is--current{background-color:var(--vxe-ui-list-row-hover-current-background-color)}.vxe-list--body.row--hover.radio--highlight .vxe-list--row.is-radio--checked:hover{background-color:var(--vxe-ui-list-row-hover-radio-checked-background-color)}.vxe-list--body.row--hover.checkbox--highlight .vxe-list--row.is-checkbox--checked:hover{background-color:var(--vxe-ui-list-row-hover-checkbox-checked-background-color)}.vxe-list--row.is--current{background-color:var(--vxe-ui-list-row-current-background-color)}.vxe-list--virtual-wrapper{height:100px}.vxe-list--row{display:flex;flex-direction:row;align-items:center}.vxe-list--row-content,.vxe-list--row-drag,.vxe-list--row-extra{display:flex;flex-direction:row;align-items:center}.vxe-list--row-drag{flex-shrink:0;padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--row-content{flex-grow:1;height:var(--vxe-ui-list-row-height);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-list--row-extra{flex-shrink:0}.vxe-list--drag-handle:not(.is--disabled){cursor:grab}.vxe-list--drag-handle:not(.is--disabled):active{cursor:grabbing}.vxe-list--drag-handle:not(.is--disabled):hover{color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-handle.is--disabled{color:var(--vxe-ui-input-disabled-color);cursor:not-allowed}.vxe-list--row.row--drag-move{transition:transform .5s ease}.vxe-list--row.row--drag-origin{opacity:.3}.vxe-list--drag-row-line{display:none;position:absolute;top:0;left:0;z-index:11;pointer-events:none}.vxe-list--drag-row-line{width:100%;height:1px;border:2px solid transparent}.vxe-list--drag-row-line[drag-pos=top]{border-top-color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-row-line[drag-pos=bottom]{border-bottom-color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-row-line[drag-to-child=y]{border-top-color:transparent;border-bottom-color:transparent;border-left-color:var(--vxe-ui-status-success-color)}.vxe-list--drag-row-line.is--guides{background-color:var(--vxe-ui-list-drag-over-background-color)}.vxe-body--row-list-move{transition-property:transform;transition-duration:.35s}.vxe-list--drag-sort-tip{display:none;position:absolute;top:0;left:0;padding:.6em 1.4em;max-width:50%;min-width:100px;border-radius:var(--vxe-ui-border-radius);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;background-color:var(--vxe-ui-layout-background-color);box-shadow:0 0 10px 0 rgba(0,0,0,.2);z-index:33}.vxe-list--drag-sort-tip[drag-status=normal] .vxe-list--drag-sort-tip-normal-status{display:block}.vxe-list--drag-sort-tip[drag-status=sub] .vxe-list--drag-sort-tip-sub-status{display:block}.vxe-list--drag-sort-tip[drag-status=disabled] .vxe-list--drag-sort-tip-disabled-status{display:block}.vxe-list--drag-sort-tip-wrapper{display:flex;flex-direction:row;align-items:center}.vxe-list--drag-sort-tip-status{padding-right:.4em}.vxe-list--drag-sort-tip-disabled-status{display:none;flex-shrink:0;color:var(--vxe-ui-status-error-color)}.vxe-list--drag-sort-tip-normal-status,.vxe-list--drag-sort-tip-sub-status{display:none}.vxe-list--drag-sort-tip-content{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-list--checkbox-header{padding-right:var(--vxe-ui-list-current-padding);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-list--checkbox-header{cursor:pointer}.vxe-list--checkbox-header .vxe-checkbox--icon{font-size:1.22em;transition:all .2s ease-in-out}.vxe-list--checkbox-header .vxe-checkbox--icon{color:var(--vxe-ui-input-border-color);vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-list--checkbox-header.is--checked,.vxe-list--checkbox-header.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header.is--checked .vxe-checkbox--icon,.vxe-list--checkbox-header.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header.is--hidden{cursor:default}.vxe-list--checkbox-header.is--readonly{cursor:auto}.vxe-list--checkbox-header.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--checkbox-header.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--checkbox-header .vxe-checkbox--label{padding-left:.4em;vertical-align:middle}.vxe-list--checkbox-option{padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--checkbox-option{cursor:pointer}.vxe-list--checkbox-option .vxe-checkbox--icon{font-size:1.22em;transition:all .2s ease-in-out}.vxe-list--checkbox-option .vxe-checkbox--icon{color:var(--vxe-ui-input-border-color);vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-list--checkbox-option.is--checked,.vxe-list--checkbox-option.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option.is--checked .vxe-checkbox--icon,.vxe-list--checkbox-option.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option.is--hidden{cursor:default}.vxe-list--checkbox-option.is--readonly{cursor:auto}.vxe-list--checkbox-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--checkbox-option.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--checkbox-option .vxe-checkbox--label{padding-left:.4em;vertical-align:middle}.vxe-list--radio-option{padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--radio-option{cursor:pointer}.vxe-list--radio-option .vxe-radio--icon{font-size:1.26em;transition:all .2s ease-in-out}.vxe-list--radio-option .vxe-radio--icon{color:var(--vxe-ui-input-border-color);border-radius:50%;vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-list--radio-option.is--checked{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option.is--checked .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option:not(.is--disabled):hover .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option.is--readonly{cursor:auto}.vxe-list--radio-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--radio-option.is--disabled .vxe-radio--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--radio-option .vxe-radio--label{padding-left:.4em;vertical-align:middle}.vxe-list>.vxe-scrollbar{position:unset}.vxe-list.is--virtual-scrollbar>.vxe-list--virtual-wrapper{scrollbar-width:none;-ms-overflow-style:none}.vxe-list.is--virtual-scrollbar>.vxe-list--virtual-wrapper::-webkit-scrollbar{display:none}.vxe-list.is--virtual-scrollbar.ov-x--auto-hide:hover>.vxe-scrollbar>.vxe-scrollbar--track-x{opacity:1}.vxe-list.is--virtual-scrollbar.ov-x--auto-hide>.vxe-scrollbar>.vxe-scrollbar--track-x{opacity:0;transition:opacity .8s ease-in-out}.vxe-list.is--virtual-scrollbar.ov-y--auto-hide:hover>.vxe-scrollbar>.vxe-scrollbar--track-y{opacity:1}.vxe-list.is--virtual-scrollbar.ov-y--auto-hide>.vxe-scrollbar>.vxe-scrollbar--track-y{opacity:0;transition:opacity .8s ease-in-out}
1
+ @charset "UTF-8";.vxe-list{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-default)}.vxe-list.size--medium{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-medium)}.vxe-list.size--small{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-small)}.vxe-list.size--mini{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-mini)}.vxe-list{position:relative;display:block;padding:0;font-size:var(--vxe-ui-list-current-font-size);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);direction:ltr}.vxe-list .vxe-list--virtual-wrapper{position:relative;overflow-x:auto;overflow-y:auto;outline:0}.vxe-list .vxe-list--y-space{width:0;float:left}.vxe-list .vxe-list--body,.vxe-list .vxe-list--virtual-wrapper{padding:0;margin:0;border:0;outline:0}.vxe-list--header-wrapper{display:flex;flex-direction:row;align-items:center;min-height:var(--vxe-ui-list-row-height)}.vxe-list--header-left{display:flex;flex-direction:row;align-items:center;flex-shrink:0}.vxe-list--header-content{flex-grow:1;overflow:auto}.vxe-list--body.trigger--row>.vxe-list--row:not(.is--drag-disabled):active{cursor:grabbing}.vxe-list--body.is--padding>.vxe-list--row{padding:0 var(--vxe-ui-list-current-padding)}.vxe-list--body.checkbox--highlight .vxe-list--row.is-checkbox--checked{background-color:var(--vxe-ui-list-row-checkbox-checked-background-color)}.vxe-list--body.radio--highlight .vxe-list--row.is-radio--checked{background-color:var(--vxe-ui-list-row-radio-checked-background-color)}.vxe-list--body.row--hover .vxe-list--row:hover{background-color:var(--vxe-ui-list-row-hover-background-color)}.vxe-list--body.row--hover .vxe-list--row:hover.is--current{background-color:var(--vxe-ui-list-row-hover-current-background-color)}.vxe-list--body.row--hover.radio--highlight .vxe-list--row.is-radio--checked:hover{background-color:var(--vxe-ui-list-row-hover-radio-checked-background-color)}.vxe-list--body.row--hover.checkbox--highlight .vxe-list--row.is-checkbox--checked:hover{background-color:var(--vxe-ui-list-row-hover-checkbox-checked-background-color)}.vxe-list--row.is--current{background-color:var(--vxe-ui-list-row-current-background-color)}.vxe-list--virtual-wrapper{height:100px}.vxe-list--row{display:flex;flex-direction:row;align-items:center}.vxe-list--row-content,.vxe-list--row-drag,.vxe-list--row-extra{display:flex;flex-direction:row;align-items:center}.vxe-list--row-drag{flex-shrink:0;padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--row-content{flex-grow:1;height:var(--vxe-ui-list-row-height);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-list--row-extra{flex-shrink:0}.vxe-list--drag-handle:not(.is--disabled){cursor:grab}.vxe-list--drag-handle:not(.is--disabled):active{cursor:grabbing}.vxe-list--drag-handle:not(.is--disabled):hover{color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-handle.is--disabled{color:var(--vxe-ui-input-disabled-color);cursor:not-allowed}.vxe-list--row.row--drag-move{transition:transform .5s ease}.vxe-list--row.row--drag-origin{opacity:.3}.vxe-list--drag-row-line{display:none;position:absolute;top:0;left:0;z-index:11;pointer-events:none}.vxe-list--drag-row-line{width:100%;height:1px;border:2px solid transparent}.vxe-list--drag-row-line[drag-pos=top]{border-top-color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-row-line[drag-pos=bottom]{border-bottom-color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-row-line[drag-to-child=y]{border-top-color:transparent;border-bottom-color:transparent;border-left-color:var(--vxe-ui-status-success-color)}.vxe-list--drag-row-line.is--guides{background-color:var(--vxe-ui-list-drag-over-background-color)}.vxe-body--row-list-move{transition-property:transform;transition-duration:.35s}.vxe-list--drag-sort-tip{display:none;position:absolute;top:0;left:0;padding:.6em 1.4em;max-width:50%;min-width:100px;border-radius:var(--vxe-ui-border-radius);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;background-color:var(--vxe-ui-layout-background-color);box-shadow:0 0 10px 0 rgba(0,0,0,.2);z-index:33}.vxe-list--drag-sort-tip[drag-status=normal] .vxe-list--drag-sort-tip-normal-status{display:block}.vxe-list--drag-sort-tip[drag-status=sub] .vxe-list--drag-sort-tip-sub-status{display:block}.vxe-list--drag-sort-tip[drag-status=disabled] .vxe-list--drag-sort-tip-disabled-status{display:block}.vxe-list--drag-sort-tip-wrapper{display:flex;flex-direction:row;align-items:center}.vxe-list--drag-sort-tip-status{padding-right:.4em}.vxe-list--drag-sort-tip-disabled-status{display:none;flex-shrink:0;color:var(--vxe-ui-status-error-color)}.vxe-list--drag-sort-tip-normal-status,.vxe-list--drag-sort-tip-sub-status{display:none}.vxe-list--drag-sort-tip-content{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-list--checkbox-header{padding-right:var(--vxe-ui-list-current-padding);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-list--checkbox-header{cursor:pointer}.vxe-list--checkbox-header .vxe-checkbox--icon{font-size:1.22em;transition:all .2s ease-in-out}.vxe-list--checkbox-header .vxe-checkbox--icon{color:var(--vxe-ui-input-border-color);vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-list--checkbox-header.is--checked,.vxe-list--checkbox-header.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header.is--checked .vxe-checkbox--icon,.vxe-list--checkbox-header.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header.is--hidden{cursor:default}.vxe-list--checkbox-header.is--readonly{cursor:auto}.vxe-list--checkbox-header.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--checkbox-header.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--checkbox-header .vxe-checkbox--label{padding-left:.4em;vertical-align:middle}.vxe-list--checkbox-option{padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--checkbox-option{cursor:pointer}.vxe-list--checkbox-option .vxe-checkbox--icon{font-size:1.22em;transition:all .2s ease-in-out}.vxe-list--checkbox-option .vxe-checkbox--icon{color:var(--vxe-ui-input-border-color);vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-list--checkbox-option.is--checked,.vxe-list--checkbox-option.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option.is--checked .vxe-checkbox--icon,.vxe-list--checkbox-option.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option.is--hidden{cursor:default}.vxe-list--checkbox-option.is--readonly{cursor:auto}.vxe-list--checkbox-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--checkbox-option.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--checkbox-option .vxe-checkbox--label{padding-left:.4em;vertical-align:middle}.vxe-list--radio-option{padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--radio-option{cursor:pointer}.vxe-list--radio-option .vxe-radio--icon{font-size:1.26em;transition:all .2s ease-in-out}.vxe-list--radio-option .vxe-radio--icon{color:var(--vxe-ui-input-border-color);border-radius:50%;vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-list--radio-option.is--checked{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option.is--checked .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option:not(.is--disabled):hover .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option.is--readonly{cursor:auto}.vxe-list--radio-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--radio-option.is--disabled .vxe-radio--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--radio-option .vxe-radio--label{padding-left:.4em;vertical-align:middle}.vxe-list.ov-padding.overflow-x.sx-pos--top{padding-top:var(--vxe-ui-scrollbar-x-height)}.vxe-list.ov-padding.overflow-x.sx-pos--bottom{padding-bottom:var(--vxe-ui-scrollbar-x-height)}.vxe-list.ov-padding.overflow-y.sy-pos--left{padding-left:var(--vxe-ui-scrollbar-y-width)}.vxe-list.ov-padding.overflow-y.sy-pos--right{padding-right:var(--vxe-ui-scrollbar-y-width)}.vxe-list.ov-x--hidden>.vxe-list--virtual-wrapper{overflow-x:hidden}.vxe-list.ov-y--hidden>.vxe-list--virtual-wrapper{overflow-y:hidden}.vxe-list.is--virtual-scrollbar.ov-x--auto-hide:hover>.vxe-scrollbar>.vxe-scrollbar--track-x{opacity:1}.vxe-list.is--virtual-scrollbar.ov-x--auto-hide>.vxe-scrollbar>.vxe-scrollbar--track-x{opacity:0;transition:opacity .8s ease-in-out}.vxe-list.is--virtual-scrollbar.ov-y--auto-hide:hover>.vxe-scrollbar>.vxe-scrollbar--track-y{opacity:1}.vxe-list.is--virtual-scrollbar.ov-y--auto-hide>.vxe-scrollbar>.vxe-scrollbar--track-y{opacity:0;transition:opacity .8s ease-in-out}.vxe-list>.vxe-scrollbar{position:unset}.vxe-list.is--virtual-scrollbar>.vxe-list--virtual-wrapper{scrollbar-width:none;-ms-overflow-style:none}.vxe-list.is--virtual-scrollbar>.vxe-list--virtual-wrapper::-webkit-scrollbar{display:none}
@@ -3,6 +3,7 @@ import XEUtils from 'xe-utils';
3
3
  import { VxeUI } from '../../ui';
4
4
  import { toCssUnit } from '../../ui/src/dom';
5
5
  import { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } from './util';
6
+ import { getDefaultConfig } from '../../ui/src/utils';
6
7
  import VxeLoadingComponent from '../../loading';
7
8
  const { getConfig, createEvent, domUtils, globalResize, globalEvents, renderEmptyElement } = VxeUI;
8
9
  function createReactData() {
@@ -26,6 +27,7 @@ export default {
26
27
  name: 'VxeScrollbar',
27
28
  props: {
28
29
  id: [String, Number],
30
+ viewId: [String, Number],
29
31
  width: [String, Number],
30
32
  height: [String, Number],
31
33
  minWidth: [String, Number],
@@ -41,6 +43,14 @@ export default {
41
43
  type: Boolean,
42
44
  default: () => getConfig().scrollbar.padding
43
45
  },
46
+ autoHide: {
47
+ type: Boolean,
48
+ default: () => getConfig().scrollbar.autoHide
49
+ },
50
+ visible: {
51
+ type: Boolean,
52
+ default: () => getConfig().scrollbar.visible
53
+ },
44
54
  xConfig: Object,
45
55
  yConfig: Object,
46
56
  className: {
@@ -78,6 +88,8 @@ export default {
78
88
  const { width, height, minWidth, minHeight, maxWidth, maxHeight } = props;
79
89
  const xOpts = $xeScrollbar.computeXOpts;
80
90
  const yOpts = $xeScrollbar.computeYOpts;
91
+ const barWidth = yOpts.width;
92
+ const barHeight = xOpts.height;
81
93
  const stys = {};
82
94
  if (width) {
83
95
  stys.width = toCssUnit(width);
@@ -97,36 +109,64 @@ export default {
97
109
  if (maxHeight) {
98
110
  stys.maxHeight = toCssUnit(maxHeight);
99
111
  }
100
- if (yOpts.width) {
101
- stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(yOpts.width);
102
- }
103
- if (xOpts.height) {
104
- stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(xOpts.height);
112
+ if (barWidth || barHeight) {
113
+ stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
114
+ stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
105
115
  }
106
116
  return stys;
107
117
  },
118
+ computeXVisible() {
119
+ const $xeScrollbar = this;
120
+ const props = $xeScrollbar;
121
+ const { visible } = props;
122
+ const xOpts = $xeScrollbar.computeXOpts;
123
+ return getDefaultConfig(xOpts.visible, visible);
124
+ },
125
+ computeYVisible() {
126
+ const $xeScrollbar = this;
127
+ const props = $xeScrollbar;
128
+ const { visible } = props;
129
+ const yOpts = $xeScrollbar.computeYOpts;
130
+ return getDefaultConfig(yOpts.visible, visible);
131
+ },
132
+ computeXAutoHide() {
133
+ const $xeScrollbar = this;
134
+ const props = $xeScrollbar;
135
+ const { autoHide } = props;
136
+ const xOpts = $xeScrollbar.computeXOpts;
137
+ return getDefaultConfig(xOpts.autoHide, autoHide);
138
+ },
139
+ computeYAutoHide() {
140
+ const $xeScrollbar = this;
141
+ const props = $xeScrollbar;
142
+ const { autoHide } = props;
143
+ const yOpts = $xeScrollbar.computeYOpts;
144
+ return getDefaultConfig(yOpts.autoHide, autoHide);
145
+ },
108
146
  computeWrapperClss() {
109
147
  const $xeScrollbar = this;
110
148
  const props = $xeScrollbar;
111
149
  const reactData = $xeScrollbar.reactData;
112
150
  const { native, className, padding } = props;
113
151
  const { yThumbHeight, xThumbWidth } = reactData;
114
- const xOpts = $xeScrollbar.computeXOpts;
115
- const yOpts = $xeScrollbar.computeYOpts;
116
152
  const xToTop = $xeScrollbar.computeXToTop;
117
153
  const yToLeft = $xeScrollbar.computeYToLeft;
154
+ const xVisible = $xeScrollbar.computeXVisible;
155
+ const yVisible = $xeScrollbar.computeYVisible;
156
+ const xAutoHide = $xeScrollbar.computeXAutoHide;
157
+ const yAutoHide = $xeScrollbar.computeYAutoHide;
118
158
  return domUtils.buildClass([
119
159
  'vxe-scrollbar',
120
- `ov-x--${xOpts.visible || 'visible'}`,
121
- `ov-y--${yOpts.visible || 'visible'}`,
160
+ `ov-x--${xVisible === false ? 'hidden' : 'visible'}`,
161
+ `ov-y--${yVisible === false ? 'hidden' : 'visible'}`,
122
162
  `sx-pos--${xToTop ? 'top' : 'bottom'}`,
123
163
  `sy-pos--${yToLeft ? 'left' : 'right'}`,
124
164
  native ? 'is--native' : 'is--virtual',
125
165
  className
126
166
  ], {
127
167
  'is--padding': padding,
128
- 'ov-x--auto-hide': xOpts.autoHide,
129
- 'ov-y--auto-hide': yOpts.autoHide,
168
+ 'ov-x--auto-hide': xAutoHide,
169
+ 'ov-y--auto-hide': yAutoHide,
130
170
  'overflow-y': yThumbHeight,
131
171
  'overflow-x': xThumbWidth
132
172
  });
@@ -496,13 +536,13 @@ export default {
496
536
  const $xeScrollbar = this;
497
537
  const props = $xeScrollbar;
498
538
  const slots = $xeScrollbar.$scopedSlots;
499
- const { id, native, loading, viewAttrs } = props;
539
+ const { id, native, loading, viewId, viewAttrs } = props;
500
540
  const wrapperStyle = $xeScrollbar.computeWrapperStyle;
501
541
  const wrapperClss = $xeScrollbar.computeWrapperClss;
502
542
  const viewClss = $xeScrollbar.computeViewClss;
503
543
  const viewInnerClss = $xeScrollbar.computeViewInnerClss;
504
- const xOpts = $xeScrollbar.computeXOpts;
505
- const yOpts = $xeScrollbar.computeYOpts;
544
+ const xVisible = $xeScrollbar.computeXVisible;
545
+ const yVisible = $xeScrollbar.computeYVisible;
506
546
  const defaultSlot = slots.default;
507
547
  return h('div', {
508
548
  ref: 'refElem',
@@ -515,7 +555,7 @@ export default {
515
555
  h('div', {
516
556
  ref: 'refViewElem',
517
557
  class: viewClss,
518
- attrs: viewAttrs,
558
+ attrs: Object.assign({ id: viewId || null }, viewAttrs),
519
559
  on: {
520
560
  scroll: $xeScrollbar.scrollEvent
521
561
  }
@@ -526,7 +566,7 @@ export default {
526
566
  class: viewInnerClss
527
567
  }, defaultSlot ? defaultSlot({}) : [])
528
568
  ]),
529
- native || xOpts.visible === 'hidden'
569
+ native || xVisible === false
530
570
  ? renderEmptyElement($xeScrollbar)
531
571
  : h('div', {
532
572
  ref: 'refTrackXElem',
@@ -547,7 +587,7 @@ export default {
547
587
  }
548
588
  })
549
589
  ]),
550
- native || yOpts.visible === 'hidden'
590
+ native || yVisible === false
551
591
  ? renderEmptyElement($xeScrollbar)
552
592
  : h('div', {
553
593
  ref: 'refTrackYElem',
@@ -610,6 +650,18 @@ export default {
610
650
  const $xeScrollbar = this;
611
651
  $xeScrollbar.reFlag++;
612
652
  },
653
+ computeXVisible() {
654
+ const $xeScrollbar = this;
655
+ $xeScrollbar.$nextTick(() => {
656
+ $xeScrollbar.reFlag++;
657
+ });
658
+ },
659
+ computeYVisible() {
660
+ const $xeScrollbar = this;
661
+ $xeScrollbar.$nextTick(() => {
662
+ $xeScrollbar.reFlag++;
663
+ });
664
+ },
613
665
  reFlag() {
614
666
  const $xeScrollbar = this;
615
667
  $xeScrollbar.recalculate().then(() => {