vxe-pc-ui 4.19.8 → 4.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all.esm.js +878 -115
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/card/src/card.js +17 -3
- package/es/icon/style.css +1 -1
- package/es/language/fr-FR.js +29 -29
- package/es/layout-aside/src/layout-aside.js +8 -5
- package/es/layout-body/src/layout-body.js +19 -11
- package/es/list/src/list.js +364 -21
- package/es/list/style.css +43 -0
- package/es/list/style.min.css +1 -1
- package/es/scrollbar/src/scrollbar.js +59 -17
- package/es/scrollbar/style.css +1 -0
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tabs/src/tabs.js +19 -4
- package/es/tree/src/tree.js +393 -55
- package/es/tree/style.css +43 -0
- package/es/tree/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/ui/src/utils.js +12 -0
- package/es/vxe-list/style.css +43 -0
- package/es/vxe-list/style.min.css +1 -1
- package/es/vxe-scrollbar/style.css +1 -0
- package/es/vxe-tree/style.css +43 -0
- package/es/vxe-tree/style.min.css +1 -1
- package/lib/card/src/card.js +17 -3
- package/lib/card/src/card.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/index.umd.js +914 -126
- package/lib/index.umd.min.js +1 -1
- package/lib/language/fr-FR.js +29 -29
- package/lib/language/fr-FR.min.js +1 -1
- package/lib/language/fr-FR.umd.js +29 -29
- package/lib/layout-aside/src/layout-aside.js +7 -7
- package/lib/layout-aside/src/layout-aside.min.js +1 -1
- package/lib/layout-body/src/layout-body.js +27 -21
- package/lib/layout-body/src/layout-body.min.js +1 -1
- package/lib/list/src/list.js +368 -21
- package/lib/list/src/list.min.js +1 -1
- package/lib/list/style/style.css +43 -0
- package/lib/list/style/style.min.css +1 -1
- package/lib/scrollbar/src/scrollbar.js +67 -15
- package/lib/scrollbar/src/scrollbar.min.js +1 -1
- package/lib/scrollbar/style/style.css +1 -0
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tabs/src/tabs.js +22 -10
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/tree/src/tree.js +397 -53
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/tree/style/style.css +43 -0
- package/lib/tree/style/style.min.css +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/ui/src/utils.js +14 -0
- package/lib/ui/src/utils.min.js +1 -1
- package/lib/vxe-list/style/style.css +43 -0
- package/lib/vxe-list/style/style.min.css +1 -1
- package/lib/vxe-scrollbar/style/style.css +1 -0
- package/lib/vxe-tree/style/style.css +43 -0
- package/lib/vxe-tree/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/card/src/card.ts +18 -3
- package/packages/language/fr-FR.ts +903 -903
- package/packages/layout-aside/src/layout-aside.ts +8 -5
- package/packages/layout-body/src/layout-body.ts +23 -14
- package/packages/list/src/list.ts +397 -24
- package/packages/scrollbar/src/scrollbar.ts +63 -16
- package/packages/tabs/src/tabs.ts +19 -5
- package/packages/tree/src/tree.ts +432 -64
- package/packages/ui/src/utils.ts +14 -0
- package/styles/components/list.scss +76 -0
- package/styles/components/scrollbar.scss +3 -0
- package/styles/components/tree.scss +76 -0
- package/types/components/card.d.ts +10 -1
- package/types/components/layout-aside.d.ts +10 -1
- package/types/components/layout-body.d.ts +10 -1
- package/types/components/list.d.ts +33 -2
- package/types/components/scrollbar.d.ts +17 -2
- package/types/components/table-plugins/extend-cell-area.d.ts +1 -1
- package/types/components/table.d.ts +71 -4
- package/types/components/tabs.d.ts +10 -1
- package/types/components/tree.d.ts +33 -2
- /package/es/icon/{iconfont.1791862962954.ttf → iconfont.1791950625324.ttf} +0 -0
- /package/es/icon/{iconfont.1791862962954.woff → iconfont.1791950625324.woff} +0 -0
- /package/es/icon/{iconfont.1791862962954.woff2 → iconfont.1791950625324.woff2} +0 -0
- /package/es/{iconfont.1791862962954.ttf → iconfont.1791950625324.ttf} +0 -0
- /package/es/{iconfont.1791862962954.woff → iconfont.1791950625324.woff} +0 -0
- /package/es/{iconfont.1791862962954.woff2 → iconfont.1791950625324.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1791862962954.ttf → iconfont.1791950625324.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1791862962954.woff → iconfont.1791950625324.woff} +0 -0
- /package/lib/icon/style/{iconfont.1791862962954.woff2 → iconfont.1791950625324.woff2} +0 -0
- /package/lib/{iconfont.1791862962954.ttf → iconfont.1791950625324.ttf} +0 -0
- /package/lib/{iconfont.1791862962954.woff → iconfont.1791950625324.woff} +0 -0
- /package/lib/{iconfont.1791862962954.woff2 → iconfont.1791950625324.woff2} +0 -0
package/dist/all.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as core from '@vxe-ui/core';
|
|
2
|
-
import { VxeUI, setConfig as setConfig$1, setIcon, getConfig as getConfig$4, createEvent as createEvent$1, getIcon as getIcon$2, renderEmptyElement as renderEmptyElement$1, useSize, globalEvents as globalEvents$1, usePermission, permission, renderer, getI18n as getI18n$2, globalResize as globalResize$1, menus as menus$3, GLOBAL_EVENT_KEYS, getSlotVNs as getSlotVNs$1, commands, formats, getComponent, validators } from '@vxe-ui/core';
|
|
2
|
+
import { VxeUI, setConfig as setConfig$1, setIcon, getConfig as getConfig$4, createEvent as createEvent$1, getIcon as getIcon$2, renderEmptyElement as renderEmptyElement$1, useSize, globalEvents as globalEvents$1, usePermission, permission, renderer, getI18n as getI18n$2, domUtils as domUtils$1, globalResize as globalResize$1, menus as menus$3, GLOBAL_EVENT_KEYS, getSlotVNs as getSlotVNs$1, commands, formats, getComponent, validators } from '@vxe-ui/core';
|
|
3
3
|
export * from '@vxe-ui/core';
|
|
4
4
|
import { defineComponent, ref, reactive, h, createCommentVNode, createApp, inject, computed, watch, onMounted, onUnmounted, provide, nextTick, onBeforeUnmount, resolveComponent, Teleport, onActivated, onDeactivated, TransitionGroup } from 'vue';
|
|
5
5
|
import XEUtils from 'xe-utils';
|
|
@@ -101,7 +101,7 @@ function checkDynamic() {
|
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
const { log } = VxeUI;
|
|
104
|
-
const uiVersion = `ui v${"4.
|
|
104
|
+
const uiVersion = `ui v${"4.20.1"}`;
|
|
105
105
|
function createComponentLog(name) {
|
|
106
106
|
const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : '';
|
|
107
107
|
const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
|
|
@@ -115,7 +115,7 @@ function createComponentLog(name) {
|
|
|
115
115
|
const warnLog$j = log.create('warn', uiVersion);
|
|
116
116
|
log.create('error', uiVersion);
|
|
117
117
|
|
|
118
|
-
const version = "4.
|
|
118
|
+
const version = "4.20.1";
|
|
119
119
|
VxeUI.uiVersion = version;
|
|
120
120
|
VxeUI.dynamicApp = dynamicApp;
|
|
121
121
|
function config(options) {
|
|
@@ -2694,6 +2694,9 @@ function enModelValue(nodeid) {
|
|
|
2694
2694
|
function deModelValue(nodeid) {
|
|
2695
2695
|
return nodeid ? decodeURIComponent(`${nodeid}`) : nodeid;
|
|
2696
2696
|
}
|
|
2697
|
+
function getDefaultConfig(val1, def1) {
|
|
2698
|
+
return XEUtils.eqNull(val1) ? def1 : val1;
|
|
2699
|
+
}
|
|
2697
2700
|
|
|
2698
2701
|
function createReactData$p() {
|
|
2699
2702
|
return {
|
|
@@ -6479,6 +6482,7 @@ var VxeScrollbarComponent = defineVxeComponent({
|
|
|
6479
6482
|
name: 'VxeScrollbar',
|
|
6480
6483
|
props: {
|
|
6481
6484
|
id: [String, Number],
|
|
6485
|
+
viewId: [String, Number],
|
|
6482
6486
|
width: [String, Number],
|
|
6483
6487
|
height: [String, Number],
|
|
6484
6488
|
minWidth: [String, Number],
|
|
@@ -6494,6 +6498,14 @@ var VxeScrollbarComponent = defineVxeComponent({
|
|
|
6494
6498
|
type: Boolean,
|
|
6495
6499
|
default: () => getConfig$2().scrollbar.padding
|
|
6496
6500
|
},
|
|
6501
|
+
autoHide: {
|
|
6502
|
+
type: Boolean,
|
|
6503
|
+
default: () => getConfig$2().scrollbar.autoHide
|
|
6504
|
+
},
|
|
6505
|
+
visible: {
|
|
6506
|
+
type: Boolean,
|
|
6507
|
+
default: () => getConfig$2().scrollbar.visible
|
|
6508
|
+
},
|
|
6497
6509
|
xConfig: Object,
|
|
6498
6510
|
yConfig: Object,
|
|
6499
6511
|
className: {
|
|
@@ -6538,6 +6550,8 @@ var VxeScrollbarComponent = defineVxeComponent({
|
|
|
6538
6550
|
const { width, height, minWidth, minHeight, maxWidth, maxHeight } = props;
|
|
6539
6551
|
const xOpts = computeXOpts.value;
|
|
6540
6552
|
const yOpts = computeYOpts.value;
|
|
6553
|
+
const barWidth = yOpts.width;
|
|
6554
|
+
const barHeight = xOpts.height;
|
|
6541
6555
|
const stys = {};
|
|
6542
6556
|
if (width) {
|
|
6543
6557
|
stys.width = toCssUnit(width);
|
|
@@ -6557,33 +6571,53 @@ var VxeScrollbarComponent = defineVxeComponent({
|
|
|
6557
6571
|
if (maxHeight) {
|
|
6558
6572
|
stys.maxHeight = toCssUnit(maxHeight);
|
|
6559
6573
|
}
|
|
6560
|
-
if (
|
|
6561
|
-
stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(
|
|
6562
|
-
|
|
6563
|
-
if (xOpts.height) {
|
|
6564
|
-
stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(xOpts.height);
|
|
6574
|
+
if (barWidth || barHeight) {
|
|
6575
|
+
stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
|
|
6576
|
+
stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
|
|
6565
6577
|
}
|
|
6566
6578
|
return stys;
|
|
6567
6579
|
});
|
|
6580
|
+
const computeXVisible = computed(() => {
|
|
6581
|
+
const { visible } = props;
|
|
6582
|
+
const xOpts = computeXOpts.value;
|
|
6583
|
+
return getDefaultConfig(xOpts.visible, visible);
|
|
6584
|
+
});
|
|
6585
|
+
const computeYVisible = computed(() => {
|
|
6586
|
+
const { visible } = props;
|
|
6587
|
+
const yOpts = computeYOpts.value;
|
|
6588
|
+
return getDefaultConfig(yOpts.visible, visible);
|
|
6589
|
+
});
|
|
6590
|
+
const computeXAutoHide = computed(() => {
|
|
6591
|
+
const { autoHide } = props;
|
|
6592
|
+
const xOpts = computeXOpts.value;
|
|
6593
|
+
return getDefaultConfig(xOpts.autoHide, autoHide);
|
|
6594
|
+
});
|
|
6595
|
+
const computeYAutoHide = computed(() => {
|
|
6596
|
+
const { autoHide } = props;
|
|
6597
|
+
const yOpts = computeYOpts.value;
|
|
6598
|
+
return getDefaultConfig(yOpts.autoHide, autoHide);
|
|
6599
|
+
});
|
|
6568
6600
|
const computeWrapperClss = computed(() => {
|
|
6569
6601
|
const { native, className, padding } = props;
|
|
6570
6602
|
const { yThumbHeight, xThumbWidth } = reactData;
|
|
6571
|
-
const xOpts = computeXOpts.value;
|
|
6572
|
-
const yOpts = computeYOpts.value;
|
|
6573
6603
|
const xToTop = computeXToTop.value;
|
|
6574
6604
|
const yToLeft = computeYToLeft.value;
|
|
6605
|
+
const xVisible = computeXVisible.value;
|
|
6606
|
+
const yVisible = computeYVisible.value;
|
|
6607
|
+
const xAutoHide = computeXAutoHide.value;
|
|
6608
|
+
const yAutoHide = computeYAutoHide.value;
|
|
6575
6609
|
return domUtils.buildClass([
|
|
6576
6610
|
'vxe-scrollbar',
|
|
6577
|
-
`ov-x--${
|
|
6578
|
-
`ov-y--${
|
|
6611
|
+
`ov-x--${xVisible === false ? 'hidden' : 'visible'}`,
|
|
6612
|
+
`ov-y--${yVisible === false ? 'hidden' : 'visible'}`,
|
|
6579
6613
|
`sx-pos--${xToTop ? 'top' : 'bottom'}`,
|
|
6580
6614
|
`sy-pos--${yToLeft ? 'left' : 'right'}`,
|
|
6581
6615
|
native ? 'is--native' : 'is--virtual',
|
|
6582
6616
|
className
|
|
6583
6617
|
], {
|
|
6584
6618
|
'is--padding': padding,
|
|
6585
|
-
'ov-x--auto-hide':
|
|
6586
|
-
'ov-y--auto-hide':
|
|
6619
|
+
'ov-x--auto-hide': xAutoHide,
|
|
6620
|
+
'ov-y--auto-hide': yAutoHide,
|
|
6587
6621
|
'overflow-y': yThumbHeight,
|
|
6588
6622
|
'overflow-x': xThumbWidth
|
|
6589
6623
|
});
|
|
@@ -6923,13 +6957,13 @@ var VxeScrollbarComponent = defineVxeComponent({
|
|
|
6923
6957
|
const scrollbarPrivateMethods = {};
|
|
6924
6958
|
Object.assign($xeScrollbar, scrollbarMethods, scrollbarPrivateMethods);
|
|
6925
6959
|
const renderVN = () => {
|
|
6926
|
-
const { id, native, loading, viewAttrs } = props;
|
|
6960
|
+
const { id, native, loading, viewId, viewAttrs } = props;
|
|
6927
6961
|
const wrapperStyle = computeWrapperStyle.value;
|
|
6928
6962
|
const wrapperClss = computeWrapperClss.value;
|
|
6929
6963
|
const viewClss = computeViewClss.value;
|
|
6930
6964
|
const viewInnerClss = computeViewInnerClss.value;
|
|
6931
|
-
const
|
|
6932
|
-
const
|
|
6965
|
+
const xVisible = computeXVisible.value;
|
|
6966
|
+
const yVisible = computeYVisible.value;
|
|
6933
6967
|
const defaultSlot = slots.default;
|
|
6934
6968
|
return h('div', {
|
|
6935
6969
|
ref: refElem,
|
|
@@ -6937,14 +6971,14 @@ var VxeScrollbarComponent = defineVxeComponent({
|
|
|
6937
6971
|
class: wrapperClss,
|
|
6938
6972
|
style: wrapperStyle
|
|
6939
6973
|
}, [
|
|
6940
|
-
h('div', Object.assign({ ref: refViewElem, class: viewClss, onScroll: scrollEvent }, viewAttrs), [
|
|
6974
|
+
h('div', Object.assign({ ref: refViewElem, class: viewClss, onScroll: scrollEvent, id: viewId || null }, viewAttrs), [
|
|
6941
6975
|
h('div', {
|
|
6942
6976
|
key: 'vi',
|
|
6943
6977
|
ref: refViewInnerElem,
|
|
6944
6978
|
class: viewInnerClss
|
|
6945
6979
|
}, defaultSlot ? defaultSlot({}) : [])
|
|
6946
6980
|
]),
|
|
6947
|
-
native ||
|
|
6981
|
+
native || xVisible === false
|
|
6948
6982
|
? renderEmptyElement($xeScrollbar)
|
|
6949
6983
|
: h('div', {
|
|
6950
6984
|
ref: refTrackXElem,
|
|
@@ -6961,7 +6995,7 @@ var VxeScrollbarComponent = defineVxeComponent({
|
|
|
6961
6995
|
onLostpointercapture: cleatPointerThumbEvent
|
|
6962
6996
|
})
|
|
6963
6997
|
]),
|
|
6964
|
-
native ||
|
|
6998
|
+
native || yVisible === false
|
|
6965
6999
|
? renderEmptyElement($xeScrollbar)
|
|
6966
7000
|
: h('div', {
|
|
6967
7001
|
ref: refTrackYElem,
|
|
@@ -7009,6 +7043,16 @@ var VxeScrollbarComponent = defineVxeComponent({
|
|
|
7009
7043
|
watch(() => props.syncResize, () => {
|
|
7010
7044
|
reFlag.value++;
|
|
7011
7045
|
});
|
|
7046
|
+
watch(computeXVisible, () => {
|
|
7047
|
+
nextTick(() => {
|
|
7048
|
+
reFlag.value++;
|
|
7049
|
+
});
|
|
7050
|
+
});
|
|
7051
|
+
watch(computeYVisible, () => {
|
|
7052
|
+
nextTick(() => {
|
|
7053
|
+
reFlag.value++;
|
|
7054
|
+
});
|
|
7055
|
+
});
|
|
7012
7056
|
watch(reFlag, () => {
|
|
7013
7057
|
$xeScrollbar.recalculate().then(() => {
|
|
7014
7058
|
$xeScrollbar.recalculate();
|
|
@@ -7118,6 +7162,19 @@ var VxeCardComponent = defineVxeComponent({
|
|
|
7118
7162
|
const computeScrollbarOpts = computed(() => {
|
|
7119
7163
|
return Object.assign({}, getConfig$4().card.scrollbarConfig, props.scrollbarConfig);
|
|
7120
7164
|
});
|
|
7165
|
+
const computeScrollbarProps = computed(() => {
|
|
7166
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
7167
|
+
return {
|
|
7168
|
+
width: scrollbarOpts.width,
|
|
7169
|
+
height: scrollbarOpts.height,
|
|
7170
|
+
autoHide: scrollbarOpts.autoHide,
|
|
7171
|
+
visible: scrollbarOpts.visible,
|
|
7172
|
+
xConfig: scrollbarOpts.xConfig,
|
|
7173
|
+
yConfig: scrollbarOpts.yConfig,
|
|
7174
|
+
className: scrollbarOpts.className,
|
|
7175
|
+
viewAttrs: scrollbarOpts.viewAttrs
|
|
7176
|
+
};
|
|
7177
|
+
});
|
|
7121
7178
|
const computeMaps = {
|
|
7122
7179
|
computeSize
|
|
7123
7180
|
};
|
|
@@ -7149,6 +7206,7 @@ var VxeCardComponent = defineVxeComponent({
|
|
|
7149
7206
|
const vSize = computeSize.value;
|
|
7150
7207
|
const cardStyle = computeCardStyle.value;
|
|
7151
7208
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
7209
|
+
const scrollbarProps = computeScrollbarProps.value;
|
|
7152
7210
|
const { viewClassName, viewInnerClassName } = scrollbarOpts;
|
|
7153
7211
|
return h('div', {
|
|
7154
7212
|
ref: refElem,
|
|
@@ -7183,7 +7241,7 @@ var VxeCardComponent = defineVxeComponent({
|
|
|
7183
7241
|
}, [
|
|
7184
7242
|
leftSlot
|
|
7185
7243
|
? (useScrollbar
|
|
7186
|
-
? h(VxeScrollbar, Object.assign(Object.assign({ class: 'vxe-card--body-scrollbar-left' },
|
|
7244
|
+
? h(VxeScrollbar, Object.assign(Object.assign({ class: 'vxe-card--body-scrollbar-left' }, scrollbarProps), { viewClassName: 'vxe-card--body-scrollbar-left-view', viewInnerClassName: 'vxe-card--body-scrollbar-left-inner' }), {
|
|
7187
7245
|
default: () => getSlotVNs(leftSlot({}))
|
|
7188
7246
|
})
|
|
7189
7247
|
: h('div', {
|
|
@@ -7191,7 +7249,7 @@ var VxeCardComponent = defineVxeComponent({
|
|
|
7191
7249
|
}, getSlotVNs(leftSlot({}))))
|
|
7192
7250
|
: renderEmptyElement$1($xeCard),
|
|
7193
7251
|
useScrollbar
|
|
7194
|
-
? h(VxeScrollbar, Object.assign(Object.assign({ class: 'vxe-card--body-scrollbar-content' },
|
|
7252
|
+
? h(VxeScrollbar, Object.assign(Object.assign({ class: 'vxe-card--body-scrollbar-content' }, scrollbarProps), { viewClassName: 'vxe-card--body-scrollbar-content-view' + (viewClassName ? (' ' + viewClassName) : ''), viewInnerClassName: 'vxe-card--body-scrollbar-content-inner' + (viewClassName ? (' ' + viewInnerClassName) : '') }), {
|
|
7195
7253
|
default: () => defaultSlot ? getSlotVNs(defaultSlot({})) : []
|
|
7196
7254
|
})
|
|
7197
7255
|
: h('div', {
|
|
@@ -7199,7 +7257,7 @@ var VxeCardComponent = defineVxeComponent({
|
|
|
7199
7257
|
}, defaultSlot ? getSlotVNs(defaultSlot({})) : []),
|
|
7200
7258
|
rightSlot
|
|
7201
7259
|
? (useScrollbar
|
|
7202
|
-
? h(VxeScrollbar, Object.assign(Object.assign({ class: 'vxe-card--body-scrollbar-right' },
|
|
7260
|
+
? h(VxeScrollbar, Object.assign(Object.assign({ class: 'vxe-card--body-scrollbar-right' }, scrollbarProps), { viewClassName: 'vxe-card--body-scrollbar-right-view', viewInnerClassName: 'vxe-card--body-scrollbar-right-inner' }), {
|
|
7203
7261
|
default: () => getSlotVNs(rightSlot({}))
|
|
7204
7262
|
})
|
|
7205
7263
|
: h('div', {
|
|
@@ -7787,6 +7845,9 @@ function createReactData$m() {
|
|
|
7787
7845
|
updateCheckboxFlag: 1,
|
|
7788
7846
|
isAllChecked: false,
|
|
7789
7847
|
isAllIndeterminate: false,
|
|
7848
|
+
// 滚动条
|
|
7849
|
+
yThumbHeight: 0,
|
|
7850
|
+
xThumbWidth: 0,
|
|
7790
7851
|
insertRowFlag: 1,
|
|
7791
7852
|
removeRowFlag: 1,
|
|
7792
7853
|
dragRow: null,
|
|
@@ -7796,13 +7857,18 @@ function createReactData$m() {
|
|
|
7796
7857
|
}
|
|
7797
7858
|
function createInternalData$l() {
|
|
7798
7859
|
return {
|
|
7799
|
-
resizeObserver: undefined,
|
|
7800
7860
|
fullData: [],
|
|
7801
7861
|
afterList: [],
|
|
7802
7862
|
fullKeyMaps: {},
|
|
7803
7863
|
rowMaps: {},
|
|
7804
|
-
|
|
7864
|
+
// 滚动条
|
|
7865
|
+
// resizeObserver: undefined,
|
|
7866
|
+
// isThumbDrag: false,
|
|
7867
|
+
thumbDragOffset: 0,
|
|
7868
|
+
yThumbTop: 0,
|
|
7869
|
+
xThumbLeft: 0,
|
|
7805
7870
|
lastScrollTop: 0,
|
|
7871
|
+
lastScrollLeft: 0,
|
|
7806
7872
|
scrollYStore: {
|
|
7807
7873
|
startIndex: 0,
|
|
7808
7874
|
endIndex: 0,
|
|
@@ -7856,7 +7922,12 @@ var VxeListComponent = defineVxeComponent({
|
|
|
7856
7922
|
dragConfig: Object,
|
|
7857
7923
|
menuConfig: Object,
|
|
7858
7924
|
virtualYConfig: Object,
|
|
7859
|
-
scrollY: Object
|
|
7925
|
+
scrollY: Object,
|
|
7926
|
+
useScrollbar: {
|
|
7927
|
+
type: Boolean,
|
|
7928
|
+
default: () => getConfig$4().list.useScrollbar
|
|
7929
|
+
},
|
|
7930
|
+
scrollbarConfig: Object
|
|
7860
7931
|
},
|
|
7861
7932
|
emits: [
|
|
7862
7933
|
'update:checkRowKey',
|
|
@@ -7889,6 +7960,10 @@ var VxeListComponent = defineVxeComponent({
|
|
|
7889
7960
|
const refFooterElem = ref();
|
|
7890
7961
|
const refVirtualWrapper = ref();
|
|
7891
7962
|
const refVirtualBody = ref();
|
|
7963
|
+
const refTrackXElem = ref();
|
|
7964
|
+
const refTrackYElem = ref();
|
|
7965
|
+
const refThumbXElem = ref();
|
|
7966
|
+
const refThumbYElem = ref();
|
|
7892
7967
|
const refDragRowLineElem = ref();
|
|
7893
7968
|
const refDragTipElem = ref();
|
|
7894
7969
|
const refMaps = {
|
|
@@ -7937,11 +8012,20 @@ var VxeListComponent = defineVxeComponent({
|
|
|
7937
8012
|
});
|
|
7938
8013
|
const computeWrapperStyles = computed(() => {
|
|
7939
8014
|
const rowHeight = computeRowHeight.value;
|
|
7940
|
-
const
|
|
8015
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
8016
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
8017
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
8018
|
+
const barWidth = getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), getConfig$4().scrollbar.width);
|
|
8019
|
+
const barHeight = getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), getConfig$4().scrollbar.height);
|
|
8020
|
+
const stys = {};
|
|
7941
8021
|
if (rowHeight) {
|
|
7942
|
-
|
|
8022
|
+
stys['--vxe-ui-list-row-height'] = toCssUnit(rowHeight);
|
|
7943
8023
|
}
|
|
7944
|
-
|
|
8024
|
+
if (barWidth || barHeight) {
|
|
8025
|
+
stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
|
|
8026
|
+
stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
|
|
8027
|
+
}
|
|
8028
|
+
return stys;
|
|
7945
8029
|
});
|
|
7946
8030
|
const computeVirtualStyles = computed(() => {
|
|
7947
8031
|
const { height, maxHeight } = props;
|
|
@@ -7956,6 +8040,69 @@ var VxeListComponent = defineVxeComponent({
|
|
|
7956
8040
|
}
|
|
7957
8041
|
return style;
|
|
7958
8042
|
});
|
|
8043
|
+
const computeScrollbarOpts = computed(() => {
|
|
8044
|
+
return Object.assign({}, getConfig$4().list.scrollbarConfig, props.scrollbarConfig);
|
|
8045
|
+
});
|
|
8046
|
+
const computeScrollbarXOpts = computed(() => {
|
|
8047
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
8048
|
+
return Object.assign({}, getConfig$4().scrollbar.xConfig, scrollbarOpts.xConfig);
|
|
8049
|
+
});
|
|
8050
|
+
const computeScrollbarYOpts = computed(() => {
|
|
8051
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
8052
|
+
return Object.assign({}, getConfig$4().scrollbar.yConfig, scrollbarOpts.yConfig);
|
|
8053
|
+
});
|
|
8054
|
+
const computeScrollXVisible = computed(() => {
|
|
8055
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
8056
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
8057
|
+
return getDefaultConfig(scrollbarXOpts.visible, scrollbarOpts.visible);
|
|
8058
|
+
});
|
|
8059
|
+
const computeScrollYVisible = computed(() => {
|
|
8060
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
8061
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
8062
|
+
return getDefaultConfig(scrollbarYOpts.visible, scrollbarOpts.visible);
|
|
8063
|
+
});
|
|
8064
|
+
const computeScrollXAutoHide = computed(() => {
|
|
8065
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
8066
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
8067
|
+
return getDefaultConfig(getDefaultConfig(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), getConfig$4().scrollbar.autoHide);
|
|
8068
|
+
});
|
|
8069
|
+
const computeScrollYAutoHide = computed(() => {
|
|
8070
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
8071
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
8072
|
+
return getDefaultConfig(getDefaultConfig(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), getConfig$4().scrollbar.autoHide);
|
|
8073
|
+
});
|
|
8074
|
+
const computeScrollbarWrapperClss = computed(() => {
|
|
8075
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
8076
|
+
const { padding } = scrollbarOpts;
|
|
8077
|
+
const { yThumbHeight, xThumbWidth } = reactData;
|
|
8078
|
+
const scrollbarXToTop = computeScrollbarXToTop.value;
|
|
8079
|
+
const scrollbarYToLeft = computeScrollbarYToLeft.value;
|
|
8080
|
+
const scrollXVisible = computeScrollXVisible.value;
|
|
8081
|
+
const scrollYVisible = computeScrollYVisible.value;
|
|
8082
|
+
const scrollXAutoHide = computeScrollXAutoHide.value;
|
|
8083
|
+
const scrollYAutoHide = computeScrollYAutoHide.value;
|
|
8084
|
+
return domUtils$1.buildClass([
|
|
8085
|
+
'vxe-scrollbar is--virtual',
|
|
8086
|
+
`ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}`,
|
|
8087
|
+
`ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}`,
|
|
8088
|
+
`sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`,
|
|
8089
|
+
`sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`
|
|
8090
|
+
], {
|
|
8091
|
+
'is--padding': padding,
|
|
8092
|
+
'ov-x--auto-hide': scrollXAutoHide,
|
|
8093
|
+
'ov-y--auto-hide': scrollYAutoHide,
|
|
8094
|
+
'overflow-y': yThumbHeight,
|
|
8095
|
+
'overflow-x': xThumbWidth
|
|
8096
|
+
});
|
|
8097
|
+
});
|
|
8098
|
+
const computeScrollbarXToTop = computed(() => {
|
|
8099
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
8100
|
+
return scrollbarXOpts.position === 'top';
|
|
8101
|
+
});
|
|
8102
|
+
const computeScrollbarYToLeft = computed(() => {
|
|
8103
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
8104
|
+
return scrollbarYOpts.position === 'left';
|
|
8105
|
+
});
|
|
7959
8106
|
const dispatchEvent = (type, params, evnt) => {
|
|
7960
8107
|
emit(type, createEvent$1(evnt, { $list: $xeList }, params));
|
|
7961
8108
|
};
|
|
@@ -8112,6 +8259,7 @@ var VxeListComponent = defineVxeComponent({
|
|
|
8112
8259
|
*/
|
|
8113
8260
|
const refreshScroll = () => {
|
|
8114
8261
|
const { lastScrollLeft, lastScrollTop } = internalData;
|
|
8262
|
+
updateScrollbar();
|
|
8115
8263
|
return clearScroll().then(() => {
|
|
8116
8264
|
if (lastScrollLeft || lastScrollTop) {
|
|
8117
8265
|
internalData.lastScrollLeft = 0;
|
|
@@ -8120,6 +8268,10 @@ var VxeListComponent = defineVxeComponent({
|
|
|
8120
8268
|
}
|
|
8121
8269
|
});
|
|
8122
8270
|
};
|
|
8271
|
+
const updateScrollbar = () => {
|
|
8272
|
+
updateThumbSize();
|
|
8273
|
+
updateThumbOffset();
|
|
8274
|
+
};
|
|
8123
8275
|
/**
|
|
8124
8276
|
* 重新计算列表
|
|
8125
8277
|
*/
|
|
@@ -8137,6 +8289,7 @@ var VxeListComponent = defineVxeComponent({
|
|
|
8137
8289
|
parentHeight = parentEl.clientHeight - Math.ceil(XEUtils.toNumber(parentStyle.paddingLeft) + XEUtils.toNumber(parentStyle.paddingRight));
|
|
8138
8290
|
}
|
|
8139
8291
|
reactData.parentHeight = parentHeight;
|
|
8292
|
+
updateScrollbar();
|
|
8140
8293
|
updateHeight();
|
|
8141
8294
|
if (el.clientWidth && el.clientHeight) {
|
|
8142
8295
|
return computeScrollLoad();
|
|
@@ -8166,6 +8319,7 @@ var VxeListComponent = defineVxeComponent({
|
|
|
8166
8319
|
const scrollLeft = scrollBodyElem.scrollLeft;
|
|
8167
8320
|
const isX = scrollLeft !== internalData.lastScrollLeft;
|
|
8168
8321
|
const isY = scrollTop !== internalData.lastScrollTop;
|
|
8322
|
+
updateThumbOffset();
|
|
8169
8323
|
internalData.lastScrollTop = scrollTop;
|
|
8170
8324
|
internalData.lastScrollLeft = scrollLeft;
|
|
8171
8325
|
if (reactData.scrollYLoad) {
|
|
@@ -9462,6 +9616,162 @@ var VxeListComponent = defineVxeComponent({
|
|
|
9462
9616
|
hideDropTip();
|
|
9463
9617
|
}
|
|
9464
9618
|
};
|
|
9619
|
+
const updateThumbSize = () => {
|
|
9620
|
+
const viewEl = refVirtualWrapper.value;
|
|
9621
|
+
if (!viewEl) {
|
|
9622
|
+
return;
|
|
9623
|
+
}
|
|
9624
|
+
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
9625
|
+
return;
|
|
9626
|
+
}
|
|
9627
|
+
const trackXEl = refTrackXElem.value;
|
|
9628
|
+
const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
|
|
9629
|
+
const thumbXElem = refThumbXElem.value;
|
|
9630
|
+
if (thumbXElem) {
|
|
9631
|
+
thumbXElem.style.width = xThumbWidth + 'px';
|
|
9632
|
+
}
|
|
9633
|
+
reactData.xThumbWidth = xThumbWidth;
|
|
9634
|
+
const trackYEl = refTrackYElem.value;
|
|
9635
|
+
const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
|
|
9636
|
+
const thumbYElem = refThumbYElem.value;
|
|
9637
|
+
if (thumbYElem) {
|
|
9638
|
+
thumbYElem.style.height = yThumbHeight + 'px';
|
|
9639
|
+
}
|
|
9640
|
+
reactData.yThumbHeight = yThumbHeight;
|
|
9641
|
+
};
|
|
9642
|
+
const updateThumbOffset = () => {
|
|
9643
|
+
const viewEl = refVirtualWrapper.value;
|
|
9644
|
+
if (!viewEl) {
|
|
9645
|
+
return;
|
|
9646
|
+
}
|
|
9647
|
+
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
9648
|
+
return;
|
|
9649
|
+
}
|
|
9650
|
+
const { xThumbWidth, yThumbHeight } = reactData;
|
|
9651
|
+
const trackXEl = refTrackXElem.value;
|
|
9652
|
+
const thumbXElem = refThumbXElem.value;
|
|
9653
|
+
const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
|
|
9654
|
+
internalData.xThumbLeft = xThumbLeft;
|
|
9655
|
+
if (thumbXElem && xThumbWidth) {
|
|
9656
|
+
thumbXElem.style.width = xThumbWidth + 'px';
|
|
9657
|
+
thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
|
|
9658
|
+
}
|
|
9659
|
+
const trackYEl = refTrackYElem.value;
|
|
9660
|
+
const thumbYElem = refThumbYElem.value;
|
|
9661
|
+
const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
|
|
9662
|
+
internalData.yThumbTop = yThumbTop;
|
|
9663
|
+
if (thumbYElem && yThumbHeight) {
|
|
9664
|
+
thumbYElem.style.height = yThumbHeight + 'px';
|
|
9665
|
+
thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
|
|
9666
|
+
}
|
|
9667
|
+
};
|
|
9668
|
+
const clickTrackXEvent = (evnt) => {
|
|
9669
|
+
const trackEl = evnt.currentTarget;
|
|
9670
|
+
if (trackEl !== evnt.target) {
|
|
9671
|
+
return;
|
|
9672
|
+
}
|
|
9673
|
+
const viewEl = refVirtualWrapper.value;
|
|
9674
|
+
if (!viewEl) {
|
|
9675
|
+
return;
|
|
9676
|
+
}
|
|
9677
|
+
const { xThumbWidth } = reactData;
|
|
9678
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
9679
|
+
viewEl.scrollTo({
|
|
9680
|
+
left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
|
|
9681
|
+
behavior: 'auto'
|
|
9682
|
+
});
|
|
9683
|
+
};
|
|
9684
|
+
const clickTrackYEvent = (evnt) => {
|
|
9685
|
+
const trackEl = evnt.currentTarget;
|
|
9686
|
+
if (trackEl !== evnt.target) {
|
|
9687
|
+
return;
|
|
9688
|
+
}
|
|
9689
|
+
const viewEl = refVirtualWrapper.value;
|
|
9690
|
+
if (!viewEl) {
|
|
9691
|
+
return;
|
|
9692
|
+
}
|
|
9693
|
+
const { yThumbHeight } = reactData;
|
|
9694
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
9695
|
+
viewEl.scrollTo({
|
|
9696
|
+
top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
|
|
9697
|
+
behavior: 'auto'
|
|
9698
|
+
});
|
|
9699
|
+
};
|
|
9700
|
+
const pointerdownThumbXEvent = (evnt) => {
|
|
9701
|
+
const thumbEl = evnt.currentTarget;
|
|
9702
|
+
internalData.isThumbDrag = true;
|
|
9703
|
+
thumbEl.setPointerCapture(evnt.pointerId);
|
|
9704
|
+
const viewEl = refVirtualWrapper.value;
|
|
9705
|
+
if (!viewEl) {
|
|
9706
|
+
return;
|
|
9707
|
+
}
|
|
9708
|
+
const { xThumbWidth } = reactData;
|
|
9709
|
+
const trackEl = thumbEl.parentElement;
|
|
9710
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
9711
|
+
const pointerPosition = evnt.clientX - trackRect.left;
|
|
9712
|
+
// 记录 thumb 的偏移
|
|
9713
|
+
const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
9714
|
+
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
9715
|
+
};
|
|
9716
|
+
const pointermoveThumbXEvent = (evnt) => {
|
|
9717
|
+
const thumbEl = evnt.currentTarget;
|
|
9718
|
+
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
9719
|
+
return;
|
|
9720
|
+
}
|
|
9721
|
+
const { isThumbDrag, thumbDragOffset } = internalData;
|
|
9722
|
+
if (isThumbDrag) {
|
|
9723
|
+
const viewEl = refVirtualWrapper.value;
|
|
9724
|
+
if (!viewEl) {
|
|
9725
|
+
return;
|
|
9726
|
+
}
|
|
9727
|
+
const { xThumbWidth } = reactData;
|
|
9728
|
+
const thumbEl = evnt.currentTarget;
|
|
9729
|
+
const trackEl = thumbEl.parentElement;
|
|
9730
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
9731
|
+
// 更新偏移
|
|
9732
|
+
viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
9733
|
+
}
|
|
9734
|
+
};
|
|
9735
|
+
const cleatPointerThumbEvent = (evnt) => {
|
|
9736
|
+
const thumbEl = evnt.currentTarget;
|
|
9737
|
+
thumbEl.releasePointerCapture(evnt.pointerId);
|
|
9738
|
+
internalData.isThumbDrag = false;
|
|
9739
|
+
};
|
|
9740
|
+
const pointerdownThumbYEvent = (evnt) => {
|
|
9741
|
+
const thumbEl = evnt.currentTarget;
|
|
9742
|
+
internalData.isThumbDrag = true;
|
|
9743
|
+
thumbEl.setPointerCapture(evnt.pointerId);
|
|
9744
|
+
const viewEl = refVirtualWrapper.value;
|
|
9745
|
+
if (!viewEl) {
|
|
9746
|
+
return;
|
|
9747
|
+
}
|
|
9748
|
+
const { yThumbHeight } = reactData;
|
|
9749
|
+
const trackEl = thumbEl.parentElement;
|
|
9750
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
9751
|
+
const pointerPosition = evnt.clientY - trackRect.top;
|
|
9752
|
+
// 记录 thumb 的偏移
|
|
9753
|
+
const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
9754
|
+
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
9755
|
+
};
|
|
9756
|
+
const pointermoveThumbYEvent = (evnt) => {
|
|
9757
|
+
const thumbEl = evnt.currentTarget;
|
|
9758
|
+
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
9759
|
+
return;
|
|
9760
|
+
}
|
|
9761
|
+
const { isThumbDrag, thumbDragOffset } = internalData;
|
|
9762
|
+
if (isThumbDrag) {
|
|
9763
|
+
const viewEl = refVirtualWrapper.value;
|
|
9764
|
+
if (!viewEl) {
|
|
9765
|
+
return;
|
|
9766
|
+
}
|
|
9767
|
+
const { yThumbHeight } = reactData;
|
|
9768
|
+
const thumbEl = evnt.currentTarget;
|
|
9769
|
+
const trackEl = thumbEl.parentElement;
|
|
9770
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
9771
|
+
// 更新偏移
|
|
9772
|
+
viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
9773
|
+
}
|
|
9774
|
+
};
|
|
9465
9775
|
Object.assign($xeList, listMethods, listPrivateMethods);
|
|
9466
9776
|
const renderDragTip = () => {
|
|
9467
9777
|
const { dragRow, dragTipText } = reactData;
|
|
@@ -9658,8 +9968,8 @@ var VxeListComponent = defineVxeComponent({
|
|
|
9658
9968
|
}], rowid: hasKey && keyField ? rowid : undefined }, rowOns), ctVNs);
|
|
9659
9969
|
};
|
|
9660
9970
|
const renderVN = () => {
|
|
9661
|
-
const { showCheckbox, className, loading } = props;
|
|
9662
|
-
const { bodyHeight, topSpaceHeight, rowList, isAllChecked, isAllIndeterminate } = reactData;
|
|
9971
|
+
const { showCheckbox, className, loading, useScrollbar } = props;
|
|
9972
|
+
const { bodyHeight, topSpaceHeight, rowList, isAllChecked, isAllIndeterminate, xThumbWidth, yThumbHeight } = reactData;
|
|
9663
9973
|
const defaultSlot = slots.default;
|
|
9664
9974
|
const headerSlot = slots.header;
|
|
9665
9975
|
const footerSlot = slots.footer;
|
|
@@ -9674,16 +9984,38 @@ var VxeListComponent = defineVxeComponent({
|
|
|
9674
9984
|
const rowOpts = computeRowOpts.value;
|
|
9675
9985
|
const { isHover, padding } = rowOpts;
|
|
9676
9986
|
const isDrag = computeIsDrag.value;
|
|
9987
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
9988
|
+
const scrollXVisible = computeScrollXVisible.value;
|
|
9989
|
+
const scrollYVisible = computeScrollYVisible.value;
|
|
9990
|
+
const scrollbarXToTop = computeScrollbarXToTop.value;
|
|
9991
|
+
const scrollbarYToLeft = computeScrollbarYToLeft.value;
|
|
9992
|
+
const scrollXAutoHide = computeScrollXAutoHide.value;
|
|
9993
|
+
const scrollYAutoHide = computeScrollYAutoHide.value;
|
|
9994
|
+
const scrollbarWrapperClss = computeScrollbarWrapperClss.value;
|
|
9677
9995
|
const showDefChekboxHead = showCheckbox && showHeader !== false;
|
|
9678
9996
|
const leOns = {};
|
|
9679
9997
|
if (isCrossListDrag && !rowList.length) {
|
|
9680
9998
|
leOns.onDragover = $xeList.handleCrossListRowDragoverEmptyEvent;
|
|
9681
9999
|
}
|
|
9682
|
-
return h('div', Object.assign({ ref: refElem, class: [
|
|
10000
|
+
return h('div', Object.assign({ ref: refElem, class: [
|
|
10001
|
+
'vxe-list',
|
|
10002
|
+
useScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '',
|
|
10003
|
+
useScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '',
|
|
10004
|
+
useScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '',
|
|
10005
|
+
useScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '',
|
|
10006
|
+
className ? (XEUtils.isFunction(className) ? className({ $list: $xeList }) : className) : '',
|
|
10007
|
+
{
|
|
9683
10008
|
[`size--${vSize}`]: vSize,
|
|
10009
|
+
'is--virtual-scrollbar': useScrollbar,
|
|
10010
|
+
'ov-padding': useScrollbar && scrollbarOpts.padding,
|
|
10011
|
+
'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
|
|
10012
|
+
'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
|
|
10013
|
+
'overflow-y': yThumbHeight,
|
|
10014
|
+
'overflow-x': xThumbWidth,
|
|
9684
10015
|
'is--drag': isDrag,
|
|
9685
10016
|
'is--loading': loading
|
|
9686
|
-
}
|
|
10017
|
+
}
|
|
10018
|
+
], style: wrapperStyles }, leOns), [
|
|
9687
10019
|
headerSlot || showDefChekboxHead
|
|
9688
10020
|
? h('div', {
|
|
9689
10021
|
ref: refHeaderElem,
|
|
@@ -9748,6 +10080,49 @@ var VxeListComponent = defineVxeComponent({
|
|
|
9748
10080
|
class: 'vxe-list--footer-wrapper'
|
|
9749
10081
|
}, footerSlot({ items: rowList, $list: $xeList }))
|
|
9750
10082
|
: renderEmptyElement$1($xeList),
|
|
10083
|
+
/**
|
|
10084
|
+
* 滚动条
|
|
10085
|
+
*/
|
|
10086
|
+
useScrollbar
|
|
10087
|
+
? h('div', {
|
|
10088
|
+
class: scrollbarWrapperClss
|
|
10089
|
+
}, [
|
|
10090
|
+
scrollXVisible === false
|
|
10091
|
+
? renderEmptyElement$1($xeList)
|
|
10092
|
+
: h('div', {
|
|
10093
|
+
ref: refTrackXElem,
|
|
10094
|
+
class: 'vxe-scrollbar--track-x',
|
|
10095
|
+
onClick: clickTrackXEvent
|
|
10096
|
+
}, [
|
|
10097
|
+
h('div', {
|
|
10098
|
+
ref: refThumbXElem,
|
|
10099
|
+
class: 'vxe-scrollbar--thumb-x',
|
|
10100
|
+
onPointerdown: pointerdownThumbXEvent,
|
|
10101
|
+
onPointermove: pointermoveThumbXEvent,
|
|
10102
|
+
onPointerup: cleatPointerThumbEvent,
|
|
10103
|
+
onPointercancel: cleatPointerThumbEvent,
|
|
10104
|
+
onLostpointercapture: cleatPointerThumbEvent
|
|
10105
|
+
})
|
|
10106
|
+
]),
|
|
10107
|
+
scrollYVisible === false
|
|
10108
|
+
? renderEmptyElement$1($xeList)
|
|
10109
|
+
: h('div', {
|
|
10110
|
+
ref: refTrackYElem,
|
|
10111
|
+
class: 'vxe-scrollbar--track-y',
|
|
10112
|
+
onClick: clickTrackYEvent
|
|
10113
|
+
}, [
|
|
10114
|
+
h('div', {
|
|
10115
|
+
ref: refThumbYElem,
|
|
10116
|
+
class: 'vxe-scrollbar--thumb-y',
|
|
10117
|
+
onPointerdown: pointerdownThumbYEvent,
|
|
10118
|
+
onPointermove: pointermoveThumbYEvent,
|
|
10119
|
+
onPointerup: cleatPointerThumbEvent,
|
|
10120
|
+
onPointercancel: cleatPointerThumbEvent,
|
|
10121
|
+
onLostpointercapture: cleatPointerThumbEvent
|
|
10122
|
+
})
|
|
10123
|
+
])
|
|
10124
|
+
])
|
|
10125
|
+
: renderEmptyElement$1($xeList),
|
|
9751
10126
|
/**
|
|
9752
10127
|
* 拖拽提示
|
|
9753
10128
|
*/
|
|
@@ -9781,11 +10156,24 @@ var VxeListComponent = defineVxeComponent({
|
|
|
9781
10156
|
watch(() => props.syncResize, () => {
|
|
9782
10157
|
reFlag.value++;
|
|
9783
10158
|
});
|
|
10159
|
+
watch(() => props.useScrollbar, () => {
|
|
10160
|
+
reFlag.value++;
|
|
10161
|
+
});
|
|
9784
10162
|
watch(computeRowHeight, () => {
|
|
9785
10163
|
reFlag.value++;
|
|
9786
10164
|
});
|
|
9787
|
-
watch(
|
|
10165
|
+
watch(computeScrollXVisible, () => {
|
|
10166
|
+
nextTick(() => {
|
|
10167
|
+
reFlag.value++;
|
|
10168
|
+
});
|
|
10169
|
+
});
|
|
10170
|
+
watch(computeScrollYVisible, () => {
|
|
9788
10171
|
nextTick(() => {
|
|
10172
|
+
reFlag.value++;
|
|
10173
|
+
});
|
|
10174
|
+
});
|
|
10175
|
+
watch(reFlag, () => {
|
|
10176
|
+
recalculate().then(() => {
|
|
9789
10177
|
recalculate();
|
|
9790
10178
|
});
|
|
9791
10179
|
});
|
|
@@ -9803,13 +10191,15 @@ var VxeListComponent = defineVxeComponent({
|
|
|
9803
10191
|
updateCheckboxModeValue();
|
|
9804
10192
|
});
|
|
9805
10193
|
onActivated(() => {
|
|
9806
|
-
recalculate().then(() =>
|
|
10194
|
+
recalculate().then(() => {
|
|
10195
|
+
refreshScroll();
|
|
10196
|
+
});
|
|
9807
10197
|
});
|
|
9808
10198
|
nextTick(() => {
|
|
9809
10199
|
loadData(props.data || []);
|
|
9810
10200
|
});
|
|
9811
10201
|
onMounted(() => {
|
|
9812
|
-
const { showSeq, showRadio, showCheckbox } = props;
|
|
10202
|
+
const { showSeq, showRadio, showCheckbox, autoResize, useScrollbar } = props;
|
|
9813
10203
|
const rowOpts = computeRowOpts.value;
|
|
9814
10204
|
const { useKey } = rowOpts;
|
|
9815
10205
|
const isDrag = computeIsDrag.value;
|
|
@@ -9831,17 +10221,27 @@ var VxeListComponent = defineVxeComponent({
|
|
|
9831
10221
|
if (useKey && !keyField) {
|
|
9832
10222
|
errLog$j('vxe.error.reqSupportProp', ['row-config.useKey', 'row-config.keyField']);
|
|
9833
10223
|
}
|
|
9834
|
-
if (
|
|
10224
|
+
if (useScrollbar || autoResize) {
|
|
9835
10225
|
const el = refElem.value;
|
|
9836
|
-
const
|
|
9837
|
-
resizeObserver.
|
|
10226
|
+
const viewInnerEl = refVirtualBody.value;
|
|
10227
|
+
const resizeObserver = globalResize$1.create(() => {
|
|
10228
|
+
reFlag.value++;
|
|
10229
|
+
});
|
|
9838
10230
|
if (el) {
|
|
9839
|
-
resizeObserver.observe(el
|
|
10231
|
+
resizeObserver.observe(el);
|
|
10232
|
+
if (autoResize) {
|
|
10233
|
+
resizeObserver.observe(el.parentElement);
|
|
10234
|
+
}
|
|
10235
|
+
}
|
|
10236
|
+
if (viewInnerEl) {
|
|
10237
|
+
resizeObserver.observe(viewInnerEl);
|
|
9840
10238
|
}
|
|
9841
10239
|
internalData.resizeObserver = resizeObserver;
|
|
9842
10240
|
}
|
|
9843
|
-
|
|
9844
|
-
globalEvents$1.on($xeList, 'resize',
|
|
10241
|
+
reFlag.value++;
|
|
10242
|
+
globalEvents$1.on($xeList, 'resize', () => {
|
|
10243
|
+
reFlag.value++;
|
|
10244
|
+
});
|
|
9845
10245
|
});
|
|
9846
10246
|
onBeforeUnmount(() => {
|
|
9847
10247
|
const { resizeObserver } = internalData;
|
|
@@ -29558,7 +29958,7 @@ var VxeLayoutAsideComponent = defineVxeComponent({
|
|
|
29558
29958
|
const vSize = computeSize.value;
|
|
29559
29959
|
const collapseOpts = computeCollapseOpts.value;
|
|
29560
29960
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
29561
|
-
const {
|
|
29961
|
+
const { className, viewClassName, viewInnerClassName } = scrollbarOpts;
|
|
29562
29962
|
const defaultSlot = slots.default;
|
|
29563
29963
|
return h('aside', {
|
|
29564
29964
|
ref: refElem,
|
|
@@ -29573,13 +29973,16 @@ var VxeLayoutAsideComponent = defineVxeComponent({
|
|
|
29573
29973
|
}, [
|
|
29574
29974
|
useScrollbar
|
|
29575
29975
|
? h(VxeScrollbar, {
|
|
29576
|
-
|
|
29976
|
+
width: scrollbarOpts.width,
|
|
29977
|
+
height: scrollbarOpts.height,
|
|
29978
|
+
autoHide: scrollbarOpts.autoHide,
|
|
29979
|
+
visible: scrollbarOpts.visible,
|
|
29577
29980
|
xConfig: {
|
|
29578
|
-
visible:
|
|
29981
|
+
visible: false
|
|
29579
29982
|
},
|
|
29580
|
-
yConfig,
|
|
29983
|
+
yConfig: scrollbarOpts.yConfig,
|
|
29581
29984
|
className: 'vxe-layout-aside--scrollbar' + (className ? (' ' + className) : ''),
|
|
29582
|
-
viewAttrs,
|
|
29985
|
+
viewAttrs: scrollbarOpts.viewAttrs,
|
|
29583
29986
|
viewClassName: 'vxe-layout-aside--scrollbar-view' + (viewClassName ? (' ' + viewClassName) : ''),
|
|
29584
29987
|
viewInnerClassName: 'vxe-layout-aside--scrollbar-inner' + (viewInnerClassName ? (' ' + viewInnerClassName) : '')
|
|
29585
29988
|
}, {
|
|
@@ -29661,6 +30064,23 @@ var VxeLayoutBodyComponent = defineVxeComponent({
|
|
|
29661
30064
|
const computeScrollbarOpts = computed(() => {
|
|
29662
30065
|
return Object.assign({}, getConfig$4().layoutBody.scrollbarConfig, props.scrollbarConfig);
|
|
29663
30066
|
});
|
|
30067
|
+
const computeScrollbarProps = computed(() => {
|
|
30068
|
+
const { showBacktop } = props;
|
|
30069
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
30070
|
+
const { className, viewClassName, viewInnerClassName } = scrollbarOpts;
|
|
30071
|
+
return {
|
|
30072
|
+
width: scrollbarOpts.width,
|
|
30073
|
+
height: scrollbarOpts.height,
|
|
30074
|
+
autoHide: scrollbarOpts.autoHide,
|
|
30075
|
+
visible: scrollbarOpts.visible,
|
|
30076
|
+
xConfig: scrollbarOpts.xConfig,
|
|
30077
|
+
yConfig: scrollbarOpts.yConfig,
|
|
30078
|
+
className: 'vxe-layout-body--scrollbar' + (className ? (' ' + className) : ''),
|
|
30079
|
+
viewAttrs: Object.assign(Object.assign({}, scrollbarOpts.viewAttrs), { id: showBacktop ? (backtopId || null) : null }),
|
|
30080
|
+
viewClassName: 'vxe-layout-body--scrollbar-view' + (viewClassName ? (' ' + viewClassName) : ''),
|
|
30081
|
+
viewInnerClassName: 'vxe-layout-body--scrollbar-inner' + (viewInnerClassName ? (' ' + viewInnerClassName) : '')
|
|
30082
|
+
};
|
|
30083
|
+
});
|
|
29664
30084
|
const computeMaps = {
|
|
29665
30085
|
computeSize
|
|
29666
30086
|
};
|
|
@@ -29684,8 +30104,7 @@ var VxeLayoutBodyComponent = defineVxeComponent({
|
|
|
29684
30104
|
const renderVN = () => {
|
|
29685
30105
|
const { loading, padding, showBacktop, useScrollbar } = props;
|
|
29686
30106
|
const backtopOpts = computeBacktopOpts.value;
|
|
29687
|
-
const
|
|
29688
|
-
const { native, xConfig, yConfig, className, viewAttrs, viewClassName, viewInnerClassName } = scrollbarOpts;
|
|
30107
|
+
const scrollbarProps = computeScrollbarProps.value;
|
|
29689
30108
|
const vSize = computeSize.value;
|
|
29690
30109
|
const defaultSlot = slots.default;
|
|
29691
30110
|
const backtopSlot = slots.backtop;
|
|
@@ -29710,15 +30129,7 @@ var VxeLayoutBodyComponent = defineVxeComponent({
|
|
|
29710
30129
|
}]
|
|
29711
30130
|
}, [
|
|
29712
30131
|
useScrollbar
|
|
29713
|
-
? h(VxeScrollbar, {
|
|
29714
|
-
native,
|
|
29715
|
-
xConfig,
|
|
29716
|
-
yConfig,
|
|
29717
|
-
className: 'vxe-layout-body--scrollbar' + (className ? (' ' + className) : ''),
|
|
29718
|
-
viewAttrs: Object.assign(Object.assign({}, viewAttrs), { id: showBacktop ? (backtopId || null) : null }),
|
|
29719
|
-
viewClassName: 'vxe-layout-body--scrollbar-view' + (viewClassName ? (' ' + viewClassName) : ''),
|
|
29720
|
-
viewInnerClassName: 'vxe-layout-body--scrollbar-inner' + (viewInnerClassName ? (' ' + viewInnerClassName) : '')
|
|
29721
|
-
}, {
|
|
30132
|
+
? h(VxeScrollbar, scrollbarProps, {
|
|
29722
30133
|
default: () => defaultSlot ? defaultSlot({}) : []
|
|
29723
30134
|
})
|
|
29724
30135
|
: h('div', {
|
|
@@ -41080,6 +41491,22 @@ var VxeTabsComponent = defineVxeComponent({
|
|
|
41080
41491
|
const computeScrollbarOpts = computed(() => {
|
|
41081
41492
|
return Object.assign({}, getConfig$4().tabs.scrollbarConfig, props.scrollbarConfig);
|
|
41082
41493
|
});
|
|
41494
|
+
const computeScrollbarProps = computed(() => {
|
|
41495
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
41496
|
+
const { viewClassName, viewInnerClassName } = scrollbarOpts;
|
|
41497
|
+
return {
|
|
41498
|
+
width: scrollbarOpts.width,
|
|
41499
|
+
height: scrollbarOpts.height,
|
|
41500
|
+
autoHide: scrollbarOpts.autoHide,
|
|
41501
|
+
visible: scrollbarOpts.visible,
|
|
41502
|
+
xConfig: scrollbarOpts.xConfig,
|
|
41503
|
+
yConfig: scrollbarOpts.yConfig,
|
|
41504
|
+
className: scrollbarOpts.className,
|
|
41505
|
+
viewAttrs: scrollbarOpts.viewAttrs,
|
|
41506
|
+
viewClassName: 'vxe-tabs-pane--scrollbar-item-view' + (viewClassName ? (' ' + viewClassName) : ''),
|
|
41507
|
+
viewInnerClassName: 'vxe-tabs-pane--scrollbar-item-inner' + (viewClassName ? (' ' + viewInnerClassName) : '')
|
|
41508
|
+
};
|
|
41509
|
+
});
|
|
41083
41510
|
const computeMaps = {};
|
|
41084
41511
|
const $xeTabs = {
|
|
41085
41512
|
xID,
|
|
@@ -41659,13 +42086,12 @@ var VxeTabsComponent = defineVxeComponent({
|
|
|
41659
42086
|
const { initNames, activeName } = reactData;
|
|
41660
42087
|
const { name, slots } = item;
|
|
41661
42088
|
const defaultSlot = slots ? slots.default : null;
|
|
41662
|
-
const
|
|
41663
|
-
const { viewClassName, viewInnerClassName } = scrollbarOpts;
|
|
42089
|
+
const scrollbarProps = computeScrollbarProps.value;
|
|
41664
42090
|
if (name && initNames.includes(name)) {
|
|
41665
42091
|
return useScrollbar
|
|
41666
|
-
? h(VxeScrollbar, Object.assign(
|
|
42092
|
+
? h(VxeScrollbar, Object.assign({ key: `${name}`, class: ['vxe-tabs-pane--scrollbar-item', {
|
|
41667
42093
|
'is--visible': activeName === name
|
|
41668
|
-
}] },
|
|
42094
|
+
}] }, scrollbarProps), {
|
|
41669
42095
|
default: () => defaultSlot ? callSlot(defaultSlot, { name }) : []
|
|
41670
42096
|
})
|
|
41671
42097
|
: h('div', {
|
|
@@ -43157,6 +43583,34 @@ const { menus, getConfig, getI18n, getIcon } = VxeUI;
|
|
|
43157
43583
|
function getNodeUniqueId() {
|
|
43158
43584
|
return XEUtils.uniqueId('node_');
|
|
43159
43585
|
}
|
|
43586
|
+
function createReactData$2() {
|
|
43587
|
+
return {
|
|
43588
|
+
parentHeight: 0,
|
|
43589
|
+
customHeight: 0,
|
|
43590
|
+
customMinHeight: 0,
|
|
43591
|
+
customMaxHeight: 0,
|
|
43592
|
+
currentNode: null,
|
|
43593
|
+
scrollYLoad: false,
|
|
43594
|
+
bodyHeight: 0,
|
|
43595
|
+
topSpaceHeight: 0,
|
|
43596
|
+
selectRadioKey: null,
|
|
43597
|
+
treeList: [],
|
|
43598
|
+
updateExpandedFlag: 1,
|
|
43599
|
+
updateCheckboxFlag: 1,
|
|
43600
|
+
// 滚动条
|
|
43601
|
+
yThumbHeight: 0,
|
|
43602
|
+
xThumbWidth: 0,
|
|
43603
|
+
insertNodeFlag: 1,
|
|
43604
|
+
removeNodeFlag: 1,
|
|
43605
|
+
dragNode: null,
|
|
43606
|
+
dragTipText: '',
|
|
43607
|
+
isCrossDragNode: false,
|
|
43608
|
+
tooltipStore: {
|
|
43609
|
+
visible: false,
|
|
43610
|
+
node: null
|
|
43611
|
+
}
|
|
43612
|
+
};
|
|
43613
|
+
}
|
|
43160
43614
|
function createInternalData$2() {
|
|
43161
43615
|
return {
|
|
43162
43616
|
// initialized: false,
|
|
@@ -43169,8 +43623,14 @@ function createInternalData$2() {
|
|
|
43169
43623
|
indeterminateNodeMaps: {},
|
|
43170
43624
|
treeExpandedMaps: {},
|
|
43171
43625
|
treeExpandLazyLoadedMaps: {},
|
|
43172
|
-
|
|
43626
|
+
// 滚动条
|
|
43627
|
+
// resizeObserver: undefined,
|
|
43628
|
+
// isThumbDrag: false,
|
|
43629
|
+
thumbDragOffset: 0,
|
|
43630
|
+
yThumbTop: 0,
|
|
43631
|
+
xThumbLeft: 0,
|
|
43173
43632
|
lastScrollTop: 0,
|
|
43633
|
+
lastScrollLeft: 0,
|
|
43174
43634
|
scrollYStore: {
|
|
43175
43635
|
startIndex: 0,
|
|
43176
43636
|
endIndex: 0,
|
|
@@ -43187,31 +43647,6 @@ function createInternalData$2() {
|
|
|
43187
43647
|
// hpTimeout: undefined
|
|
43188
43648
|
};
|
|
43189
43649
|
}
|
|
43190
|
-
function createReactData$2() {
|
|
43191
|
-
return {
|
|
43192
|
-
parentHeight: 0,
|
|
43193
|
-
customHeight: 0,
|
|
43194
|
-
customMinHeight: 0,
|
|
43195
|
-
customMaxHeight: 0,
|
|
43196
|
-
currentNode: null,
|
|
43197
|
-
scrollYLoad: false,
|
|
43198
|
-
bodyHeight: 0,
|
|
43199
|
-
topSpaceHeight: 0,
|
|
43200
|
-
selectRadioKey: null,
|
|
43201
|
-
treeList: [],
|
|
43202
|
-
updateExpandedFlag: 1,
|
|
43203
|
-
updateCheckboxFlag: 1,
|
|
43204
|
-
insertNodeFlag: 1,
|
|
43205
|
-
removeNodeFlag: 1,
|
|
43206
|
-
dragNode: null,
|
|
43207
|
-
dragTipText: '',
|
|
43208
|
-
isCrossDragNode: false,
|
|
43209
|
-
tooltipStore: {
|
|
43210
|
-
visible: false,
|
|
43211
|
-
node: null
|
|
43212
|
-
}
|
|
43213
|
-
};
|
|
43214
|
-
}
|
|
43215
43650
|
let crossTreeDragNodeObj = null;
|
|
43216
43651
|
var VxeTreeComponent = defineVxeComponent({
|
|
43217
43652
|
name: 'VxeTree',
|
|
@@ -43342,7 +43777,12 @@ var VxeTreeComponent = defineVxeComponent({
|
|
|
43342
43777
|
type: String,
|
|
43343
43778
|
default: () => getConfig().tree.size || getConfig().size
|
|
43344
43779
|
},
|
|
43345
|
-
virtualYConfig: Object
|
|
43780
|
+
virtualYConfig: Object,
|
|
43781
|
+
useScrollbar: {
|
|
43782
|
+
type: Boolean,
|
|
43783
|
+
default: () => getConfig().tree.useScrollbar
|
|
43784
|
+
},
|
|
43785
|
+
scrollbarConfig: Object
|
|
43346
43786
|
},
|
|
43347
43787
|
emits: [
|
|
43348
43788
|
'update:modelValue',
|
|
@@ -43374,6 +43814,10 @@ var VxeTreeComponent = defineVxeComponent({
|
|
|
43374
43814
|
const refFooterWrapperElem = ref();
|
|
43375
43815
|
const refVirtualWrapper = ref();
|
|
43376
43816
|
const refVirtualBody = ref();
|
|
43817
|
+
const refTrackXElem = ref();
|
|
43818
|
+
const refTrackYElem = ref();
|
|
43819
|
+
const refThumbXElem = ref();
|
|
43820
|
+
const refThumbYElem = ref();
|
|
43377
43821
|
const refDragNodeLineElem = ref();
|
|
43378
43822
|
const refDragTipElem = ref();
|
|
43379
43823
|
const refTooltip = ref();
|
|
@@ -43445,6 +43889,19 @@ var VxeTreeComponent = defineVxeComponent({
|
|
|
43445
43889
|
const computeMenuOpts = computed(() => {
|
|
43446
43890
|
return Object.assign({}, getConfig().tree.menuConfig, props.menuConfig);
|
|
43447
43891
|
});
|
|
43892
|
+
const computeWrapperStyles = computed(() => {
|
|
43893
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
43894
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
43895
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
43896
|
+
const barWidth = getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), getConfig().scrollbar.width);
|
|
43897
|
+
const barHeight = getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), getConfig().scrollbar.height);
|
|
43898
|
+
const stys = {};
|
|
43899
|
+
if (barWidth || barHeight) {
|
|
43900
|
+
stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
|
|
43901
|
+
stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
|
|
43902
|
+
}
|
|
43903
|
+
return stys;
|
|
43904
|
+
});
|
|
43448
43905
|
const computeTreeStyle = computed(() => {
|
|
43449
43906
|
const { indent } = props;
|
|
43450
43907
|
const { customHeight, customMinHeight, customMaxHeight } = reactData;
|
|
@@ -43477,6 +43934,71 @@ var VxeTreeComponent = defineVxeComponent({
|
|
|
43477
43934
|
const computeFilterOpts = computed(() => {
|
|
43478
43935
|
return Object.assign({}, getConfig().tree.filterConfig, props.filterConfig);
|
|
43479
43936
|
});
|
|
43937
|
+
const computeScrollbarOpts = computed(() => {
|
|
43938
|
+
return Object.assign({}, getConfig().tree.scrollbarConfig, props.scrollbarConfig);
|
|
43939
|
+
});
|
|
43940
|
+
const computeScrollbarXOpts = computed(() => {
|
|
43941
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
43942
|
+
return Object.assign({}, getConfig().scrollbar.xConfig, scrollbarOpts.xConfig, {
|
|
43943
|
+
visible: false
|
|
43944
|
+
});
|
|
43945
|
+
});
|
|
43946
|
+
const computeScrollbarYOpts = computed(() => {
|
|
43947
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
43948
|
+
return Object.assign({}, getConfig().scrollbar.yConfig, scrollbarOpts.yConfig);
|
|
43949
|
+
});
|
|
43950
|
+
const computeScrollXVisible = computed(() => {
|
|
43951
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
43952
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
43953
|
+
return getDefaultConfig(scrollbarXOpts.visible, scrollbarOpts.visible);
|
|
43954
|
+
});
|
|
43955
|
+
const computeScrollYVisible = computed(() => {
|
|
43956
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
43957
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
43958
|
+
return getDefaultConfig(scrollbarYOpts.visible, scrollbarOpts.visible);
|
|
43959
|
+
});
|
|
43960
|
+
const computeScrollXAutoHide = computed(() => {
|
|
43961
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
43962
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
43963
|
+
return getDefaultConfig(getDefaultConfig(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
|
|
43964
|
+
});
|
|
43965
|
+
const computeScrollYAutoHide = computed(() => {
|
|
43966
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
43967
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
43968
|
+
return getDefaultConfig(getDefaultConfig(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
|
|
43969
|
+
});
|
|
43970
|
+
const computeScrollbarWrapperClss = computed(() => {
|
|
43971
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
43972
|
+
const { padding } = scrollbarOpts;
|
|
43973
|
+
const { yThumbHeight, xThumbWidth } = reactData;
|
|
43974
|
+
const scrollbarXToTop = computeScrollbarXToTop.value;
|
|
43975
|
+
const scrollbarYToLeft = computeScrollbarYToLeft.value;
|
|
43976
|
+
const scrollXVisible = computeScrollXVisible.value;
|
|
43977
|
+
const scrollYVisible = computeScrollYVisible.value;
|
|
43978
|
+
const scrollXAutoHide = computeScrollXAutoHide.value;
|
|
43979
|
+
const scrollYAutoHide = computeScrollYAutoHide.value;
|
|
43980
|
+
return domUtils$1.buildClass([
|
|
43981
|
+
'vxe-scrollbar is--virtual',
|
|
43982
|
+
`ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}`,
|
|
43983
|
+
`ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}`,
|
|
43984
|
+
`sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`,
|
|
43985
|
+
`sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`
|
|
43986
|
+
], {
|
|
43987
|
+
'is--padding': padding,
|
|
43988
|
+
'ov-x--auto-hide': scrollXAutoHide,
|
|
43989
|
+
'ov-y--auto-hide': scrollYAutoHide,
|
|
43990
|
+
'overflow-y': yThumbHeight,
|
|
43991
|
+
'overflow-x': xThumbWidth
|
|
43992
|
+
});
|
|
43993
|
+
});
|
|
43994
|
+
const computeScrollbarXToTop = computed(() => {
|
|
43995
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
43996
|
+
return scrollbarXOpts.position === 'top';
|
|
43997
|
+
});
|
|
43998
|
+
const computeScrollbarYToLeft = computed(() => {
|
|
43999
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
44000
|
+
return scrollbarYOpts.position === 'left';
|
|
44001
|
+
});
|
|
43480
44002
|
const computeMaps = {
|
|
43481
44003
|
computeKeyField,
|
|
43482
44004
|
computeParentField,
|
|
@@ -43994,6 +44516,10 @@ var VxeTreeComponent = defineVxeComponent({
|
|
|
43994
44516
|
}
|
|
43995
44517
|
});
|
|
43996
44518
|
};
|
|
44519
|
+
const updateScrollbar = () => {
|
|
44520
|
+
updateThumbSize();
|
|
44521
|
+
updateThumbOffset();
|
|
44522
|
+
};
|
|
43997
44523
|
/**
|
|
43998
44524
|
* 重新计算列表
|
|
43999
44525
|
*/
|
|
@@ -44015,6 +44541,7 @@ var VxeTreeComponent = defineVxeComponent({
|
|
|
44015
44541
|
const parentPaddingSize = getPaddingTopBottomSize(parentEl);
|
|
44016
44542
|
reactData.parentHeight = Math.max(headHeight + footHeight + rowHeight, parentEl.clientHeight - parentPaddingSize - headHeight - footHeight);
|
|
44017
44543
|
}
|
|
44544
|
+
updateScrollbar();
|
|
44018
44545
|
updateHeight();
|
|
44019
44546
|
return computeScrollLoad().then(() => {
|
|
44020
44547
|
updateHeight();
|
|
@@ -44048,6 +44575,7 @@ var VxeTreeComponent = defineVxeComponent({
|
|
|
44048
44575
|
const scrollLeft = scrollBodyElem.scrollLeft;
|
|
44049
44576
|
const isX = scrollLeft !== internalData.lastScrollLeft;
|
|
44050
44577
|
const isY = scrollTop !== internalData.lastScrollTop;
|
|
44578
|
+
updateThumbOffset();
|
|
44051
44579
|
internalData.lastScrollTop = scrollTop;
|
|
44052
44580
|
internalData.lastScrollLeft = scrollLeft;
|
|
44053
44581
|
if (reactData.scrollYLoad) {
|
|
@@ -44592,13 +45120,6 @@ var VxeTreeComponent = defineVxeComponent({
|
|
|
44592
45120
|
emitRadioMode(value);
|
|
44593
45121
|
dispatchEvent('radio-change', { node, value, checked: isChecked }, evnt);
|
|
44594
45122
|
};
|
|
44595
|
-
const handleGlobalResizeEvent = () => {
|
|
44596
|
-
const el = refElem.value;
|
|
44597
|
-
if (!el || !el.clientWidth) {
|
|
44598
|
-
return;
|
|
44599
|
-
}
|
|
44600
|
-
recalculate();
|
|
44601
|
-
};
|
|
44602
45123
|
const insertTreeNode = (newRecords, isAppend) => {
|
|
44603
45124
|
const { treeFullData, nodeMaps } = internalData;
|
|
44604
45125
|
const keyField = computeKeyField.value;
|
|
@@ -46032,6 +46553,162 @@ var VxeTreeComponent = defineVxeComponent({
|
|
|
46032
46553
|
hideDropTip();
|
|
46033
46554
|
}
|
|
46034
46555
|
};
|
|
46556
|
+
const updateThumbSize = () => {
|
|
46557
|
+
const viewEl = refVirtualWrapper.value;
|
|
46558
|
+
if (!viewEl) {
|
|
46559
|
+
return;
|
|
46560
|
+
}
|
|
46561
|
+
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
46562
|
+
return;
|
|
46563
|
+
}
|
|
46564
|
+
const trackXEl = refTrackXElem.value;
|
|
46565
|
+
const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
|
|
46566
|
+
const thumbXElem = refThumbXElem.value;
|
|
46567
|
+
if (thumbXElem) {
|
|
46568
|
+
thumbXElem.style.width = xThumbWidth + 'px';
|
|
46569
|
+
}
|
|
46570
|
+
reactData.xThumbWidth = xThumbWidth;
|
|
46571
|
+
const trackYEl = refTrackYElem.value;
|
|
46572
|
+
const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
|
|
46573
|
+
const thumbYElem = refThumbYElem.value;
|
|
46574
|
+
if (thumbYElem) {
|
|
46575
|
+
thumbYElem.style.height = yThumbHeight + 'px';
|
|
46576
|
+
}
|
|
46577
|
+
reactData.yThumbHeight = yThumbHeight;
|
|
46578
|
+
};
|
|
46579
|
+
const updateThumbOffset = () => {
|
|
46580
|
+
const viewEl = refVirtualWrapper.value;
|
|
46581
|
+
if (!viewEl) {
|
|
46582
|
+
return;
|
|
46583
|
+
}
|
|
46584
|
+
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
46585
|
+
return;
|
|
46586
|
+
}
|
|
46587
|
+
const { xThumbWidth, yThumbHeight } = reactData;
|
|
46588
|
+
const trackXEl = refTrackXElem.value;
|
|
46589
|
+
const thumbXElem = refThumbXElem.value;
|
|
46590
|
+
const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
|
|
46591
|
+
internalData.xThumbLeft = xThumbLeft;
|
|
46592
|
+
if (thumbXElem && xThumbWidth) {
|
|
46593
|
+
thumbXElem.style.width = xThumbWidth + 'px';
|
|
46594
|
+
thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
|
|
46595
|
+
}
|
|
46596
|
+
const trackYEl = refTrackYElem.value;
|
|
46597
|
+
const thumbYElem = refThumbYElem.value;
|
|
46598
|
+
const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
|
|
46599
|
+
internalData.yThumbTop = yThumbTop;
|
|
46600
|
+
if (thumbYElem && yThumbHeight) {
|
|
46601
|
+
thumbYElem.style.height = yThumbHeight + 'px';
|
|
46602
|
+
thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
|
|
46603
|
+
}
|
|
46604
|
+
};
|
|
46605
|
+
const clickTrackXEvent = (evnt) => {
|
|
46606
|
+
const trackEl = evnt.currentTarget;
|
|
46607
|
+
if (trackEl !== evnt.target) {
|
|
46608
|
+
return;
|
|
46609
|
+
}
|
|
46610
|
+
const viewEl = refVirtualWrapper.value;
|
|
46611
|
+
if (!viewEl) {
|
|
46612
|
+
return;
|
|
46613
|
+
}
|
|
46614
|
+
const { xThumbWidth } = reactData;
|
|
46615
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
46616
|
+
viewEl.scrollTo({
|
|
46617
|
+
left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
|
|
46618
|
+
behavior: 'auto'
|
|
46619
|
+
});
|
|
46620
|
+
};
|
|
46621
|
+
const clickTrackYEvent = (evnt) => {
|
|
46622
|
+
const trackEl = evnt.currentTarget;
|
|
46623
|
+
if (trackEl !== evnt.target) {
|
|
46624
|
+
return;
|
|
46625
|
+
}
|
|
46626
|
+
const viewEl = refVirtualWrapper.value;
|
|
46627
|
+
if (!viewEl) {
|
|
46628
|
+
return;
|
|
46629
|
+
}
|
|
46630
|
+
const { yThumbHeight } = reactData;
|
|
46631
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
46632
|
+
viewEl.scrollTo({
|
|
46633
|
+
top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
|
|
46634
|
+
behavior: 'auto'
|
|
46635
|
+
});
|
|
46636
|
+
};
|
|
46637
|
+
const pointerdownThumbXEvent = (evnt) => {
|
|
46638
|
+
const thumbEl = evnt.currentTarget;
|
|
46639
|
+
internalData.isThumbDrag = true;
|
|
46640
|
+
thumbEl.setPointerCapture(evnt.pointerId);
|
|
46641
|
+
const viewEl = refVirtualWrapper.value;
|
|
46642
|
+
if (!viewEl) {
|
|
46643
|
+
return;
|
|
46644
|
+
}
|
|
46645
|
+
const { xThumbWidth } = reactData;
|
|
46646
|
+
const trackEl = thumbEl.parentElement;
|
|
46647
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
46648
|
+
const pointerPosition = evnt.clientX - trackRect.left;
|
|
46649
|
+
// 记录 thumb 的偏移
|
|
46650
|
+
const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
46651
|
+
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
46652
|
+
};
|
|
46653
|
+
const pointermoveThumbXEvent = (evnt) => {
|
|
46654
|
+
const thumbEl = evnt.currentTarget;
|
|
46655
|
+
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
46656
|
+
return;
|
|
46657
|
+
}
|
|
46658
|
+
const { isThumbDrag, thumbDragOffset } = internalData;
|
|
46659
|
+
if (isThumbDrag) {
|
|
46660
|
+
const viewEl = refVirtualWrapper.value;
|
|
46661
|
+
if (!viewEl) {
|
|
46662
|
+
return;
|
|
46663
|
+
}
|
|
46664
|
+
const { xThumbWidth } = reactData;
|
|
46665
|
+
const thumbEl = evnt.currentTarget;
|
|
46666
|
+
const trackEl = thumbEl.parentElement;
|
|
46667
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
46668
|
+
// 更新偏移
|
|
46669
|
+
viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
46670
|
+
}
|
|
46671
|
+
};
|
|
46672
|
+
const cleatPointerThumbEvent = (evnt) => {
|
|
46673
|
+
const thumbEl = evnt.currentTarget;
|
|
46674
|
+
thumbEl.releasePointerCapture(evnt.pointerId);
|
|
46675
|
+
internalData.isThumbDrag = false;
|
|
46676
|
+
};
|
|
46677
|
+
const pointerdownThumbYEvent = (evnt) => {
|
|
46678
|
+
const thumbEl = evnt.currentTarget;
|
|
46679
|
+
internalData.isThumbDrag = true;
|
|
46680
|
+
thumbEl.setPointerCapture(evnt.pointerId);
|
|
46681
|
+
const viewEl = refVirtualWrapper.value;
|
|
46682
|
+
if (!viewEl) {
|
|
46683
|
+
return;
|
|
46684
|
+
}
|
|
46685
|
+
const { yThumbHeight } = reactData;
|
|
46686
|
+
const trackEl = thumbEl.parentElement;
|
|
46687
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
46688
|
+
const pointerPosition = evnt.clientY - trackRect.top;
|
|
46689
|
+
// 记录 thumb 的偏移
|
|
46690
|
+
const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
46691
|
+
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
46692
|
+
};
|
|
46693
|
+
const pointermoveThumbYEvent = (evnt) => {
|
|
46694
|
+
const thumbEl = evnt.currentTarget;
|
|
46695
|
+
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
46696
|
+
return;
|
|
46697
|
+
}
|
|
46698
|
+
const { isThumbDrag, thumbDragOffset } = internalData;
|
|
46699
|
+
if (isThumbDrag) {
|
|
46700
|
+
const viewEl = refVirtualWrapper.value;
|
|
46701
|
+
if (!viewEl) {
|
|
46702
|
+
return;
|
|
46703
|
+
}
|
|
46704
|
+
const { yThumbHeight } = reactData;
|
|
46705
|
+
const thumbEl = evnt.currentTarget;
|
|
46706
|
+
const trackEl = thumbEl.parentElement;
|
|
46707
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
46708
|
+
// 更新偏移
|
|
46709
|
+
viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
46710
|
+
}
|
|
46711
|
+
};
|
|
46035
46712
|
Object.assign($xeTree, treeMethods, treePrivateMethods);
|
|
46036
46713
|
const renderDragIcon = (node, nodeid) => {
|
|
46037
46714
|
const { drag, transform } = props;
|
|
@@ -46341,13 +47018,14 @@ var VxeTreeComponent = defineVxeComponent({
|
|
|
46341
47018
|
return renderEmptyElement$1($xeTree);
|
|
46342
47019
|
};
|
|
46343
47020
|
const renderVN = () => {
|
|
46344
|
-
const { loading, trigger, showLine } = props;
|
|
46345
|
-
const { bodyHeight, topSpaceHeight, treeList, tooltipStore } = reactData;
|
|
47021
|
+
const { loading, trigger, showLine, useScrollbar } = props;
|
|
47022
|
+
const { bodyHeight, topSpaceHeight, treeList, tooltipStore, xThumbWidth, yThumbHeight } = reactData;
|
|
46346
47023
|
const vSize = computeSize.value;
|
|
46347
47024
|
const radioOpts = computeRadioOpts.value;
|
|
46348
47025
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
46349
47026
|
const loadingOpts = computeLoadingOpts.value;
|
|
46350
47027
|
const isNodeHover = computeIsNodeHover.value;
|
|
47028
|
+
const wrapperStyles = computeWrapperStyles.value;
|
|
46351
47029
|
const treeStyle = computeTreeStyle.value;
|
|
46352
47030
|
const dragOpts = computeDragOpts.value;
|
|
46353
47031
|
const tooltipOpts = computeTooltipOpts.value;
|
|
@@ -46355,19 +47033,40 @@ var VxeTreeComponent = defineVxeComponent({
|
|
|
46355
47033
|
const headerSlot = slots.header;
|
|
46356
47034
|
const footerSlot = slots.footer;
|
|
46357
47035
|
const tooltipSlot = slots.tooltip;
|
|
47036
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
47037
|
+
const scrollXVisible = computeScrollXVisible.value;
|
|
47038
|
+
const scrollYVisible = computeScrollYVisible.value;
|
|
47039
|
+
const scrollbarXToTop = computeScrollbarXToTop.value;
|
|
47040
|
+
const scrollbarYToLeft = computeScrollbarYToLeft.value;
|
|
47041
|
+
const scrollXAutoHide = computeScrollXAutoHide.value;
|
|
47042
|
+
const scrollYAutoHide = computeScrollYAutoHide.value;
|
|
47043
|
+
const scrollbarWrapperClss = computeScrollbarWrapperClss.value;
|
|
46358
47044
|
const teOns = {};
|
|
46359
47045
|
if (dragOpts.isCrossTreeDrag && !treeList.length) {
|
|
46360
47046
|
teOns.onDragover = $xeTree.handleCrossTreeNodeDragoverEmptyEvent;
|
|
46361
47047
|
}
|
|
46362
|
-
return h('div', Object.assign({ ref: refElem, class: [
|
|
47048
|
+
return h('div', Object.assign({ ref: refElem, class: [
|
|
47049
|
+
'vxe-tree',
|
|
47050
|
+
useScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '',
|
|
47051
|
+
useScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '',
|
|
47052
|
+
useScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '',
|
|
47053
|
+
useScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '',
|
|
47054
|
+
{
|
|
46363
47055
|
[`size--${vSize}`]: vSize,
|
|
46364
47056
|
'show--line': showLine,
|
|
47057
|
+
'is--virtual-scrollbar': useScrollbar,
|
|
47058
|
+
'ov-padding': useScrollbar && scrollbarOpts.padding,
|
|
47059
|
+
'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
|
|
47060
|
+
'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
|
|
47061
|
+
'overflow-y': yThumbHeight,
|
|
47062
|
+
'overflow-x': xThumbWidth,
|
|
46365
47063
|
'checkbox--highlight': checkboxOpts.highlight,
|
|
46366
47064
|
'radio--highlight': radioOpts.highlight,
|
|
46367
47065
|
'node--hover': isNodeHover,
|
|
46368
47066
|
'node--trigger': trigger === 'node',
|
|
46369
47067
|
'is--loading': loading
|
|
46370
|
-
}
|
|
47068
|
+
}
|
|
47069
|
+
], style: wrapperStyles }, teOns), [
|
|
46371
47070
|
headerSlot
|
|
46372
47071
|
? h('div', {
|
|
46373
47072
|
ref: refHeaderWrapperElem,
|
|
@@ -46400,6 +47099,49 @@ var VxeTreeComponent = defineVxeComponent({
|
|
|
46400
47099
|
class: 'vxe-tree--footer-wrapper'
|
|
46401
47100
|
}, footerSlot({ $tree: $xeTree }))
|
|
46402
47101
|
: renderEmptyElement$1($xeTree),
|
|
47102
|
+
/**
|
|
47103
|
+
* 滚动条
|
|
47104
|
+
*/
|
|
47105
|
+
useScrollbar
|
|
47106
|
+
? h('div', {
|
|
47107
|
+
class: scrollbarWrapperClss
|
|
47108
|
+
}, [
|
|
47109
|
+
scrollXVisible === false
|
|
47110
|
+
? renderEmptyElement$1($xeTree)
|
|
47111
|
+
: h('div', {
|
|
47112
|
+
ref: refTrackXElem,
|
|
47113
|
+
class: 'vxe-scrollbar--track-x',
|
|
47114
|
+
onClick: clickTrackXEvent
|
|
47115
|
+
}, [
|
|
47116
|
+
h('div', {
|
|
47117
|
+
ref: refThumbXElem,
|
|
47118
|
+
class: 'vxe-scrollbar--thumb-x',
|
|
47119
|
+
onPointerdown: pointerdownThumbXEvent,
|
|
47120
|
+
onPointermove: pointermoveThumbXEvent,
|
|
47121
|
+
onPointerup: cleatPointerThumbEvent,
|
|
47122
|
+
onPointercancel: cleatPointerThumbEvent,
|
|
47123
|
+
onLostpointercapture: cleatPointerThumbEvent
|
|
47124
|
+
})
|
|
47125
|
+
]),
|
|
47126
|
+
scrollYVisible === false
|
|
47127
|
+
? renderEmptyElement$1($xeTree)
|
|
47128
|
+
: h('div', {
|
|
47129
|
+
ref: refTrackYElem,
|
|
47130
|
+
class: 'vxe-scrollbar--track-y',
|
|
47131
|
+
onClick: clickTrackYEvent
|
|
47132
|
+
}, [
|
|
47133
|
+
h('div', {
|
|
47134
|
+
ref: refThumbYElem,
|
|
47135
|
+
class: 'vxe-scrollbar--thumb-y',
|
|
47136
|
+
onPointerdown: pointerdownThumbYEvent,
|
|
47137
|
+
onPointermove: pointermoveThumbYEvent,
|
|
47138
|
+
onPointerup: cleatPointerThumbEvent,
|
|
47139
|
+
onPointercancel: cleatPointerThumbEvent,
|
|
47140
|
+
onLostpointercapture: cleatPointerThumbEvent
|
|
47141
|
+
})
|
|
47142
|
+
])
|
|
47143
|
+
])
|
|
47144
|
+
: renderEmptyElement$1($xeTree),
|
|
46403
47145
|
/**
|
|
46404
47146
|
* 拖拽提示
|
|
46405
47147
|
*/
|
|
@@ -46483,21 +47225,36 @@ var VxeTreeComponent = defineVxeComponent({
|
|
|
46483
47225
|
watch(() => props.filterValue, () => {
|
|
46484
47226
|
triggerSearchEvent(new Event('filter'));
|
|
46485
47227
|
});
|
|
46486
|
-
const
|
|
47228
|
+
const reFlag = ref(0);
|
|
46487
47229
|
watch(() => props.height, () => {
|
|
46488
|
-
|
|
47230
|
+
reFlag.value++;
|
|
46489
47231
|
});
|
|
46490
47232
|
watch(() => props.minHeight, () => {
|
|
46491
|
-
|
|
47233
|
+
reFlag.value++;
|
|
46492
47234
|
});
|
|
46493
47235
|
watch(() => props.maxHeight, () => {
|
|
46494
|
-
|
|
47236
|
+
reFlag.value++;
|
|
46495
47237
|
});
|
|
46496
|
-
watch(
|
|
46497
|
-
|
|
47238
|
+
watch(() => props.useScrollbar, () => {
|
|
47239
|
+
reFlag.value++;
|
|
47240
|
+
});
|
|
47241
|
+
watch(computeScrollXVisible, () => {
|
|
47242
|
+
nextTick(() => {
|
|
47243
|
+
reFlag.value++;
|
|
47244
|
+
});
|
|
47245
|
+
});
|
|
47246
|
+
watch(computeScrollYVisible, () => {
|
|
47247
|
+
nextTick(() => {
|
|
47248
|
+
reFlag.value++;
|
|
47249
|
+
});
|
|
47250
|
+
});
|
|
47251
|
+
watch(reFlag, () => {
|
|
47252
|
+
recalculate().then(() => {
|
|
47253
|
+
recalculate();
|
|
47254
|
+
});
|
|
46498
47255
|
});
|
|
46499
47256
|
onMounted(() => {
|
|
46500
|
-
const { transform, drag, menuConfig, showOverflow, lazy, loadMethod } = props;
|
|
47257
|
+
const { transform, drag, menuConfig, showOverflow, lazy, loadMethod, autoResize, useScrollbar } = props;
|
|
46501
47258
|
const dragOpts = computeDragOpts.value;
|
|
46502
47259
|
if (!showOverflow) {
|
|
46503
47260
|
errLog$2('vxe.error.errProp', ['show-overflow=false', 'show-overflow=true']);
|
|
@@ -46518,24 +47275,30 @@ var VxeTreeComponent = defineVxeComponent({
|
|
|
46518
47275
|
if (menuConfig && !VxeUIContextMenu) {
|
|
46519
47276
|
errLog$2('vxe.error.reqComp', ['vxe-context-menu']);
|
|
46520
47277
|
}
|
|
46521
|
-
if (
|
|
47278
|
+
if (useScrollbar || autoResize) {
|
|
46522
47279
|
const el = refElem.value;
|
|
47280
|
+
const viewInnerEl = refVirtualBody.value;
|
|
46523
47281
|
const parentEl = getParentElem();
|
|
46524
47282
|
const resizeObserver = globalResize$1.create(() => {
|
|
46525
|
-
|
|
46526
|
-
recalculate();
|
|
46527
|
-
}
|
|
47283
|
+
reFlag.value++;
|
|
46528
47284
|
});
|
|
46529
47285
|
if (el) {
|
|
46530
47286
|
resizeObserver.observe(el);
|
|
47287
|
+
if (autoResize) {
|
|
47288
|
+
if (parentEl) {
|
|
47289
|
+
resizeObserver.observe(parentEl);
|
|
47290
|
+
}
|
|
47291
|
+
}
|
|
46531
47292
|
}
|
|
46532
|
-
if (
|
|
46533
|
-
resizeObserver.observe(
|
|
47293
|
+
if (viewInnerEl) {
|
|
47294
|
+
resizeObserver.observe(viewInnerEl);
|
|
46534
47295
|
}
|
|
46535
47296
|
internalData.resizeObserver = resizeObserver;
|
|
46536
47297
|
}
|
|
46537
|
-
|
|
46538
|
-
globalEvents$1.on($xeTree, 'resize',
|
|
47298
|
+
reFlag.value++;
|
|
47299
|
+
globalEvents$1.on($xeTree, 'resize', () => {
|
|
47300
|
+
reFlag.value++;
|
|
47301
|
+
});
|
|
46539
47302
|
});
|
|
46540
47303
|
onBeforeUnmount(() => {
|
|
46541
47304
|
const { resizeObserver } = internalData;
|