vxe-pc-ui 3.20.8 → 3.20.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/card/src/card.js +2 -1
- package/es/date-panel/src/date-panel.js +70 -39
- package/es/date-panel/style.css +22 -20
- package/es/date-panel/style.min.css +1 -1
- package/es/drawer/src/drawer.js +1 -0
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +11 -3
- 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 +2 -1
- package/es/layout-body/src/layout-body.js +2 -1
- package/es/layout-container/src/layout-container.js +9 -2
- package/es/list/src/list.js +80 -223
- package/es/menu/src/menu.js +1 -0
- package/es/modal/src/modal.js +1 -0
- package/es/scrollbar/src/scrollbar.js +32 -188
- package/es/select/src/select.js +273 -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 +2 -1
- package/es/tooltip/src/tooltip.js +7 -6
- package/es/tooltip/style.css +2 -0
- package/es/tooltip/style.min.css +1 -1
- package/es/tree/src/tree.js +85 -228
- 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 +1 -1
- package/lib/card/src/card.min.js +1 -1
- package/lib/date-panel/src/date-panel.js +74 -43
- 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 +1 -1
- 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 +56 -38
- 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 +894 -816
- package/lib/index.umd.min.js +1 -1
- package/lib/layout-aside/src/layout-aside.js +1 -1
- package/lib/layout-aside/src/layout-aside.min.js +1 -1
- package/lib/layout-body/src/layout-body.js +1 -1
- package/lib/layout-body/src/layout-body.min.js +1 -1
- package/lib/layout-container/src/layout-container.js +13 -3
- package/lib/layout-container/src/layout-container.min.js +1 -1
- package/lib/list/src/list.js +72 -225
- package/lib/list/src/list.min.js +1 -1
- package/lib/menu/src/menu.js +1 -1
- package/lib/menu/src/menu.min.js +1 -1
- package/lib/modal/src/modal.js +1 -1
- package/lib/modal/src/modal.min.js +1 -1
- package/lib/scrollbar/src/scrollbar.js +29 -192
- package/lib/scrollbar/src/scrollbar.min.js +1 -1
- package/lib/select/src/select.js +322 -69
- 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 +1 -1
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/tooltip/src/tooltip.js +5 -6
- 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 +77 -229
- 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 +4 -2
- package/packages/date-panel/src/date-panel.ts +70 -39
- package/packages/drawer/src/drawer.ts +4 -2
- package/packages/icon-picker/src/icon-picker.ts +12 -3
- package/packages/layout-aside/src/layout-aside.ts +4 -2
- package/packages/layout-body/src/layout-body.ts +4 -2
- package/packages/layout-container/src/layout-container.ts +13 -3
- package/packages/list/src/list.ts +85 -241
- package/packages/menu/src/menu.ts +3 -1
- package/packages/modal/src/modal.ts +3 -1
- package/packages/scrollbar/src/scrollbar.ts +32 -199
- package/packages/select/src/select.ts +304 -11
- package/packages/tabs/src/tabs.ts +4 -4
- package/packages/tooltip/src/tooltip.ts +10 -8
- package/packages/tree/src/tree.ts +90 -247
- 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 +8 -17
- package/types/components/grid.d.ts +3 -2
- 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 +26 -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.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
- /package/es/icon/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
- /package/es/icon/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
- /package/es/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
- /package/es/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
- /package/es/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
- /package/lib/icon/style/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
- /package/lib/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
- /package/lib/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
- /package/lib/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
package/es/list/src/list.js
CHANGED
|
@@ -9,8 +9,7 @@ import { createComponentLog } from '../../ui/src/log';
|
|
|
9
9
|
import { moveRowAnimateToTb, clearRowAnimate } from '../../ui/src/anime';
|
|
10
10
|
import { getItemCacheObj } from './util';
|
|
11
11
|
import VxeLoadingComponent from '../../loading';
|
|
12
|
-
const { getConfig, getIcon, getI18n, domUtils,
|
|
13
|
-
const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils;
|
|
12
|
+
const { getConfig, getIcon, getI18n, domUtils, menus, globalEvents, globalResize } = VxeUI;
|
|
14
13
|
const { warnLog, errLog } = createComponentLog('tree');
|
|
15
14
|
let crossListDragRowObj = null;
|
|
16
15
|
function eqRowKey(rowKey1, rowKey2) {
|
|
@@ -85,7 +84,9 @@ function createInternalData() {
|
|
|
85
84
|
export default {
|
|
86
85
|
name: 'VxeList',
|
|
87
86
|
mixins: [
|
|
88
|
-
globalMixins.sizeMixin
|
|
87
|
+
globalMixins.sizeMixin,
|
|
88
|
+
globalMixins.vScrollbarMixin,
|
|
89
|
+
globalMixins.initVScrollbarMixin
|
|
89
90
|
],
|
|
90
91
|
props: {
|
|
91
92
|
data: Array,
|
|
@@ -133,7 +134,7 @@ export default {
|
|
|
133
134
|
const xID = XEUtils.uniqueId();
|
|
134
135
|
const reactData = createReactData();
|
|
135
136
|
return Object.assign(Object.assign({}, {}), { xID,
|
|
136
|
-
reactData, crossListDragRowInfo: crossListDragRowGlobal,
|
|
137
|
+
reactData, crossListDragRowInfo: crossListDragRowGlobal, reLayoutFlag: 0, reScrollFlag: 0 });
|
|
137
138
|
},
|
|
138
139
|
computed: Object.assign(Object.assign({}, {}), { computeRowOpts() {
|
|
139
140
|
const $xeList = this;
|
|
@@ -324,6 +325,11 @@ export default {
|
|
|
324
325
|
}
|
|
325
326
|
return [];
|
|
326
327
|
},
|
|
328
|
+
getScrollViewElem() {
|
|
329
|
+
const $xeList = this;
|
|
330
|
+
const viewEl = $xeList.$refs.refVirtualWrapper;
|
|
331
|
+
return viewEl || null;
|
|
332
|
+
},
|
|
327
333
|
getRowId(row) {
|
|
328
334
|
const $xeList = this;
|
|
329
335
|
const keyField = $xeList.computeKeyField;
|
|
@@ -627,8 +633,14 @@ export default {
|
|
|
627
633
|
},
|
|
628
634
|
updateScrollbar() {
|
|
629
635
|
const $xeList = this;
|
|
630
|
-
$xeList.
|
|
631
|
-
|
|
636
|
+
const isVScrollbar = $xeList.computeIsVScrollbar;
|
|
637
|
+
if (isVScrollbar) {
|
|
638
|
+
return $xeList.$nextTick().then(() => {
|
|
639
|
+
$xeList.updateThumbSize();
|
|
640
|
+
$xeList.updateThumbOffset();
|
|
641
|
+
});
|
|
642
|
+
}
|
|
643
|
+
return Promise.resolve();
|
|
632
644
|
},
|
|
633
645
|
/**
|
|
634
646
|
* 重新计算列表
|
|
@@ -649,10 +661,11 @@ export default {
|
|
|
649
661
|
parentHeight = parentEl.clientHeight - Math.ceil(XEUtils.toNumber(parentStyle.paddingLeft) + XEUtils.toNumber(parentStyle.paddingRight));
|
|
650
662
|
}
|
|
651
663
|
reactData.parentHeight = parentHeight;
|
|
652
|
-
$xeList.updateScrollbar();
|
|
653
664
|
$xeList.updateHeight();
|
|
654
665
|
if (el.clientWidth && el.clientHeight) {
|
|
655
|
-
return $xeList.computeScrollLoad()
|
|
666
|
+
return $xeList.computeScrollLoad().then(() => {
|
|
667
|
+
$xeList.updateScrollbar();
|
|
668
|
+
});
|
|
656
669
|
}
|
|
657
670
|
}
|
|
658
671
|
return $xeList.$nextTick();
|
|
@@ -662,7 +675,7 @@ export default {
|
|
|
662
675
|
const internalData = $xeList.internalData;
|
|
663
676
|
const { scrollYStore } = internalData;
|
|
664
677
|
const { startIndex, endIndex, visibleSize, offsetSize, rowHeight } = scrollYStore;
|
|
665
|
-
const scrollBodyElem = evnt.
|
|
678
|
+
const scrollBodyElem = evnt.currentTarget;
|
|
666
679
|
const scrollTop = scrollBodyElem.scrollTop;
|
|
667
680
|
const toVisibleIndex = Math.floor(scrollTop / rowHeight);
|
|
668
681
|
const offsetStartIndex = Math.max(0, toVisibleIndex - 1 - offsetSize);
|
|
@@ -679,7 +692,7 @@ export default {
|
|
|
679
692
|
const $xeList = this;
|
|
680
693
|
const reactData = $xeList.reactData;
|
|
681
694
|
const internalData = $xeList.internalData;
|
|
682
|
-
const scrollBodyElem = evnt.
|
|
695
|
+
const scrollBodyElem = evnt.currentTarget;
|
|
683
696
|
const scrollTop = scrollBodyElem.scrollTop;
|
|
684
697
|
const scrollLeft = scrollBodyElem.scrollLeft;
|
|
685
698
|
const isX = scrollLeft !== internalData.lastScrollLeft;
|
|
@@ -1942,183 +1955,26 @@ export default {
|
|
|
1942
1955
|
$xeList.dispatchEvent('row-menu', { row }, evnt);
|
|
1943
1956
|
},
|
|
1944
1957
|
// 滚动条
|
|
1945
|
-
|
|
1946
|
-
const $xeList = this;
|
|
1947
|
-
const reactData = $xeList.reactData;
|
|
1948
|
-
const viewEl = $xeList.$refs.refVirtualWrapper;
|
|
1949
|
-
if (!viewEl) {
|
|
1950
|
-
return;
|
|
1951
|
-
}
|
|
1952
|
-
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
1953
|
-
return;
|
|
1954
|
-
}
|
|
1955
|
-
const trackXEl = $xeList.$refs.refTrackXElem;
|
|
1956
|
-
const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
|
|
1957
|
-
const thumbXElem = $xeList.$refs.refThumbXElem;
|
|
1958
|
-
if (thumbXElem) {
|
|
1959
|
-
thumbXElem.style.width = xThumbWidth + 'px';
|
|
1960
|
-
}
|
|
1961
|
-
reactData.xThumbWidth = xThumbWidth;
|
|
1962
|
-
const trackYEl = $xeList.$refs.refTrackYElem;
|
|
1963
|
-
const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
|
|
1964
|
-
const thumbYElem = $xeList.$refs.refThumbYElem;
|
|
1965
|
-
if (thumbYElem) {
|
|
1966
|
-
thumbYElem.style.height = yThumbHeight + 'px';
|
|
1967
|
-
}
|
|
1968
|
-
reactData.yThumbHeight = yThumbHeight;
|
|
1969
|
-
},
|
|
1970
|
-
updateThumbOffset() {
|
|
1958
|
+
bindScrollbarResize() {
|
|
1971
1959
|
const $xeList = this;
|
|
1972
|
-
const reactData = $xeList.reactData;
|
|
1973
1960
|
const internalData = $xeList.internalData;
|
|
1974
|
-
const
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
const trackYEl = $xeList.$refs.refTrackYElem;
|
|
1991
|
-
const thumbYElem = $xeList.$refs.refThumbYElem;
|
|
1992
|
-
const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
|
|
1993
|
-
internalData.yThumbTop = yThumbTop;
|
|
1994
|
-
if (thumbYElem && yThumbHeight) {
|
|
1995
|
-
thumbYElem.style.height = yThumbHeight + 'px';
|
|
1996
|
-
thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
|
|
1997
|
-
}
|
|
1998
|
-
},
|
|
1999
|
-
clickTrackXEvent(evnt) {
|
|
2000
|
-
const $xeList = this;
|
|
2001
|
-
const reactData = $xeList.reactData;
|
|
2002
|
-
const trackEl = evnt.currentTarget;
|
|
2003
|
-
if (trackEl !== evnt.target) {
|
|
2004
|
-
return;
|
|
2005
|
-
}
|
|
2006
|
-
const viewEl = $xeList.$refs.refVirtualWrapper;
|
|
2007
|
-
if (!viewEl) {
|
|
2008
|
-
return;
|
|
2009
|
-
}
|
|
2010
|
-
const { xThumbWidth } = reactData;
|
|
2011
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
2012
|
-
viewEl.scrollTo({
|
|
2013
|
-
left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
|
|
2014
|
-
behavior: 'auto'
|
|
2015
|
-
});
|
|
2016
|
-
},
|
|
2017
|
-
clickTrackYEvent(evnt) {
|
|
2018
|
-
const $xeList = this;
|
|
2019
|
-
const reactData = $xeList.reactData;
|
|
2020
|
-
const trackEl = evnt.currentTarget;
|
|
2021
|
-
if (trackEl !== evnt.target) {
|
|
2022
|
-
return;
|
|
2023
|
-
}
|
|
2024
|
-
const viewEl = $xeList.$refs.refVirtualWrapper;
|
|
2025
|
-
if (!viewEl) {
|
|
2026
|
-
return;
|
|
2027
|
-
}
|
|
2028
|
-
const { yThumbHeight } = reactData;
|
|
2029
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
2030
|
-
viewEl.scrollTo({
|
|
2031
|
-
top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
|
|
2032
|
-
behavior: 'auto'
|
|
2033
|
-
});
|
|
2034
|
-
},
|
|
2035
|
-
pointerdownThumbXEvent(evnt) {
|
|
2036
|
-
const $xeList = this;
|
|
2037
|
-
const reactData = $xeList.reactData;
|
|
2038
|
-
const internalData = $xeList.internalData;
|
|
2039
|
-
const thumbEl = evnt.currentTarget;
|
|
2040
|
-
internalData.isThumbDrag = true;
|
|
2041
|
-
thumbEl.setPointerCapture(evnt.pointerId);
|
|
2042
|
-
const viewEl = $xeList.$refs.refVirtualWrapper;
|
|
2043
|
-
if (!viewEl) {
|
|
2044
|
-
return;
|
|
2045
|
-
}
|
|
2046
|
-
const { xThumbWidth } = reactData;
|
|
2047
|
-
const trackEl = thumbEl.parentElement;
|
|
2048
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
2049
|
-
const pointerPosition = evnt.clientX - trackRect.left;
|
|
2050
|
-
// 记录 thumb 的偏移
|
|
2051
|
-
const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
2052
|
-
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
2053
|
-
},
|
|
2054
|
-
pointermoveThumbXEvent(evnt) {
|
|
2055
|
-
const $xeList = this;
|
|
2056
|
-
const reactData = $xeList.reactData;
|
|
2057
|
-
const internalData = $xeList.internalData;
|
|
2058
|
-
const thumbEl = evnt.currentTarget;
|
|
2059
|
-
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
2060
|
-
return;
|
|
2061
|
-
}
|
|
2062
|
-
const { isThumbDrag, thumbDragOffset } = internalData;
|
|
2063
|
-
if (isThumbDrag) {
|
|
2064
|
-
const viewEl = $xeList.$refs.refVirtualWrapper;
|
|
2065
|
-
if (!viewEl) {
|
|
2066
|
-
return;
|
|
2067
|
-
}
|
|
2068
|
-
const { xThumbWidth } = reactData;
|
|
2069
|
-
const thumbEl = evnt.currentTarget;
|
|
2070
|
-
const trackEl = thumbEl.parentElement;
|
|
2071
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
2072
|
-
// 更新偏移
|
|
2073
|
-
viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
2074
|
-
}
|
|
2075
|
-
},
|
|
2076
|
-
cleatPointerThumbEvent(evnt) {
|
|
2077
|
-
const $xeList = this;
|
|
2078
|
-
const internalData = $xeList.internalData;
|
|
2079
|
-
const thumbEl = evnt.currentTarget;
|
|
2080
|
-
thumbEl.releasePointerCapture(evnt.pointerId);
|
|
2081
|
-
internalData.isThumbDrag = false;
|
|
2082
|
-
},
|
|
2083
|
-
pointerdownThumbYEvent(evnt) {
|
|
2084
|
-
const $xeList = this;
|
|
2085
|
-
const reactData = $xeList.reactData;
|
|
2086
|
-
const internalData = $xeList.internalData;
|
|
2087
|
-
const thumbEl = evnt.currentTarget;
|
|
2088
|
-
internalData.isThumbDrag = true;
|
|
2089
|
-
thumbEl.setPointerCapture(evnt.pointerId);
|
|
2090
|
-
const viewEl = $xeList.$refs.refVirtualWrapper;
|
|
2091
|
-
if (!viewEl) {
|
|
2092
|
-
return;
|
|
2093
|
-
}
|
|
2094
|
-
const { yThumbHeight } = reactData;
|
|
2095
|
-
const trackEl = thumbEl.parentElement;
|
|
2096
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
2097
|
-
const pointerPosition = evnt.clientY - trackRect.top;
|
|
2098
|
-
// 记录 thumb 的偏移
|
|
2099
|
-
const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
2100
|
-
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
2101
|
-
},
|
|
2102
|
-
pointermoveThumbYEvent(evnt) {
|
|
2103
|
-
const $xeList = this;
|
|
2104
|
-
const reactData = $xeList.reactData;
|
|
2105
|
-
const internalData = $xeList.internalData;
|
|
2106
|
-
const thumbEl = evnt.currentTarget;
|
|
2107
|
-
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
2108
|
-
return;
|
|
2109
|
-
}
|
|
2110
|
-
const { isThumbDrag, thumbDragOffset } = internalData;
|
|
2111
|
-
if (isThumbDrag) {
|
|
2112
|
-
const viewEl = $xeList.$refs.refVirtualWrapper;
|
|
2113
|
-
if (!viewEl) {
|
|
2114
|
-
return;
|
|
1961
|
+
const { scrollObserver } = internalData;
|
|
1962
|
+
const isVScrollbar = $xeList.computeIsVScrollbar;
|
|
1963
|
+
if (isVScrollbar) {
|
|
1964
|
+
if (!scrollObserver) {
|
|
1965
|
+
const el = $xeList.$refs.refElem;
|
|
1966
|
+
const viewInnerEl = $xeList.$refs.refVirtualSpaceElem;
|
|
1967
|
+
const scrollObserver = globalResize.create(() => {
|
|
1968
|
+
$xeList.reScrollFlag++;
|
|
1969
|
+
});
|
|
1970
|
+
if (el) {
|
|
1971
|
+
scrollObserver.observe(el);
|
|
1972
|
+
}
|
|
1973
|
+
if (viewInnerEl) {
|
|
1974
|
+
scrollObserver.observe(viewInnerEl);
|
|
1975
|
+
}
|
|
1976
|
+
internalData.scrollObserver = scrollObserver;
|
|
2115
1977
|
}
|
|
2116
|
-
const { yThumbHeight } = reactData;
|
|
2117
|
-
const thumbEl = evnt.currentTarget;
|
|
2118
|
-
const trackEl = thumbEl.parentElement;
|
|
2119
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
2120
|
-
// 更新偏移
|
|
2121
|
-
viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
2122
1978
|
}
|
|
2123
1979
|
},
|
|
2124
1980
|
//
|
|
@@ -2350,12 +2206,13 @@ export default {
|
|
|
2350
2206
|
const props = $xeList;
|
|
2351
2207
|
const reactData = $xeList.reactData;
|
|
2352
2208
|
const slots = $xeList.$scopedSlots;
|
|
2353
|
-
const { showCheckbox, className, loading
|
|
2209
|
+
const { showCheckbox, className, loading } = props;
|
|
2354
2210
|
const { bodyHeight, topSpaceHeight, rowList, isAllChecked, isAllIndeterminate, xThumbWidth, yThumbHeight } = reactData;
|
|
2355
2211
|
const defaultSlot = slots.default;
|
|
2356
2212
|
const headerSlot = slots.header;
|
|
2357
2213
|
const footerSlot = slots.footer;
|
|
2358
2214
|
const vSize = $xeList.computeSize;
|
|
2215
|
+
const isVScrollbar = $xeList.computeIsVScrollbar;
|
|
2359
2216
|
const wrapperStyles = $xeList.computeWrapperStyles;
|
|
2360
2217
|
const virtualStyles = $xeList.computeVirtualStyles;
|
|
2361
2218
|
const radioOpts = $xeList.computeRadioOpts;
|
|
@@ -2382,17 +2239,17 @@ export default {
|
|
|
2382
2239
|
ref: 'refElem',
|
|
2383
2240
|
class: [
|
|
2384
2241
|
'vxe-list',
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
|
|
2242
|
+
isVScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '',
|
|
2243
|
+
isVScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '',
|
|
2244
|
+
isVScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '',
|
|
2245
|
+
isVScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '',
|
|
2389
2246
|
className ? (XEUtils.isFunction(className) ? className({ $list: $xeList }) : className) : '',
|
|
2390
2247
|
{
|
|
2391
2248
|
[`size--${vSize}`]: vSize,
|
|
2392
|
-
'is--virtual-scrollbar':
|
|
2393
|
-
'ov-padding':
|
|
2394
|
-
'ov-x--auto-hide':
|
|
2395
|
-
'ov-y--auto-hide':
|
|
2249
|
+
'is--virtual-scrollbar': isVScrollbar,
|
|
2250
|
+
'ov-padding': isVScrollbar && scrollbarOpts.padding,
|
|
2251
|
+
'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
|
|
2252
|
+
'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
|
|
2396
2253
|
'overflow-y': yThumbHeight,
|
|
2397
2254
|
'overflow-x': xThumbWidth,
|
|
2398
2255
|
'is--drag': isDrag,
|
|
@@ -2442,6 +2299,7 @@ export default {
|
|
|
2442
2299
|
}
|
|
2443
2300
|
}, [
|
|
2444
2301
|
h('div', {
|
|
2302
|
+
ref: 'refVirtualSpaceElem',
|
|
2445
2303
|
class: 'vxe-list--y-space',
|
|
2446
2304
|
style: {
|
|
2447
2305
|
height: bodyHeight ? `${bodyHeight}px` : ''
|
|
@@ -2470,7 +2328,7 @@ export default {
|
|
|
2470
2328
|
/**
|
|
2471
2329
|
* 滚动条
|
|
2472
2330
|
*/
|
|
2473
|
-
|
|
2331
|
+
isVScrollbar
|
|
2474
2332
|
? h('div', {
|
|
2475
2333
|
class: scrollbarWrapperClss
|
|
2476
2334
|
}, [
|
|
@@ -2542,50 +2400,61 @@ export default {
|
|
|
2542
2400
|
},
|
|
2543
2401
|
height() {
|
|
2544
2402
|
const $xeList = this;
|
|
2545
|
-
$xeList.
|
|
2403
|
+
$xeList.reLayoutFlag++;
|
|
2546
2404
|
},
|
|
2547
2405
|
maxHeight() {
|
|
2548
2406
|
const $xeList = this;
|
|
2549
|
-
$xeList.
|
|
2407
|
+
$xeList.reLayoutFlag++;
|
|
2550
2408
|
},
|
|
2551
2409
|
syncResize() {
|
|
2552
2410
|
const $xeList = this;
|
|
2553
|
-
$xeList.
|
|
2411
|
+
$xeList.reLayoutFlag++;
|
|
2554
2412
|
},
|
|
2555
|
-
|
|
2413
|
+
computeIsVScrollbar() {
|
|
2556
2414
|
const $xeList = this;
|
|
2557
|
-
$xeList
|
|
2415
|
+
$xeList.$nextTick(() => {
|
|
2416
|
+
$xeList.bindScrollbarResize();
|
|
2417
|
+
$xeList.$nextTick(() => {
|
|
2418
|
+
$xeList.reLayoutFlag++;
|
|
2419
|
+
});
|
|
2420
|
+
});
|
|
2558
2421
|
},
|
|
2559
2422
|
computeRowHeight() {
|
|
2560
2423
|
const $xeList = this;
|
|
2561
|
-
$xeList.
|
|
2424
|
+
$xeList.reLayoutFlag++;
|
|
2562
2425
|
},
|
|
2563
2426
|
computeScrollYWidth() {
|
|
2564
2427
|
const $xeList = this;
|
|
2565
|
-
$xeList.
|
|
2428
|
+
$xeList.reLayoutFlag++;
|
|
2566
2429
|
},
|
|
2567
2430
|
computeScrollXHeight() {
|
|
2568
2431
|
const $xeList = this;
|
|
2569
|
-
$xeList.
|
|
2432
|
+
$xeList.reLayoutFlag++;
|
|
2570
2433
|
},
|
|
2571
2434
|
computeScrollXVisible() {
|
|
2572
2435
|
const $xeList = this;
|
|
2573
2436
|
$xeList.$nextTick(() => {
|
|
2574
|
-
$xeList.
|
|
2437
|
+
$xeList.reLayoutFlag++;
|
|
2575
2438
|
});
|
|
2576
2439
|
},
|
|
2577
2440
|
computeScrollYVisible() {
|
|
2578
2441
|
const $xeList = this;
|
|
2579
2442
|
$xeList.$nextTick(() => {
|
|
2580
|
-
$xeList.
|
|
2443
|
+
$xeList.reLayoutFlag++;
|
|
2581
2444
|
});
|
|
2582
2445
|
},
|
|
2583
|
-
|
|
2446
|
+
reLayoutFlag() {
|
|
2584
2447
|
const $xeList = this;
|
|
2585
2448
|
$xeList.recalculate().then(() => {
|
|
2586
2449
|
$xeList.recalculate();
|
|
2587
2450
|
});
|
|
2588
2451
|
},
|
|
2452
|
+
reScrollFlag() {
|
|
2453
|
+
const $xeList = this;
|
|
2454
|
+
$xeList.updateScrollbar().then(() => {
|
|
2455
|
+
$xeList.updateScrollbar();
|
|
2456
|
+
});
|
|
2457
|
+
},
|
|
2589
2458
|
checkRowKey() {
|
|
2590
2459
|
const $xeList = this;
|
|
2591
2460
|
$xeList.updateRadioModeValue();
|
|
@@ -2606,7 +2475,7 @@ export default {
|
|
|
2606
2475
|
const $xeList = this;
|
|
2607
2476
|
const props = $xeList;
|
|
2608
2477
|
const internalData = $xeList.internalData;
|
|
2609
|
-
const { showSeq, showRadio, showCheckbox, autoResize
|
|
2478
|
+
const { showSeq, showRadio, showCheckbox, autoResize } = props;
|
|
2610
2479
|
const rowOpts = $xeList.computeRowOpts;
|
|
2611
2480
|
const { useKey, keyField } = rowOpts;
|
|
2612
2481
|
const isDrag = $xeList.computeIsDrag;
|
|
@@ -2627,25 +2496,12 @@ export default {
|
|
|
2627
2496
|
if (useKey && !keyField) {
|
|
2628
2497
|
errLog('vxe.error.reqSupportProp', ['row-config.useKey', 'row-config.keyField']);
|
|
2629
2498
|
}
|
|
2630
|
-
const el = $xeList.$refs.refElem;
|
|
2631
|
-
if (useScrollbar) {
|
|
2632
|
-
const viewInnerEl = $xeList.$refs.refVirtualBody;
|
|
2633
|
-
const scrollObserver = globalResize.create(() => {
|
|
2634
|
-
$xeList.reFlag++;
|
|
2635
|
-
});
|
|
2636
|
-
if (el) {
|
|
2637
|
-
scrollObserver.observe(el);
|
|
2638
|
-
}
|
|
2639
|
-
if (viewInnerEl) {
|
|
2640
|
-
scrollObserver.observe(viewInnerEl);
|
|
2641
|
-
}
|
|
2642
|
-
internalData.scrollObserver = scrollObserver;
|
|
2643
|
-
}
|
|
2644
2499
|
if (autoResize) {
|
|
2500
|
+
const el = $xeList.$refs.refElem;
|
|
2645
2501
|
const parentEl = $xeList.getParentElem();
|
|
2646
2502
|
const resizeObserver = globalResize.create(() => {
|
|
2647
2503
|
if (props.autoResize) {
|
|
2648
|
-
$xeList.
|
|
2504
|
+
$xeList.reLayoutFlag++;
|
|
2649
2505
|
}
|
|
2650
2506
|
});
|
|
2651
2507
|
if (el) {
|
|
@@ -2656,9 +2512,10 @@ export default {
|
|
|
2656
2512
|
}
|
|
2657
2513
|
internalData.resizeObserver = resizeObserver;
|
|
2658
2514
|
}
|
|
2659
|
-
$xeList.
|
|
2515
|
+
$xeList.reLayoutFlag++;
|
|
2516
|
+
$xeList.bindScrollbarResize();
|
|
2660
2517
|
globalEvents.on($xeList, 'resize', () => {
|
|
2661
|
-
$xeList.
|
|
2518
|
+
$xeList.reLayoutFlag++;
|
|
2662
2519
|
});
|
|
2663
2520
|
},
|
|
2664
2521
|
activated() {
|
package/es/menu/src/menu.js
CHANGED