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.
- package/dist/all.esm.js +2041 -2125
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/card/src/card.js +8 -6
- package/es/date-panel/src/date-panel.js +58 -36
- package/es/date-panel/style.css +22 -20
- package/es/date-panel/style.min.css +1 -1
- package/es/drawer/src/drawer.js +7 -5
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +74 -38
- package/es/icon-picker/style.css +9 -3
- package/es/icon-picker/style.min.css +1 -1
- package/es/layout-aside/src/layout-aside.js +6 -4
- package/es/layout-body/src/layout-body.js +6 -4
- package/es/layout-container/src/layout-container.js +11 -3
- package/es/list/src/list.js +81 -208
- package/es/menu/src/menu.js +7 -5
- package/es/modal/src/modal.js +7 -5
- package/es/scrollbar/src/scrollbar.js +28 -173
- package/es/select/src/select.js +243 -8
- package/es/select/style.css +44 -0
- package/es/select/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tabs/src/tabs.js +5 -4
- package/es/tooltip/src/tooltip.js +7 -5
- package/es/tooltip/style.css +2 -0
- package/es/tooltip/style.min.css +1 -1
- package/es/tree/src/tree.js +86 -212
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-date-panel/style.css +22 -20
- package/es/vxe-date-panel/style.min.css +1 -1
- package/es/vxe-icon-picker/style.css +9 -3
- package/es/vxe-icon-picker/style.min.css +1 -1
- package/es/vxe-select/style.css +44 -0
- package/es/vxe-select/style.min.css +1 -1
- package/es/vxe-tooltip/style.css +2 -0
- package/es/vxe-tooltip/style.min.css +1 -1
- package/lib/card/src/card.js +9 -6
- package/lib/card/src/card.min.js +1 -1
- package/lib/date-panel/src/date-panel.js +56 -34
- package/lib/date-panel/src/date-panel.min.js +1 -1
- package/lib/date-panel/style/style.css +22 -20
- package/lib/date-panel/style/style.min.css +1 -1
- package/lib/drawer/src/drawer.js +7 -4
- package/lib/drawer/src/drawer.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/icon-picker/src/icon-picker.js +101 -45
- package/lib/icon-picker/src/icon-picker.min.js +1 -1
- package/lib/icon-picker/style/style.css +9 -3
- package/lib/icon-picker/style/style.min.css +1 -1
- package/lib/index.umd.js +1049 -859
- package/lib/index.umd.min.js +1 -1
- package/lib/layout-aside/src/layout-aside.js +7 -4
- package/lib/layout-aside/src/layout-aside.min.js +1 -1
- package/lib/layout-body/src/layout-body.js +7 -4
- package/lib/layout-body/src/layout-body.min.js +1 -1
- package/lib/layout-container/src/layout-container.js +20 -4
- package/lib/layout-container/src/layout-container.min.js +1 -1
- package/lib/list/src/list.js +95 -232
- package/lib/list/src/list.min.js +1 -1
- package/lib/menu/src/menu.js +8 -4
- package/lib/menu/src/menu.min.js +1 -1
- package/lib/modal/src/modal.js +7 -4
- package/lib/modal/src/modal.min.js +1 -1
- package/lib/scrollbar/src/scrollbar.js +42 -199
- package/lib/scrollbar/src/scrollbar.min.js +1 -1
- package/lib/select/src/select.js +315 -68
- package/lib/select/src/select.min.js +1 -1
- package/lib/select/style/style.css +44 -0
- package/lib/select/style/style.min.css +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tabs/src/tabs.js +6 -5
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/tooltip/src/tooltip.js +7 -4
- package/lib/tooltip/src/tooltip.min.js +1 -1
- package/lib/tooltip/style/style.css +2 -0
- package/lib/tooltip/style/style.min.css +1 -1
- package/lib/tree/src/tree.js +101 -235
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-date-panel/style/style.css +22 -20
- package/lib/vxe-date-panel/style/style.min.css +1 -1
- package/lib/vxe-icon-picker/style/style.css +9 -3
- package/lib/vxe-icon-picker/style/style.min.css +1 -1
- package/lib/vxe-select/style/style.css +44 -0
- package/lib/vxe-select/style/style.min.css +1 -1
- package/lib/vxe-tooltip/style/style.css +2 -0
- package/lib/vxe-tooltip/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/card/src/card.ts +8 -6
- package/packages/date-panel/src/date-panel.ts +58 -36
- package/packages/drawer/src/drawer.ts +7 -5
- package/packages/icon-picker/src/icon-picker.ts +80 -38
- package/packages/layout-aside/src/layout-aside.ts +6 -4
- package/packages/layout-body/src/layout-body.ts +6 -4
- package/packages/layout-container/src/layout-container.ts +13 -3
- package/packages/list/src/list.ts +98 -224
- package/packages/menu/src/menu.ts +7 -5
- package/packages/modal/src/modal.ts +7 -5
- package/packages/scrollbar/src/scrollbar.ts +44 -189
- package/packages/select/src/select.ts +278 -8
- package/packages/tabs/src/tabs.ts +5 -4
- package/packages/tooltip/src/tooltip.ts +7 -5
- package/packages/tree/src/tree.ts +103 -228
- package/styles/components/date-panel.scss +31 -29
- package/styles/components/icon-picker.scss +9 -3
- package/styles/components/select.scss +77 -0
- package/styles/components/tooltip.scss +1 -0
- package/types/components/card.d.ts +2 -2
- package/types/components/drawer.d.ts +2 -2
- package/types/components/gantt-module/gantt-view.d.ts +7 -16
- package/types/components/grid.d.ts +3 -1
- package/types/components/icon-picker.d.ts +21 -1
- package/types/components/layout-aside.d.ts +2 -2
- package/types/components/layout-body.d.ts +2 -2
- package/types/components/layout-container.d.ts +3 -1
- package/types/components/list.d.ts +6 -2
- package/types/components/menu.d.ts +2 -2
- package/types/components/modal.d.ts +2 -2
- package/types/components/scrollbar.d.ts +17 -14
- package/types/components/select.d.ts +28 -3
- package/types/components/table.d.ts +28 -22
- package/types/components/tabs.d.ts +2 -2
- package/types/components/tooltip.d.ts +2 -2
- package/types/components/tree.d.ts +8 -17
- /package/es/icon/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/es/icon/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
- /package/es/icon/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
- /package/es/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/es/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
- /package/es/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
- /package/lib/icon/style/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
- /package/lib/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/lib/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
- /package/lib/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
package/es/tabs/src/tabs.js
CHANGED
|
@@ -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,
|
|
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
|
|
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,
|
|
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 {
|
|
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 (
|
|
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.
|
|
502
|
+
const viewEl = $scrollbar.getScrollViewElem();
|
|
501
503
|
if (viewEl) {
|
|
502
504
|
viewEl.addEventListener('wheel', wheelEvent, { passive: false });
|
|
503
505
|
internalData.scrollbarViewEl = viewEl;
|
package/es/tooltip/style.css
CHANGED
package/es/tooltip/style.min.css
CHANGED
|
@@ -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)}
|
package/es/tree/src/tree.js
CHANGED
|
@@ -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,
|
|
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
|
|
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,
|
|
16
|
-
const {
|
|
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: () =>
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
959
|
-
|
|
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.
|
|
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
|
|
3000
|
-
const
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
|
|
3004
|
-
|
|
3005
|
-
|
|
3006
|
-
|
|
3007
|
-
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
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
|
|
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
|
-
|
|
3494
|
-
|
|
3495
|
-
|
|
3496
|
-
|
|
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':
|
|
3501
|
-
'ov-padding':
|
|
3502
|
-
'ov-x--auto-hide':
|
|
3503
|
-
'ov-y--auto-hide':
|
|
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
|
-
|
|
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
|
|
3546
|
+
const reScrollFlag = ref(0);
|
|
3547
|
+
const reLayoutFlag = ref(0);
|
|
3672
3548
|
watch(() => props.height, () => {
|
|
3673
|
-
|
|
3549
|
+
reLayoutFlag.value++;
|
|
3674
3550
|
});
|
|
3675
3551
|
watch(() => props.minHeight, () => {
|
|
3676
|
-
|
|
3552
|
+
reLayoutFlag.value++;
|
|
3677
3553
|
});
|
|
3678
3554
|
watch(() => props.maxHeight, () => {
|
|
3679
|
-
|
|
3555
|
+
reLayoutFlag.value++;
|
|
3680
3556
|
});
|
|
3681
|
-
watch(
|
|
3682
|
-
|
|
3557
|
+
watch(computeIsVScrollbar, () => {
|
|
3558
|
+
nextTick(() => {
|
|
3559
|
+
bindScrollbarResize();
|
|
3560
|
+
nextTick(() => {
|
|
3561
|
+
reLayoutFlag.value++;
|
|
3562
|
+
});
|
|
3563
|
+
});
|
|
3683
3564
|
});
|
|
3684
3565
|
watch(computeScrollYWidth, () => {
|
|
3685
|
-
|
|
3566
|
+
reLayoutFlag.value++;
|
|
3686
3567
|
});
|
|
3687
3568
|
watch(computeScrollXHeight, () => {
|
|
3688
|
-
|
|
3569
|
+
reLayoutFlag.value++;
|
|
3689
3570
|
});
|
|
3690
3571
|
watch(computeScrollXVisible, () => {
|
|
3691
3572
|
nextTick(() => {
|
|
3692
|
-
|
|
3573
|
+
reLayoutFlag.value++;
|
|
3693
3574
|
});
|
|
3694
3575
|
});
|
|
3695
3576
|
watch(computeScrollYVisible, () => {
|
|
3696
3577
|
nextTick(() => {
|
|
3697
|
-
|
|
3578
|
+
reLayoutFlag.value++;
|
|
3698
3579
|
});
|
|
3699
3580
|
});
|
|
3700
|
-
watch(
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
3629
|
+
reLayoutFlag.value++;
|
|
3630
|
+
bindScrollbarResize();
|
|
3757
3631
|
globalEvents.on($xeTree, 'resize', () => {
|
|
3758
|
-
|
|
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.
|
|
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.
|
|
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}` : '';
|