vxe-table 3.25.0-beta.4 → 3.25.0-beta.6
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/style.css +1 -1
- package/es/table/src/methods.js +44 -198
- package/es/table/src/table.js +2 -0
- package/es/table/src/util.js +25 -0
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +35 -16
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/src/methods.js +7 -13
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +1 -1
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +25 -0
- 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/package.json +2 -2
- package/packages/table/src/methods.ts +50 -214
- package/packages/table/src/table.ts +17 -15
- package/packages/table/src/util.ts +34 -0
- /package/es/{iconfont.1792139868734.ttf → iconfont.1792226787838.ttf} +0 -0
- /package/es/{iconfont.1792139868734.woff → iconfont.1792226787838.woff} +0 -0
- /package/es/{iconfont.1792139868734.woff2 → iconfont.1792226787838.woff2} +0 -0
- /package/lib/{iconfont.1792139868734.ttf → iconfont.1792226787838.ttf} +0 -0
- /package/lib/{iconfont.1792139868734.woff → iconfont.1792226787838.woff} +0 -0
- /package/lib/{iconfont.1792139868734.woff2 → iconfont.1792226787838.woff2} +0 -0
package/es/table/src/methods.js
CHANGED
|
@@ -9,8 +9,7 @@ import { moveRowAnimateToTb, clearRowAnimate, moveColAnimateToLr, clearColAnimat
|
|
|
9
9
|
import { createComponentLog } from '../../ui/src/log';
|
|
10
10
|
import { getCrossTableDragRowInfo } from './store';
|
|
11
11
|
const { warnLog, errLog } = createComponentLog('table');
|
|
12
|
-
const { getConfig, getI18n, renderer,
|
|
13
|
-
const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils || {};
|
|
12
|
+
const { getConfig, getI18n, renderer, formats, interceptor, createEvent, globalEvents, GLOBAL_EVENT_KEYS } = VxeUI;
|
|
14
13
|
const supportMaxRow = 5e6;
|
|
15
14
|
const customStorageKey = 'VXE_CUSTOM_STORE';
|
|
16
15
|
const maxYHeight = 5e6;
|
|
@@ -4073,8 +4072,14 @@ function handleSyncScroll($xeTable, isRollX, isRollY) {
|
|
|
4073
4072
|
internalData.inHeaderScroll = false;
|
|
4074
4073
|
internalData.inBodyScroll = false;
|
|
4075
4074
|
internalData.inFooterScroll = false;
|
|
4075
|
+
internalData.isSyncGanttScrollTop = false;
|
|
4076
4076
|
reactData.lazScrollLoading = false;
|
|
4077
4077
|
internalData.scrollRenderType = '';
|
|
4078
|
+
const $xeGanttView = internalData.xeGanttView;
|
|
4079
|
+
if ($xeGanttView) {
|
|
4080
|
+
const ganttInternalData = $xeGanttView.internalData;
|
|
4081
|
+
ganttInternalData.isSyncTableScrollTop = false;
|
|
4082
|
+
}
|
|
4078
4083
|
let xRest = null;
|
|
4079
4084
|
let yRest = null;
|
|
4080
4085
|
if (!isAllOverflow) {
|
|
@@ -4153,14 +4158,15 @@ const getWheelSpeed = (lastScrollTime) => {
|
|
|
4153
4158
|
};
|
|
4154
4159
|
const syncGanttScrollTop = ($xeTable, scrollTop) => {
|
|
4155
4160
|
const internalData = $xeTable;
|
|
4161
|
+
const { isSyncGanttScrollTop } = internalData;
|
|
4162
|
+
if (isSyncGanttScrollTop) {
|
|
4163
|
+
return;
|
|
4164
|
+
}
|
|
4156
4165
|
const $xeGanttView = internalData.xeGanttView;
|
|
4157
4166
|
if ($xeGanttView) {
|
|
4158
4167
|
const ganttInternalData = $xeGanttView.internalData;
|
|
4159
|
-
|
|
4160
|
-
|
|
4161
|
-
if (ganttBodyScrollElem) {
|
|
4162
|
-
ganttBodyScrollElem.scrollTop = scrollTop;
|
|
4163
|
-
}
|
|
4168
|
+
ganttInternalData.isSyncTableScrollTop = true;
|
|
4169
|
+
$xeGanttView.handleSyncScrollTop({ scrollTop });
|
|
4164
4170
|
}
|
|
4165
4171
|
};
|
|
4166
4172
|
function updateHeight($xeTable) {
|
|
@@ -4679,6 +4685,13 @@ const tableMethods = {
|
|
|
4679
4685
|
const $xeTable = this;
|
|
4680
4686
|
return $xeTable.$refs.refElem;
|
|
4681
4687
|
},
|
|
4688
|
+
getScrollViewElem() {
|
|
4689
|
+
const $xeTable = this;
|
|
4690
|
+
const internalData = $xeTable;
|
|
4691
|
+
const { elemStore } = internalData;
|
|
4692
|
+
const viewEl = getRefElem(elemStore['main-body-scroll']);
|
|
4693
|
+
return viewEl;
|
|
4694
|
+
},
|
|
4682
4695
|
/**
|
|
4683
4696
|
* 获取父容器元素
|
|
4684
4697
|
*/
|
|
@@ -12343,7 +12356,10 @@ const tableMethods = {
|
|
|
12343
12356
|
isLeft,
|
|
12344
12357
|
isRight,
|
|
12345
12358
|
direction }, params);
|
|
12346
|
-
$xeTable.
|
|
12359
|
+
const isVScrollbar = $xeTable.computeIsVScrollbar;
|
|
12360
|
+
if (isVScrollbar) {
|
|
12361
|
+
$xeTable.updateThumbOffset();
|
|
12362
|
+
}
|
|
12347
12363
|
updateRowExpandStyle($xeTable);
|
|
12348
12364
|
checkLastSyncScroll($xeTable, isRollX, isRollY);
|
|
12349
12365
|
if (isRollX) {
|
|
@@ -12876,6 +12892,16 @@ const tableMethods = {
|
|
|
12876
12892
|
$xeTable.updateScrollYSpace();
|
|
12877
12893
|
});
|
|
12878
12894
|
},
|
|
12895
|
+
handleSyncScrollTop(params) {
|
|
12896
|
+
const $xeTable = this;
|
|
12897
|
+
const internalData = $xeTable;
|
|
12898
|
+
const { scrollTop } = params;
|
|
12899
|
+
const { elemStore } = internalData;
|
|
12900
|
+
const bodyScrollElem = getRefElem(elemStore['main-body-scroll']);
|
|
12901
|
+
if (bodyScrollElem) {
|
|
12902
|
+
bodyScrollElem.scrollTop = scrollTop;
|
|
12903
|
+
}
|
|
12904
|
+
},
|
|
12879
12905
|
// 更新纵向 Y 可视渲染上下剩余空间大小
|
|
12880
12906
|
updateScrollYSpace() {
|
|
12881
12907
|
const $xeTable = this;
|
|
@@ -13559,196 +13585,6 @@ const tableMethods = {
|
|
|
13559
13585
|
const $xeTable = this;
|
|
13560
13586
|
return $xeTable.handleClearStack();
|
|
13561
13587
|
},
|
|
13562
|
-
// 滚动条
|
|
13563
|
-
updateThumbSize() {
|
|
13564
|
-
const $xeTable = this;
|
|
13565
|
-
const reactData = $xeTable;
|
|
13566
|
-
const internalData = $xeTable;
|
|
13567
|
-
const { elemStore } = internalData;
|
|
13568
|
-
const viewEl = getRefElem(elemStore['main-body-scroll']);
|
|
13569
|
-
if (!viewEl) {
|
|
13570
|
-
return;
|
|
13571
|
-
}
|
|
13572
|
-
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
13573
|
-
return;
|
|
13574
|
-
}
|
|
13575
|
-
const trackXEl = $xeTable.$refs.refTrackXElem;
|
|
13576
|
-
const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
|
|
13577
|
-
const thumbXElem = $xeTable.$refs.refThumbXElem;
|
|
13578
|
-
if (thumbXElem) {
|
|
13579
|
-
thumbXElem.style.width = xThumbWidth + 'px';
|
|
13580
|
-
}
|
|
13581
|
-
reactData.xThumbWidth = xThumbWidth;
|
|
13582
|
-
const trackYEl = $xeTable.$refs.refTrackYElem;
|
|
13583
|
-
const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
|
|
13584
|
-
const thumbYElem = $xeTable.$refs.refThumbYElem;
|
|
13585
|
-
if (thumbYElem) {
|
|
13586
|
-
thumbYElem.style.height = yThumbHeight + 'px';
|
|
13587
|
-
}
|
|
13588
|
-
reactData.yThumbHeight = yThumbHeight;
|
|
13589
|
-
},
|
|
13590
|
-
updateThumbOffset() {
|
|
13591
|
-
const $xeTable = this;
|
|
13592
|
-
const reactData = $xeTable;
|
|
13593
|
-
const internalData = $xeTable;
|
|
13594
|
-
const { elemStore } = internalData;
|
|
13595
|
-
const viewEl = getRefElem(elemStore['main-body-scroll']);
|
|
13596
|
-
if (!viewEl) {
|
|
13597
|
-
return;
|
|
13598
|
-
}
|
|
13599
|
-
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
13600
|
-
return;
|
|
13601
|
-
}
|
|
13602
|
-
const { xThumbWidth, yThumbHeight } = reactData;
|
|
13603
|
-
const trackXEl = $xeTable.$refs.refTrackXElem;
|
|
13604
|
-
const thumbXElem = $xeTable.$refs.refThumbXElem;
|
|
13605
|
-
const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
|
|
13606
|
-
internalData.xThumbLeft = xThumbLeft;
|
|
13607
|
-
if (thumbXElem && xThumbWidth) {
|
|
13608
|
-
thumbXElem.style.width = xThumbWidth + 'px';
|
|
13609
|
-
thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
|
|
13610
|
-
}
|
|
13611
|
-
const trackYEl = $xeTable.$refs.refTrackYElem;
|
|
13612
|
-
const thumbYElem = $xeTable.$refs.refThumbYElem;
|
|
13613
|
-
const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
|
|
13614
|
-
internalData.yThumbTop = yThumbTop;
|
|
13615
|
-
if (thumbYElem && yThumbHeight) {
|
|
13616
|
-
thumbYElem.style.height = yThumbHeight + 'px';
|
|
13617
|
-
thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
|
|
13618
|
-
}
|
|
13619
|
-
},
|
|
13620
|
-
clickTrackXEvent(evnt) {
|
|
13621
|
-
const $xeTable = this;
|
|
13622
|
-
const reactData = $xeTable;
|
|
13623
|
-
const internalData = $xeTable;
|
|
13624
|
-
const { elemStore } = internalData;
|
|
13625
|
-
const trackEl = evnt.currentTarget;
|
|
13626
|
-
if (trackEl !== evnt.target) {
|
|
13627
|
-
return;
|
|
13628
|
-
}
|
|
13629
|
-
const viewEl = getRefElem(elemStore['main-body-scroll']);
|
|
13630
|
-
if (!viewEl) {
|
|
13631
|
-
return;
|
|
13632
|
-
}
|
|
13633
|
-
const { xThumbWidth } = reactData;
|
|
13634
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
13635
|
-
viewEl.scrollTo({
|
|
13636
|
-
left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
|
|
13637
|
-
behavior: 'auto'
|
|
13638
|
-
});
|
|
13639
|
-
},
|
|
13640
|
-
clickTrackYEvent(evnt) {
|
|
13641
|
-
const $xeTable = this;
|
|
13642
|
-
const reactData = $xeTable;
|
|
13643
|
-
const internalData = $xeTable;
|
|
13644
|
-
const trackEl = evnt.currentTarget;
|
|
13645
|
-
if (trackEl !== evnt.target) {
|
|
13646
|
-
return;
|
|
13647
|
-
}
|
|
13648
|
-
const { elemStore } = internalData;
|
|
13649
|
-
const viewEl = getRefElem(elemStore['main-body-scroll']);
|
|
13650
|
-
if (!viewEl) {
|
|
13651
|
-
return;
|
|
13652
|
-
}
|
|
13653
|
-
const { yThumbHeight } = reactData;
|
|
13654
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
13655
|
-
viewEl.scrollTo({
|
|
13656
|
-
top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
|
|
13657
|
-
behavior: 'auto'
|
|
13658
|
-
});
|
|
13659
|
-
},
|
|
13660
|
-
pointerdownThumbXEvent(evnt) {
|
|
13661
|
-
const $xeTable = this;
|
|
13662
|
-
const reactData = $xeTable;
|
|
13663
|
-
const internalData = $xeTable;
|
|
13664
|
-
const { elemStore } = internalData;
|
|
13665
|
-
const thumbEl = evnt.currentTarget;
|
|
13666
|
-
internalData.isThumbDrag = true;
|
|
13667
|
-
thumbEl.setPointerCapture(evnt.pointerId);
|
|
13668
|
-
const viewEl = getRefElem(elemStore['main-body-scroll']);
|
|
13669
|
-
if (!viewEl) {
|
|
13670
|
-
return;
|
|
13671
|
-
}
|
|
13672
|
-
const { xThumbWidth } = reactData;
|
|
13673
|
-
const trackEl = thumbEl.parentElement;
|
|
13674
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
13675
|
-
const pointerPosition = evnt.clientX - trackRect.left;
|
|
13676
|
-
// 记录 thumb 的偏移
|
|
13677
|
-
const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
13678
|
-
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
13679
|
-
},
|
|
13680
|
-
pointermoveThumbXEvent(evnt) {
|
|
13681
|
-
const $xeTable = this;
|
|
13682
|
-
const reactData = $xeTable;
|
|
13683
|
-
const internalData = $xeTable;
|
|
13684
|
-
const thumbEl = evnt.currentTarget;
|
|
13685
|
-
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
13686
|
-
return;
|
|
13687
|
-
}
|
|
13688
|
-
const { elemStore, isThumbDrag, thumbDragOffset } = internalData;
|
|
13689
|
-
if (isThumbDrag) {
|
|
13690
|
-
const viewEl = getRefElem(elemStore['main-body-scroll']);
|
|
13691
|
-
if (!viewEl) {
|
|
13692
|
-
return;
|
|
13693
|
-
}
|
|
13694
|
-
const { xThumbWidth } = reactData;
|
|
13695
|
-
const thumbEl = evnt.currentTarget;
|
|
13696
|
-
const trackEl = thumbEl.parentElement;
|
|
13697
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
13698
|
-
// 更新偏移
|
|
13699
|
-
viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
13700
|
-
}
|
|
13701
|
-
},
|
|
13702
|
-
cleatPointerThumbEvent(evnt) {
|
|
13703
|
-
const $xeTable = this;
|
|
13704
|
-
const internalData = $xeTable;
|
|
13705
|
-
const thumbEl = evnt.currentTarget;
|
|
13706
|
-
thumbEl.releasePointerCapture(evnt.pointerId);
|
|
13707
|
-
internalData.isThumbDrag = false;
|
|
13708
|
-
},
|
|
13709
|
-
pointerdownThumbYEvent(evnt) {
|
|
13710
|
-
const $xeTable = this;
|
|
13711
|
-
const reactData = $xeTable;
|
|
13712
|
-
const internalData = $xeTable;
|
|
13713
|
-
const { elemStore } = internalData;
|
|
13714
|
-
const thumbEl = evnt.currentTarget;
|
|
13715
|
-
internalData.isThumbDrag = true;
|
|
13716
|
-
thumbEl.setPointerCapture(evnt.pointerId);
|
|
13717
|
-
const viewEl = getRefElem(elemStore['main-body-scroll']);
|
|
13718
|
-
if (!viewEl) {
|
|
13719
|
-
return;
|
|
13720
|
-
}
|
|
13721
|
-
const { yThumbHeight } = reactData;
|
|
13722
|
-
const trackEl = thumbEl.parentElement;
|
|
13723
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
13724
|
-
const pointerPosition = evnt.clientY - trackRect.top;
|
|
13725
|
-
// 记录 thumb 的偏移
|
|
13726
|
-
const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
13727
|
-
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
13728
|
-
},
|
|
13729
|
-
pointermoveThumbYEvent(evnt) {
|
|
13730
|
-
const $xeTable = this;
|
|
13731
|
-
const reactData = $xeTable;
|
|
13732
|
-
const internalData = $xeTable;
|
|
13733
|
-
const thumbEl = evnt.currentTarget;
|
|
13734
|
-
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
13735
|
-
return;
|
|
13736
|
-
}
|
|
13737
|
-
const { elemStore, isThumbDrag, thumbDragOffset } = internalData;
|
|
13738
|
-
if (isThumbDrag) {
|
|
13739
|
-
const viewEl = getRefElem(elemStore['main-body-scroll']);
|
|
13740
|
-
if (!viewEl) {
|
|
13741
|
-
return;
|
|
13742
|
-
}
|
|
13743
|
-
const { yThumbHeight } = reactData;
|
|
13744
|
-
const thumbEl = evnt.currentTarget;
|
|
13745
|
-
const trackEl = thumbEl.parentElement;
|
|
13746
|
-
const trackRect = trackEl.getBoundingClientRect();
|
|
13747
|
-
// 更新偏移
|
|
13748
|
-
viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
13749
|
-
}
|
|
13750
|
-
},
|
|
13751
|
-
// 滚动条
|
|
13752
13588
|
dispatchEvent(type, params, evnt) {
|
|
13753
13589
|
const $xeTable = this;
|
|
13754
13590
|
const $xeGrid = $xeTable.$xeGrid;
|
|
@@ -13805,6 +13641,16 @@ const tableMethods = {
|
|
|
13805
13641
|
}
|
|
13806
13642
|
return $xeTable.$nextTick();
|
|
13807
13643
|
},
|
|
13644
|
+
getInternalData() {
|
|
13645
|
+
const $xeTable = this;
|
|
13646
|
+
const internalData = $xeTable;
|
|
13647
|
+
return internalData;
|
|
13648
|
+
},
|
|
13649
|
+
getReactData() {
|
|
13650
|
+
const $xeTable = this;
|
|
13651
|
+
const reactData = $xeTable;
|
|
13652
|
+
return reactData;
|
|
13653
|
+
},
|
|
13808
13654
|
/*************************
|
|
13809
13655
|
* Publish methods
|
|
13810
13656
|
*************************/
|
package/es/table/src/table.js
CHANGED
package/es/table/src/util.js
CHANGED
|
@@ -154,9 +154,34 @@ export function createInternalData() {
|
|
|
154
154
|
tooltipTimeout: null,
|
|
155
155
|
initStatus: false,
|
|
156
156
|
isActivated: false,
|
|
157
|
+
// keyCtxTimeout: undefined,
|
|
158
|
+
// 刷新布局
|
|
157
159
|
// rceTimeout: undefined,
|
|
158
160
|
// rceRunTime: undefined,
|
|
159
161
|
rceDelay: 0
|
|
162
|
+
// rsePending: false,
|
|
163
|
+
// 滚动属性
|
|
164
|
+
// intoRunScroll: false,
|
|
165
|
+
// inVirtualScroll: false,
|
|
166
|
+
// inWheelScroll: false,
|
|
167
|
+
// inHeaderScroll: false,
|
|
168
|
+
// inBodyScroll: false,
|
|
169
|
+
// inFooterScroll: false,
|
|
170
|
+
// scrollRenderType?: '',
|
|
171
|
+
// isSyncGanttScrollTop: false,
|
|
172
|
+
// 同步滚动
|
|
173
|
+
// lcsTimeout: undefined,
|
|
174
|
+
// lcsRunTime: undefined,
|
|
175
|
+
// 横向虚拟
|
|
176
|
+
// lxRunTime: undefined,
|
|
177
|
+
// lxTimeout: undefined,
|
|
178
|
+
// 纵向虚拟
|
|
179
|
+
// lyRunTime: undefined,
|
|
180
|
+
// lyTimeout: undefined,
|
|
181
|
+
// 动态高度
|
|
182
|
+
// chRunTime: undefined,
|
|
183
|
+
// chTimeout: undefined,
|
|
184
|
+
// isResizeCellHeight: false,
|
|
160
185
|
// _sToTime: null
|
|
161
186
|
};
|
|
162
187
|
}
|
package/es/ui/index.js
CHANGED
package/es/ui/src/log.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VxeUI } from '@vxe-ui/core';
|
|
2
2
|
const { log } = VxeUI;
|
|
3
|
-
const tableVersion = `table v${"3.25.0-beta.
|
|
3
|
+
const tableVersion = `table v${"3.25.0-beta.6"}`;
|
|
4
4
|
export function createComponentLog(name) {
|
|
5
5
|
const uiVersion = VxeUI.uiVersion ? `ui v${VxeUI.uiVersion}` : '';
|
|
6
6
|
const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
|
package/lib/index.umd.js
CHANGED
|
@@ -3323,7 +3323,7 @@ function getDefaultConfig(val1, def1) {
|
|
|
3323
3323
|
/* unused harmony import specifier */ var VxeUI;
|
|
3324
3324
|
|
|
3325
3325
|
|
|
3326
|
-
const version = "3.25.0-beta.
|
|
3326
|
+
const version = "3.25.0-beta.6";
|
|
3327
3327
|
core_.VxeUI.version = version;
|
|
3328
3328
|
core_.VxeUI.tableVersion = version;
|
|
3329
3329
|
core_.VxeUI.setConfig({
|
|
@@ -4286,7 +4286,7 @@ function getPopupAppendElement(appendTo) {
|
|
|
4286
4286
|
const {
|
|
4287
4287
|
log: log_log
|
|
4288
4288
|
} = core_.VxeUI;
|
|
4289
|
-
const tableVersion = `table v${"3.25.0-beta.
|
|
4289
|
+
const tableVersion = `table v${"3.25.0-beta.6"}`;
|
|
4290
4290
|
function createComponentLog(name) {
|
|
4291
4291
|
const uiVersion = core_.VxeUI.uiVersion ? `ui v${core_.VxeUI.uiVersion}` : '';
|
|
4292
4292
|
const ganttVersion = core_.VxeUI.ganttVersion ? `gantt v${core_.VxeUI.ganttVersion}` : '';
|
|
@@ -4724,9 +4724,34 @@ function createInternalData() {
|
|
|
4724
4724
|
tooltipTimeout: null,
|
|
4725
4725
|
initStatus: false,
|
|
4726
4726
|
isActivated: false,
|
|
4727
|
+
// keyCtxTimeout: undefined,
|
|
4728
|
+
// 刷新布局
|
|
4727
4729
|
// rceTimeout: undefined,
|
|
4728
4730
|
// rceRunTime: undefined,
|
|
4729
4731
|
rceDelay: 0
|
|
4732
|
+
// rsePending: false,
|
|
4733
|
+
// 滚动属性
|
|
4734
|
+
// intoRunScroll: false,
|
|
4735
|
+
// inVirtualScroll: false,
|
|
4736
|
+
// inWheelScroll: false,
|
|
4737
|
+
// inHeaderScroll: false,
|
|
4738
|
+
// inBodyScroll: false,
|
|
4739
|
+
// inFooterScroll: false,
|
|
4740
|
+
// scrollRenderType?: '',
|
|
4741
|
+
// isSyncGanttScrollTop: false,
|
|
4742
|
+
// 同步滚动
|
|
4743
|
+
// lcsTimeout: undefined,
|
|
4744
|
+
// lcsRunTime: undefined,
|
|
4745
|
+
// 横向虚拟
|
|
4746
|
+
// lxRunTime: undefined,
|
|
4747
|
+
// lxTimeout: undefined,
|
|
4748
|
+
// 纵向虚拟
|
|
4749
|
+
// lyRunTime: undefined,
|
|
4750
|
+
// lyTimeout: undefined,
|
|
4751
|
+
// 动态高度
|
|
4752
|
+
// chRunTime: undefined,
|
|
4753
|
+
// chTimeout: undefined,
|
|
4754
|
+
// isResizeCellHeight: false,
|
|
4730
4755
|
// _sToTime: null
|
|
4731
4756
|
};
|
|
4732
4757
|
}
|
|
@@ -8066,7 +8091,7 @@ function getCrossTableDragRowInfo($xeTable) {
|
|
|
8066
8091
|
return crossTableDragRowInfo;
|
|
8067
8092
|
}
|
|
8068
8093
|
;// ./packages/table/src/methods.ts
|
|
8069
|
-
const{warnLog: methods_warnLog,errLog: methods_errLog}=createComponentLog('table');const{getConfig: methods_getConfig,getI18n: methods_getI18n,renderer: methods_renderer,
|
|
8094
|
+
const{warnLog: methods_warnLog,errLog: methods_errLog}=createComponentLog('table');const{getConfig: methods_getConfig,getI18n: methods_getI18n,renderer: methods_renderer,formats: methods_formats,interceptor: methods_interceptor,createEvent,globalEvents: methods_globalEvents,GLOBAL_EVENT_KEYS}=core_.VxeUI;const supportMaxRow=5e6;const customStorageKey='VXE_CUSTOM_STORE';const maxYHeight=5e6;const maxXWidth=5e6;const sourceType='table';let crossTableDragRowObj=null;function eqCellValue(newRow,oldRow,field){const val1=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(newRow,field);const val2=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(oldRow,field);let result=false;if(eqEmptyValue(val1)&&eqEmptyValue(val2)){result=true;}else if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(val1)||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(val1)){result=''+val1===''+val2;}else{result=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isEqual(val1,val2);}return{newValue:val1,oldValue:val2,result};}function getNextSortOrder($xeTable,column){const sortOpts=$xeTable.computeSortOpts;const{orders=[]}=sortOpts;const currOrder=column.order||null;const oIndex=orders.indexOf(currOrder)+1;return orders[oIndex<orders.length?oIndex:0];}const getCustomStorageMap=id=>{const version=methods_getConfig().version;const rest=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toStringJSON(localStorage.getItem(customStorageKey)||'');const maps=rest&&rest._v===version?rest:{_v:version};return(id?maps[id]:maps)||{};};const setCustomStorageMap=(id,data)=>{const version=methods_getConfig().version;const maps=getCustomStorageMap();maps[id]=data||undefined;maps._v=version;localStorage.setItem(customStorageKey,external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toJSONString(maps));};const getRecoverRowMaps=($xeTable,keyMaps)=>{const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;const restKeys={};external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(keyMaps,(row,rowid)=>{if(fullAllDataRowIdData[rowid]){restKeys[rowid]=row;}});return restKeys;};function handleReserveRow($xeTable,reserveRowMap){const internalData=$xeTable;const{fullDataRowIdData}=internalData;const reserveList=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(reserveRowMap,(item,rowid)=>{if(fullDataRowIdData[rowid]&&reserveList.indexOf(fullDataRowIdData[rowid].row)===-1){reserveList.push(fullDataRowIdData[rowid].row);}});return reserveList;}function handleVirtualXVisible($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{isScrollXBig,scrollXWidth}=reactData;const{elemStore,visibleColumn,fullColumnIdData}=internalData;const leftFixedWidth=$xeTable.computeLeftFixedWidth;const rightFixedWidth=$xeTable.computeRightFixedWidth;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(bodyScrollElem){const clientWidth=bodyScrollElem.clientWidth;let scrollLeft=bodyScrollElem.scrollLeft;if(isScrollXBig){scrollLeft=Math.ceil((scrollXWidth-clientWidth)*Math.min(1,scrollLeft/(maxXWidth-clientWidth)));}const startLeft=scrollLeft+leftFixedWidth;const endLeft=scrollLeft+clientWidth-rightFixedWidth;let leftIndex=0;let rightIndex=visibleColumn.length;while(leftIndex<rightIndex){const cIndex=Math.floor((leftIndex+rightIndex)/2);const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};if(colRest.oLeft<=startLeft){leftIndex=cIndex+1;}else{rightIndex=cIndex;}}let visibleSize=0;const toVisibleIndex=leftIndex===visibleColumn.length?leftIndex:Math.max(0,leftIndex<visibleColumn.length?leftIndex-2:0);for(let cIndex=toVisibleIndex,cLen=visibleColumn.length;cIndex<cLen;cIndex++){const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};visibleSize++;if(colRest.oLeft>endLeft||visibleSize>=60){break;}}return{toVisibleIndex:Math.max(0,toVisibleIndex),visibleSize:Math.max(6,visibleSize)};}return{toVisibleIndex:0,visibleSize:6};}function handleCustomRestore($xeTable,storeData){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapper=$xeGrid||$xeGantt;const{aggregateConfig,rowGroupConfig}=props;const{collectColumn}=internalData;const{isCustomAlign,isCustomHeaderAlign,isCustomFooterAlign,isCustomResizable,isCustomVisible,isCustomFixed,isCustomSort,isCustomAggGroup,isCustomAggFunc,isCustomPager}=handleCustomStoreConfig($xeTable);let{alignData,headerAlignData,footerAlignData,resizableData,sortData,visibleData,fixedData,aggGroupData,aggFuncData,pagerData}=storeData;// 处理还原
|
|
8070
8095
|
if(isCustomAlign&&alignData||isCustomHeaderAlign&&headerAlignData||isCustomFooterAlign&&footerAlignData||isCustomResizable&&resizableData||isCustomSort&&sortData||isCustomVisible&&visibleData||isCustomFixed&&fixedData||isCustomAggGroup&&aggGroupData||isCustomAggFunc&&aggFuncData||isCustomPager&&pagerData&&$xeGGWrapper){const sortColMaps={};if(isCustomSort&&sortData){// 转换兼容老版本数据,即将废弃兼容
|
|
8071
8096
|
if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(sortData)){const sortRests=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(sortData,(index,colKey)=>{sortRests.push({key:colKey,index});});sortData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(sortRests,{field:'index',order:'asc'}).map(item=>({k:item.key}));}let colNum=1;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(sortData,(sObj,index,sOjs,path,pSObj)=>{sortColMaps[sObj.k]={key:sObj.k,sNum:colNum++,pKey:pSObj?pSObj.k:null};},{children:'c'});}const colKeyMaps={};const allCols=[];const aggGroupConfs=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const colKey=column.getKey();// 支持一级
|
|
8072
8097
|
if(!parentColumn){if(isCustomFixed&&fixedData&&fixedData[colKey]!==undefined){column.fixed=fixedData[colKey];}}if(isCustomResizable&&resizableData&&external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(resizableData[colKey])){column.resizeWidth=resizableData[colKey];}if(isCustomVisible&&visibleData&&external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(visibleData[colKey])){column.visible=visibleData[colKey];}if(isCustomAggFunc&&aggFuncData&&(aggregateConfig||rowGroupConfig)&&aggFuncData[colKey]){column.aggFunc=aggFuncData[colKey];}if(isCustomAggGroup&&aggGroupData&&aggGroupData[colKey]){aggGroupConfs.push({field:column.field});}colKeyMaps[colKey]=column;allCols.push(column);});if((aggregateConfig||rowGroupConfig)&&aggGroupConfs.length){const groupRest=handleGroupData($xeTable,internalData.tableFullData,aggGroupConfs);internalData.tableFullTreeData=[];internalData.tableFullGroupData=groupRest.treeData;reactData.isRowGroupStatus=true;reactData.rowGroupList=aggGroupConfs;$xeTable.cacheRowMap(false);}// 如果自定义了顺序
|
|
@@ -8304,7 +8329,7 @@ if(props.spanMethod){methods_warnLog('vxe.error.scrollErrProp',['span-method']);
|
|
|
8304
8329
|
// 如果列被设置为固定,则清除合并状态
|
|
8305
8330
|
if(visibleColumn.length!==internalData.visibleColumn.length||!internalData.visibleColumn.every((column,index)=>column===visibleColumn[index])){$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();}visibleColumn.forEach((column,index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest._index=index;}});handleTableColumn($xeTable);handleUpdateAggValues($xeTable);if(isReset){return $xeTable.updateFooter().then(()=>{return $xeTable.recalculate();}).then(()=>{$xeTable.updateCellAreas();return $xeTable.recalculate();});}return $xeTable.updateFooter();}function initColumnHierarchy($xeTable){const internalData=$xeTable;const{collectColumn}=internalData;const fullColIdData={};const fullColFieldData={};let sortIndex=1;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const{id:colid,field}=column;const parentId=parentColumn?parentColumn.id:null;const rest={$index:-1,_index:-1,column,colid,index,items,parent:parentColumn||null,width:0,oLeft:0};column.parentId=parentId;column.defaultParentId=parentId;column.sortNumber=sortIndex;column.renderSortNumber=sortIndex;sortIndex++;if(field){if(fullColFieldData[field]){methods_errLog('vxe.error.colRepet',['field',field]);}fullColFieldData[field]=rest;}fullColIdData[colid]=rest;});internalData.fullColumnIdData=fullColIdData;internalData.fullColumnFieldData=fullColFieldData;}function buildColumnInfo($xeTable){const props=$xeTable;const $xeToolbar=$xeTable.$refs.$xeToolbar;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,expandColumn}=reactData;const expandOpts=$xeTable.computeExpandOpts;cacheColumnMap($xeTable);parseColumns($xeTable,true).then(()=>{if(reactData.scrollXLoad){loadScrollXData($xeTable);}});$xeTable.clearHeaderFormatterCache();$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.handleTableData(true);$xeTable.handleAggregateSummaryData();if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){methods_warnLog('vxe.error.scrollErrProp',['column.type=expand']);}return $xeTable.$nextTick().then(()=>{if($xeToolbar){$xeToolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});}if($xeTable.handleUpdateCustomColumn){$xeTable.handleUpdateCustomColumn();}const columnOpts=$xeTable.computeColumnOpts;if(props.showCustomHeader&&reactData.isGroup&&(columnOpts.resizable||props.resizable)){methods_warnLog('vxe.error.notConflictProp',['show-custom-header & colgroup','column-config.resizable=false']);}reactData.isColLoading=false;return handleLazyRecalculate($xeTable,false,true,true);});}function handleInitColumn($xeTable,collectColumn){const reactData=$xeTable;const internalData=$xeTable;internalData.collectColumn=collectColumn;const tFullColumn=getColumnList(collectColumn);internalData.tableFullColumn=tFullColumn;reactData.updateColFlag++;reactData.isColLoading=true;initColumnHierarchy($xeTable);return Promise.resolve(restoreCustomStorage($xeTable)).then(()=>{return buildColumnInfo($xeTable);});}/**
|
|
8306
8331
|
* 纵向 Y 可视渲染处理
|
|
8307
|
-
*/function loadScrollYData($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{isAllOverflow,isScrollYBig}=reactData;const{mergeBodyList,mergeBodyRowMaps,scrollYStore}=internalData;const{preloadSize,startIndex,endIndex,offsetSize}=scrollYStore;const autoOffsetYSize=isAllOverflow?offsetSize:offsetSize+1;const{toVisibleIndex,visibleSize}=handleVirtualYVisible($xeTable);const offsetItem={startIndex:Math.max(0,isScrollYBig?toVisibleIndex-1:toVisibleIndex-1-offsetSize-preloadSize),endIndex:isScrollYBig?toVisibleIndex+visibleSize:toVisibleIndex+visibleSize+autoOffsetYSize+preloadSize};scrollYStore.visibleStartIndex=toVisibleIndex-1;scrollYStore.visibleEndIndex=toVisibleIndex+visibleSize+1;calculateMergerOffsetIndex(mergeBodyList,mergeBodyRowMaps,offsetItem,'row');const{startIndex:offsetStartIndex,endIndex:offsetEndIndex}=offsetItem;if(toVisibleIndex<=startIndex||toVisibleIndex>=endIndex-visibleSize-1){if(startIndex!==offsetStartIndex||endIndex!==offsetEndIndex){scrollYStore.startIndex=offsetStartIndex;scrollYStore.endIndex=offsetEndIndex;$xeTable.updateScrollYData();}}}const createGetRowCacheProp=prop=>{return function(row){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;if(row){const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return rowRest[prop];}}return-1;};};const createGetColumnCacheProp=prop=>{return function(column){const $xeTable=this;const internalData=$xeTable;const{fullColumnIdData}=internalData;if(column){const colRest=fullColumnIdData[column.id];if(colRest){return colRest[prop];}}return-1;};};function lazyScrollXData($xeTable){const internalData=$xeTable;const{lxTimeout,lxRunTime,scrollXStore}=internalData;const{visibleSize}=scrollXStore;const fpsTime=visibleSize>26?26:visibleSize>16?14:6;if(lxTimeout){clearTimeout(lxTimeout);}if(!lxRunTime||lxRunTime+fpsTime<Date.now()){internalData.lxRunTime=Date.now();loadScrollXData($xeTable);}internalData.lxTimeout=setTimeout(()=>{internalData.lxTimeout=undefined;internalData.lxRunTime=undefined;loadScrollXData($xeTable);},fpsTime);}function lazyScrollYData($xeTable){const internalData=$xeTable;const{lyTimeout,lyRunTime,scrollYStore}=internalData;const{visibleSize}=scrollYStore;const fpsTime=visibleSize>30?32:visibleSize>20?18:8;if(lyTimeout){clearTimeout(lyTimeout);}if(!lyRunTime||lyRunTime+fpsTime<Date.now()){internalData.lyRunTime=Date.now();loadScrollYData($xeTable);}internalData.lyTimeout=setTimeout(()=>{internalData.lyTimeout=undefined;internalData.lyRunTime=undefined;loadScrollYData($xeTable);},fpsTime);}function handleSyncScroll($xeTable,isRollX,isRollY){const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,isAllOverflow}=reactData;const autoWidthColumnList=$xeTable.computeAutoWidthColumnList;internalData.lcsRunTime=Date.now();internalData.lcsTimeout=undefined;internalData.intoRunScroll=false;internalData.inVirtualScroll=false;internalData.inWheelScroll=false;internalData.inHeaderScroll=false;internalData.inBodyScroll=false;internalData.inFooterScroll=false;reactData.lazScrollLoading=false;internalData.scrollRenderType='';let xRest=null;let yRest=null;if(!isAllOverflow){calcCellHeight($xeTable);updateRowOffsetTop($xeTable);}if(isRollX&&scrollXLoad){xRest=$xeTable.updateScrollXData();}if(isRollY&&scrollYLoad){if(autoWidthColumnList.length){calcCellWidth($xeTable);}yRest=$xeTable.updateScrollYData().then(()=>{if(autoWidthColumnList.length){calcCellWidth($xeTable);autoCellWidth($xeTable);}if(!isAllOverflow){calcCellHeight($xeTable);updateRowOffsetTop($xeTable);}return $xeTable.updateScrollYSpace();});}updateRowExpandStyle($xeTable);return Promise.all([xRest,yRest,scrollXLoad||scrollYLoad?$xeTable.updateCellAreas():null]);}function checkLastSyncScroll($xeTable,isRollX,isRollY){const reactData=$xeTable;const internalData=$xeTable;const{lcsTimeout}=internalData;reactData.lazScrollLoading=true;if(lcsTimeout){clearTimeout(lcsTimeout);}internalData.lcsTimeout=setTimeout(()=>{handleSyncScroll($xeTable,isRollX,isRollY).then(()=>{if(reactData.scrollXLoad||reactData.scrollYLoad){$xeTable.$nextTick(()=>{updateRowExpandStyle($xeTable);if(!internalData.lcsTimeout){handleSyncScroll($xeTable,isRollX,isRollY);}});}});},240);}const getWheelSpeed=lastScrollTime=>{let multiple=1;const currTime=Date.now();if(lastScrollTime+25>currTime){multiple=1.18;}else if(lastScrollTime+30>currTime){multiple=1.15;}else if(lastScrollTime+40>currTime){multiple=1.12;}else if(lastScrollTime+55>currTime){multiple=1.09;}else if(lastScrollTime+75>currTime){multiple=1.06;}else if(lastScrollTime+100>currTime){multiple=1.03;}return multiple;};const syncGanttScrollTop=($xeTable,scrollTop)=>{const internalData=$xeTable;const $xeGanttView=internalData.xeGanttView;if($xeGanttView){const ganttInternalData=$xeGanttView.internalData;
|
|
8332
|
+
*/function loadScrollYData($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{isAllOverflow,isScrollYBig}=reactData;const{mergeBodyList,mergeBodyRowMaps,scrollYStore}=internalData;const{preloadSize,startIndex,endIndex,offsetSize}=scrollYStore;const autoOffsetYSize=isAllOverflow?offsetSize:offsetSize+1;const{toVisibleIndex,visibleSize}=handleVirtualYVisible($xeTable);const offsetItem={startIndex:Math.max(0,isScrollYBig?toVisibleIndex-1:toVisibleIndex-1-offsetSize-preloadSize),endIndex:isScrollYBig?toVisibleIndex+visibleSize:toVisibleIndex+visibleSize+autoOffsetYSize+preloadSize};scrollYStore.visibleStartIndex=toVisibleIndex-1;scrollYStore.visibleEndIndex=toVisibleIndex+visibleSize+1;calculateMergerOffsetIndex(mergeBodyList,mergeBodyRowMaps,offsetItem,'row');const{startIndex:offsetStartIndex,endIndex:offsetEndIndex}=offsetItem;if(toVisibleIndex<=startIndex||toVisibleIndex>=endIndex-visibleSize-1){if(startIndex!==offsetStartIndex||endIndex!==offsetEndIndex){scrollYStore.startIndex=offsetStartIndex;scrollYStore.endIndex=offsetEndIndex;$xeTable.updateScrollYData();}}}const createGetRowCacheProp=prop=>{return function(row){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;if(row){const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return rowRest[prop];}}return-1;};};const createGetColumnCacheProp=prop=>{return function(column){const $xeTable=this;const internalData=$xeTable;const{fullColumnIdData}=internalData;if(column){const colRest=fullColumnIdData[column.id];if(colRest){return colRest[prop];}}return-1;};};function lazyScrollXData($xeTable){const internalData=$xeTable;const{lxTimeout,lxRunTime,scrollXStore}=internalData;const{visibleSize}=scrollXStore;const fpsTime=visibleSize>26?26:visibleSize>16?14:6;if(lxTimeout){clearTimeout(lxTimeout);}if(!lxRunTime||lxRunTime+fpsTime<Date.now()){internalData.lxRunTime=Date.now();loadScrollXData($xeTable);}internalData.lxTimeout=setTimeout(()=>{internalData.lxTimeout=undefined;internalData.lxRunTime=undefined;loadScrollXData($xeTable);},fpsTime);}function lazyScrollYData($xeTable){const internalData=$xeTable;const{lyTimeout,lyRunTime,scrollYStore}=internalData;const{visibleSize}=scrollYStore;const fpsTime=visibleSize>30?32:visibleSize>20?18:8;if(lyTimeout){clearTimeout(lyTimeout);}if(!lyRunTime||lyRunTime+fpsTime<Date.now()){internalData.lyRunTime=Date.now();loadScrollYData($xeTable);}internalData.lyTimeout=setTimeout(()=>{internalData.lyTimeout=undefined;internalData.lyRunTime=undefined;loadScrollYData($xeTable);},fpsTime);}function handleSyncScroll($xeTable,isRollX,isRollY){const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,isAllOverflow}=reactData;const autoWidthColumnList=$xeTable.computeAutoWidthColumnList;internalData.lcsRunTime=Date.now();internalData.lcsTimeout=undefined;internalData.intoRunScroll=false;internalData.inVirtualScroll=false;internalData.inWheelScroll=false;internalData.inHeaderScroll=false;internalData.inBodyScroll=false;internalData.inFooterScroll=false;internalData.isSyncGanttScrollTop=false;reactData.lazScrollLoading=false;internalData.scrollRenderType='';const $xeGanttView=internalData.xeGanttView;if($xeGanttView){const ganttInternalData=$xeGanttView.internalData;ganttInternalData.isSyncTableScrollTop=false;}let xRest=null;let yRest=null;if(!isAllOverflow){calcCellHeight($xeTable);updateRowOffsetTop($xeTable);}if(isRollX&&scrollXLoad){xRest=$xeTable.updateScrollXData();}if(isRollY&&scrollYLoad){if(autoWidthColumnList.length){calcCellWidth($xeTable);}yRest=$xeTable.updateScrollYData().then(()=>{if(autoWidthColumnList.length){calcCellWidth($xeTable);autoCellWidth($xeTable);}if(!isAllOverflow){calcCellHeight($xeTable);updateRowOffsetTop($xeTable);}return $xeTable.updateScrollYSpace();});}updateRowExpandStyle($xeTable);return Promise.all([xRest,yRest,scrollXLoad||scrollYLoad?$xeTable.updateCellAreas():null]);}function checkLastSyncScroll($xeTable,isRollX,isRollY){const reactData=$xeTable;const internalData=$xeTable;const{lcsTimeout}=internalData;reactData.lazScrollLoading=true;if(lcsTimeout){clearTimeout(lcsTimeout);}internalData.lcsTimeout=setTimeout(()=>{handleSyncScroll($xeTable,isRollX,isRollY).then(()=>{if(reactData.scrollXLoad||reactData.scrollYLoad){$xeTable.$nextTick(()=>{updateRowExpandStyle($xeTable);if(!internalData.lcsTimeout){handleSyncScroll($xeTable,isRollX,isRollY);}});}});},240);}const getWheelSpeed=lastScrollTime=>{let multiple=1;const currTime=Date.now();if(lastScrollTime+25>currTime){multiple=1.18;}else if(lastScrollTime+30>currTime){multiple=1.15;}else if(lastScrollTime+40>currTime){multiple=1.12;}else if(lastScrollTime+55>currTime){multiple=1.09;}else if(lastScrollTime+75>currTime){multiple=1.06;}else if(lastScrollTime+100>currTime){multiple=1.03;}return multiple;};const syncGanttScrollTop=($xeTable,scrollTop)=>{const internalData=$xeTable;const{isSyncGanttScrollTop}=internalData;if(isSyncGanttScrollTop){return;}const $xeGanttView=internalData.xeGanttView;if($xeGanttView){const ganttInternalData=$xeGanttView.internalData;ganttInternalData.isSyncTableScrollTop=true;$xeGanttView.handleSyncScrollTop({scrollTop});}};function updateHeight($xeTable){const reactData=$xeTable;const internalData=$xeTable;internalData.customHeight=calcTableHeight($xeTable,'height');internalData.customMinHeight=calcTableHeight($xeTable,'minHeight');internalData.customMaxHeight=calcTableHeight($xeTable,'maxHeight');// 如果启用虚拟滚动,纠正高度
|
|
8308
8333
|
if(reactData.scrollYLoad&&!(internalData.customHeight||internalData.customMinHeight||internalData.customMaxHeight)){internalData.customHeight=300;}}/**
|
|
8309
8334
|
* 计算自适应列宽
|
|
8310
8335
|
*/function calcColumnAutoWidth($xeTable,column,wrapperEl){const reactData=$xeTable;const{scrollYLoad}=reactData;const columnOpts=$xeTable.computeColumnOpts;const{autoOptions}=columnOpts;const{isCalcHeader,isCalcBody,isCalcFooter}=autoOptions||{};const querySelections=[];if(isCalcHeader){querySelections.push(`.vxe-header-cell--wrapper[colid="${column.id}"]`);}if(isCalcBody){querySelections.push(`.vxe-body-cell--wrapper[colid="${column.id}"]`);}if(isCalcFooter){querySelections.push(`.vxe-footer-cell--wrapper[colid="${column.id}"]`);}const cellElemList=querySelections.length?wrapperEl.querySelectorAll(querySelections.join(',')):[];let leftRightPadding=0;const firstCellEl=cellElemList[0];if(firstCellEl&&firstCellEl.parentElement){const cellStyle=getComputedStyle(firstCellEl.parentElement);leftRightPadding=Math.ceil(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellStyle.paddingLeft)+external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellStyle.paddingRight));}let colWidth=(scrollYLoad?column.renderAutoWidth:0)-leftRightPadding;for(let i=0;i<cellElemList.length;i++){const celEl=cellElemList[i];colWidth=Math.max(colWidth,celEl?Math.ceil(celEl.scrollWidth)+4:0);}return colWidth+leftRightPadding;}/**
|
|
@@ -8323,7 +8348,7 @@ if(expandColumn&&rowExpandedMaps[rowid]){offsetTop+=rowRest.expandHeight||expand
|
|
|
8323
8348
|
const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapper=$xeGrid||$xeGantt;if(slotFunc){if($xeGGWrapper){return $xeGGWrapper.callSlot(slotFunc,params,h);}// if (XEUtils.isString(slotFunc)) {
|
|
8324
8349
|
// slotFunc = slots[slotFunc] || null
|
|
8325
8350
|
// }
|
|
8326
|
-
if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(slotFunc)){return getSlotVNs(slotFunc.call(this,params,h,vNodes));}}return[];},getEl(){const $xeTable=this;return $xeTable.$refs.refElem;},/**
|
|
8351
|
+
if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(slotFunc)){return getSlotVNs(slotFunc.call(this,params,h,vNodes));}}return[];},getEl(){const $xeTable=this;return $xeTable.$refs.refElem;},getScrollViewElem(){const $xeTable=this;const internalData=$xeTable;const{elemStore}=internalData;const viewEl=getRefElem(elemStore['main-body-scroll']);return viewEl;},/**
|
|
8327
8352
|
* 获取父容器元素
|
|
8328
8353
|
*/getParentElem(){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const el=$xeTable.$refs.refElem;if(!el){return null;}const parentEl=el.parentElement;if(!parentEl){return null;}if($xeGantt&&hasClass(parentEl,'vxe-gantt--table-wrapper')){return $xeGantt.getParentElem();}else if($xeGrid&&hasClass(parentEl,'vxe-grid--table-wrapper')){return $xeGrid.getParentElem();}// 如果是虚拟滚动条
|
|
8329
8354
|
if(parentEl&&hasClass(parentEl,'vxe-scrollbar--view-inner')){return parentEl.parentElement;}return parentEl;},/**
|
|
@@ -8883,7 +8908,7 @@ if(transform){return handleVirtualTreeExpand($xeTable,rows,expanded);}else{retur
|
|
|
8883
8908
|
* 获取表格的滚动状态
|
|
8884
8909
|
*/getScroll(){const $xeTable=this;return $xeTable.getScrollData();},/**
|
|
8885
8910
|
* 获取表格的滚动数据
|
|
8886
|
-
*/getScrollData(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,scrollbarHeight,scrollbarWidth}=reactData;const{elemStore}=internalData;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const scrollTop=bodyScrollElem?bodyScrollElem.scrollTop:0;const scrollLeft=bodyScrollElem?bodyScrollElem.scrollLeft:0;const clientHeight=bodyScrollElem?bodyScrollElem.clientHeight:0;const clientWidth=bodyScrollElem?bodyScrollElem.clientWidth:0;const scrollHeight=bodyScrollElem?bodyScrollElem.scrollHeight:0;const scrollWidth=bodyScrollElem?bodyScrollElem.scrollWidth:0;const isTop=scrollTop<=0;const isBottom=scrollTop+clientHeight>=scrollHeight;const isLeft=scrollLeft<=0;const isRight=scrollLeft+clientWidth>=scrollWidth;return{virtualX:scrollXLoad,virtualY:scrollYLoad,isTop,isBottom,isLeft,isRight,scrollbarHeight,scrollbarWidth,scrollTop,scrollLeft,scrollHeight,scrollWidth,clientHeight,clientWidth};},handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,params){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{highlightHoverRow}=props;const{elemStore,lastScrollLeft,lastScrollTop}=internalData;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(!bodyScrollElem){return;}const rowOpts=$xeTable.computeRowOpts;const validTip=$xeTable.$refs.refValidTooltip;const tooltip=$xeTable.$refs.refTooltip;const bodyHeight=bodyScrollElem.clientHeight;const bodyWidth=bodyScrollElem.clientWidth;const scrollHeight=bodyScrollElem.scrollHeight;const scrollWidth=bodyScrollElem.scrollWidth;let isTop=false;let isBottom=false;let isLeft=false;let isRight=false;let direction='';let isTopBoundary=false;let isBottomBoundary=false;let isLeftBoundary=false;let isRightBoundary=false;if(isRollX){const xThreshold=$xeTable.computeScrollXThreshold;isLeft=scrollLeft<=0;if(!isLeft){isRight=scrollLeft+bodyWidth>=scrollWidth-1;}if(scrollLeft>lastScrollLeft){direction='right';if(scrollLeft+bodyWidth>=scrollWidth-xThreshold){isRightBoundary=true;}}else{direction='left';if(scrollLeft<=xThreshold){isLeftBoundary=true;}}$xeTable.checkScrolling();internalData.lastScrollLeft=scrollLeft;}if(isRollY){const yThreshold=$xeTable.computeScrollYThreshold;isTop=scrollTop<=0;if(!isTop){isBottom=scrollTop+bodyHeight>=scrollHeight-1;}if(scrollTop>lastScrollTop){direction='bottom';if(scrollTop+bodyHeight>=scrollHeight-yThreshold){isBottomBoundary=true;}}else{direction='top';if(scrollTop<=yThreshold){isTopBoundary=true;}}internalData.lastScrollTop=scrollTop;}internalData.lastSTime=Date.now();const evntParams={source:sourceType,scrollTop,scrollLeft,bodyHeight,bodyWidth,scrollHeight,scrollWidth,isX:isRollX,isY:isRollY,isTop,isBottom,isLeft,isRight,direction,...params}
|
|
8911
|
+
*/getScrollData(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,scrollbarHeight,scrollbarWidth}=reactData;const{elemStore}=internalData;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const scrollTop=bodyScrollElem?bodyScrollElem.scrollTop:0;const scrollLeft=bodyScrollElem?bodyScrollElem.scrollLeft:0;const clientHeight=bodyScrollElem?bodyScrollElem.clientHeight:0;const clientWidth=bodyScrollElem?bodyScrollElem.clientWidth:0;const scrollHeight=bodyScrollElem?bodyScrollElem.scrollHeight:0;const scrollWidth=bodyScrollElem?bodyScrollElem.scrollWidth:0;const isTop=scrollTop<=0;const isBottom=scrollTop+clientHeight>=scrollHeight;const isLeft=scrollLeft<=0;const isRight=scrollLeft+clientWidth>=scrollWidth;return{virtualX:scrollXLoad,virtualY:scrollYLoad,isTop,isBottom,isLeft,isRight,scrollbarHeight,scrollbarWidth,scrollTop,scrollLeft,scrollHeight,scrollWidth,clientHeight,clientWidth};},handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,params){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{highlightHoverRow}=props;const{elemStore,lastScrollLeft,lastScrollTop}=internalData;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(!bodyScrollElem){return;}const rowOpts=$xeTable.computeRowOpts;const validTip=$xeTable.$refs.refValidTooltip;const tooltip=$xeTable.$refs.refTooltip;const bodyHeight=bodyScrollElem.clientHeight;const bodyWidth=bodyScrollElem.clientWidth;const scrollHeight=bodyScrollElem.scrollHeight;const scrollWidth=bodyScrollElem.scrollWidth;let isTop=false;let isBottom=false;let isLeft=false;let isRight=false;let direction='';let isTopBoundary=false;let isBottomBoundary=false;let isLeftBoundary=false;let isRightBoundary=false;if(isRollX){const xThreshold=$xeTable.computeScrollXThreshold;isLeft=scrollLeft<=0;if(!isLeft){isRight=scrollLeft+bodyWidth>=scrollWidth-1;}if(scrollLeft>lastScrollLeft){direction='right';if(scrollLeft+bodyWidth>=scrollWidth-xThreshold){isRightBoundary=true;}}else{direction='left';if(scrollLeft<=xThreshold){isLeftBoundary=true;}}$xeTable.checkScrolling();internalData.lastScrollLeft=scrollLeft;}if(isRollY){const yThreshold=$xeTable.computeScrollYThreshold;isTop=scrollTop<=0;if(!isTop){isBottom=scrollTop+bodyHeight>=scrollHeight-1;}if(scrollTop>lastScrollTop){direction='bottom';if(scrollTop+bodyHeight>=scrollHeight-yThreshold){isBottomBoundary=true;}}else{direction='top';if(scrollTop<=yThreshold){isTopBoundary=true;}}internalData.lastScrollTop=scrollTop;}internalData.lastSTime=Date.now();const evntParams={source:sourceType,scrollTop,scrollLeft,bodyHeight,bodyWidth,scrollHeight,scrollWidth,isX:isRollX,isY:isRollY,isTop,isBottom,isLeft,isRight,direction,...params};const isVScrollbar=$xeTable.computeIsVScrollbar;if(isVScrollbar){$xeTable.updateThumbOffset();}updateRowExpandStyle($xeTable);checkLastSyncScroll($xeTable,isRollX,isRollY);if(isRollX){$xeTable.closeFilter();}if(rowOpts.isHover||highlightHoverRow){$xeTable.clearHoverRow();}if(validTip&&validTip.reactData.visible){validTip.close();}if(tooltip&&tooltip.reactData.visible){tooltip.close();}if(isBottomBoundary||isTopBoundary||isRightBoundary||isLeftBoundary){$xeTable.dispatchEvent('scroll-boundary',evntParams,evnt);}$xeTable.dispatchEvent('scroll',evntParams,evnt);},/**
|
|
8887
8912
|
* 横向 X 可视渲染事件处理
|
|
8888
8913
|
*/triggerScrollXEvent(){const $xeTable=this;const virtualXOpts=$xeTable.computeVirtualXOpts;if(virtualXOpts.immediate){loadScrollXData($xeTable);}else{lazyScrollXData($xeTable);}},/**
|
|
8889
8914
|
* 纵向 Y 可视渲染事件处理
|
|
@@ -8897,7 +8922,7 @@ if(isRollX){evnt.preventDefault();internalData.inWheelScroll=true;wheelScrollLef
|
|
|
8897
8922
|
updateScrollXSpace(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,overflowX,scrollXWidth}=reactData;const{visibleColumn,scrollXStore,elemStore,fullColumnIdData}=internalData;const $xeGanttView=internalData.xeGanttView;const mouseOpts=$xeTable.computeMouseOpts;const tableBody=$xeTable.$refs.refTableBody;const tableBodyElem=tableBody?tableBody.$el:null;if(tableBodyElem){const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const bodyTableElem=getRefElem(elemStore['main-body-table']);const headerTableElem=getRefElem(elemStore['main-header-table']);const footerTableElem=getRefElem(elemStore['main-footer-table']);let xSpaceLeft=0;const firstColumn=visibleColumn[scrollXStore.startIndex];if(firstColumn){const colRest=fullColumnIdData[firstColumn.id]||{};xSpaceLeft=colRest.oLeft;}let clientWidth=0;if(bodyScrollElem){clientWidth=bodyScrollElem.clientWidth;}// 虚拟渲染
|
|
8898
8923
|
let isScrollXBig=false;let ySpaceWidth=scrollXWidth;if(scrollXWidth>maxXWidth){// 触右
|
|
8899
8924
|
if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollLeft+clientWidth>=maxXWidth){xSpaceLeft=maxXWidth-bodyTableElem.clientWidth;}else{xSpaceLeft=(maxXWidth-clientWidth)*(xSpaceLeft/(scrollXWidth-clientWidth));}ySpaceWidth=maxXWidth;isScrollXBig=true;}if(!(scrollXLoad&&overflowX)){xSpaceLeft=0;}if(methods_getConfig().scrollMarginStyle){// 已废弃方式
|
|
8900
|
-
if(headerTableElem){headerTableElem.style.marginLeft=headerTableElem.getAttribute('xvm')?`${xSpaceLeft}px`:'';}if(bodyTableElem){bodyTableElem.style.marginLeft=`${xSpaceLeft}px`;}if(footerTableElem){footerTableElem.style.marginLeft=footerTableElem.getAttribute('xvm')?`${xSpaceLeft}px`:'';}}else{if(headerTableElem){headerTableElem.style.transform=headerTableElem.getAttribute('xvm')?`translate(${xSpaceLeft}px, 0px)`:'';}if(bodyTableElem){bodyTableElem.style.transform=`translate(${xSpaceLeft}px, ${reactData.scrollYTop||0}px)`;}if(footerTableElem){footerTableElem.style.transform=footerTableElem.getAttribute('xvm')?`translate(${xSpaceLeft}px, 0px)`:'';}}const containerList=['main'];containerList.forEach(name=>{const layoutList=['header','body','footer'];layoutList.forEach(layout=>{const xSpaceElem=getRefElem(elemStore[`${name}-${layout}-xSpace`]);if(xSpaceElem){xSpaceElem.style.width=scrollXLoad?`${ySpaceWidth}px`:'';}});});reactData.scrollXLeft=xSpaceLeft;reactData.scrollXWidth=ySpaceWidth;reactData.isScrollXBig=isScrollXBig;const scrollXSpaceEl=$xeTable.$refs.refScrollXSpaceElem;if(scrollXSpaceEl){scrollXSpaceEl.style.width=`${ySpaceWidth}px`;}calcScrollbar($xeTable);if(isScrollXBig&&mouseOpts.area){methods_errLog('vxe.error.notProp',['mouse-config.area']);}if($xeGanttView&&$xeGanttView.handleUpdateSXSpace){$xeGanttView.handleUpdateSXSpace();}return $xeTable.$nextTick(()=>{updateStyle($xeTable);});}},updateScrollYData(){const $xeTable=this;$xeTable.handleTableData();$xeTable.updateScrollYSpace();return $xeTable.$nextTick().then(()=>{$xeTable.handleTableData();$xeTable.updateScrollYSpace();});},// 更新纵向 Y 可视渲染上下剩余空间大小
|
|
8925
|
+
if(headerTableElem){headerTableElem.style.marginLeft=headerTableElem.getAttribute('xvm')?`${xSpaceLeft}px`:'';}if(bodyTableElem){bodyTableElem.style.marginLeft=`${xSpaceLeft}px`;}if(footerTableElem){footerTableElem.style.marginLeft=footerTableElem.getAttribute('xvm')?`${xSpaceLeft}px`:'';}}else{if(headerTableElem){headerTableElem.style.transform=headerTableElem.getAttribute('xvm')?`translate(${xSpaceLeft}px, 0px)`:'';}if(bodyTableElem){bodyTableElem.style.transform=`translate(${xSpaceLeft}px, ${reactData.scrollYTop||0}px)`;}if(footerTableElem){footerTableElem.style.transform=footerTableElem.getAttribute('xvm')?`translate(${xSpaceLeft}px, 0px)`:'';}}const containerList=['main'];containerList.forEach(name=>{const layoutList=['header','body','footer'];layoutList.forEach(layout=>{const xSpaceElem=getRefElem(elemStore[`${name}-${layout}-xSpace`]);if(xSpaceElem){xSpaceElem.style.width=scrollXLoad?`${ySpaceWidth}px`:'';}});});reactData.scrollXLeft=xSpaceLeft;reactData.scrollXWidth=ySpaceWidth;reactData.isScrollXBig=isScrollXBig;const scrollXSpaceEl=$xeTable.$refs.refScrollXSpaceElem;if(scrollXSpaceEl){scrollXSpaceEl.style.width=`${ySpaceWidth}px`;}calcScrollbar($xeTable);if(isScrollXBig&&mouseOpts.area){methods_errLog('vxe.error.notProp',['mouse-config.area']);}if($xeGanttView&&$xeGanttView.handleUpdateSXSpace){$xeGanttView.handleUpdateSXSpace();}return $xeTable.$nextTick(()=>{updateStyle($xeTable);});}},updateScrollYData(){const $xeTable=this;$xeTable.handleTableData();$xeTable.updateScrollYSpace();return $xeTable.$nextTick().then(()=>{$xeTable.handleTableData();$xeTable.updateScrollYSpace();});},handleSyncScrollTop(params){const $xeTable=this;const internalData=$xeTable;const{scrollTop}=params;const{elemStore}=internalData;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(bodyScrollElem){bodyScrollElem.scrollTop=scrollTop;}},// 更新纵向 Y 可视渲染上下剩余空间大小
|
|
8901
8926
|
updateScrollYSpace(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{isAllOverflow,overflowY,scrollYLoad,scrollYHeight,expandColumn}=reactData;const{scrollYStore,elemStore,isResizeCellHeight,afterFullData,fullAllDataRowIdData,rowExpandedMaps}=internalData;const $xeGanttView=internalData.xeGanttView;const{startIndex}=scrollYStore;const mouseOpts=$xeTable.computeMouseOpts;const expandOpts=$xeTable.computeExpandOpts;const rowOpts=$xeTable.computeRowOpts;const cellOpts=$xeTable.computeCellOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const bodyTableElem=getRefElem(elemStore['main-body-table']);const leftBodyTableElem=getRefElem(elemStore['left-body-table']);const rightbodyTableElem=getRefElem(elemStore['right-body-table']);const containerList=['main','left','right'];let ySpaceTop=0;let sYHeight=scrollYHeight;let isScrollYBig=false;if(scrollYLoad){const isCustomCellHeight=isResizeCellHeight||cellOpts.height||rowOpts.height;if(!isCustomCellHeight&&!expandColumn&&isAllOverflow){sYHeight=afterFullData.length*defaultRowHeight;if(sYHeight>maxYHeight){isScrollYBig=true;}ySpaceTop=Math.max(0,startIndex*defaultRowHeight);}else{const firstRow=afterFullData[startIndex];if(firstRow){let rowid=getRowid($xeTable,firstRow);let rowRest=fullAllDataRowIdData[rowid]||{};ySpaceTop=rowRest.oTop||0;const lastRow=afterFullData[afterFullData.length-1];rowid=getRowid($xeTable,lastRow);rowRest=fullAllDataRowIdData[rowid]||{};if(rowRest){const rHeight=getCellRestHeight(rowRest,cellOpts,rowOpts,defaultRowHeight);// 如果为空时还没计算完数据,保持原高度不变
|
|
8902
8927
|
if(rHeight){sYHeight=(rowRest.oTop||0)+rHeight;// 是否展开行
|
|
8903
8928
|
if(expandColumn&&rowExpandedMaps[rowid]){sYHeight+=rowRest.expandHeight||expandOpts.height||0;}}}if(sYHeight>maxYHeight){isScrollYBig=true;}}else{sYHeight=bodyTableElem?bodyTableElem.clientHeight:0;}}}else{if(bodyTableElem){sYHeight=bodyTableElem.clientHeight;}}let clientHeight=0;if(bodyScrollElem){clientHeight=bodyScrollElem.clientHeight;}// 虚拟渲染
|
|
@@ -8952,20 +8977,14 @@ return $xeTable.removeMergeFooterCells(merges);},/**
|
|
|
8952
8977
|
return $xeTable.getMergeFooterCells();},/**
|
|
8953
8978
|
* 清除所有表尾合并
|
|
8954
8979
|
*/clearMergeFooterCells(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;internalData.mergeFooterList=[];internalData.mergeFooterMaps={};internalData.mergeFooterCellMaps={};internalData.mergeFooterRowMaps={};internalData.mergeFooterColMaps={};reactData.mergeFootFlag++;return $xeTable.$nextTick().then(()=>{return updateStyle($xeTable);});},clearMergeFooterItems(){const $xeTable=this;// errLog('vxe.error.delFunc', ['clearMergeFooterItems', 'clearMergeFooterCells'])
|
|
8955
|
-
return $xeTable.clearMergeFooterCells();},handleUpdateAggData(){const $xeTable=this;const internalData=$xeTable;return loadTableData($xeTable,internalData.tableSynchData,false,true);},handlePushStack(){const $xeTable=this;const internalData=$xeTable;const keyboardOpts=$xeTable.computeKeyboardOpts;if(!keyboardOpts.isUndoRedo){return;}const{stackHistoryStore}=internalData;const stackObj=getSnapshotStackData($xeTable);stackHistoryStore.undoStacks.push(stackObj);stackHistoryStore.redoStacks=[];truncateStackHistory($xeTable);},handleUndoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(undoStacks.length){const stackObj=getSnapshotStackData($xeTable);redoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,undoStacks.pop());if(evnt){$xeTable.dispatchEvent('undo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleRedoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(redoStacks.length){const stackObj=getSnapshotStackData($xeTable);undoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,redoStacks.pop());if(evnt){$xeTable.dispatchEvent('redo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleClearStack(){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;stackHistoryStore.undoStacks=[];stackHistoryStore.redoStacks=[];return $xeTable.$nextTick();},updateZindex(){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;if(props.zIndex){internalData.tZindex=props.zIndex;}else if(internalData.tZindex<getLastZIndex()){internalData.tZindex=nextZIndex();}},updateCellAreas(){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;if(hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleRecalculateCellAreaEvent){return $xeTable.handleRecalculateCellAreaEvent();}return $xeTable.$nextTick();},undo(){const $xeTable=this;return $xeTable.handleUndoStackEvent(null);},redo(){const $xeTable=this;return $xeTable.handleRedoStackEvent(null);},clearHistory(){const $xeTable=this;return $xeTable.handleClearStack();},//
|
|
8956
|
-
updateThumbSize(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}if(!viewEl.clientHeight||!viewEl.clientHeight){return;}const trackXEl=$xeTable.$refs.refTrackXElem;const xThumbWidth=trackXEl?getThumbSize(viewEl.clientWidth,viewEl.scrollWidth,trackXEl.clientWidth):0;const thumbXElem=$xeTable.$refs.refThumbXElem;if(thumbXElem){thumbXElem.style.width=xThumbWidth+'px';}reactData.xThumbWidth=xThumbWidth;const trackYEl=$xeTable.$refs.refTrackYElem;const yThumbHeight=trackYEl?getThumbSize(viewEl.clientHeight,viewEl.scrollHeight,trackYEl.clientHeight):0;const thumbYElem=$xeTable.$refs.refThumbYElem;if(thumbYElem){thumbYElem.style.height=yThumbHeight+'px';}reactData.yThumbHeight=yThumbHeight;},updateThumbOffset(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}if(!viewEl.clientHeight||!viewEl.clientHeight){return;}const{xThumbWidth,yThumbHeight}=reactData;const trackXEl=$xeTable.$refs.refTrackXElem;const thumbXElem=$xeTable.$refs.refThumbXElem;const xThumbLeft=trackXEl&&xThumbWidth?getThumbOffsetSize(viewEl.scrollLeft,viewEl.clientWidth,viewEl.scrollWidth,trackXEl.clientWidth,xThumbWidth):0;internalData.xThumbLeft=xThumbLeft;if(thumbXElem&&xThumbWidth){thumbXElem.style.width=xThumbWidth+'px';thumbXElem.style.transform=`translateX(${xThumbLeft}px)`;}const trackYEl=$xeTable.$refs.refTrackYElem;const thumbYElem=$xeTable.$refs.refThumbYElem;const yThumbTop=trackYEl&&yThumbHeight?getThumbOffsetSize(viewEl.scrollTop,viewEl.clientHeight,viewEl.scrollHeight,trackYEl.clientHeight,yThumbHeight):0;internalData.yThumbTop=yThumbTop;if(thumbYElem&&yThumbHeight){thumbYElem.style.height=yThumbHeight+'px';thumbYElem.style.transform=`translateY(${yThumbTop}px)`;}},clickTrackXEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const trackEl=evnt.currentTarget;if(trackEl!==evnt.target){return;}const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{xThumbWidth}=reactData;const trackRect=trackEl.getBoundingClientRect();viewEl.scrollTo({left:getScrollFromClick(evnt.clientX-trackRect.left,viewEl.clientWidth,viewEl.scrollWidth,trackEl.clientWidth,xThumbWidth),behavior:'auto'});},clickTrackYEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const trackEl=evnt.currentTarget;if(trackEl!==evnt.target){return;}const{elemStore}=internalData;const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{yThumbHeight}=reactData;const trackRect=trackEl.getBoundingClientRect();viewEl.scrollTo({top:getScrollFromClick(evnt.clientY-trackRect.top,viewEl.clientHeight,viewEl.scrollHeight,trackEl.clientHeight,yThumbHeight),behavior:'auto'});},pointerdownThumbXEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const thumbEl=evnt.currentTarget;internalData.isThumbDrag=true;thumbEl.setPointerCapture(evnt.pointerId);const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{xThumbWidth}=reactData;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();const pointerPosition=evnt.clientX-trackRect.left;// 记录 thumb 的偏移
|
|
8957
|
-
const thumbOffset=getThumbOffsetSize(viewEl.scrollLeft,viewEl.clientWidth,viewEl.scrollWidth,trackEl.clientWidth,xThumbWidth);internalData.thumbDragOffset=pointerPosition-thumbOffset;},pointermoveThumbXEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const thumbEl=evnt.currentTarget;if(!thumbEl.hasPointerCapture(evnt.pointerId)){return;}const{elemStore,isThumbDrag,thumbDragOffset}=internalData;if(isThumbDrag){const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{xThumbWidth}=reactData;const thumbEl=evnt.currentTarget;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();// 更新偏移
|
|
8958
|
-
viewEl.scrollLeft=getScrollFromDrag(evnt.clientX-trackRect.left,thumbDragOffset,viewEl.clientWidth,viewEl.scrollWidth,trackEl.clientWidth,xThumbWidth);}},cleatPointerThumbEvent(evnt){const $xeTable=this;const internalData=$xeTable;const thumbEl=evnt.currentTarget;thumbEl.releasePointerCapture(evnt.pointerId);internalData.isThumbDrag=false;},pointerdownThumbYEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const thumbEl=evnt.currentTarget;internalData.isThumbDrag=true;thumbEl.setPointerCapture(evnt.pointerId);const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{yThumbHeight}=reactData;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();const pointerPosition=evnt.clientY-trackRect.top;// 记录 thumb 的偏移
|
|
8959
|
-
const thumbOffset=getThumbOffsetSize(viewEl.scrollTop,viewEl.clientHeight,viewEl.scrollHeight,trackEl.clientHeight,yThumbHeight);internalData.thumbDragOffset=pointerPosition-thumbOffset;},pointermoveThumbYEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const thumbEl=evnt.currentTarget;if(!thumbEl.hasPointerCapture(evnt.pointerId)){return;}const{elemStore,isThumbDrag,thumbDragOffset}=internalData;if(isThumbDrag){const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{yThumbHeight}=reactData;const thumbEl=evnt.currentTarget;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();// 更新偏移
|
|
8960
|
-
viewEl.scrollTop=getScrollFromDrag(evnt.clientY-trackRect.top,thumbDragOffset,viewEl.clientHeight,viewEl.scrollHeight,trackEl.clientHeight,yThumbHeight);}},// 滚动条
|
|
8961
|
-
dispatchEvent(type,params,evnt){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;$xeTable.$emit(type,createEvent(evnt,{$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt},params));},// 已废弃,使用 dispatchEvent
|
|
8980
|
+
return $xeTable.clearMergeFooterCells();},handleUpdateAggData(){const $xeTable=this;const internalData=$xeTable;return loadTableData($xeTable,internalData.tableSynchData,false,true);},handlePushStack(){const $xeTable=this;const internalData=$xeTable;const keyboardOpts=$xeTable.computeKeyboardOpts;if(!keyboardOpts.isUndoRedo){return;}const{stackHistoryStore}=internalData;const stackObj=getSnapshotStackData($xeTable);stackHistoryStore.undoStacks.push(stackObj);stackHistoryStore.redoStacks=[];truncateStackHistory($xeTable);},handleUndoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(undoStacks.length){const stackObj=getSnapshotStackData($xeTable);redoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,undoStacks.pop());if(evnt){$xeTable.dispatchEvent('undo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleRedoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(redoStacks.length){const stackObj=getSnapshotStackData($xeTable);undoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,redoStacks.pop());if(evnt){$xeTable.dispatchEvent('redo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleClearStack(){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;stackHistoryStore.undoStacks=[];stackHistoryStore.redoStacks=[];return $xeTable.$nextTick();},updateZindex(){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;if(props.zIndex){internalData.tZindex=props.zIndex;}else if(internalData.tZindex<getLastZIndex()){internalData.tZindex=nextZIndex();}},updateCellAreas(){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;if(hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleRecalculateCellAreaEvent){return $xeTable.handleRecalculateCellAreaEvent();}return $xeTable.$nextTick();},undo(){const $xeTable=this;return $xeTable.handleUndoStackEvent(null);},redo(){const $xeTable=this;return $xeTable.handleRedoStackEvent(null);},clearHistory(){const $xeTable=this;return $xeTable.handleClearStack();},dispatchEvent(type,params,evnt){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;$xeTable.$emit(type,createEvent(evnt,{$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt},params));},// 已废弃,使用 dispatchEvent
|
|
8962
8981
|
emitEvent(type,params,evnt){const $xeTable=this;$xeTable.dispatchEvent(type,params,evnt);},focus(){const $xeTable=this;const internalData=$xeTable;internalData.isActivated=true;return $xeTable.$nextTick();},blur(){const $xeTable=this;const internalData=$xeTable;internalData.isActivated=false;return $xeTable.$nextTick();},/**
|
|
8963
8982
|
* 已废弃,被 connectToolbar 替换
|
|
8964
8983
|
* @deprecated
|
|
8965
8984
|
*/connect($toolbar){const $xeTable=this;return $xeTable.connectToolbar($toolbar);},/**
|
|
8966
8985
|
* 连接工具栏
|
|
8967
8986
|
* @param $toolbar
|
|
8968
|
-
*/connectToolbar($toolbar){const $xeTable=this;const internalData=$xeTable;if($toolbar&&$toolbar.syncUpdate){$toolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});this.$toolbar=$toolbar;}else{methods_errLog('vxe.error.barUnableLink');}return $xeTable.$nextTick();},handleConnectGanttView($ganttView){const $xeTable=this;const internalData=$xeTable;if($ganttView&&$ganttView.connectUpdate){$ganttView.connectUpdate({$table:$xeTable});internalData.xeGanttView=$ganttView;}return $xeTable.$nextTick();},/*************************
|
|
8987
|
+
*/connectToolbar($toolbar){const $xeTable=this;const internalData=$xeTable;if($toolbar&&$toolbar.syncUpdate){$toolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});this.$toolbar=$toolbar;}else{methods_errLog('vxe.error.barUnableLink');}return $xeTable.$nextTick();},handleConnectGanttView($ganttView){const $xeTable=this;const internalData=$xeTable;if($ganttView&&$ganttView.connectUpdate){$ganttView.connectUpdate({$table:$xeTable});internalData.xeGanttView=$ganttView;}return $xeTable.$nextTick();},getInternalData(){const $xeTable=this;const internalData=$xeTable;return internalData;},getReactData(){const $xeTable=this;const reactData=$xeTable;return reactData;},/*************************
|
|
8969
8988
|
* Publish methods
|
|
8970
8989
|
*************************//**
|
|
8971
8990
|
* 已废弃,被 getCellElement 替换
|
|
@@ -21858,7 +21877,7 @@ function renderVirtualBody(h, $xeTable) {
|
|
|
21858
21877
|
}
|
|
21859
21878
|
/* harmony default export */ var table = ({
|
|
21860
21879
|
name: 'VxeTable',
|
|
21861
|
-
mixins: [table_globalMixins.sizeMixin, mixin, menu_mixin, edit_mixin, export_mixin, keyboard_mixin, validator_mixin, custom_mixin],
|
|
21880
|
+
mixins: [table_globalMixins.sizeMixin, table_globalMixins.vScrollbarMixin, table_globalMixins.initVScrollbarMixin, mixin, menu_mixin, edit_mixin, export_mixin, keyboard_mixin, validator_mixin, custom_mixin],
|
|
21862
21881
|
props: tableProps,
|
|
21863
21882
|
provide() {
|
|
21864
21883
|
const $xeTable = this;
|