vxe-pc-ui 3.20.8 → 3.20.10

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 (141) hide show
  1. package/es/card/src/card.js +2 -1
  2. package/es/date-panel/src/date-panel.js +70 -39
  3. package/es/date-panel/style.css +22 -20
  4. package/es/date-panel/style.min.css +1 -1
  5. package/es/drawer/src/drawer.js +1 -0
  6. package/es/icon/style.css +1 -1
  7. package/es/icon-picker/src/icon-picker.js +11 -3
  8. package/es/icon-picker/style.css +9 -3
  9. package/es/icon-picker/style.min.css +1 -1
  10. package/es/layout-aside/src/layout-aside.js +2 -1
  11. package/es/layout-body/src/layout-body.js +2 -1
  12. package/es/layout-container/src/layout-container.js +9 -2
  13. package/es/list/src/list.js +80 -223
  14. package/es/menu/src/menu.js +1 -0
  15. package/es/modal/src/modal.js +1 -0
  16. package/es/scrollbar/src/scrollbar.js +32 -188
  17. package/es/select/src/select.js +273 -8
  18. package/es/select/style.css +44 -0
  19. package/es/select/style.min.css +1 -1
  20. package/es/style.css +1 -1
  21. package/es/style.min.css +1 -1
  22. package/es/tabs/src/tabs.js +2 -1
  23. package/es/tooltip/src/tooltip.js +7 -6
  24. package/es/tooltip/style.css +2 -0
  25. package/es/tooltip/style.min.css +1 -1
  26. package/es/tree/src/tree.js +85 -228
  27. package/es/ui/index.js +1 -1
  28. package/es/ui/src/log.js +1 -1
  29. package/es/vxe-date-panel/style.css +22 -20
  30. package/es/vxe-date-panel/style.min.css +1 -1
  31. package/es/vxe-icon-picker/style.css +9 -3
  32. package/es/vxe-icon-picker/style.min.css +1 -1
  33. package/es/vxe-select/style.css +44 -0
  34. package/es/vxe-select/style.min.css +1 -1
  35. package/es/vxe-tooltip/style.css +2 -0
  36. package/es/vxe-tooltip/style.min.css +1 -1
  37. package/lib/card/src/card.js +1 -1
  38. package/lib/card/src/card.min.js +1 -1
  39. package/lib/date-panel/src/date-panel.js +74 -43
  40. package/lib/date-panel/src/date-panel.min.js +1 -1
  41. package/lib/date-panel/style/style.css +22 -20
  42. package/lib/date-panel/style/style.min.css +1 -1
  43. package/lib/drawer/src/drawer.js +1 -1
  44. package/lib/drawer/src/drawer.min.js +1 -1
  45. package/lib/icon/style/style.css +1 -1
  46. package/lib/icon/style/style.min.css +1 -1
  47. package/lib/icon-picker/src/icon-picker.js +56 -38
  48. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  49. package/lib/icon-picker/style/style.css +9 -3
  50. package/lib/icon-picker/style/style.min.css +1 -1
  51. package/lib/index.umd.js +894 -816
  52. package/lib/index.umd.min.js +1 -1
  53. package/lib/layout-aside/src/layout-aside.js +1 -1
  54. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  55. package/lib/layout-body/src/layout-body.js +1 -1
  56. package/lib/layout-body/src/layout-body.min.js +1 -1
  57. package/lib/layout-container/src/layout-container.js +13 -3
  58. package/lib/layout-container/src/layout-container.min.js +1 -1
  59. package/lib/list/src/list.js +72 -225
  60. package/lib/list/src/list.min.js +1 -1
  61. package/lib/menu/src/menu.js +1 -1
  62. package/lib/menu/src/menu.min.js +1 -1
  63. package/lib/modal/src/modal.js +1 -1
  64. package/lib/modal/src/modal.min.js +1 -1
  65. package/lib/scrollbar/src/scrollbar.js +29 -192
  66. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  67. package/lib/select/src/select.js +322 -69
  68. package/lib/select/src/select.min.js +1 -1
  69. package/lib/select/style/style.css +44 -0
  70. package/lib/select/style/style.min.css +1 -1
  71. package/lib/style.css +1 -1
  72. package/lib/style.min.css +1 -1
  73. package/lib/tabs/src/tabs.js +1 -1
  74. package/lib/tabs/src/tabs.min.js +1 -1
  75. package/lib/tooltip/src/tooltip.js +5 -6
  76. package/lib/tooltip/src/tooltip.min.js +1 -1
  77. package/lib/tooltip/style/style.css +2 -0
  78. package/lib/tooltip/style/style.min.css +1 -1
  79. package/lib/tree/src/tree.js +77 -229
  80. package/lib/tree/src/tree.min.js +1 -1
  81. package/lib/ui/index.js +1 -1
  82. package/lib/ui/index.min.js +1 -1
  83. package/lib/ui/src/log.js +1 -1
  84. package/lib/ui/src/log.min.js +1 -1
  85. package/lib/vxe-date-panel/style/style.css +22 -20
  86. package/lib/vxe-date-panel/style/style.min.css +1 -1
  87. package/lib/vxe-icon-picker/style/style.css +9 -3
  88. package/lib/vxe-icon-picker/style/style.min.css +1 -1
  89. package/lib/vxe-select/style/style.css +44 -0
  90. package/lib/vxe-select/style/style.min.css +1 -1
  91. package/lib/vxe-tooltip/style/style.css +2 -0
  92. package/lib/vxe-tooltip/style/style.min.css +1 -1
  93. package/package.json +2 -2
  94. package/packages/card/src/card.ts +4 -2
  95. package/packages/date-panel/src/date-panel.ts +70 -39
  96. package/packages/drawer/src/drawer.ts +4 -2
  97. package/packages/icon-picker/src/icon-picker.ts +12 -3
  98. package/packages/layout-aside/src/layout-aside.ts +4 -2
  99. package/packages/layout-body/src/layout-body.ts +4 -2
  100. package/packages/layout-container/src/layout-container.ts +13 -3
  101. package/packages/list/src/list.ts +85 -241
  102. package/packages/menu/src/menu.ts +3 -1
  103. package/packages/modal/src/modal.ts +3 -1
  104. package/packages/scrollbar/src/scrollbar.ts +32 -199
  105. package/packages/select/src/select.ts +304 -11
  106. package/packages/tabs/src/tabs.ts +4 -4
  107. package/packages/tooltip/src/tooltip.ts +10 -8
  108. package/packages/tree/src/tree.ts +90 -247
  109. package/styles/components/date-panel.scss +31 -29
  110. package/styles/components/icon-picker.scss +9 -3
  111. package/styles/components/select.scss +77 -0
  112. package/styles/components/tooltip.scss +1 -0
  113. package/types/components/card.d.ts +2 -2
  114. package/types/components/drawer.d.ts +2 -2
  115. package/types/components/gantt-module/gantt-view.d.ts +8 -17
  116. package/types/components/grid.d.ts +3 -2
  117. package/types/components/icon-picker.d.ts +21 -1
  118. package/types/components/layout-aside.d.ts +2 -2
  119. package/types/components/layout-body.d.ts +2 -2
  120. package/types/components/layout-container.d.ts +3 -1
  121. package/types/components/list.d.ts +6 -2
  122. package/types/components/menu.d.ts +2 -2
  123. package/types/components/modal.d.ts +2 -2
  124. package/types/components/scrollbar.d.ts +17 -14
  125. package/types/components/select.d.ts +28 -3
  126. package/types/components/table.d.ts +26 -22
  127. package/types/components/tabs.d.ts +2 -2
  128. package/types/components/tooltip.d.ts +2 -2
  129. package/types/components/tree.d.ts +8 -17
  130. /package/es/icon/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
  131. /package/es/icon/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
  132. /package/es/icon/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
  133. /package/es/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
  134. /package/es/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
  135. /package/es/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
  136. /package/lib/icon/style/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
  137. /package/lib/icon/style/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
  138. /package/lib/icon/style/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
  139. /package/lib/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
  140. /package/lib/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
  141. /package/lib/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
@@ -14,7 +14,8 @@ const scrollbarOffsetSize = 20;
14
14
  export default {
15
15
  name: 'VxeTabs',
16
16
  mixins: [
17
- globalMixins.sizeMixin
17
+ globalMixins.sizeMixin,
18
+ globalMixins.vScrollbarMixin
18
19
  ],
19
20
  props: {
20
21
  value: [String, Number, Boolean],
@@ -33,7 +33,8 @@ function createInternalData() {
33
33
  export default {
34
34
  name: 'VxeTooltip',
35
35
  mixins: [
36
- globalMixins.sizeMixin
36
+ globalMixins.sizeMixin,
37
+ globalMixins.vScrollbarMixin
37
38
  ],
38
39
  props: {
39
40
  value: Boolean,
@@ -265,8 +266,7 @@ export default {
265
266
  },
266
267
  updatePlacement() {
267
268
  const $xeTooltip = this;
268
- $xeTooltip.updateTipStyle();
269
- return $xeTooltip.$nextTick().then(() => {
269
+ return $xeTooltip.updateTipStyle().then(() => {
270
270
  return $xeTooltip.updateTipStyle();
271
271
  }).then(() => {
272
272
  return $xeTooltip.updateTipStyle();
@@ -460,8 +460,9 @@ export default {
460
460
  const props = $xeTooltip;
461
461
  const slots = $xeTooltip.$scopedSlots;
462
462
  const reactData = $xeTooltip.reactData;
463
- const { useHtml, theme, useScrollbar, useHTML } = props;
463
+ const { useHtml, theme, useHTML } = props;
464
464
  const { tipContent } = reactData;
465
+ const isVScrollbar = $xeTooltip.computeIsVScrollbar;
465
466
  const wrapperStyle = $xeTooltip.computeWrapperStyle;
466
467
  const contentSlot = slots.content;
467
468
  const contVNs = [];
@@ -483,7 +484,7 @@ export default {
483
484
  key: 'cd'
484
485
  }, `${tipContent}`));
485
486
  }
486
- if (useScrollbar) {
487
+ if (isVScrollbar) {
487
488
  return h(VxeScrollbarComponent, {
488
489
  key: 5,
489
490
  ref: 'contentScrollbar',
@@ -588,7 +589,7 @@ export default {
588
589
  const internalData = $xeTooltip.internalData;
589
590
  const $scrollbar = $xeTooltip.$refs.contentScrollbar;
590
591
  if ($scrollbar) {
591
- const viewEl = $scrollbar.getViewElem();
592
+ const viewEl = $scrollbar.getScrollViewElem();
592
593
  if (viewEl) {
593
594
  viewEl.addEventListener('wheel', $xeTooltip.wheelEvent, { passive: false });
594
595
  internalData.scrollbarViewEl = viewEl;
@@ -28,6 +28,8 @@
28
28
  .vxe-tooltip--wrapper .vxe-tooltip--content,
29
29
  .vxe-tooltip--wrapper .vxe-tooltip--scrollbar-content-view {
30
30
  padding: 8px 12px;
31
+ width: -moz-max-content;
32
+ width: max-content;
31
33
  max-width: 600px;
32
34
  max-height: 800px;
33
35
  white-space: pre-line;
@@ -1 +1 @@
1
- .vxe-tooltip--wrapper{display:none;position:absolute;top:-100%;left:-100%;font-size:12px;color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);pointer-events:none}.vxe-tooltip--wrapper.is--visible{display:inline-block}.vxe-tooltip--wrapper.is--arrow .vxe-tooltip--arrow{display:block}.vxe-tooltip--wrapper.is--enterable:after{content:"";position:absolute;left:0;width:100%;height:6px;background-color:transparent}.vxe-tooltip--wrapper.is--enterable .vxe-tooltip--body{pointer-events:all}.vxe-tooltip--wrapper .vxe-tooltip--content,.vxe-tooltip--wrapper .vxe-tooltip--scrollbar-content-view{padding:8px 12px;max-width:600px;max-height:800px;white-space:pre-line;border-radius:var(--vxe-ui-base-border-radius);overflow:auto}.vxe-tooltip--wrapper .vxe-tooltip--arrow{display:none;position:absolute;border-color:transparent;border-width:6px;border-style:solid;left:50%;transform:translateX(-6px)}.vxe-tooltip--wrapper .vxe-tooltip--arrow:before{content:"";position:absolute;border-color:transparent;border-width:5px;border-style:solid;left:-5px}.vxe-tooltip--wrapper.placement--top.is--arrow{padding-bottom:6px}.vxe-tooltip--wrapper.placement--top.is--enterable:after{bottom:-6px}.vxe-tooltip--wrapper.placement--top .vxe-tooltip--arrow{bottom:-11px}.vxe-tooltip--wrapper.placement--top .vxe-tooltip--arrow:before{top:-7px}.vxe-tooltip--wrapper.placement--bottom.is--arrow{padding-top:6px}.vxe-tooltip--wrapper.placement--bottom.is--enterable:after{top:-6px}.vxe-tooltip--wrapper.placement--bottom .vxe-tooltip--arrow{top:-11px}.vxe-tooltip--wrapper.placement--bottom .vxe-tooltip--arrow:before{top:-3px}.vxe-tooltip--body{position:relative;border-radius:var(--vxe-ui-base-border-radius);white-space:normal;word-break:break-word;box-shadow:2px 2px 4px -2px rgba(0,0,0,.2)}.vxe-tooltip--wrapper.theme--light .vxe-tooltip--body{background-color:var(--vxe-ui-layout-background-color);border:1px solid var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--top .vxe-tooltip--arrow{border-top-color:var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--top .vxe-tooltip--arrow:before{border-top-color:var(--vxe-ui-layout-background-color)}.vxe-tooltip--wrapper.theme--light.placement--bottom .vxe-tooltip--arrow{border-bottom-color:var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--bottom .vxe-tooltip--arrow:before{border-bottom-color:var(--vxe-ui-layout-background-color)}.vxe-tooltip--wrapper.theme--dark .vxe-tooltip--body{background:var(--vxe-ui-tooltip-dark-background-color);color:var(--vxe-ui-tooltip-dark-color)}.vxe-tooltip--wrapper.theme--dark.placement--top .vxe-tooltip--arrow{border-top-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--top .vxe-tooltip--arrow:before{border-top-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--bottom .vxe-tooltip--arrow{border-bottom-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--bottom .vxe-tooltip--arrow:before{border-bottom-color:var(--vxe-ui-tooltip-dark-background-color)}
1
+ .vxe-tooltip--wrapper{display:none;position:absolute;top:-100%;left:-100%;font-size:12px;color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);pointer-events:none}.vxe-tooltip--wrapper.is--visible{display:inline-block}.vxe-tooltip--wrapper.is--arrow .vxe-tooltip--arrow{display:block}.vxe-tooltip--wrapper.is--enterable:after{content:"";position:absolute;left:0;width:100%;height:6px;background-color:transparent}.vxe-tooltip--wrapper.is--enterable .vxe-tooltip--body{pointer-events:all}.vxe-tooltip--wrapper .vxe-tooltip--content,.vxe-tooltip--wrapper .vxe-tooltip--scrollbar-content-view{padding:8px 12px;width:-moz-max-content;width:max-content;max-width:600px;max-height:800px;white-space:pre-line;border-radius:var(--vxe-ui-base-border-radius);overflow:auto}.vxe-tooltip--wrapper .vxe-tooltip--arrow{display:none;position:absolute;border-color:transparent;border-width:6px;border-style:solid;left:50%;transform:translateX(-6px)}.vxe-tooltip--wrapper .vxe-tooltip--arrow:before{content:"";position:absolute;border-color:transparent;border-width:5px;border-style:solid;left:-5px}.vxe-tooltip--wrapper.placement--top.is--arrow{padding-bottom:6px}.vxe-tooltip--wrapper.placement--top.is--enterable:after{bottom:-6px}.vxe-tooltip--wrapper.placement--top .vxe-tooltip--arrow{bottom:-11px}.vxe-tooltip--wrapper.placement--top .vxe-tooltip--arrow:before{top:-7px}.vxe-tooltip--wrapper.placement--bottom.is--arrow{padding-top:6px}.vxe-tooltip--wrapper.placement--bottom.is--enterable:after{top:-6px}.vxe-tooltip--wrapper.placement--bottom .vxe-tooltip--arrow{top:-11px}.vxe-tooltip--wrapper.placement--bottom .vxe-tooltip--arrow:before{top:-3px}.vxe-tooltip--body{position:relative;border-radius:var(--vxe-ui-base-border-radius);white-space:normal;word-break:break-word;box-shadow:2px 2px 4px -2px rgba(0,0,0,.2)}.vxe-tooltip--wrapper.theme--light .vxe-tooltip--body{background-color:var(--vxe-ui-layout-background-color);border:1px solid var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--top .vxe-tooltip--arrow{border-top-color:var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--top .vxe-tooltip--arrow:before{border-top-color:var(--vxe-ui-layout-background-color)}.vxe-tooltip--wrapper.theme--light.placement--bottom .vxe-tooltip--arrow{border-bottom-color:var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--bottom .vxe-tooltip--arrow:before{border-bottom-color:var(--vxe-ui-layout-background-color)}.vxe-tooltip--wrapper.theme--dark .vxe-tooltip--body{background:var(--vxe-ui-tooltip-dark-background-color);color:var(--vxe-ui-tooltip-dark-color)}.vxe-tooltip--wrapper.theme--dark.placement--top .vxe-tooltip--arrow{border-top-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--top .vxe-tooltip--arrow:before{border-top-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--bottom .vxe-tooltip--arrow{border-bottom-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--bottom .vxe-tooltip--arrow:before{border-bottom-color:var(--vxe-ui-tooltip-dark-background-color)}
@@ -6,13 +6,13 @@ import { createComponentLog } from '../../ui/src/log';
6
6
  import { getSlotVNs } from '../../ui/src/vn';
7
7
  import { crossTreeDragNodeGlobal, getCrossTreeDragNodeInfo } from './store';
8
8
  import { toCssUnit, isScale, getPaddingTopBottomSize, addClass, removeClass, getTpImg, hasControlKey, getEventTargetNode, hasClass } from '../../ui/src/dom';
9
- import { isEnableConf, enModelValue, deModelValue, getText, getDefaultConfig } from '../../ui/src/utils';
9
+ import { isEnableConf, enModelValue, deModelValue, getText } from '../../ui/src/utils';
10
10
  import { moveRowAnimateToTb, clearRowAnimate } from '../../ui/src/anime';
11
11
  import VxeLoadingComponent from '../../loading';
12
12
  import VxeTooltipComponent from '../../tooltip';
13
13
  const { warnLog, errLog } = createComponentLog('tree');
14
- const { menus, scrollbarUtils, getConfig, getI18n, getIcon } = VxeUI;
15
- const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils;
14
+ const { menus, getConfig, getI18n, getIcon, baseUtils } = VxeUI;
15
+ const { getDefVal } = baseUtils;
16
16
  let crossTreeDragNodeObj = null;
17
17
  /**
18
18
  * 生成节点的唯一主键
@@ -567,7 +567,9 @@ function createInternalData() {
567
567
  export default {
568
568
  name: 'VxeTree',
569
569
  mixins: [
570
- globalMixins.sizeMixin
570
+ globalMixins.sizeMixin,
571
+ globalMixins.vScrollbarMixin,
572
+ globalMixins.initVScrollbarMixin
571
573
  ],
572
574
  props: {
573
575
  data: Array,
@@ -699,7 +701,7 @@ export default {
699
701
  virtualYConfig: Object,
700
702
  useScrollbar: {
701
703
  type: Boolean,
702
- default: () => getDefaultConfig(getConfig().tree.useScrollbar, getConfig().useScrollbar)
704
+ default: () => getDefVal(getConfig().tree.useScrollbar, getConfig().useScrollbar)
703
705
  },
704
706
  scrollbarConfig: Object
705
707
  },
@@ -713,7 +715,7 @@ export default {
713
715
  const xID = XEUtils.uniqueId();
714
716
  const reactData = createReactData();
715
717
  return Object.assign(Object.assign({}, {}), { xID,
716
- reactData, crossTreeDragNodeInfo: crossTreeDragNodeGlobal, reFlag: 0, dataFlag: 0 });
718
+ reactData, crossTreeDragNodeInfo: crossTreeDragNodeGlobal, reLayoutFlag: 0, reScrollFlag: 0, dataFlag: 0 });
717
719
  },
718
720
  computed: Object.assign(Object.assign({}, {}), { computeTitleField() {
719
721
  const $xeTree = this;
@@ -880,37 +882,37 @@ export default {
880
882
  const $xeTree = this;
881
883
  const scrollbarOpts = $xeTree.computeScrollbarOpts;
882
884
  const scrollbarXOpts = $xeTree.computeScrollbarXOpts;
883
- return getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), getConfig().scrollbar.height);
885
+ return getDefVal(getDefVal(scrollbarXOpts.height, scrollbarOpts.height), getConfig().scrollbar.height);
884
886
  },
885
887
  computeScrollYWidth() {
886
888
  const $xeTree = this;
887
889
  const scrollbarOpts = $xeTree.computeScrollbarOpts;
888
890
  const scrollbarYOpts = $xeTree.computeScrollbarYOpts;
889
- return getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), getConfig().scrollbar.width);
891
+ return getDefVal(getDefVal(scrollbarYOpts.width, scrollbarOpts.width), getConfig().scrollbar.width);
890
892
  },
891
893
  computeScrollXVisible() {
892
894
  const $xeTree = this;
893
895
  const scrollbarOpts = $xeTree.computeScrollbarOpts;
894
896
  const scrollbarXOpts = $xeTree.computeScrollbarXOpts;
895
- return getDefaultConfig(scrollbarXOpts.visible, scrollbarOpts.visible);
897
+ return getDefVal(scrollbarXOpts.visible, scrollbarOpts.visible);
896
898
  },
897
899
  computeScrollYVisible() {
898
900
  const $xeTree = this;
899
901
  const scrollbarOpts = $xeTree.computeScrollbarOpts;
900
902
  const scrollbarYOpts = $xeTree.computeScrollbarYOpts;
901
- return getDefaultConfig(scrollbarYOpts.visible, scrollbarOpts.visible);
903
+ return getDefVal(scrollbarYOpts.visible, scrollbarOpts.visible);
902
904
  },
903
905
  computeScrollXAutoHide() {
904
906
  const $xeTree = this;
905
907
  const scrollbarOpts = $xeTree.computeScrollbarOpts;
906
908
  const scrollbarXOpts = $xeTree.computeScrollbarXOpts;
907
- return getDefaultConfig(getDefaultConfig(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
909
+ return getDefVal(getDefVal(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
908
910
  },
909
911
  computeScrollYAutoHide() {
910
912
  const $xeTree = this;
911
913
  const scrollbarOpts = $xeTree.computeScrollbarOpts;
912
914
  const scrollbarYOpts = $xeTree.computeScrollbarYOpts;
913
- return getDefaultConfig(getDefaultConfig(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
915
+ return getDefVal(getDefVal(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
914
916
  },
915
917
  computeScrollbarWrapperClss() {
916
918
  const $xeTree = this;
@@ -949,6 +951,11 @@ export default {
949
951
  const $xeTree = this;
950
952
  $xeTree.$emit(type, createEvent(evnt, { $tree: $xeTree }, params));
951
953
  },
954
+ getScrollViewElem() {
955
+ const $xeTree = this;
956
+ const viewEl = $xeTree.$refs.refVirtualWrapper;
957
+ return viewEl || null;
958
+ },
952
959
  getNodeId(node) {
953
960
  const $xeTree = this;
954
961
  if (!node) {
@@ -1566,8 +1573,14 @@ export default {
1566
1573
  },
1567
1574
  updateScrollbar() {
1568
1575
  const $xeTree = this;
1569
- $xeTree.updateThumbSize();
1570
- $xeTree.updateThumbOffset();
1576
+ const isVScrollbar = $xeTree.computeIsVScrollbar;
1577
+ if (isVScrollbar) {
1578
+ return $xeTree.$nextTick().then(() => {
1579
+ $xeTree.updateThumbSize();
1580
+ $xeTree.updateThumbOffset();
1581
+ });
1582
+ }
1583
+ return Promise.resolve();
1571
1584
  },
1572
1585
  /**
1573
1586
  * 重新计算列表
@@ -1593,11 +1606,11 @@ export default {
1593
1606
  const parentPaddingSize = getPaddingTopBottomSize(parentEl);
1594
1607
  reactData.parentHeight = Math.max(headHeight + footHeight + rowHeight, parentEl.clientHeight - parentPaddingSize - headHeight - footHeight);
1595
1608
  }
1596
- $xeTree.updateScrollbar();
1597
1609
  $xeTree.updateHeight();
1598
1610
  return $xeTree.computeScrollLoad().then(() => {
1599
1611
  $xeTree.updateHeight();
1600
1612
  $xeTree.updateYSpace();
1613
+ $xeTree.updateScrollbar();
1601
1614
  });
1602
1615
  }
1603
1616
  return $xeTree.$nextTick();
@@ -1633,7 +1646,7 @@ export default {
1633
1646
  const $xeTree = this;
1634
1647
  const reactData = $xeTree.reactData;
1635
1648
  const internalData = $xeTree.internalData;
1636
- const scrollBodyElem = evnt.target;
1649
+ const scrollBodyElem = evnt.currentTarget;
1637
1650
  const scrollTop = scrollBodyElem.scrollTop;
1638
1651
  const scrollLeft = scrollBodyElem.scrollLeft;
1639
1652
  const isX = scrollLeft !== internalData.lastScrollLeft;
@@ -3274,183 +3287,26 @@ export default {
3274
3287
  }
3275
3288
  },
3276
3289
  // 滚动条
3277
- updateThumbSize() {
3278
- const $xeTree = this;
3279
- const reactData = $xeTree.reactData;
3280
- const viewEl = $xeTree.$refs.refVirtualWrapper;
3281
- if (!viewEl) {
3282
- return;
3283
- }
3284
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
3285
- return;
3286
- }
3287
- const trackXEl = $xeTree.$refs.refTrackXElem;
3288
- const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
3289
- const thumbXElem = $xeTree.$refs.refThumbXElem;
3290
- if (thumbXElem) {
3291
- thumbXElem.style.width = xThumbWidth + 'px';
3292
- }
3293
- reactData.xThumbWidth = xThumbWidth;
3294
- const trackYEl = $xeTree.$refs.refTrackYElem;
3295
- const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
3296
- const thumbYElem = $xeTree.$refs.refThumbYElem;
3297
- if (thumbYElem) {
3298
- thumbYElem.style.height = yThumbHeight + 'px';
3299
- }
3300
- reactData.yThumbHeight = yThumbHeight;
3301
- },
3302
- updateThumbOffset() {
3303
- const $xeTree = this;
3304
- const reactData = $xeTree.reactData;
3305
- const internalData = $xeTree.internalData;
3306
- const viewEl = $xeTree.$refs.refVirtualWrapper;
3307
- if (!viewEl) {
3308
- return;
3309
- }
3310
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
3311
- return;
3312
- }
3313
- const { xThumbWidth, yThumbHeight } = reactData;
3314
- const trackXEl = $xeTree.$refs.refTrackXElem;
3315
- const thumbXElem = $xeTree.$refs.refThumbXElem;
3316
- const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
3317
- internalData.xThumbLeft = xThumbLeft;
3318
- if (thumbXElem && xThumbWidth) {
3319
- thumbXElem.style.width = xThumbWidth + 'px';
3320
- thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
3321
- }
3322
- const trackYEl = $xeTree.$refs.refTrackYElem;
3323
- const thumbYElem = $xeTree.$refs.refThumbYElem;
3324
- const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
3325
- internalData.yThumbTop = yThumbTop;
3326
- if (thumbYElem && yThumbHeight) {
3327
- thumbYElem.style.height = yThumbHeight + 'px';
3328
- thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
3329
- }
3330
- },
3331
- clickTrackXEvent(evnt) {
3332
- const $xeTree = this;
3333
- const reactData = $xeTree.reactData;
3334
- const trackEl = evnt.currentTarget;
3335
- if (trackEl !== evnt.target) {
3336
- return;
3337
- }
3338
- const viewEl = $xeTree.$refs.refVirtualWrapper;
3339
- if (!viewEl) {
3340
- return;
3341
- }
3342
- const { xThumbWidth } = reactData;
3343
- const trackRect = trackEl.getBoundingClientRect();
3344
- viewEl.scrollTo({
3345
- left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
3346
- behavior: 'auto'
3347
- });
3348
- },
3349
- clickTrackYEvent(evnt) {
3350
- const $xeTree = this;
3351
- const reactData = $xeTree.reactData;
3352
- const trackEl = evnt.currentTarget;
3353
- if (trackEl !== evnt.target) {
3354
- return;
3355
- }
3356
- const viewEl = $xeTree.$refs.refVirtualWrapper;
3357
- if (!viewEl) {
3358
- return;
3359
- }
3360
- const { yThumbHeight } = reactData;
3361
- const trackRect = trackEl.getBoundingClientRect();
3362
- viewEl.scrollTo({
3363
- top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
3364
- behavior: 'auto'
3365
- });
3366
- },
3367
- pointerdownThumbXEvent(evnt) {
3368
- const $xeTree = this;
3369
- const reactData = $xeTree.reactData;
3370
- const internalData = $xeTree.internalData;
3371
- const thumbEl = evnt.currentTarget;
3372
- internalData.isThumbDrag = true;
3373
- thumbEl.setPointerCapture(evnt.pointerId);
3374
- const viewEl = $xeTree.$refs.refVirtualWrapper;
3375
- if (!viewEl) {
3376
- return;
3377
- }
3378
- const { xThumbWidth } = reactData;
3379
- const trackEl = thumbEl.parentElement;
3380
- const trackRect = trackEl.getBoundingClientRect();
3381
- const pointerPosition = evnt.clientX - trackRect.left;
3382
- // 记录 thumb 的偏移
3383
- const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
3384
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
3385
- },
3386
- pointermoveThumbXEvent(evnt) {
3387
- const $xeTree = this;
3388
- const reactData = $xeTree.reactData;
3389
- const internalData = $xeTree.internalData;
3390
- const thumbEl = evnt.currentTarget;
3391
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
3392
- return;
3393
- }
3394
- const { isThumbDrag, thumbDragOffset } = internalData;
3395
- if (isThumbDrag) {
3396
- const viewEl = $xeTree.$refs.refVirtualWrapper;
3397
- if (!viewEl) {
3398
- return;
3399
- }
3400
- const { xThumbWidth } = reactData;
3401
- const thumbEl = evnt.currentTarget;
3402
- const trackEl = thumbEl.parentElement;
3403
- const trackRect = trackEl.getBoundingClientRect();
3404
- // 更新偏移
3405
- viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
3406
- }
3407
- },
3408
- cleatPointerThumbEvent(evnt) {
3409
- const $xeTree = this;
3410
- const internalData = $xeTree.internalData;
3411
- const thumbEl = evnt.currentTarget;
3412
- thumbEl.releasePointerCapture(evnt.pointerId);
3413
- internalData.isThumbDrag = false;
3414
- },
3415
- pointerdownThumbYEvent(evnt) {
3290
+ bindScrollbarResize() {
3416
3291
  const $xeTree = this;
3417
- const reactData = $xeTree.reactData;
3418
3292
  const internalData = $xeTree.internalData;
3419
- const thumbEl = evnt.currentTarget;
3420
- internalData.isThumbDrag = true;
3421
- thumbEl.setPointerCapture(evnt.pointerId);
3422
- const viewEl = $xeTree.$refs.refVirtualWrapper;
3423
- if (!viewEl) {
3424
- return;
3425
- }
3426
- const { yThumbHeight } = reactData;
3427
- const trackEl = thumbEl.parentElement;
3428
- const trackRect = trackEl.getBoundingClientRect();
3429
- const pointerPosition = evnt.clientY - trackRect.top;
3430
- // 记录 thumb 的偏移
3431
- const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
3432
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
3433
- },
3434
- pointermoveThumbYEvent(evnt) {
3435
- const $xeTree = this;
3436
- const reactData = $xeTree.reactData;
3437
- const internalData = $xeTree.internalData;
3438
- const thumbEl = evnt.currentTarget;
3439
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
3440
- return;
3441
- }
3442
- const { isThumbDrag, thumbDragOffset } = internalData;
3443
- if (isThumbDrag) {
3444
- const viewEl = $xeTree.$refs.refVirtualWrapper;
3445
- if (!viewEl) {
3446
- return;
3293
+ const isVScrollbar = $xeTree.computeIsVScrollbar;
3294
+ const { scrollObserver } = internalData;
3295
+ if (isVScrollbar) {
3296
+ if (!scrollObserver) {
3297
+ const el = $xeTree.$refs.refElem;
3298
+ const viewInnerEl = $xeTree.$refs.refVirtualSpaceElem;
3299
+ const scrollObserver = globalResize.create(() => {
3300
+ $xeTree.reScrollFlag++;
3301
+ });
3302
+ if (el) {
3303
+ scrollObserver.observe(el);
3304
+ }
3305
+ if (viewInnerEl) {
3306
+ scrollObserver.observe(viewInnerEl);
3307
+ }
3308
+ internalData.scrollObserver = scrollObserver;
3447
3309
  }
3448
- const { yThumbHeight } = reactData;
3449
- const thumbEl = evnt.currentTarget;
3450
- const trackEl = thumbEl.parentElement;
3451
- const trackRect = trackEl.getBoundingClientRect();
3452
- // 更新偏移
3453
- viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
3454
3310
  }
3455
3311
  },
3456
3312
  //
@@ -3793,9 +3649,10 @@ export default {
3793
3649
  const props = $xeTree;
3794
3650
  const slots = $xeTree.$scopedSlots;
3795
3651
  const reactData = $xeTree.reactData;
3796
- const { loading, trigger, showLine, useScrollbar } = props;
3652
+ const { loading, trigger, showLine } = props;
3797
3653
  const { bodyHeight, topSpaceHeight, treeList, tooltipStore, xThumbWidth, yThumbHeight } = reactData;
3798
3654
  const vSize = $xeTree.computeSize;
3655
+ const isVScrollbar = $xeTree.computeIsVScrollbar;
3799
3656
  const radioOpts = $xeTree.computeRadioOpts;
3800
3657
  const checkboxOpts = $xeTree.computeCheckboxOpts;
3801
3658
  const loadingOpts = $xeTree.computeLoadingOpts;
@@ -3824,17 +3681,17 @@ export default {
3824
3681
  ref: 'refElem',
3825
3682
  class: [
3826
3683
  'vxe-tree',
3827
- useScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '',
3828
- useScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '',
3829
- useScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '',
3830
- useScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '',
3684
+ isVScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '',
3685
+ isVScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '',
3686
+ isVScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '',
3687
+ isVScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '',
3831
3688
  {
3832
3689
  [`size--${vSize}`]: vSize,
3833
3690
  'show--line': showLine,
3834
- 'is--virtual-scrollbar': useScrollbar,
3835
- 'ov-padding': useScrollbar && scrollbarOpts.padding,
3836
- 'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
3837
- 'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
3691
+ 'is--virtual-scrollbar': isVScrollbar,
3692
+ 'ov-padding': isVScrollbar && scrollbarOpts.padding,
3693
+ 'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
3694
+ 'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
3838
3695
  'overflow-y': yThumbHeight,
3839
3696
  'overflow-x': xThumbWidth,
3840
3697
  'checkbox--highlight': checkboxOpts.highlight,
@@ -3862,6 +3719,7 @@ export default {
3862
3719
  }
3863
3720
  }, [
3864
3721
  h('div', {
3722
+ ref: 'refVirtualSpaceElem',
3865
3723
  class: 'vxe-tree--y-space',
3866
3724
  style: {
3867
3725
  height: bodyHeight ? `${bodyHeight}px` : ''
@@ -3884,7 +3742,7 @@ export default {
3884
3742
  /**
3885
3743
  * 滚动条
3886
3744
  */
3887
- useScrollbar
3745
+ isVScrollbar
3888
3746
  ? h('div', {
3889
3747
  class: scrollbarWrapperClss
3890
3748
  }, [
@@ -4021,45 +3879,56 @@ export default {
4021
3879
  },
4022
3880
  height() {
4023
3881
  const $xeTree = this;
4024
- $xeTree.reFlag++;
3882
+ $xeTree.reLayoutFlag++;
4025
3883
  },
4026
3884
  minHeight() {
4027
3885
  const $xeTree = this;
4028
- $xeTree.reFlag++;
3886
+ $xeTree.reLayoutFlag++;
4029
3887
  },
4030
3888
  maxHeight() {
4031
3889
  const $xeTree = this;
4032
- $xeTree.reFlag++;
3890
+ $xeTree.reLayoutFlag++;
4033
3891
  },
4034
- useScrollbar() {
3892
+ computeIsVScrollbar() {
4035
3893
  const $xeTree = this;
4036
- $xeTree.reFlag++;
3894
+ $xeTree.$nextTick(() => {
3895
+ $xeTree.bindScrollbarResize();
3896
+ $xeTree.$nextTick(() => {
3897
+ $xeTree.reLayoutFlag++;
3898
+ });
3899
+ });
4037
3900
  },
4038
3901
  computeScrollYWidth() {
4039
3902
  const $xeTree = this;
4040
- $xeTree.reFlag++;
3903
+ $xeTree.reLayoutFlag++;
4041
3904
  },
4042
3905
  computeScrollXHeight() {
4043
3906
  const $xeTree = this;
4044
- $xeTree.reFlag++;
3907
+ $xeTree.reLayoutFlag++;
4045
3908
  },
4046
3909
  computeScrollXVisible() {
4047
3910
  const $xeTree = this;
4048
3911
  $xeTree.$nextTick(() => {
4049
- $xeTree.reFlag++;
3912
+ $xeTree.reLayoutFlag++;
4050
3913
  });
4051
3914
  },
4052
3915
  computeScrollYVisible() {
4053
3916
  const $xeTree = this;
4054
3917
  $xeTree.$nextTick(() => {
4055
- $xeTree.reFlag++;
3918
+ $xeTree.reLayoutFlag++;
4056
3919
  });
4057
3920
  },
4058
- reFlag() {
3921
+ reLayoutFlag() {
4059
3922
  const $xeTree = this;
4060
3923
  $xeTree.recalculate().then(() => {
4061
3924
  $xeTree.recalculate();
4062
3925
  });
3926
+ },
3927
+ reScrollFlag() {
3928
+ const $xeTree = this;
3929
+ $xeTree.updateScrollbar().then(() => {
3930
+ $xeTree.updateScrollbar();
3931
+ });
4063
3932
  }
4064
3933
  },
4065
3934
  created() {
@@ -4074,7 +3943,7 @@ export default {
4074
3943
  const $xeTree = this;
4075
3944
  const props = $xeTree;
4076
3945
  const internalData = $xeTree.internalData;
4077
- const { transform, drag, menuConfig, showOverflow, lazy, loadMethod, autoResize, useScrollbar } = props;
3946
+ const { transform, drag, menuConfig, showOverflow, lazy, loadMethod, autoResize } = props;
4078
3947
  const dragOpts = $xeTree.computeDragOpts;
4079
3948
  if (!showOverflow) {
4080
3949
  errLog('vxe.error.errProp', ['show-overflow=false', 'show-overflow=true']);
@@ -4095,25 +3964,12 @@ export default {
4095
3964
  if (menuConfig && !VxeUIContextMenu) {
4096
3965
  errLog('vxe.error.reqComp', ['vxe-context-menu']);
4097
3966
  }
4098
- const el = $xeTree.$refs.refElem;
4099
- if (useScrollbar) {
4100
- const viewInnerEl = $xeTree.$refs.refVirtualBody;
4101
- const scrollObserver = globalResize.create(() => {
4102
- $xeTree.updateScrollbar();
4103
- });
4104
- if (el) {
4105
- scrollObserver.observe(el);
4106
- }
4107
- if (viewInnerEl) {
4108
- scrollObserver.observe(viewInnerEl);
4109
- }
4110
- internalData.scrollObserver = scrollObserver;
4111
- }
4112
3967
  if (autoResize) {
3968
+ const el = $xeTree.$refs.refElem;
4113
3969
  const parentEl = $xeTree.getParentElem();
4114
3970
  const resizeObserver = globalResize.create(() => {
4115
3971
  if (props.autoResize) {
4116
- $xeTree.reFlag++;
3972
+ $xeTree.reLayoutFlag++;
4117
3973
  }
4118
3974
  });
4119
3975
  if (el) {
@@ -4124,9 +3980,10 @@ export default {
4124
3980
  }
4125
3981
  internalData.resizeObserver = resizeObserver;
4126
3982
  }
4127
- $xeTree.reFlag++;
3983
+ $xeTree.reLayoutFlag++;
3984
+ $xeTree.bindScrollbarResize();
4128
3985
  globalEvents.on($xeTree, 'resize', () => {
4129
- $xeTree.reFlag++;
3986
+ $xeTree.reLayoutFlag++;
4130
3987
  });
4131
3988
  },
4132
3989
  beforeDestroy() {
package/es/ui/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { VxeUI, setConfig, setIcon } from '@vxe-ui/core';
2
2
  import { dynamicApp } from '../dynamics';
3
3
  import { warnLog } from './src/log';
4
- export const version = "3.20.8";
4
+ export const version = "3.20.10";
5
5
  VxeUI.uiVersion = version;
6
6
  VxeUI.dynamicApp = dynamicApp;
7
7
  export function config(options) {
package/es/ui/src/log.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const uiVersion = `ui v${"3.20.8"}`;
3
+ const uiVersion = `ui v${"3.20.10"}`;
4
4
  export function createComponentLog(name) {
5
5
  const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : '';
6
6
  const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';