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/lib/tree/src/tree.js
CHANGED
|
@@ -24,17 +24,14 @@ const {
|
|
|
24
24
|
} = (0, _log.createComponentLog)('tree');
|
|
25
25
|
const {
|
|
26
26
|
menus,
|
|
27
|
-
scrollbarUtils,
|
|
28
27
|
getConfig,
|
|
29
28
|
getI18n,
|
|
30
|
-
getIcon
|
|
29
|
+
getIcon,
|
|
30
|
+
baseUtils
|
|
31
31
|
} = _ui.VxeUI;
|
|
32
32
|
const {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
getScrollFromClick,
|
|
36
|
-
getScrollFromDrag
|
|
37
|
-
} = scrollbarUtils;
|
|
33
|
+
getDefVal
|
|
34
|
+
} = baseUtils;
|
|
38
35
|
/**
|
|
39
36
|
* 生成节点的唯一主键
|
|
40
37
|
*/
|
|
@@ -239,7 +236,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
239
236
|
virtualYConfig: Object,
|
|
240
237
|
useScrollbar: {
|
|
241
238
|
type: Boolean,
|
|
242
|
-
default: () => (
|
|
239
|
+
default: () => getDefVal(getConfig().tree.useScrollbar, getConfig().useScrollbar)
|
|
243
240
|
},
|
|
244
241
|
scrollbarConfig: Object
|
|
245
242
|
},
|
|
@@ -250,24 +247,24 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
250
247
|
slots
|
|
251
248
|
} = context;
|
|
252
249
|
const xID = _xeUtils.default.uniqueId();
|
|
253
|
-
const {
|
|
254
|
-
computeSize
|
|
255
|
-
} = (0, _ui.useSize)(props);
|
|
256
250
|
const refElem = (0, _vue.ref)();
|
|
257
251
|
const refHeaderWrapperElem = (0, _vue.ref)();
|
|
258
252
|
const refFooterWrapperElem = (0, _vue.ref)();
|
|
259
253
|
const refVirtualWrapper = (0, _vue.ref)();
|
|
254
|
+
const refVirtualSpaceElem = (0, _vue.ref)();
|
|
260
255
|
const refVirtualBody = (0, _vue.ref)();
|
|
261
|
-
const refTrackXElem = (0, _vue.ref)();
|
|
262
|
-
const refTrackYElem = (0, _vue.ref)();
|
|
263
|
-
const refThumbXElem = (0, _vue.ref)();
|
|
264
|
-
const refThumbYElem = (0, _vue.ref)();
|
|
265
256
|
const refDragNodeLineElem = (0, _vue.ref)();
|
|
266
257
|
const refDragTipElem = (0, _vue.ref)();
|
|
267
258
|
const refTooltip = (0, _vue.ref)();
|
|
268
259
|
const crossTreeDragNodeInfo = (0, _store.getCrossTreeDragNodeInfo)();
|
|
269
260
|
const internalData = createInternalData();
|
|
270
261
|
const reactData = (0, _vue.reactive)(createReactData());
|
|
262
|
+
const {
|
|
263
|
+
computeSize
|
|
264
|
+
} = _ui.useFns.useSize(props);
|
|
265
|
+
const {
|
|
266
|
+
computeIsVScrollbar
|
|
267
|
+
} = _ui.useFns.useVScrollbar(props);
|
|
271
268
|
const refMaps = {
|
|
272
269
|
refElem
|
|
273
270
|
};
|
|
@@ -410,32 +407,32 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
410
407
|
const computeScrollXHeight = (0, _vue.computed)(() => {
|
|
411
408
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
412
409
|
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
413
|
-
return (
|
|
410
|
+
return getDefVal(getDefVal(scrollbarXOpts.height, scrollbarOpts.height), getConfig().scrollbar.height);
|
|
414
411
|
});
|
|
415
412
|
const computeScrollYWidth = (0, _vue.computed)(() => {
|
|
416
413
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
417
414
|
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
418
|
-
return (
|
|
415
|
+
return getDefVal(getDefVal(scrollbarYOpts.width, scrollbarOpts.width), getConfig().scrollbar.width);
|
|
419
416
|
});
|
|
420
417
|
const computeScrollXVisible = (0, _vue.computed)(() => {
|
|
421
418
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
422
419
|
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
423
|
-
return (
|
|
420
|
+
return getDefVal(scrollbarXOpts.visible, scrollbarOpts.visible);
|
|
424
421
|
});
|
|
425
422
|
const computeScrollYVisible = (0, _vue.computed)(() => {
|
|
426
423
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
427
424
|
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
428
|
-
return (
|
|
425
|
+
return getDefVal(scrollbarYOpts.visible, scrollbarOpts.visible);
|
|
429
426
|
});
|
|
430
427
|
const computeScrollXAutoHide = (0, _vue.computed)(() => {
|
|
431
428
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
432
429
|
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
433
|
-
return (
|
|
430
|
+
return getDefVal(getDefVal(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
|
|
434
431
|
});
|
|
435
432
|
const computeScrollYAutoHide = (0, _vue.computed)(() => {
|
|
436
433
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
437
434
|
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
438
|
-
return (
|
|
435
|
+
return getDefVal(getDefVal(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
|
|
439
436
|
});
|
|
440
437
|
const computeScrollbarWrapperClss = (0, _vue.computed)(() => {
|
|
441
438
|
const {
|
|
@@ -478,6 +475,21 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
478
475
|
getRefMaps: () => refMaps,
|
|
479
476
|
getComputeMaps: () => computeMaps
|
|
480
477
|
};
|
|
478
|
+
const {
|
|
479
|
+
refTrackXElem,
|
|
480
|
+
refTrackYElem,
|
|
481
|
+
refThumbXElem,
|
|
482
|
+
refThumbYElem,
|
|
483
|
+
updateThumbSize,
|
|
484
|
+
updateThumbOffset,
|
|
485
|
+
clickTrackXEvent,
|
|
486
|
+
clickTrackYEvent,
|
|
487
|
+
pointerdownThumbXEvent,
|
|
488
|
+
pointermoveThumbXEvent,
|
|
489
|
+
cleatPointerThumbEvent,
|
|
490
|
+
pointerdownThumbYEvent,
|
|
491
|
+
pointermoveThumbYEvent
|
|
492
|
+
} = _ui.useFns.useInitVScrollbar($xeTree);
|
|
481
493
|
const getNodeId = node => {
|
|
482
494
|
if (!node) {
|
|
483
495
|
return '';
|
|
@@ -1054,8 +1066,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1054
1066
|
});
|
|
1055
1067
|
};
|
|
1056
1068
|
const updateScrollbar = () => {
|
|
1057
|
-
|
|
1058
|
-
|
|
1069
|
+
const isVScrollbar = computeIsVScrollbar.value;
|
|
1070
|
+
if (isVScrollbar) {
|
|
1071
|
+
return (0, _vue.nextTick)().then(() => {
|
|
1072
|
+
updateThumbSize();
|
|
1073
|
+
updateThumbOffset();
|
|
1074
|
+
});
|
|
1075
|
+
}
|
|
1076
|
+
return Promise.resolve();
|
|
1059
1077
|
};
|
|
1060
1078
|
/**
|
|
1061
1079
|
* 重新计算列表
|
|
@@ -1082,11 +1100,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1082
1100
|
const parentPaddingSize = (0, _dom.getPaddingTopBottomSize)(parentEl);
|
|
1083
1101
|
reactData.parentHeight = Math.max(headHeight + footHeight + rowHeight, parentEl.clientHeight - parentPaddingSize - headHeight - footHeight);
|
|
1084
1102
|
}
|
|
1085
|
-
updateScrollbar();
|
|
1086
1103
|
updateHeight();
|
|
1087
1104
|
return computeScrollLoad().then(() => {
|
|
1088
1105
|
updateHeight();
|
|
1089
1106
|
updateYSpace();
|
|
1107
|
+
updateScrollbar();
|
|
1090
1108
|
});
|
|
1091
1109
|
}
|
|
1092
1110
|
return (0, _vue.nextTick)();
|
|
@@ -1119,7 +1137,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1119
1137
|
}
|
|
1120
1138
|
};
|
|
1121
1139
|
const scrollEvent = evnt => {
|
|
1122
|
-
const scrollBodyElem = evnt.
|
|
1140
|
+
const scrollBodyElem = evnt.currentTarget;
|
|
1123
1141
|
const scrollTop = scrollBodyElem.scrollTop;
|
|
1124
1142
|
const scrollLeft = scrollBodyElem.scrollLeft;
|
|
1125
1143
|
const isX = scrollLeft !== internalData.lastScrollLeft;
|
|
@@ -2021,6 +2039,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
2021
2039
|
};
|
|
2022
2040
|
const treeMethods = {
|
|
2023
2041
|
dispatchEvent,
|
|
2042
|
+
getScrollViewElem() {
|
|
2043
|
+
const viewEl = refVirtualWrapper.value;
|
|
2044
|
+
return viewEl || null;
|
|
2045
|
+
},
|
|
2024
2046
|
getNodeId,
|
|
2025
2047
|
getNodeById(nodeid) {
|
|
2026
2048
|
const {
|
|
@@ -3462,181 +3484,26 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
3462
3484
|
hideDropTip();
|
|
3463
3485
|
}
|
|
3464
3486
|
};
|
|
3465
|
-
const
|
|
3466
|
-
const
|
|
3467
|
-
if (!viewEl) {
|
|
3468
|
-
return;
|
|
3469
|
-
}
|
|
3470
|
-
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
3471
|
-
return;
|
|
3472
|
-
}
|
|
3473
|
-
const trackXEl = refTrackXElem.value;
|
|
3474
|
-
const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
|
|
3475
|
-
const thumbXElem = refThumbXElem.value;
|
|
3476
|
-
if (thumbXElem) {
|
|
3477
|
-
thumbXElem.style.width = xThumbWidth + 'px';
|
|
3478
|
-
}
|
|
3479
|
-
reactData.xThumbWidth = xThumbWidth;
|
|
3480
|
-
const trackYEl = refTrackYElem.value;
|
|
3481
|
-
const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
|
|
3482
|
-
const thumbYElem = refThumbYElem.value;
|
|
3483
|
-
if (thumbYElem) {
|
|
3484
|
-
thumbYElem.style.height = yThumbHeight + 'px';
|
|
3485
|
-
}
|
|
3486
|
-
reactData.yThumbHeight = yThumbHeight;
|
|
3487
|
-
};
|
|
3488
|
-
const updateThumbOffset = () => {
|
|
3489
|
-
const viewEl = refVirtualWrapper.value;
|
|
3490
|
-
if (!viewEl) {
|
|
3491
|
-
return;
|
|
3492
|
-
}
|
|
3493
|
-
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
3494
|
-
return;
|
|
3495
|
-
}
|
|
3496
|
-
const {
|
|
3497
|
-
xThumbWidth,
|
|
3498
|
-
yThumbHeight
|
|
3499
|
-
} = reactData;
|
|
3500
|
-
const trackXEl = refTrackXElem.value;
|
|
3501
|
-
const thumbXElem = refThumbXElem.value;
|
|
3502
|
-
const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
|
|
3503
|
-
internalData.xThumbLeft = xThumbLeft;
|
|
3504
|
-
if (thumbXElem && xThumbWidth) {
|
|
3505
|
-
thumbXElem.style.width = xThumbWidth + 'px';
|
|
3506
|
-
thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
|
|
3507
|
-
}
|
|
3508
|
-
const trackYEl = refTrackYElem.value;
|
|
3509
|
-
const thumbYElem = refThumbYElem.value;
|
|
3510
|
-
const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
|
|
3511
|
-
internalData.yThumbTop = yThumbTop;
|
|
3512
|
-
if (thumbYElem && yThumbHeight) {
|
|
3513
|
-
thumbYElem.style.height = yThumbHeight + 'px';
|
|
3514
|
-
thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
|
|
3515
|
-
}
|
|
3516
|
-
};
|
|
3517
|
-
const clickTrackXEvent = evnt => {
|
|
3518
|
-
const trackEl = evnt.currentTarget;
|
|
3519
|
-
if (trackEl !== evnt.target) {
|
|
3520
|
-
return;
|
|
3521
|
-
}
|
|
3522
|
-
const viewEl = refVirtualWrapper.value;
|
|
3523
|
-
if (!viewEl) {
|
|
3524
|
-
return;
|
|
3525
|
-
}
|
|
3526
|
-
const {
|
|
3527
|
-
xThumbWidth
|
|
3528
|
-
} = reactData;
|
|
3529
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
3530
|
-
viewEl.scrollTo({
|
|
3531
|
-
left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
|
|
3532
|
-
behavior: 'auto'
|
|
3533
|
-
});
|
|
3534
|
-
};
|
|
3535
|
-
const clickTrackYEvent = evnt => {
|
|
3536
|
-
const trackEl = evnt.currentTarget;
|
|
3537
|
-
if (trackEl !== evnt.target) {
|
|
3538
|
-
return;
|
|
3539
|
-
}
|
|
3540
|
-
const viewEl = refVirtualWrapper.value;
|
|
3541
|
-
if (!viewEl) {
|
|
3542
|
-
return;
|
|
3543
|
-
}
|
|
3544
|
-
const {
|
|
3545
|
-
yThumbHeight
|
|
3546
|
-
} = reactData;
|
|
3547
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
3548
|
-
viewEl.scrollTo({
|
|
3549
|
-
top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
|
|
3550
|
-
behavior: 'auto'
|
|
3551
|
-
});
|
|
3552
|
-
};
|
|
3553
|
-
const pointerdownThumbXEvent = evnt => {
|
|
3554
|
-
const thumbEl = evnt.currentTarget;
|
|
3555
|
-
internalData.isThumbDrag = true;
|
|
3556
|
-
thumbEl.setPointerCapture(evnt.pointerId);
|
|
3557
|
-
const viewEl = refVirtualWrapper.value;
|
|
3558
|
-
if (!viewEl) {
|
|
3559
|
-
return;
|
|
3560
|
-
}
|
|
3561
|
-
const {
|
|
3562
|
-
xThumbWidth
|
|
3563
|
-
} = reactData;
|
|
3564
|
-
const trackEl = thumbEl.parentElement;
|
|
3565
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
3566
|
-
const pointerPosition = evnt.clientX - trackRect.left;
|
|
3567
|
-
// 记录 thumb 的偏移
|
|
3568
|
-
const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
3569
|
-
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
3570
|
-
};
|
|
3571
|
-
const pointermoveThumbXEvent = evnt => {
|
|
3572
|
-
const thumbEl = evnt.currentTarget;
|
|
3573
|
-
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
3574
|
-
return;
|
|
3575
|
-
}
|
|
3576
|
-
const {
|
|
3577
|
-
isThumbDrag,
|
|
3578
|
-
thumbDragOffset
|
|
3579
|
-
} = internalData;
|
|
3580
|
-
if (isThumbDrag) {
|
|
3581
|
-
const viewEl = refVirtualWrapper.value;
|
|
3582
|
-
if (!viewEl) {
|
|
3583
|
-
return;
|
|
3584
|
-
}
|
|
3585
|
-
const {
|
|
3586
|
-
xThumbWidth
|
|
3587
|
-
} = reactData;
|
|
3588
|
-
const thumbEl = evnt.currentTarget;
|
|
3589
|
-
const trackEl = thumbEl.parentElement;
|
|
3590
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
3591
|
-
// 更新偏移
|
|
3592
|
-
viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
3593
|
-
}
|
|
3594
|
-
};
|
|
3595
|
-
const cleatPointerThumbEvent = evnt => {
|
|
3596
|
-
const thumbEl = evnt.currentTarget;
|
|
3597
|
-
thumbEl.releasePointerCapture(evnt.pointerId);
|
|
3598
|
-
internalData.isThumbDrag = false;
|
|
3599
|
-
};
|
|
3600
|
-
const pointerdownThumbYEvent = evnt => {
|
|
3601
|
-
const thumbEl = evnt.currentTarget;
|
|
3602
|
-
internalData.isThumbDrag = true;
|
|
3603
|
-
thumbEl.setPointerCapture(evnt.pointerId);
|
|
3604
|
-
const viewEl = refVirtualWrapper.value;
|
|
3605
|
-
if (!viewEl) {
|
|
3606
|
-
return;
|
|
3607
|
-
}
|
|
3608
|
-
const {
|
|
3609
|
-
yThumbHeight
|
|
3610
|
-
} = reactData;
|
|
3611
|
-
const trackEl = thumbEl.parentElement;
|
|
3612
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
3613
|
-
const pointerPosition = evnt.clientY - trackRect.top;
|
|
3614
|
-
// 记录 thumb 的偏移
|
|
3615
|
-
const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
3616
|
-
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
3617
|
-
};
|
|
3618
|
-
const pointermoveThumbYEvent = evnt => {
|
|
3619
|
-
const thumbEl = evnt.currentTarget;
|
|
3620
|
-
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
3621
|
-
return;
|
|
3622
|
-
}
|
|
3487
|
+
const bindScrollbarResize = () => {
|
|
3488
|
+
const isVScrollbar = computeIsVScrollbar.value;
|
|
3623
3489
|
const {
|
|
3624
|
-
|
|
3625
|
-
thumbDragOffset
|
|
3490
|
+
scrollObserver
|
|
3626
3491
|
} = internalData;
|
|
3627
|
-
if (
|
|
3628
|
-
|
|
3629
|
-
|
|
3630
|
-
|
|
3492
|
+
if (isVScrollbar) {
|
|
3493
|
+
if (!scrollObserver) {
|
|
3494
|
+
const el = refElem.value;
|
|
3495
|
+
const viewInnerEl = refVirtualSpaceElem.value;
|
|
3496
|
+
const scrollObserver = _ui.globalResize.create(() => {
|
|
3497
|
+
reScrollFlag.value++;
|
|
3498
|
+
});
|
|
3499
|
+
if (el) {
|
|
3500
|
+
scrollObserver.observe(el);
|
|
3501
|
+
}
|
|
3502
|
+
if (viewInnerEl) {
|
|
3503
|
+
scrollObserver.observe(viewInnerEl);
|
|
3504
|
+
}
|
|
3505
|
+
internalData.scrollObserver = scrollObserver;
|
|
3631
3506
|
}
|
|
3632
|
-
const {
|
|
3633
|
-
yThumbHeight
|
|
3634
|
-
} = reactData;
|
|
3635
|
-
const thumbEl = evnt.currentTarget;
|
|
3636
|
-
const trackEl = thumbEl.parentElement;
|
|
3637
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
3638
|
-
// 更新偏移
|
|
3639
|
-
viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
3640
3507
|
}
|
|
3641
3508
|
};
|
|
3642
3509
|
Object.assign($xeTree, treeMethods, treePrivateMethods);
|
|
@@ -3981,8 +3848,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
3981
3848
|
const {
|
|
3982
3849
|
loading,
|
|
3983
3850
|
trigger,
|
|
3984
|
-
showLine
|
|
3985
|
-
useScrollbar
|
|
3851
|
+
showLine
|
|
3986
3852
|
} = props;
|
|
3987
3853
|
const {
|
|
3988
3854
|
bodyHeight,
|
|
@@ -3993,6 +3859,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
3993
3859
|
yThumbHeight
|
|
3994
3860
|
} = reactData;
|
|
3995
3861
|
const vSize = computeSize.value;
|
|
3862
|
+
const isVScrollbar = computeIsVScrollbar.value;
|
|
3996
3863
|
const radioOpts = computeRadioOpts.value;
|
|
3997
3864
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
3998
3865
|
const loadingOpts = computeLoadingOpts.value;
|
|
@@ -4019,13 +3886,13 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
4019
3886
|
}
|
|
4020
3887
|
return (0, _vue.h)('div', Object.assign({
|
|
4021
3888
|
ref: refElem,
|
|
4022
|
-
class: ['vxe-tree',
|
|
3889
|
+
class: ['vxe-tree', isVScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '', isVScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '', isVScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '', isVScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '', {
|
|
4023
3890
|
[`size--${vSize}`]: vSize,
|
|
4024
3891
|
'show--line': showLine,
|
|
4025
|
-
'is--virtual-scrollbar':
|
|
4026
|
-
'ov-padding':
|
|
4027
|
-
'ov-x--auto-hide':
|
|
4028
|
-
'ov-y--auto-hide':
|
|
3892
|
+
'is--virtual-scrollbar': isVScrollbar,
|
|
3893
|
+
'ov-padding': isVScrollbar && scrollbarOpts.padding,
|
|
3894
|
+
'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
|
|
3895
|
+
'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
|
|
4029
3896
|
'overflow-y': yThumbHeight,
|
|
4030
3897
|
'overflow-x': xThumbWidth,
|
|
4031
3898
|
'checkbox--highlight': checkboxOpts.highlight,
|
|
@@ -4046,6 +3913,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
4046
3913
|
style: treeStyle,
|
|
4047
3914
|
onScroll: scrollEvent
|
|
4048
3915
|
}, [(0, _vue.h)('div', {
|
|
3916
|
+
ref: refVirtualSpaceElem,
|
|
4049
3917
|
class: 'vxe-tree--y-space',
|
|
4050
3918
|
style: {
|
|
4051
3919
|
height: bodyHeight ? `${bodyHeight}px` : ''
|
|
@@ -4065,7 +3933,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
4065
3933
|
/**
|
|
4066
3934
|
* 滚动条
|
|
4067
3935
|
*/
|
|
4068
|
-
|
|
3936
|
+
isVScrollbar ? (0, _vue.h)('div', {
|
|
4069
3937
|
class: scrollbarWrapperClss
|
|
4070
3938
|
}, [scrollXVisible === false ? (0, _ui.renderEmptyElement)($xeTree) : (0, _vue.h)('div', {
|
|
4071
3939
|
ref: refTrackXElem,
|
|
@@ -4175,40 +4043,51 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
4175
4043
|
(0, _vue.watch)(() => props.filterValue, () => {
|
|
4176
4044
|
triggerSearchEvent(new Event('filter'));
|
|
4177
4045
|
});
|
|
4178
|
-
const
|
|
4046
|
+
const reScrollFlag = (0, _vue.ref)(0);
|
|
4047
|
+
const reLayoutFlag = (0, _vue.ref)(0);
|
|
4179
4048
|
(0, _vue.watch)(() => props.height, () => {
|
|
4180
|
-
|
|
4049
|
+
reLayoutFlag.value++;
|
|
4181
4050
|
});
|
|
4182
4051
|
(0, _vue.watch)(() => props.minHeight, () => {
|
|
4183
|
-
|
|
4052
|
+
reLayoutFlag.value++;
|
|
4184
4053
|
});
|
|
4185
4054
|
(0, _vue.watch)(() => props.maxHeight, () => {
|
|
4186
|
-
|
|
4055
|
+
reLayoutFlag.value++;
|
|
4187
4056
|
});
|
|
4188
|
-
(0, _vue.watch)(
|
|
4189
|
-
|
|
4057
|
+
(0, _vue.watch)(computeIsVScrollbar, () => {
|
|
4058
|
+
(0, _vue.nextTick)(() => {
|
|
4059
|
+
bindScrollbarResize();
|
|
4060
|
+
(0, _vue.nextTick)(() => {
|
|
4061
|
+
reLayoutFlag.value++;
|
|
4062
|
+
});
|
|
4063
|
+
});
|
|
4190
4064
|
});
|
|
4191
4065
|
(0, _vue.watch)(computeScrollYWidth, () => {
|
|
4192
|
-
|
|
4066
|
+
reLayoutFlag.value++;
|
|
4193
4067
|
});
|
|
4194
4068
|
(0, _vue.watch)(computeScrollXHeight, () => {
|
|
4195
|
-
|
|
4069
|
+
reLayoutFlag.value++;
|
|
4196
4070
|
});
|
|
4197
4071
|
(0, _vue.watch)(computeScrollXVisible, () => {
|
|
4198
4072
|
(0, _vue.nextTick)(() => {
|
|
4199
|
-
|
|
4073
|
+
reLayoutFlag.value++;
|
|
4200
4074
|
});
|
|
4201
4075
|
});
|
|
4202
4076
|
(0, _vue.watch)(computeScrollYVisible, () => {
|
|
4203
4077
|
(0, _vue.nextTick)(() => {
|
|
4204
|
-
|
|
4078
|
+
reLayoutFlag.value++;
|
|
4205
4079
|
});
|
|
4206
4080
|
});
|
|
4207
|
-
(0, _vue.watch)(
|
|
4081
|
+
(0, _vue.watch)(reLayoutFlag, () => {
|
|
4208
4082
|
recalculate().then(() => {
|
|
4209
4083
|
recalculate();
|
|
4210
4084
|
});
|
|
4211
4085
|
});
|
|
4086
|
+
(0, _vue.watch)(reScrollFlag, () => {
|
|
4087
|
+
updateScrollbar().then(() => {
|
|
4088
|
+
updateScrollbar();
|
|
4089
|
+
});
|
|
4090
|
+
});
|
|
4212
4091
|
(0, _vue.onMounted)(() => {
|
|
4213
4092
|
const {
|
|
4214
4093
|
transform,
|
|
@@ -4217,8 +4096,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
4217
4096
|
showOverflow,
|
|
4218
4097
|
lazy,
|
|
4219
4098
|
loadMethod,
|
|
4220
|
-
autoResize
|
|
4221
|
-
useScrollbar
|
|
4099
|
+
autoResize
|
|
4222
4100
|
} = props;
|
|
4223
4101
|
const dragOpts = computeDragOpts.value;
|
|
4224
4102
|
if (!showOverflow) {
|
|
@@ -4240,25 +4118,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
4240
4118
|
if (menuConfig && !VxeUIContextMenu) {
|
|
4241
4119
|
errLog('vxe.error.reqComp', ['vxe-context-menu']);
|
|
4242
4120
|
}
|
|
4243
|
-
const el = refElem.value;
|
|
4244
|
-
if (useScrollbar || autoResize) {
|
|
4245
|
-
const viewInnerEl = refVirtualBody.value;
|
|
4246
|
-
const scrollObserver = _ui.globalResize.create(() => {
|
|
4247
|
-
updateScrollbar();
|
|
4248
|
-
});
|
|
4249
|
-
if (el) {
|
|
4250
|
-
scrollObserver.observe(el);
|
|
4251
|
-
}
|
|
4252
|
-
if (viewInnerEl) {
|
|
4253
|
-
scrollObserver.observe(viewInnerEl);
|
|
4254
|
-
}
|
|
4255
|
-
internalData.scrollObserver = scrollObserver;
|
|
4256
|
-
}
|
|
4257
4121
|
if (autoResize) {
|
|
4122
|
+
const el = refElem.value;
|
|
4258
4123
|
const parentEl = getParentElem();
|
|
4259
4124
|
const resizeObserver = _ui.globalResize.create(() => {
|
|
4260
4125
|
if (props.autoResize) {
|
|
4261
|
-
|
|
4126
|
+
reLayoutFlag.value++;
|
|
4262
4127
|
}
|
|
4263
4128
|
});
|
|
4264
4129
|
if (el) {
|
|
@@ -4269,9 +4134,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
4269
4134
|
}
|
|
4270
4135
|
internalData.resizeObserver = resizeObserver;
|
|
4271
4136
|
}
|
|
4272
|
-
|
|
4137
|
+
reLayoutFlag.value++;
|
|
4138
|
+
bindScrollbarResize();
|
|
4273
4139
|
_ui.globalEvents.on($xeTree, 'resize', () => {
|
|
4274
|
-
|
|
4140
|
+
reLayoutFlag.value++;
|
|
4275
4141
|
});
|
|
4276
4142
|
});
|
|
4277
4143
|
(0, _vue.onBeforeUnmount)(() => {
|