vxe-pc-ui 4.20.8 → 4.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 (144) hide show
  1. package/dist/all.esm.js +2041 -2125
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/card/src/card.js +8 -6
  5. package/es/date-panel/src/date-panel.js +58 -36
  6. package/es/date-panel/style.css +22 -20
  7. package/es/date-panel/style.min.css +1 -1
  8. package/es/drawer/src/drawer.js +7 -5
  9. package/es/icon/style.css +1 -1
  10. package/es/icon-picker/src/icon-picker.js +74 -38
  11. package/es/icon-picker/style.css +9 -3
  12. package/es/icon-picker/style.min.css +1 -1
  13. package/es/layout-aside/src/layout-aside.js +6 -4
  14. package/es/layout-body/src/layout-body.js +6 -4
  15. package/es/layout-container/src/layout-container.js +11 -3
  16. package/es/list/src/list.js +81 -208
  17. package/es/menu/src/menu.js +7 -5
  18. package/es/modal/src/modal.js +7 -5
  19. package/es/scrollbar/src/scrollbar.js +28 -173
  20. package/es/select/src/select.js +243 -8
  21. package/es/select/style.css +44 -0
  22. package/es/select/style.min.css +1 -1
  23. package/es/style.css +1 -1
  24. package/es/style.min.css +1 -1
  25. package/es/tabs/src/tabs.js +5 -4
  26. package/es/tooltip/src/tooltip.js +7 -5
  27. package/es/tooltip/style.css +2 -0
  28. package/es/tooltip/style.min.css +1 -1
  29. package/es/tree/src/tree.js +86 -212
  30. package/es/ui/index.js +1 -1
  31. package/es/ui/src/log.js +1 -1
  32. package/es/vxe-date-panel/style.css +22 -20
  33. package/es/vxe-date-panel/style.min.css +1 -1
  34. package/es/vxe-icon-picker/style.css +9 -3
  35. package/es/vxe-icon-picker/style.min.css +1 -1
  36. package/es/vxe-select/style.css +44 -0
  37. package/es/vxe-select/style.min.css +1 -1
  38. package/es/vxe-tooltip/style.css +2 -0
  39. package/es/vxe-tooltip/style.min.css +1 -1
  40. package/lib/card/src/card.js +9 -6
  41. package/lib/card/src/card.min.js +1 -1
  42. package/lib/date-panel/src/date-panel.js +56 -34
  43. package/lib/date-panel/src/date-panel.min.js +1 -1
  44. package/lib/date-panel/style/style.css +22 -20
  45. package/lib/date-panel/style/style.min.css +1 -1
  46. package/lib/drawer/src/drawer.js +7 -4
  47. package/lib/drawer/src/drawer.min.js +1 -1
  48. package/lib/icon/style/style.css +1 -1
  49. package/lib/icon/style/style.min.css +1 -1
  50. package/lib/icon-picker/src/icon-picker.js +101 -45
  51. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  52. package/lib/icon-picker/style/style.css +9 -3
  53. package/lib/icon-picker/style/style.min.css +1 -1
  54. package/lib/index.umd.js +1049 -859
  55. package/lib/index.umd.min.js +1 -1
  56. package/lib/layout-aside/src/layout-aside.js +7 -4
  57. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  58. package/lib/layout-body/src/layout-body.js +7 -4
  59. package/lib/layout-body/src/layout-body.min.js +1 -1
  60. package/lib/layout-container/src/layout-container.js +20 -4
  61. package/lib/layout-container/src/layout-container.min.js +1 -1
  62. package/lib/list/src/list.js +95 -232
  63. package/lib/list/src/list.min.js +1 -1
  64. package/lib/menu/src/menu.js +8 -4
  65. package/lib/menu/src/menu.min.js +1 -1
  66. package/lib/modal/src/modal.js +7 -4
  67. package/lib/modal/src/modal.min.js +1 -1
  68. package/lib/scrollbar/src/scrollbar.js +42 -199
  69. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  70. package/lib/select/src/select.js +315 -68
  71. package/lib/select/src/select.min.js +1 -1
  72. package/lib/select/style/style.css +44 -0
  73. package/lib/select/style/style.min.css +1 -1
  74. package/lib/style.css +1 -1
  75. package/lib/style.min.css +1 -1
  76. package/lib/tabs/src/tabs.js +6 -5
  77. package/lib/tabs/src/tabs.min.js +1 -1
  78. package/lib/tooltip/src/tooltip.js +7 -4
  79. package/lib/tooltip/src/tooltip.min.js +1 -1
  80. package/lib/tooltip/style/style.css +2 -0
  81. package/lib/tooltip/style/style.min.css +1 -1
  82. package/lib/tree/src/tree.js +101 -235
  83. package/lib/tree/src/tree.min.js +1 -1
  84. package/lib/ui/index.js +1 -1
  85. package/lib/ui/index.min.js +1 -1
  86. package/lib/ui/src/log.js +1 -1
  87. package/lib/ui/src/log.min.js +1 -1
  88. package/lib/vxe-date-panel/style/style.css +22 -20
  89. package/lib/vxe-date-panel/style/style.min.css +1 -1
  90. package/lib/vxe-icon-picker/style/style.css +9 -3
  91. package/lib/vxe-icon-picker/style/style.min.css +1 -1
  92. package/lib/vxe-select/style/style.css +44 -0
  93. package/lib/vxe-select/style/style.min.css +1 -1
  94. package/lib/vxe-tooltip/style/style.css +2 -0
  95. package/lib/vxe-tooltip/style/style.min.css +1 -1
  96. package/package.json +2 -2
  97. package/packages/card/src/card.ts +8 -6
  98. package/packages/date-panel/src/date-panel.ts +58 -36
  99. package/packages/drawer/src/drawer.ts +7 -5
  100. package/packages/icon-picker/src/icon-picker.ts +80 -38
  101. package/packages/layout-aside/src/layout-aside.ts +6 -4
  102. package/packages/layout-body/src/layout-body.ts +6 -4
  103. package/packages/layout-container/src/layout-container.ts +13 -3
  104. package/packages/list/src/list.ts +98 -224
  105. package/packages/menu/src/menu.ts +7 -5
  106. package/packages/modal/src/modal.ts +7 -5
  107. package/packages/scrollbar/src/scrollbar.ts +44 -189
  108. package/packages/select/src/select.ts +278 -8
  109. package/packages/tabs/src/tabs.ts +5 -4
  110. package/packages/tooltip/src/tooltip.ts +7 -5
  111. package/packages/tree/src/tree.ts +103 -228
  112. package/styles/components/date-panel.scss +31 -29
  113. package/styles/components/icon-picker.scss +9 -3
  114. package/styles/components/select.scss +77 -0
  115. package/styles/components/tooltip.scss +1 -0
  116. package/types/components/card.d.ts +2 -2
  117. package/types/components/drawer.d.ts +2 -2
  118. package/types/components/gantt-module/gantt-view.d.ts +7 -16
  119. package/types/components/grid.d.ts +3 -1
  120. package/types/components/icon-picker.d.ts +21 -1
  121. package/types/components/layout-aside.d.ts +2 -2
  122. package/types/components/layout-body.d.ts +2 -2
  123. package/types/components/layout-container.d.ts +3 -1
  124. package/types/components/list.d.ts +6 -2
  125. package/types/components/menu.d.ts +2 -2
  126. package/types/components/modal.d.ts +2 -2
  127. package/types/components/scrollbar.d.ts +17 -14
  128. package/types/components/select.d.ts +28 -3
  129. package/types/components/table.d.ts +28 -22
  130. package/types/components/tabs.d.ts +2 -2
  131. package/types/components/tooltip.d.ts +2 -2
  132. package/types/components/tree.d.ts +8 -17
  133. /package/es/icon/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
  134. /package/es/icon/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
  135. /package/es/icon/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
  136. /package/es/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
  137. /package/es/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
  138. /package/es/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
  139. /package/lib/icon/style/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
  140. /package/lib/icon/style/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
  141. /package/lib/icon/style/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
  142. /package/lib/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
  143. /package/lib/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
  144. /package/lib/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { ref, h, reactive, inject, provide, computed, onUnmounted, watch, nextTick, onMounted } from 'vue';
2
2
  import { defineVxeComponent } from '../../ui/src/comp';
3
- import { VxeUI, useSize } from '../../ui';
3
+ import { VxeUI, useFns } from '../../ui';
4
4
  import { getSlotVNs } from '../../ui/src/vn';
5
5
  import { toCssUnit, addClass, removeClass } from '../../ui/src/dom';
6
6
  import { isEnableConf } from '../../ui/src/utils';
@@ -72,7 +72,8 @@ export default defineVxeComponent({
72
72
  const { slots, emit } = context;
73
73
  const xID = XEUtils.uniqueId();
74
74
  const $xeParentTabs = inject('$xeTabs', null);
75
- const { computeSize } = useSize(props);
75
+ const { computeSize } = useFns.useSize(props);
76
+ const { computeIsVScrollbar } = useFns.useVScrollbar(props);
76
77
  const refElem = ref();
77
78
  const refHeadWrapperElem = ref();
78
79
  const refHeadPrevElem = ref();
@@ -744,13 +745,13 @@ export default defineVxeComponent({
744
745
  ]);
745
746
  };
746
747
  const renderTabPane = (item) => {
747
- const { useScrollbar } = props;
748
748
  const { initNames, activeName } = reactData;
749
749
  const { name, slots } = item;
750
750
  const defaultSlot = slots ? slots.default : null;
751
751
  const scrollbarProps = computeScrollbarProps.value;
752
+ const isVScrollbar = computeIsVScrollbar.value;
752
753
  if (name && initNames.includes(name)) {
753
- return useScrollbar
754
+ return isVScrollbar
754
755
  ? h(VxeScrollbarComponent, Object.assign({ key: `${name}`, class: ['vxe-tabs-pane--scrollbar-item', {
755
756
  'is--visible': activeName === name
756
757
  }] }, scrollbarProps), {
@@ -1,7 +1,7 @@
1
1
  import { h, ref, nextTick, onBeforeUnmount, onMounted, computed, reactive, watch } from 'vue';
2
2
  import { defineVxeComponent } from '../../ui/src/comp';
3
3
  import XEUtils from 'xe-utils';
4
- import { VxeUI, useSize } from '../../ui';
4
+ import { VxeUI, useFns } from '../../ui';
5
5
  import { getLastZIndex, nextZIndex } from '../../ui/src/utils';
6
6
  import { getPopupAppendElement, toCssUnit, updatePanelPlacement } from '../../ui/src/dom';
7
7
  import { getSlotVNs } from '../../ui/src/vn';
@@ -129,7 +129,8 @@ export default defineVxeComponent({
129
129
  setup(props, context) {
130
130
  const { slots, emit } = context;
131
131
  const xID = XEUtils.uniqueId();
132
- const { computeSize } = useSize(props);
132
+ const { computeSize } = useFns.useSize(props);
133
+ const { computeIsVScrollbar } = useFns.useVScrollbar(props);
133
134
  const reactData = reactive(createReactData());
134
135
  const internalData = createInternalData();
135
136
  const refElem = ref();
@@ -402,8 +403,9 @@ export default defineVxeComponent({
402
403
  };
403
404
  Object.assign($xeTooltip, tooltipMethods, tooltipPrivateMethods);
404
405
  const renderContent = () => {
405
- const { useScrollbar, theme, useHtml, useHTML } = props;
406
+ const { theme, useHtml, useHTML } = props;
406
407
  const { tipContent } = reactData;
408
+ const isVScrollbar = computeIsVScrollbar.value;
407
409
  const wrapperStyle = computeWrapperStyle.value;
408
410
  const contentSlot = slots.content;
409
411
  const contVNs = [];
@@ -423,7 +425,7 @@ export default defineVxeComponent({
423
425
  key: 'cd'
424
426
  }, `${tipContent}`));
425
427
  }
426
- if (useScrollbar) {
428
+ if (isVScrollbar) {
427
429
  return h(VxeScrollbarComponent, {
428
430
  key: 5,
429
431
  ref: contentScrollbar,
@@ -497,7 +499,7 @@ export default defineVxeComponent({
497
499
  onMounted(() => {
498
500
  const $scrollbar = contentScrollbar.value;
499
501
  if ($scrollbar) {
500
- const viewEl = $scrollbar.getViewElem();
502
+ const viewEl = $scrollbar.getScrollViewElem();
501
503
  if (viewEl) {
502
504
  viewEl.addEventListener('wheel', wheelEvent, { passive: false });
503
505
  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)}
@@ -1,19 +1,19 @@
1
1
  import { ref, h, reactive, computed, watch, onBeforeUnmount, nextTick, onMounted, provide } from 'vue';
2
2
  import { defineVxeComponent } from '../../ui/src/comp';
3
- import { VxeUI, domUtils, createEvent, useSize, globalEvents, globalResize, renderEmptyElement } from '../../ui';
3
+ import { VxeUI, domUtils, createEvent, useFns, globalEvents, globalResize, renderEmptyElement } from '../../ui';
4
4
  import { calcTreeLine, getItemCacheObj } from './util';
5
5
  import { createComponentLog } from '../../ui/src/log';
6
6
  import { getCrossTreeDragNodeInfo } from './store';
7
7
  import XEUtils from 'xe-utils';
8
8
  import { getSlotVNs } from '../../ui/src/vn';
9
9
  import { toCssUnit, isScale, getPaddingTopBottomSize, addClass, removeClass, getTpImg, hasControlKey, getEventTargetNode, hasClass } from '../../ui/src/dom';
10
- import { isEnableConf, enModelValue, deModelValue, getText, getDefaultConfig } from '../../ui/src/utils';
10
+ import { isEnableConf, enModelValue, deModelValue, getText } from '../../ui/src/utils';
11
11
  import { moveRowAnimateToTb, clearRowAnimate } from '../../ui/src/anime';
12
12
  import VxeLoadingComponent from '../../loading';
13
13
  import VxeTooltipComponent from '../../tooltip';
14
14
  const { warnLog, errLog } = createComponentLog('tree');
15
- const { menus, scrollbarUtils, getConfig, getI18n, getIcon } = VxeUI;
16
- const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils;
15
+ const { menus, getConfig, getI18n, getIcon, baseUtils } = VxeUI;
16
+ const { getDefVal } = baseUtils;
17
17
  /**
18
18
  * 生成节点的唯一主键
19
19
  */
@@ -218,7 +218,7 @@ export default defineVxeComponent({
218
218
  virtualYConfig: Object,
219
219
  useScrollbar: {
220
220
  type: Boolean,
221
- default: () => getDefaultConfig(getConfig().tree.useScrollbar, getConfig().useScrollbar)
221
+ default: () => getDefVal(getConfig().tree.useScrollbar, getConfig().useScrollbar)
222
222
  },
223
223
  scrollbarConfig: Object
224
224
  },
@@ -246,22 +246,20 @@ export default defineVxeComponent({
246
246
  setup(props, context) {
247
247
  const { emit, slots } = context;
248
248
  const xID = XEUtils.uniqueId();
249
- const { computeSize } = useSize(props);
250
249
  const refElem = ref();
251
250
  const refHeaderWrapperElem = ref();
252
251
  const refFooterWrapperElem = ref();
253
252
  const refVirtualWrapper = ref();
253
+ const refVirtualSpaceElem = ref();
254
254
  const refVirtualBody = ref();
255
- const refTrackXElem = ref();
256
- const refTrackYElem = ref();
257
- const refThumbXElem = ref();
258
- const refThumbYElem = ref();
259
255
  const refDragNodeLineElem = ref();
260
256
  const refDragTipElem = ref();
261
257
  const refTooltip = ref();
262
258
  const crossTreeDragNodeInfo = getCrossTreeDragNodeInfo();
263
259
  const internalData = createInternalData();
264
260
  const reactData = reactive(createReactData());
261
+ const { computeSize } = useFns.useSize(props);
262
+ const { computeIsVScrollbar } = useFns.useVScrollbar(props);
265
263
  const refMaps = {
266
264
  refElem
267
265
  };
@@ -385,32 +383,32 @@ export default defineVxeComponent({
385
383
  const computeScrollXHeight = computed(() => {
386
384
  const scrollbarOpts = computeScrollbarOpts.value;
387
385
  const scrollbarXOpts = computeScrollbarXOpts.value;
388
- return getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), getConfig().scrollbar.height);
386
+ return getDefVal(getDefVal(scrollbarXOpts.height, scrollbarOpts.height), getConfig().scrollbar.height);
389
387
  });
390
388
  const computeScrollYWidth = computed(() => {
391
389
  const scrollbarOpts = computeScrollbarOpts.value;
392
390
  const scrollbarYOpts = computeScrollbarYOpts.value;
393
- return getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), getConfig().scrollbar.width);
391
+ return getDefVal(getDefVal(scrollbarYOpts.width, scrollbarOpts.width), getConfig().scrollbar.width);
394
392
  });
395
393
  const computeScrollXVisible = computed(() => {
396
394
  const scrollbarOpts = computeScrollbarOpts.value;
397
395
  const scrollbarXOpts = computeScrollbarXOpts.value;
398
- return getDefaultConfig(scrollbarXOpts.visible, scrollbarOpts.visible);
396
+ return getDefVal(scrollbarXOpts.visible, scrollbarOpts.visible);
399
397
  });
400
398
  const computeScrollYVisible = computed(() => {
401
399
  const scrollbarOpts = computeScrollbarOpts.value;
402
400
  const scrollbarYOpts = computeScrollbarYOpts.value;
403
- return getDefaultConfig(scrollbarYOpts.visible, scrollbarOpts.visible);
401
+ return getDefVal(scrollbarYOpts.visible, scrollbarOpts.visible);
404
402
  });
405
403
  const computeScrollXAutoHide = computed(() => {
406
404
  const scrollbarOpts = computeScrollbarOpts.value;
407
405
  const scrollbarXOpts = computeScrollbarXOpts.value;
408
- return getDefaultConfig(getDefaultConfig(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
406
+ return getDefVal(getDefVal(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
409
407
  });
410
408
  const computeScrollYAutoHide = computed(() => {
411
409
  const scrollbarOpts = computeScrollbarOpts.value;
412
410
  const scrollbarYOpts = computeScrollbarYOpts.value;
413
- return getDefaultConfig(getDefaultConfig(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
411
+ return getDefVal(getDefVal(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
414
412
  });
415
413
  const computeScrollbarWrapperClss = computed(() => {
416
414
  const { yThumbHeight, xThumbWidth } = reactData;
@@ -456,6 +454,7 @@ export default defineVxeComponent({
456
454
  getRefMaps: () => refMaps,
457
455
  getComputeMaps: () => computeMaps
458
456
  };
457
+ const { refTrackXElem, refTrackYElem, refThumbXElem, refThumbYElem, updateThumbSize, updateThumbOffset, clickTrackXEvent, clickTrackYEvent, pointerdownThumbXEvent, pointermoveThumbXEvent, cleatPointerThumbEvent, pointerdownThumbYEvent, pointermoveThumbYEvent } = useFns.useInitVScrollbar($xeTree);
459
458
  const getNodeId = (node) => {
460
459
  if (!node) {
461
460
  return '';
@@ -955,8 +954,14 @@ export default defineVxeComponent({
955
954
  });
956
955
  };
957
956
  const updateScrollbar = () => {
958
- updateThumbSize();
959
- updateThumbOffset();
957
+ const isVScrollbar = computeIsVScrollbar.value;
958
+ if (isVScrollbar) {
959
+ return nextTick().then(() => {
960
+ updateThumbSize();
961
+ updateThumbOffset();
962
+ });
963
+ }
964
+ return Promise.resolve();
960
965
  };
961
966
  /**
962
967
  * 重新计算列表
@@ -979,11 +984,11 @@ export default defineVxeComponent({
979
984
  const parentPaddingSize = getPaddingTopBottomSize(parentEl);
980
985
  reactData.parentHeight = Math.max(headHeight + footHeight + rowHeight, parentEl.clientHeight - parentPaddingSize - headHeight - footHeight);
981
986
  }
982
- updateScrollbar();
983
987
  updateHeight();
984
988
  return computeScrollLoad().then(() => {
985
989
  updateHeight();
986
990
  updateYSpace();
991
+ updateScrollbar();
987
992
  });
988
993
  }
989
994
  return nextTick();
@@ -1008,7 +1013,7 @@ export default defineVxeComponent({
1008
1013
  }
1009
1014
  };
1010
1015
  const scrollEvent = (evnt) => {
1011
- const scrollBodyElem = evnt.target;
1016
+ const scrollBodyElem = evnt.currentTarget;
1012
1017
  const scrollTop = scrollBodyElem.scrollTop;
1013
1018
  const scrollLeft = scrollBodyElem.scrollLeft;
1014
1019
  const isX = scrollLeft !== internalData.lastScrollLeft;
@@ -1742,6 +1747,10 @@ export default defineVxeComponent({
1742
1747
  };
1743
1748
  const treeMethods = {
1744
1749
  dispatchEvent,
1750
+ getScrollViewElem() {
1751
+ const viewEl = refVirtualWrapper.value;
1752
+ return viewEl || null;
1753
+ },
1745
1754
  getNodeId,
1746
1755
  getNodeById(nodeid) {
1747
1756
  const { nodeMaps } = internalData;
@@ -2996,160 +3005,24 @@ export default defineVxeComponent({
2996
3005
  hideDropTip();
2997
3006
  }
2998
3007
  };
2999
- const updateThumbSize = () => {
3000
- const viewEl = refVirtualWrapper.value;
3001
- if (!viewEl) {
3002
- return;
3003
- }
3004
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
3005
- return;
3006
- }
3007
- const trackXEl = refTrackXElem.value;
3008
- const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
3009
- const thumbXElem = refThumbXElem.value;
3010
- if (thumbXElem) {
3011
- thumbXElem.style.width = xThumbWidth + 'px';
3012
- }
3013
- reactData.xThumbWidth = xThumbWidth;
3014
- const trackYEl = refTrackYElem.value;
3015
- const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
3016
- const thumbYElem = refThumbYElem.value;
3017
- if (thumbYElem) {
3018
- thumbYElem.style.height = yThumbHeight + 'px';
3019
- }
3020
- reactData.yThumbHeight = yThumbHeight;
3021
- };
3022
- const updateThumbOffset = () => {
3023
- const viewEl = refVirtualWrapper.value;
3024
- if (!viewEl) {
3025
- return;
3026
- }
3027
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
3028
- return;
3029
- }
3030
- const { xThumbWidth, yThumbHeight } = reactData;
3031
- const trackXEl = refTrackXElem.value;
3032
- const thumbXElem = refThumbXElem.value;
3033
- const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
3034
- internalData.xThumbLeft = xThumbLeft;
3035
- if (thumbXElem && xThumbWidth) {
3036
- thumbXElem.style.width = xThumbWidth + 'px';
3037
- thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
3038
- }
3039
- const trackYEl = refTrackYElem.value;
3040
- const thumbYElem = refThumbYElem.value;
3041
- const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
3042
- internalData.yThumbTop = yThumbTop;
3043
- if (thumbYElem && yThumbHeight) {
3044
- thumbYElem.style.height = yThumbHeight + 'px';
3045
- thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
3046
- }
3047
- };
3048
- const clickTrackXEvent = (evnt) => {
3049
- const trackEl = evnt.currentTarget;
3050
- if (trackEl !== evnt.target) {
3051
- return;
3052
- }
3053
- const viewEl = refVirtualWrapper.value;
3054
- if (!viewEl) {
3055
- return;
3056
- }
3057
- const { xThumbWidth } = reactData;
3058
- const trackRect = trackEl.getBoundingClientRect();
3059
- viewEl.scrollTo({
3060
- left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
3061
- behavior: 'auto'
3062
- });
3063
- };
3064
- const clickTrackYEvent = (evnt) => {
3065
- const trackEl = evnt.currentTarget;
3066
- if (trackEl !== evnt.target) {
3067
- return;
3068
- }
3069
- const viewEl = refVirtualWrapper.value;
3070
- if (!viewEl) {
3071
- return;
3072
- }
3073
- const { yThumbHeight } = reactData;
3074
- const trackRect = trackEl.getBoundingClientRect();
3075
- viewEl.scrollTo({
3076
- top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
3077
- behavior: 'auto'
3078
- });
3079
- };
3080
- const pointerdownThumbXEvent = (evnt) => {
3081
- const thumbEl = evnt.currentTarget;
3082
- internalData.isThumbDrag = true;
3083
- thumbEl.setPointerCapture(evnt.pointerId);
3084
- const viewEl = refVirtualWrapper.value;
3085
- if (!viewEl) {
3086
- return;
3087
- }
3088
- const { xThumbWidth } = reactData;
3089
- const trackEl = thumbEl.parentElement;
3090
- const trackRect = trackEl.getBoundingClientRect();
3091
- const pointerPosition = evnt.clientX - trackRect.left;
3092
- // 记录 thumb 的偏移
3093
- const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
3094
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
3095
- };
3096
- const pointermoveThumbXEvent = (evnt) => {
3097
- const thumbEl = evnt.currentTarget;
3098
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
3099
- return;
3100
- }
3101
- const { isThumbDrag, thumbDragOffset } = internalData;
3102
- if (isThumbDrag) {
3103
- const viewEl = refVirtualWrapper.value;
3104
- if (!viewEl) {
3105
- return;
3106
- }
3107
- const { xThumbWidth } = reactData;
3108
- const thumbEl = evnt.currentTarget;
3109
- const trackEl = thumbEl.parentElement;
3110
- const trackRect = trackEl.getBoundingClientRect();
3111
- // 更新偏移
3112
- viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
3113
- }
3114
- };
3115
- const cleatPointerThumbEvent = (evnt) => {
3116
- const thumbEl = evnt.currentTarget;
3117
- thumbEl.releasePointerCapture(evnt.pointerId);
3118
- internalData.isThumbDrag = false;
3119
- };
3120
- const pointerdownThumbYEvent = (evnt) => {
3121
- const thumbEl = evnt.currentTarget;
3122
- internalData.isThumbDrag = true;
3123
- thumbEl.setPointerCapture(evnt.pointerId);
3124
- const viewEl = refVirtualWrapper.value;
3125
- if (!viewEl) {
3126
- return;
3127
- }
3128
- const { yThumbHeight } = reactData;
3129
- const trackEl = thumbEl.parentElement;
3130
- const trackRect = trackEl.getBoundingClientRect();
3131
- const pointerPosition = evnt.clientY - trackRect.top;
3132
- // 记录 thumb 的偏移
3133
- const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
3134
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
3135
- };
3136
- const pointermoveThumbYEvent = (evnt) => {
3137
- const thumbEl = evnt.currentTarget;
3138
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
3139
- return;
3140
- }
3141
- const { isThumbDrag, thumbDragOffset } = internalData;
3142
- if (isThumbDrag) {
3143
- const viewEl = refVirtualWrapper.value;
3144
- if (!viewEl) {
3145
- return;
3008
+ const bindScrollbarResize = () => {
3009
+ const isVScrollbar = computeIsVScrollbar.value;
3010
+ const { scrollObserver } = internalData;
3011
+ if (isVScrollbar) {
3012
+ if (!scrollObserver) {
3013
+ const el = refElem.value;
3014
+ const viewInnerEl = refVirtualSpaceElem.value;
3015
+ const scrollObserver = globalResize.create(() => {
3016
+ reScrollFlag.value++;
3017
+ });
3018
+ if (el) {
3019
+ scrollObserver.observe(el);
3020
+ }
3021
+ if (viewInnerEl) {
3022
+ scrollObserver.observe(viewInnerEl);
3023
+ }
3024
+ internalData.scrollObserver = scrollObserver;
3146
3025
  }
3147
- const { yThumbHeight } = reactData;
3148
- const thumbEl = evnt.currentTarget;
3149
- const trackEl = thumbEl.parentElement;
3150
- const trackRect = trackEl.getBoundingClientRect();
3151
- // 更新偏移
3152
- viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
3153
3026
  }
3154
3027
  };
3155
3028
  Object.assign($xeTree, treeMethods, treePrivateMethods);
@@ -3461,9 +3334,10 @@ export default defineVxeComponent({
3461
3334
  return renderEmptyElement($xeTree);
3462
3335
  };
3463
3336
  const renderVN = () => {
3464
- const { loading, trigger, showLine, useScrollbar } = props;
3337
+ const { loading, trigger, showLine } = props;
3465
3338
  const { bodyHeight, topSpaceHeight, treeList, tooltipStore, xThumbWidth, yThumbHeight } = reactData;
3466
3339
  const vSize = computeSize.value;
3340
+ const isVScrollbar = computeIsVScrollbar.value;
3467
3341
  const radioOpts = computeRadioOpts.value;
3468
3342
  const checkboxOpts = computeCheckboxOpts.value;
3469
3343
  const loadingOpts = computeLoadingOpts.value;
@@ -3490,17 +3364,17 @@ export default defineVxeComponent({
3490
3364
  }
3491
3365
  return h('div', Object.assign({ ref: refElem, class: [
3492
3366
  'vxe-tree',
3493
- useScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '',
3494
- useScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '',
3495
- useScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '',
3496
- useScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '',
3367
+ isVScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '',
3368
+ isVScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '',
3369
+ isVScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '',
3370
+ isVScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '',
3497
3371
  {
3498
3372
  [`size--${vSize}`]: vSize,
3499
3373
  'show--line': showLine,
3500
- 'is--virtual-scrollbar': useScrollbar,
3501
- 'ov-padding': useScrollbar && scrollbarOpts.padding,
3502
- 'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
3503
- 'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
3374
+ 'is--virtual-scrollbar': isVScrollbar,
3375
+ 'ov-padding': isVScrollbar && scrollbarOpts.padding,
3376
+ 'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
3377
+ 'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
3504
3378
  'overflow-y': yThumbHeight,
3505
3379
  'overflow-x': xThumbWidth,
3506
3380
  'checkbox--highlight': checkboxOpts.highlight,
@@ -3523,6 +3397,7 @@ export default defineVxeComponent({
3523
3397
  onScroll: scrollEvent
3524
3398
  }, [
3525
3399
  h('div', {
3400
+ ref: refVirtualSpaceElem,
3526
3401
  class: 'vxe-tree--y-space',
3527
3402
  style: {
3528
3403
  height: bodyHeight ? `${bodyHeight}px` : ''
@@ -3545,7 +3420,7 @@ export default defineVxeComponent({
3545
3420
  /**
3546
3421
  * 滚动条
3547
3422
  */
3548
- useScrollbar
3423
+ isVScrollbar
3549
3424
  ? h('div', {
3550
3425
  class: scrollbarWrapperClss
3551
3426
  }, [
@@ -3668,42 +3543,53 @@ export default defineVxeComponent({
3668
3543
  watch(() => props.filterValue, () => {
3669
3544
  triggerSearchEvent(new Event('filter'));
3670
3545
  });
3671
- const reFlag = ref(0);
3546
+ const reScrollFlag = ref(0);
3547
+ const reLayoutFlag = ref(0);
3672
3548
  watch(() => props.height, () => {
3673
- reFlag.value++;
3549
+ reLayoutFlag.value++;
3674
3550
  });
3675
3551
  watch(() => props.minHeight, () => {
3676
- reFlag.value++;
3552
+ reLayoutFlag.value++;
3677
3553
  });
3678
3554
  watch(() => props.maxHeight, () => {
3679
- reFlag.value++;
3555
+ reLayoutFlag.value++;
3680
3556
  });
3681
- watch(() => props.useScrollbar, () => {
3682
- reFlag.value++;
3557
+ watch(computeIsVScrollbar, () => {
3558
+ nextTick(() => {
3559
+ bindScrollbarResize();
3560
+ nextTick(() => {
3561
+ reLayoutFlag.value++;
3562
+ });
3563
+ });
3683
3564
  });
3684
3565
  watch(computeScrollYWidth, () => {
3685
- reFlag.value++;
3566
+ reLayoutFlag.value++;
3686
3567
  });
3687
3568
  watch(computeScrollXHeight, () => {
3688
- reFlag.value++;
3569
+ reLayoutFlag.value++;
3689
3570
  });
3690
3571
  watch(computeScrollXVisible, () => {
3691
3572
  nextTick(() => {
3692
- reFlag.value++;
3573
+ reLayoutFlag.value++;
3693
3574
  });
3694
3575
  });
3695
3576
  watch(computeScrollYVisible, () => {
3696
3577
  nextTick(() => {
3697
- reFlag.value++;
3578
+ reLayoutFlag.value++;
3698
3579
  });
3699
3580
  });
3700
- watch(reFlag, () => {
3581
+ watch(reLayoutFlag, () => {
3701
3582
  recalculate().then(() => {
3702
3583
  recalculate();
3703
3584
  });
3704
3585
  });
3586
+ watch(reScrollFlag, () => {
3587
+ updateScrollbar().then(() => {
3588
+ updateScrollbar();
3589
+ });
3590
+ });
3705
3591
  onMounted(() => {
3706
- const { transform, drag, menuConfig, showOverflow, lazy, loadMethod, autoResize, useScrollbar } = props;
3592
+ const { transform, drag, menuConfig, showOverflow, lazy, loadMethod, autoResize } = props;
3707
3593
  const dragOpts = computeDragOpts.value;
3708
3594
  if (!showOverflow) {
3709
3595
  errLog('vxe.error.errProp', ['show-overflow=false', 'show-overflow=true']);
@@ -3724,25 +3610,12 @@ export default defineVxeComponent({
3724
3610
  if (menuConfig && !VxeUIContextMenu) {
3725
3611
  errLog('vxe.error.reqComp', ['vxe-context-menu']);
3726
3612
  }
3727
- const el = refElem.value;
3728
- if (useScrollbar || autoResize) {
3729
- const viewInnerEl = refVirtualBody.value;
3730
- const scrollObserver = globalResize.create(() => {
3731
- updateScrollbar();
3732
- });
3733
- if (el) {
3734
- scrollObserver.observe(el);
3735
- }
3736
- if (viewInnerEl) {
3737
- scrollObserver.observe(viewInnerEl);
3738
- }
3739
- internalData.scrollObserver = scrollObserver;
3740
- }
3741
3613
  if (autoResize) {
3614
+ const el = refElem.value;
3742
3615
  const parentEl = getParentElem();
3743
3616
  const resizeObserver = globalResize.create(() => {
3744
3617
  if (props.autoResize) {
3745
- reFlag.value++;
3618
+ reLayoutFlag.value++;
3746
3619
  }
3747
3620
  });
3748
3621
  if (el) {
@@ -3753,9 +3626,10 @@ export default defineVxeComponent({
3753
3626
  }
3754
3627
  internalData.resizeObserver = resizeObserver;
3755
3628
  }
3756
- reFlag.value++;
3629
+ reLayoutFlag.value++;
3630
+ bindScrollbarResize();
3757
3631
  globalEvents.on($xeTree, 'resize', () => {
3758
- reFlag.value++;
3632
+ reLayoutFlag.value++;
3759
3633
  });
3760
3634
  });
3761
3635
  onBeforeUnmount(() => {
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 = "4.20.8";
4
+ export const version = "4.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${"4.20.8"}`;
3
+ const uiVersion = `ui v${"4.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}` : '';