vxe-gantt 3.0.6 → 3.0.7
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/gantt/src/gantt-header.js +5 -3
- package/es/gantt/src/gantt-view.js +253 -142
- package/es/gantt/src/gantt.js +9 -9
- package/es/gantt/style.css +5 -1
- package/es/gantt/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-gantt/style.css +5 -1
- package/es/vxe-gantt/style.min.css +1 -1
- package/lib/gantt/src/gantt-header.js +4 -3
- package/lib/gantt/src/gantt-header.min.js +1 -1
- package/lib/gantt/src/gantt-view.js +273 -146
- package/lib/gantt/src/gantt-view.min.js +1 -1
- package/lib/gantt/src/gantt.js +8 -8
- package/lib/gantt/src/gantt.min.js +1 -1
- package/lib/gantt/style/style.css +5 -1
- package/lib/gantt/style/style.min.css +1 -1
- package/lib/index.umd.js +290 -160
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-gantt/style/style.css +5 -1
- package/lib/vxe-gantt/style/style.min.css +1 -1
- package/package.json +3 -3
- package/packages/gantt/src/gantt-header.ts +5 -3
- package/packages/gantt/src/gantt-view.ts +276 -155
- package/packages/gantt/src/gantt.ts +7 -7
- package/styles/components/gantt.scss +6 -1
- package/styles/theme/dark.scss +1 -0
- package/styles/theme/light.scss +1 -0
|
@@ -23,6 +23,7 @@ var globalEvents = _core.VxeUI.globalEvents;
|
|
|
23
23
|
function createInternalData() {
|
|
24
24
|
return {
|
|
25
25
|
xeTable: null,
|
|
26
|
+
visibleColumn: [],
|
|
26
27
|
startMaps: {},
|
|
27
28
|
endMaps: {},
|
|
28
29
|
chartMaps: {},
|
|
@@ -37,16 +38,9 @@ function createInternalData() {
|
|
|
37
38
|
startIndex: 0,
|
|
38
39
|
endIndex: 0
|
|
39
40
|
},
|
|
40
|
-
//
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
offsetSize: 0,
|
|
44
|
-
visibleSize: 0,
|
|
45
|
-
visibleStartIndex: 0,
|
|
46
|
-
visibleEndIndex: 0,
|
|
47
|
-
startIndex: 0,
|
|
48
|
-
endIndex: 0
|
|
49
|
-
}
|
|
41
|
+
// 最后滚动位置
|
|
42
|
+
lastScrollTop: 0,
|
|
43
|
+
lastScrollLeft: 0
|
|
50
44
|
};
|
|
51
45
|
}
|
|
52
46
|
var maxYHeight = 5e6;
|
|
@@ -67,9 +61,12 @@ function handleParseColumn($xeGanttView) {
|
|
|
67
61
|
var taskScaleList = ganttReactData.taskScaleList;
|
|
68
62
|
var minViewDate = reactData.minViewDate,
|
|
69
63
|
maxViewDate = reactData.maxViewDate;
|
|
64
|
+
var scrollXStore = internalData.scrollXStore;
|
|
70
65
|
var minScale = _xeUtils.default.last(taskScaleList);
|
|
71
66
|
var fullCols = [];
|
|
72
67
|
var groupCols = [];
|
|
68
|
+
scrollXStore.startIndex = 0;
|
|
69
|
+
scrollXStore.endIndex = 1;
|
|
73
70
|
if (minScale && minViewDate && maxViewDate) {
|
|
74
71
|
var minSType = minScale.type;
|
|
75
72
|
var weekScale = taskScaleList.find(function (item) {
|
|
@@ -94,37 +91,37 @@ function handleParseColumn($xeGanttView) {
|
|
|
94
91
|
var currTime = minViewDate.getTime();
|
|
95
92
|
var diffDayNum = maxViewDate.getTime() - minViewDate.getTime();
|
|
96
93
|
var countSize = Math.max(5, Math.floor(diffDayNum / gapTime) + 1);
|
|
97
|
-
switch (minScale.type) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
}
|
|
94
|
+
// switch (minScale.type) {
|
|
95
|
+
// case 'day':
|
|
96
|
+
// case 'date':
|
|
97
|
+
// if (diffDayNum > (1000 * 60 * 60 * 24 * 366 * 3)) {
|
|
98
|
+
// reactData.tableColumn = []
|
|
99
|
+
// reactData.headerGroups = []
|
|
100
|
+
// return
|
|
101
|
+
// }
|
|
102
|
+
// break
|
|
103
|
+
// case 'hour':
|
|
104
|
+
// if (diffDayNum > (1000 * 60 * 60 * 24 * 31 * 3)) {
|
|
105
|
+
// reactData.tableColumn = []
|
|
106
|
+
// reactData.headerGroups = []
|
|
107
|
+
// return
|
|
108
|
+
// }
|
|
109
|
+
// break
|
|
110
|
+
// case 'minute':
|
|
111
|
+
// if (diffDayNum > (1000 * 60 * 60 * 24 * 3)) {
|
|
112
|
+
// reactData.tableColumn = []
|
|
113
|
+
// reactData.headerGroups = []
|
|
114
|
+
// return
|
|
115
|
+
// }
|
|
116
|
+
// break
|
|
117
|
+
// case 'second':
|
|
118
|
+
// if (diffDayNum > (1000 * 60 * 60 * 3)) {
|
|
119
|
+
// reactData.tableColumn = []
|
|
120
|
+
// reactData.headerGroups = []
|
|
121
|
+
// return
|
|
122
|
+
// }
|
|
123
|
+
// break
|
|
124
|
+
// }
|
|
128
125
|
var renderListMaps = {
|
|
129
126
|
year: [],
|
|
130
127
|
quarter: [],
|
|
@@ -324,8 +321,10 @@ function handleParseColumn($xeGanttView) {
|
|
|
324
321
|
internalData.chartMaps = ctMaps;
|
|
325
322
|
}
|
|
326
323
|
}
|
|
327
|
-
|
|
324
|
+
internalData.visibleColumn = fullCols;
|
|
328
325
|
reactData.headerGroups = groupCols;
|
|
326
|
+
updateScrollXStatus($xeGanttView);
|
|
327
|
+
handleTableColumn($xeGanttView);
|
|
329
328
|
}
|
|
330
329
|
function handleUpdateData($xeGanttView) {
|
|
331
330
|
var $xeGantt = $xeGanttView.$xeGantt;
|
|
@@ -430,9 +429,10 @@ function updateStyle($xeGanttView) {
|
|
|
430
429
|
var internalData = $xeGanttView.internalData;
|
|
431
430
|
var scrollbarWidth = reactData.scrollbarWidth,
|
|
432
431
|
scrollbarHeight = reactData.scrollbarHeight,
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
var elemStore = internalData.elemStore
|
|
432
|
+
headerGroups = reactData.headerGroups,
|
|
433
|
+
tableColumn = reactData.tableColumn;
|
|
434
|
+
var elemStore = internalData.elemStore,
|
|
435
|
+
visibleColumn = internalData.visibleColumn;
|
|
436
436
|
var $xeTable = internalData.xeTable;
|
|
437
437
|
var el = $xeGanttView.$refs.refElem;
|
|
438
438
|
if (!el || !el.clientHeight) {
|
|
@@ -513,82 +513,210 @@ function updateStyle($xeGanttView) {
|
|
|
513
513
|
yBottomCornerEl.style.display = tFooterHeight ? 'block' : '';
|
|
514
514
|
}
|
|
515
515
|
var colInfoElem = $xeGanttView.$refs.refColInfoElem;
|
|
516
|
+
var viewCellWidth = 40;
|
|
516
517
|
if (colInfoElem) {
|
|
517
|
-
|
|
518
|
+
viewCellWidth = colInfoElem.clientWidth || 40;
|
|
518
519
|
}
|
|
519
|
-
var viewTableWidth =
|
|
520
|
+
var viewTableWidth = viewCellWidth * visibleColumn.length;
|
|
520
521
|
if (bodyScrollElem) {
|
|
521
522
|
var viewWidth = bodyScrollElem.clientWidth;
|
|
522
523
|
var remainWidth = viewWidth - viewTableWidth;
|
|
523
524
|
if (remainWidth > 0) {
|
|
524
|
-
|
|
525
|
+
viewCellWidth += Math.floor(remainWidth / visibleColumn.length);
|
|
525
526
|
viewTableWidth = viewWidth;
|
|
526
527
|
}
|
|
527
528
|
}
|
|
529
|
+
reactData.viewCellWidth = viewCellWidth;
|
|
528
530
|
var headerTableElem = (0, _util.getRefElem)(elemStore['main-header-table']);
|
|
529
531
|
var bodyTableElem = (0, _util.getRefElem)(elemStore['main-body-table']);
|
|
532
|
+
var vmTableWidth = viewCellWidth * tableColumn.length;
|
|
530
533
|
if (headerTableElem) {
|
|
531
534
|
headerTableElem.style.width = "".concat(viewTableWidth, "px");
|
|
532
535
|
}
|
|
533
536
|
if (bodyTableElem) {
|
|
534
|
-
bodyTableElem.style.width = "".concat(
|
|
537
|
+
bodyTableElem.style.width = "".concat(vmTableWidth, "px");
|
|
535
538
|
}
|
|
536
539
|
reactData.scrollXWidth = viewTableWidth;
|
|
537
540
|
return updateChart($xeGanttView);
|
|
538
541
|
}
|
|
539
|
-
function
|
|
542
|
+
function handleRecalculateStyle($xeGanttView) {
|
|
543
|
+
var internalData = $xeGanttView.internalData;
|
|
544
|
+
var el = $xeGanttView.$refs.refElem;
|
|
545
|
+
internalData.rceRunTime = Date.now();
|
|
546
|
+
if (!el || !el.clientWidth) {
|
|
547
|
+
return $xeGanttView.$nextTick();
|
|
548
|
+
}
|
|
540
549
|
calcScrollbar($xeGanttView);
|
|
541
550
|
updateStyle($xeGanttView);
|
|
542
551
|
updateChart($xeGanttView);
|
|
552
|
+
return computeScrollLoad($xeGanttView);
|
|
553
|
+
}
|
|
554
|
+
function _handleLazyRecalculate($xeGanttView) {
|
|
555
|
+
var internalData = $xeGanttView.internalData;
|
|
556
|
+
return new Promise(function (resolve) {
|
|
557
|
+
var rceTimeout = internalData.rceTimeout,
|
|
558
|
+
rceRunTime = internalData.rceRunTime;
|
|
559
|
+
var $xeTable = internalData.xeTable;
|
|
560
|
+
var refreshDelay = 50;
|
|
561
|
+
if ($xeTable) {
|
|
562
|
+
var resizeOpts = $xeTable.computeResizeOpts;
|
|
563
|
+
refreshDelay = resizeOpts.refreshDelay || 50;
|
|
564
|
+
}
|
|
565
|
+
if (rceTimeout) {
|
|
566
|
+
clearTimeout(rceTimeout);
|
|
567
|
+
if (rceRunTime && rceRunTime + (refreshDelay - 5) < Date.now()) {
|
|
568
|
+
resolve(handleRecalculateStyle($xeGanttView));
|
|
569
|
+
} else {
|
|
570
|
+
$xeGanttView.$nextTick(function () {
|
|
571
|
+
resolve();
|
|
572
|
+
});
|
|
573
|
+
}
|
|
574
|
+
} else {
|
|
575
|
+
resolve(handleRecalculateStyle($xeGanttView));
|
|
576
|
+
}
|
|
577
|
+
internalData.rceTimeout = setTimeout(function () {
|
|
578
|
+
internalData.rceTimeout = undefined;
|
|
579
|
+
handleRecalculateStyle($xeGanttView);
|
|
580
|
+
}, refreshDelay);
|
|
581
|
+
});
|
|
582
|
+
}
|
|
583
|
+
function computeScrollLoad($xeGanttView) {
|
|
584
|
+
var reactData = $xeGanttView.reactData;
|
|
585
|
+
var internalData = $xeGanttView.internalData;
|
|
586
|
+
return $xeGanttView.$nextTick().then(function () {
|
|
587
|
+
var scrollXLoad = reactData.scrollXLoad;
|
|
588
|
+
var scrollXStore = internalData.scrollXStore;
|
|
589
|
+
// 计算 X 逻辑
|
|
590
|
+
if (scrollXLoad) {
|
|
591
|
+
var _handleVirtualXVisibl = handleVirtualXVisible($xeGanttView),
|
|
592
|
+
toXVisibleIndex = _handleVirtualXVisibl.toVisibleIndex,
|
|
593
|
+
visibleXSize = _handleVirtualXVisibl.visibleSize;
|
|
594
|
+
var offsetXSize = 2;
|
|
595
|
+
scrollXStore.preloadSize = 1;
|
|
596
|
+
scrollXStore.offsetSize = offsetXSize;
|
|
597
|
+
scrollXStore.visibleSize = visibleXSize;
|
|
598
|
+
scrollXStore.endIndex = Math.max(scrollXStore.startIndex + scrollXStore.visibleSize + offsetXSize, scrollXStore.endIndex);
|
|
599
|
+
scrollXStore.visibleStartIndex = Math.max(scrollXStore.startIndex, toXVisibleIndex);
|
|
600
|
+
scrollXStore.visibleEndIndex = Math.min(scrollXStore.endIndex, toXVisibleIndex + visibleXSize);
|
|
601
|
+
updateScrollXData($xeGanttView).then(function () {
|
|
602
|
+
loadScrollXData($xeGanttView);
|
|
603
|
+
});
|
|
604
|
+
} else {
|
|
605
|
+
updateScrollXSpace($xeGanttView);
|
|
606
|
+
}
|
|
607
|
+
});
|
|
608
|
+
}
|
|
609
|
+
function handleVirtualXVisible($xeGanttView) {
|
|
610
|
+
var reactData = $xeGanttView.reactData;
|
|
611
|
+
var internalData = $xeGanttView.internalData;
|
|
612
|
+
var viewCellWidth = reactData.viewCellWidth;
|
|
613
|
+
var elemStore = internalData.elemStore;
|
|
614
|
+
var bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
615
|
+
if (bodyScrollElem) {
|
|
616
|
+
var clientWidth = bodyScrollElem.clientWidth;
|
|
617
|
+
var scrollLeft = bodyScrollElem.scrollLeft;
|
|
618
|
+
var toVisibleIndex = Math.floor(scrollLeft / viewCellWidth) - 1;
|
|
619
|
+
var visibleSize = Math.ceil(clientWidth / viewCellWidth) + 1;
|
|
620
|
+
return {
|
|
621
|
+
toVisibleIndex: Math.max(0, toVisibleIndex),
|
|
622
|
+
visibleSize: Math.max(1, visibleSize)
|
|
623
|
+
};
|
|
624
|
+
}
|
|
625
|
+
return {
|
|
626
|
+
toVisibleIndex: 0,
|
|
627
|
+
visibleSize: 6
|
|
628
|
+
};
|
|
629
|
+
}
|
|
630
|
+
function loadScrollXData($xeGanttView) {
|
|
631
|
+
var reactData = $xeGanttView.reactData;
|
|
632
|
+
var internalData = $xeGanttView.internalData;
|
|
633
|
+
var isScrollXBig = reactData.isScrollXBig;
|
|
634
|
+
var scrollXStore = internalData.scrollXStore;
|
|
635
|
+
var preloadSize = scrollXStore.preloadSize,
|
|
636
|
+
startIndex = scrollXStore.startIndex,
|
|
637
|
+
endIndex = scrollXStore.endIndex,
|
|
638
|
+
offsetSize = scrollXStore.offsetSize;
|
|
639
|
+
var _handleVirtualXVisibl2 = handleVirtualXVisible($xeGanttView),
|
|
640
|
+
toVisibleIndex = _handleVirtualXVisibl2.toVisibleIndex,
|
|
641
|
+
visibleSize = _handleVirtualXVisibl2.visibleSize;
|
|
642
|
+
var offsetItem = {
|
|
643
|
+
startIndex: Math.max(0, isScrollXBig ? toVisibleIndex - 1 : toVisibleIndex - 1 - offsetSize - preloadSize),
|
|
644
|
+
endIndex: isScrollXBig ? toVisibleIndex + visibleSize : toVisibleIndex + visibleSize + offsetSize + preloadSize
|
|
645
|
+
};
|
|
646
|
+
scrollXStore.visibleStartIndex = toVisibleIndex - 1;
|
|
647
|
+
scrollXStore.visibleEndIndex = toVisibleIndex + visibleSize + 1;
|
|
648
|
+
var offsetStartIndex = offsetItem.startIndex,
|
|
649
|
+
offsetEndIndex = offsetItem.endIndex;
|
|
650
|
+
if (toVisibleIndex <= startIndex || toVisibleIndex >= endIndex - visibleSize - 1) {
|
|
651
|
+
if (startIndex !== offsetStartIndex || endIndex !== offsetEndIndex) {
|
|
652
|
+
scrollXStore.startIndex = offsetStartIndex;
|
|
653
|
+
scrollXStore.endIndex = offsetEndIndex;
|
|
654
|
+
updateScrollXData($xeGanttView);
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
function updateScrollXData($xeGanttView) {
|
|
659
|
+
handleTableColumn($xeGanttView);
|
|
660
|
+
updateScrollXSpace($xeGanttView);
|
|
543
661
|
return $xeGanttView.$nextTick();
|
|
544
662
|
}
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
//
|
|
570
|
-
//
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
//
|
|
577
|
-
//
|
|
578
|
-
//
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
//
|
|
583
|
-
//
|
|
584
|
-
//
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
663
|
+
function updateScrollXStatus($xeGanttView) {
|
|
664
|
+
var reactData = $xeGanttView.reactData;
|
|
665
|
+
var scrollXLoad = true;
|
|
666
|
+
reactData.scrollXLoad = scrollXLoad;
|
|
667
|
+
return scrollXLoad;
|
|
668
|
+
}
|
|
669
|
+
function handleTableColumn($xeGanttView) {
|
|
670
|
+
var reactData = $xeGanttView.reactData;
|
|
671
|
+
var internalData = $xeGanttView.internalData;
|
|
672
|
+
var scrollXLoad = reactData.scrollXLoad;
|
|
673
|
+
var visibleColumn = internalData.visibleColumn,
|
|
674
|
+
scrollXStore = internalData.scrollXStore;
|
|
675
|
+
var tableColumn = scrollXLoad ? visibleColumn.slice(scrollXStore.startIndex, scrollXStore.endIndex) : visibleColumn.slice(0);
|
|
676
|
+
reactData.tableColumn = tableColumn;
|
|
677
|
+
}
|
|
678
|
+
function updateScrollXSpace($xeGanttView) {
|
|
679
|
+
var reactData = $xeGanttView.reactData;
|
|
680
|
+
var internalData = $xeGanttView.internalData;
|
|
681
|
+
var scrollXLoad = reactData.scrollXLoad,
|
|
682
|
+
scrollXWidth = reactData.scrollXWidth,
|
|
683
|
+
viewCellWidth = reactData.viewCellWidth;
|
|
684
|
+
var elemStore = internalData.elemStore,
|
|
685
|
+
scrollXStore = internalData.scrollXStore;
|
|
686
|
+
var bodyTableElem = (0, _util.getRefElem)(elemStore['main-body-table']);
|
|
687
|
+
// const headerTableElem = getRefElem(elemStore['main-header-table'])
|
|
688
|
+
// const footerTableElem = getRefElem(elemStore['main-footer-table'])
|
|
689
|
+
var startIndex = scrollXStore.startIndex;
|
|
690
|
+
var xSpaceLeft = 0;
|
|
691
|
+
if (scrollXLoad) {
|
|
692
|
+
xSpaceLeft = Math.max(0, startIndex * viewCellWidth);
|
|
693
|
+
}
|
|
694
|
+
// if (headerTableElem) {
|
|
695
|
+
// headerTableElem.style.transform = `translate(${xSpaceLeft}px, 0px)`
|
|
696
|
+
// }
|
|
697
|
+
if (bodyTableElem) {
|
|
698
|
+
bodyTableElem.style.transform = "translate(".concat(xSpaceLeft, "px, ").concat(reactData.scrollYTop || 0, "px)");
|
|
699
|
+
}
|
|
700
|
+
// if (footerTableElem) {
|
|
701
|
+
// footerTableElem.style.transform = `translate(${xSpaceLeft}px, 0px)`
|
|
702
|
+
// }
|
|
703
|
+
var layoutList = ['header', 'body', 'footer'];
|
|
704
|
+
layoutList.forEach(function (layout) {
|
|
705
|
+
var xSpaceElem = (0, _util.getRefElem)(elemStore["main-".concat(layout, "-xSpace")]);
|
|
706
|
+
if (xSpaceElem) {
|
|
707
|
+
xSpaceElem.style.width = scrollXLoad ? "".concat(scrollXWidth, "px") : '';
|
|
708
|
+
}
|
|
709
|
+
});
|
|
710
|
+
var scrollXSpaceEl = $xeGanttView.$refs.refScrollXSpaceElem;
|
|
711
|
+
if (scrollXSpaceEl) {
|
|
712
|
+
scrollXSpaceEl.style.width = "".concat(scrollXWidth, "px");
|
|
713
|
+
}
|
|
714
|
+
calcScrollbar($xeGanttView);
|
|
715
|
+
return $xeGanttView.$nextTick();
|
|
716
|
+
}
|
|
717
|
+
function triggerScrollXEvent($xeGanttView) {
|
|
718
|
+
loadScrollXData($xeGanttView);
|
|
719
|
+
}
|
|
592
720
|
function updateScrollYSpace($xeGanttView) {
|
|
593
721
|
var reactData = $xeGanttView.reactData;
|
|
594
722
|
var internalData = $xeGanttView.internalData;
|
|
@@ -717,6 +845,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
717
845
|
scrollbarWidth: 0,
|
|
718
846
|
// 横向滚动条的高度
|
|
719
847
|
scrollbarHeight: 0,
|
|
848
|
+
// 最后滚动时间戳
|
|
849
|
+
lastScrollTime: 0,
|
|
720
850
|
lazScrollLoading: false,
|
|
721
851
|
scrollVMLoading: false,
|
|
722
852
|
scrollYHeight: 0,
|
|
@@ -845,11 +975,15 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
845
975
|
},
|
|
846
976
|
triggerBodyScrollEvent: function triggerBodyScrollEvent(evnt) {
|
|
847
977
|
var $xeGanttView = this;
|
|
978
|
+
var reactData = $xeGanttView.reactData;
|
|
848
979
|
var internalData = $xeGanttView.internalData;
|
|
980
|
+
var scrollXLoad = reactData.scrollXLoad;
|
|
849
981
|
var elemStore = internalData.elemStore,
|
|
850
982
|
inVirtualScroll = internalData.inVirtualScroll,
|
|
851
983
|
inHeaderScroll = internalData.inHeaderScroll,
|
|
852
|
-
inFooterScroll = internalData.inFooterScroll
|
|
984
|
+
inFooterScroll = internalData.inFooterScroll,
|
|
985
|
+
lastScrollLeft = internalData.lastScrollLeft,
|
|
986
|
+
lastScrollTop = internalData.lastScrollTop;
|
|
853
987
|
if (inVirtualScroll) {
|
|
854
988
|
return;
|
|
855
989
|
}
|
|
@@ -860,42 +994,49 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
860
994
|
var headerScrollElem = (0, _util.getRefElem)(elemStore['main-header-scroll']);
|
|
861
995
|
var xHandleEl = $xeGanttView.$refs.refScrollXHandleElem;
|
|
862
996
|
var yHandleEl = $xeGanttView.$refs.refScrollYHandleElem;
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
(0, _dom.
|
|
871
|
-
(
|
|
872
|
-
syncTableScrollTop($xeGanttView, currTopNum);
|
|
873
|
-
handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum);
|
|
997
|
+
var scrollLeft = wrapperEl.scrollLeft;
|
|
998
|
+
var scrollTop = wrapperEl.scrollTop;
|
|
999
|
+
var isRollX = scrollLeft !== lastScrollLeft;
|
|
1000
|
+
var isRollY = scrollTop !== lastScrollTop;
|
|
1001
|
+
internalData.inBodyScroll = true;
|
|
1002
|
+
internalData.scrollRenderType = '';
|
|
1003
|
+
if (isRollY) {
|
|
1004
|
+
(0, _dom.setScrollTop)(yHandleEl, scrollTop);
|
|
1005
|
+
syncTableScrollTop($xeGanttView, scrollTop);
|
|
874
1006
|
}
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
if (inVirtualScroll) {
|
|
883
|
-
return;
|
|
884
|
-
}
|
|
885
|
-
if (inHeaderScroll || inBodyScroll) {
|
|
886
|
-
return;
|
|
887
|
-
}
|
|
888
|
-
var wrapperEl = evnt.currentTarget;
|
|
889
|
-
if (wrapperEl) {
|
|
890
|
-
var isRollX = true;
|
|
891
|
-
var isRollY = false;
|
|
892
|
-
var currLeftNum = wrapperEl.scrollLeft;
|
|
893
|
-
handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum);
|
|
1007
|
+
if (isRollX) {
|
|
1008
|
+
internalData.inBodyScroll = true;
|
|
1009
|
+
(0, _dom.setScrollLeft)(xHandleEl, scrollLeft);
|
|
1010
|
+
(0, _dom.setScrollLeft)(headerScrollElem, scrollLeft);
|
|
1011
|
+
if (scrollXLoad) {
|
|
1012
|
+
triggerScrollXEvent($xeGanttView);
|
|
1013
|
+
}
|
|
894
1014
|
}
|
|
1015
|
+
handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, wrapperEl.scrollTop, scrollLeft);
|
|
895
1016
|
},
|
|
1017
|
+
// triggerFooterScrollEvent (evnt: Event) {
|
|
1018
|
+
// const $xeGanttView = this
|
|
1019
|
+
// const internalData = $xeGanttView.internalData
|
|
1020
|
+
// const { inVirtualScroll, inHeaderScroll, inBodyScroll } = internalData
|
|
1021
|
+
// if (inVirtualScroll) {
|
|
1022
|
+
// return
|
|
1023
|
+
// }
|
|
1024
|
+
// if (inHeaderScroll || inBodyScroll) {
|
|
1025
|
+
// return
|
|
1026
|
+
// }
|
|
1027
|
+
// const wrapperEl = evnt.currentTarget as HTMLDivElement
|
|
1028
|
+
// if (wrapperEl) {
|
|
1029
|
+
// const isRollX = true
|
|
1030
|
+
// const isRollY = false
|
|
1031
|
+
// const currLeftNum = wrapperEl.scrollLeft
|
|
1032
|
+
// handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum)
|
|
1033
|
+
// }
|
|
1034
|
+
// },
|
|
896
1035
|
triggerVirtualScrollXEvent: function triggerVirtualScrollXEvent(evnt) {
|
|
897
1036
|
var $xeGanttView = this;
|
|
1037
|
+
var reactData = $xeGanttView.reactData;
|
|
898
1038
|
var internalData = $xeGanttView.internalData;
|
|
1039
|
+
var scrollXLoad = reactData.scrollXLoad;
|
|
899
1040
|
var elemStore = internalData.elemStore,
|
|
900
1041
|
inHeaderScroll = internalData.inHeaderScroll,
|
|
901
1042
|
inBodyScroll = internalData.inBodyScroll;
|
|
@@ -912,6 +1053,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
912
1053
|
internalData.inVirtualScroll = true;
|
|
913
1054
|
(0, _dom.setScrollLeft)(headerScrollElem, currLeftNum);
|
|
914
1055
|
(0, _dom.setScrollLeft)(bodyScrollElem, currLeftNum);
|
|
1056
|
+
if (scrollXLoad) {
|
|
1057
|
+
triggerScrollXEvent($xeGanttView);
|
|
1058
|
+
}
|
|
915
1059
|
handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum);
|
|
916
1060
|
}
|
|
917
1061
|
},
|
|
@@ -938,24 +1082,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
938
1082
|
},
|
|
939
1083
|
handleUpdateSXSpace: function handleUpdateSXSpace() {
|
|
940
1084
|
var $xeGanttView = this;
|
|
941
|
-
|
|
942
|
-
var internalData = $xeGanttView.internalData;
|
|
943
|
-
var scrollXLoad = reactData.scrollXLoad,
|
|
944
|
-
scrollXWidth = reactData.scrollXWidth;
|
|
945
|
-
var elemStore = internalData.elemStore;
|
|
946
|
-
var layoutList = ['header', 'body', 'footer'];
|
|
947
|
-
layoutList.forEach(function (layout) {
|
|
948
|
-
var xSpaceElem = (0, _util.getRefElem)(elemStore["main-".concat(layout, "-xSpace")]);
|
|
949
|
-
if (xSpaceElem) {
|
|
950
|
-
xSpaceElem.style.width = scrollXLoad ? "".concat(scrollXWidth, "px") : '';
|
|
951
|
-
}
|
|
952
|
-
});
|
|
953
|
-
var scrollXSpaceEl = $xeGanttView.$refs.refScrollXSpaceElem;
|
|
954
|
-
if (scrollXSpaceEl) {
|
|
955
|
-
scrollXSpaceEl.style.width = "".concat(scrollXWidth, "px");
|
|
956
|
-
}
|
|
957
|
-
calcScrollbar($xeGanttView);
|
|
958
|
-
return $xeGanttView.$nextTick();
|
|
1085
|
+
return updateScrollXSpace($xeGanttView);
|
|
959
1086
|
},
|
|
960
1087
|
handleUpdateSYSpace: function handleUpdateSYSpace() {
|
|
961
1088
|
var $xeGanttView = this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_dom=require("../../ui/src/dom"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body")),_ganttFooter=_interopRequireDefault(require("./gantt-footer"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var l;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(l="Object"===(l={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:l)||"Set"===l?Array.from(e):"Arguments"===l||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(l)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var l=0,r=Array(t);l<t;l++)r[l]=e[l];return r}function _iterableToArrayLimit(e,t){var l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var r,a,o,n,i=[],c=!0,s=!1;try{if(o=(l=l.call(e)).next,0===t){if(Object(l)!==l)return;c=!1}else for(;!(c=(r=o.call(l)).done)&&(i.push(r.value),i.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=l.return&&(n=l.return(),Object(n)!==n))return}finally{if(s)throw a}}return i}}function _arrayWithHoles(e){if(Array.isArray(e))return e}var globalEvents=_core.VxeUI.globalEvents;function createInternalData(){return{xeTable:null,startMaps:{},endMaps:{},chartMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},scrollYStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0}}}var maxYHeight=5e6;function parseStringDate(e,t){e=e.$xeGantt.computeTaskOpts.dateFormat;return _xeUtils.default.toStringDate(t,e||null)}function handleParseColumn(o){var e=o.$xeGantt,t=o.reactData,l=o.internalData,r=e.reactData,a=e.treeConfig,r=r.taskScaleList,n=t.minViewDate,i=t.maxViewDate,c=_xeUtils.default.last(r),s=[],d=[];if(c&&n&&i){var u=c.type,f=r.find(function(e){return"week"===e.type}),h=864e5;switch(c.type){case"hour":h=36e5;break;case"minute":h=6e4;break;case"second":h=1e3}var p=n.getTime(),m=i.getTime()-n.getTime(),U=Math.max(5,Math.floor(m/h)+1);switch(c.type){case"day":case"date":if(948672e5<m)return t.tableColumn=[],void(t.headerGroups=[]);break;case"hour":if(80352e5<m)return t.tableColumn=[],void(t.headerGroups=[]);break;case"minute":if(2592e5<m)return t.tableColumn=[],void(t.headerGroups=[]);break;case"second":if(108e5<m)return t.tableColumn=[],void(t.headerGroups=[])}for(var v={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},S={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}},y=function(e,t,l){var r,a;u!==e&&(t=t[e],r="".concat(t.field),(a=S[e][r])||(S[e][r]=a=t,v[e].push(a)),a)&&(a.children||(a.children=[]),a.children.push(l))},g=0;g<U;g++){var x=new Date(p+g*h),b=_slicedToArray(_xeUtils.default.toDateString(x,"yyyy-M-d-H-m-s").split("-"),6),_=b[0],w=b[1],E=b[2],T=b[3],D=b[4],b=b[5],Y=x.getDay(),L=Y+1,H=Math.ceil((x.getMonth()+1)/3),x=_xeUtils.default.getYearWeek(x,f?f.startDay:void 0),Y={yy:_,M:w,d:E,H:T,m:D,s:b,q:H,W:x,E:L,e:Y},H={year:{field:_,title:_,dateObj:Y},quarter:{field:"".concat(_,"_q").concat(H),title:"".concat(H),dateObj:Y},month:{field:"".concat(_,"_").concat(w),title:w,dateObj:Y},week:{field:"".concat(_,"_W").concat(x),title:"".concat(x),dateObj:Y},day:{field:"".concat(_,"_").concat(w,"_").concat(E,"_E").concat(L),title:"".concat(L),dateObj:Y},date:{field:"".concat(_,"_").concat(w,"_").concat(E),title:E,dateObj:Y},hour:{field:"".concat(_,"_").concat(w,"_").concat(E,"_").concat(T),title:T,dateObj:Y},minute:{field:"".concat(_,"_").concat(w,"_").concat(E,"_").concat(T,"_").concat(D),title:D,dateObj:Y},second:{field:"".concat(_,"_").concat(w,"_").concat(E,"_").concat(T,"_").concat(D,"_").concat(b),title:b,dateObj:Y}},x=H[u];c.level<19&&y("year",H,x),c.level<17&&y("quarter",H,x),c.level<14&&y("month",H,x),c.level<13&&y("week",H,x),c.level<11&&y("day",H,x),c.level<12&&y("date",H,x),c.level<7&&y("hour",H,x),c.level<5&&y("minute",H,x),s.push(x)}r.forEach(function(e){var t;e.type===u?d.push({scaleItem:e,columns:s}):((t=v[e.type]||[])&&t.forEach(function(e){e.childCount=e.children?e.children.length:0,e.children=void 0}),d.push({scaleItem:e,columns:t}))});var R,C,X,$,V,k=l.xeTable;k&&(R=e.computeStartField,C=e.computeEndField,i=k.afterFullData,e=(r=k.computeTreeOpts).transform,X=r.children||r.childrenField,$={},V=function(e){var t,l=k.getRowid(e),r=_xeUtils.default.get(e,R),a=_xeUtils.default.get(e,C);r&&a&&(r=parseStringDate(o,r),a=parseStringDate(o,a),t=Math.floor((r.getTime()-n.getTime())/h),a=Math.floor((a.getTime()-r.getTime())/h)+1,$[l]={row:e,rowid:l,oLeftSize:t,oWidthSize:a})},a?_xeUtils.default.eachTree(k.afterTreeFullData,V,{children:e?r.mapChildrenField:X}):i.forEach(V),l.chartMaps=$)}t.tableColumn=s,t.headerGroups=d}function handleUpdateData(l){var r,a,e,t,o,n,i=l.$xeGantt,c=l.reactData,s=l.internalData,d=i.treeConfig,u=s.xeTable,f=null,h=null;u&&(r=i.computeStartField,a=i.computeEndField,i=u.afterFullData,t=(e=u.computeTreeOpts).transform,o=e.children||e.childrenField,n=function(e){var t=_xeUtils.default.get(e,r),e=_xeUtils.default.get(e,a);t&&e&&(t=parseStringDate(l,t),(!f||f.getTime()>t.getTime())&&(f=t),t=parseStringDate(l,e),!h||h.getTime()<t.getTime())&&(h=t)},d?_xeUtils.default.eachTree(u.afterTreeFullData,n,{children:t?e.mapChildrenField:o}):i.forEach(n)),c.minViewDate=f,c.maxViewDate=h,s.startMaps={},s.endMaps={},handleParseColumn(l)}function calcScrollbar(e){var t=e.$xeGantt,l=e.reactData,r=l.scrollXWidth,a=l.scrollYHeight,o=e.internalData.elemStore,t=t.computeScrollbarOpts,o=(0,_util.getRefElem)(o["main-body-wrapper"]),n=e.$refs.refScrollXHandleElem,e=e.$refs.refScrollYHandleElem;o&&(a=a>o.clientHeight,e&&(l.scrollbarWidth=t.width||e.offsetWidth-e.clientWidth||14),l.overflowY=a,e=r>o.clientWidth,n&&(l.scrollbarHeight=t.height||n.offsetHeight-n.clientHeight||14),l.overflowX=e)}function updateChart(e){var t=e.reactData,l=e.internalData,r=t.viewCellWidth,t=l.elemStore,a=l.chartMaps,l=(0,_util.getRefElem)(t["main-chart-wrapper"]);return l&&_xeUtils.default.arrayEach(l.children,function(e){var t=e.children[0];t&&(e=(e=e.getAttribute("rowid"))?a[e]:null)&&(t.style.left="".concat(r*e.oLeftSize,"px"),t.style.width="".concat(r*e.oWidthSize,"px"))}),e.$nextTick()}function updateStyle(e){var t,l,r,a,o,n,i,c,s,d=e.$xeGantt,u=e.reactData,f=e.internalData,h=u.scrollbarWidth,p=u.tableColumn,m=u.headerGroups,v=f.elemStore,f=f.xeTable,S=e.$refs.refElem;if(S&&S.clientHeight)return a=d.computeScrollbarOpts,c=d.computeScrollbarXToTop,n=e.$refs.refScrollXLeftCornerElem,i=e.$refs.refScrollXRightCornerElem,o=e.$refs.refScrollXVirtualElem,h=h,s=u.scrollbarHeight,r=l=t=0,f&&(t=f.tBodyHeight,l=f.tHeaderHeight,r=f.tFooterHeight),f="visible",(d.computeScrollbarYToLeft||a.y&&!1===a.y.visible)&&(h=0,f="hidden"),(d=(0,_util.getRefElem)(v["main-header-scroll"]))&&(d.style.height="".concat(l,"px"),d.style.setProperty("--vxe-ui-gantt-view-cell-height","".concat(l/m.length,"px"))),(a=(0,_util.getRefElem)(v["main-body-scroll"]))&&(a.style.height="".concat(t,"px")),(d=(0,_util.getRefElem)(v["main-footer-scroll"]))&&(d.style.height="".concat(r,"px")),o&&(o.style.height="".concat(s,"px"),o.style.visibility="visible"),(m=e.$refs.refScrollXWrapperElem)&&(m.style.left=c?"".concat(h,"px"):"",m.style.width="".concat(S.clientWidth-h,"px")),n&&(n.style.width=c?"".concat(h,"px"):"",n.style.display=c&&s?"block":""),i&&(i.style.width=c?"":"".concat(h,"px"),i.style.display=!c&&s?"block":""),(d=e.$refs.refScrollYVirtualElem)&&(d.style.width="".concat(h,"px"),d.style.height="".concat(t+l+r,"px"),d.style.visibility=f),(o=e.$refs.refScrollYTopCornerElem)&&(o.style.height="".concat(l,"px"),o.style.display=l?"block":""),(m=e.$refs.refScrollYWrapperElem)&&(m.style.height="".concat(t,"px"),m.style.top="".concat(l,"px")),(S=e.$refs.refScrollYBottomCornerElem)&&(S.style.height="".concat(r,"px"),S.style.top="".concat(l+t,"px"),S.style.display=r?"block":""),(n=e.$refs.refColInfoElem)&&(u.viewCellWidth=n.clientWidth||40),i=u.viewCellWidth*p.length,a&&0<(s=(c=a.clientWidth)-i)&&(u.viewCellWidth+=Math.floor(s/p.length),i=c),h=(0,_util.getRefElem)(v["main-header-table"]),d=(0,_util.getRefElem)(v["main-body-table"]),h&&(h.style.width="".concat(i,"px")),d&&(d.style.width="".concat(i,"px")),u.scrollXWidth=i,updateChart(e)}function _handleLazyRecalculate(e){return calcScrollbar(e),updateStyle(e),updateChart(e),e.$nextTick()}function updateScrollYSpace(e){var t=e.reactData,l=e.internalData,r=t.scrollYLoad,a=t.overflowY,o=l.elemStore,l=l.xeTable,n=(0,_util.getRefElem)(o["main-body-scroll"]),i=(0,_util.getRefElem)(o["main-body-table"]),c=0,s=0,d=!1,l=(l&&(c=l.scrollYTop,s=l.scrollYHeight,d=l.isScrollYBig),s),u=c,f=0,n=(n&&(f=n.clientHeight),d&&(u=n&&i&&n.scrollTop+f>=maxYHeight?maxYHeight-i.clientHeight:c/(s-f)*(maxYHeight-f),l=maxYHeight),r&&a||(u=0),(0,_util.getRefElem)(o["main-chart-wrapper"])),c=(i&&(i.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),n&&(n.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),(0,_util.getRefElem)(o["main-body-ySpace"])),f=(c&&(c.style.height=l?"".concat(l,"px"):""),e.$refs.refScrollYSpaceElem);return f&&(f.style.height=l?"".concat(l,"px"):""),t.scrollYTop=u,t.scrollYHeight=s,t.isScrollYBig=d,calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function checkLastSyncScroll(e,t,l){var r=e.reactData,a=e.internalData,e=a.lcsTimeout;r.lazScrollLoading=!0,e&&clearTimeout(e),a.lcsTimeout=setTimeout(function(){a.lcsRunTime=Date.now(),a.lcsTimeout=void 0,a.intoRunScroll=!1,a.inVirtualScroll=!1,a.inWheelScroll=!1,a.inHeaderScroll=!1,a.inBodyScroll=!1,a.inFooterScroll=!1,r.lazScrollLoading=!1},200)}function handleScrollEvent(e,t,l,r,a,o){checkLastSyncScroll(e,r,l)}function syncTableScrollTop(e,t){var e=e.internalData.xeTable;e&&(e=e.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]))&&(e.scrollTop=t)}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",inject:{$xeGantt:{default:null}},provide:function(){return{$xeGanttView:this}},props:{},data:function(){return{xID:_xeUtils.default.uniqueId(),reactData:{scrollXLoad:!1,scrollYLoad:!1,overflowY:!0,overflowX:!0,scrollbarWidth:0,scrollbarHeight:0,lazScrollLoading:!1,scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,minViewDate:null,maxViewDate:null,tableData:[],tableColumn:[],headerGroups:[],viewCellWidth:20},internalData:createInternalData()}},computed:Object.assign({},{}),methods:{refreshData:function(){return handleUpdateData(this),_handleLazyRecalculate(this)},updateViewData:function(){var e=this.reactData,t=this.internalData.xeTable;return t&&(t=t.tableData,e.tableData=t),this.$nextTick()},connectUpdate:function(e){var e=e.$table,t=this.internalData;return e&&(t.xeTable=e),this.$nextTick()},handleUpdateStyle:function(){return updateStyle(this)},handleLazyRecalculate:function(){return _handleLazyRecalculate(this)},handleUpdateCurrentRow:function(e){var t,l=this.internalData.xeTable,r=this.$refs.refElem;l&&r&&(e?(t=l.highlightCurrentRow,(l.computeRowOpts.isCurrent||t)&&_xeUtils.default.arrayEach(r.querySelectorAll('[rowid="'.concat(l.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--current")})):_xeUtils.default.arrayEach(r.querySelectorAll(".row--current"),function(e){return(0,_dom.removeClass)(e,"row--current")}))},handleUpdateHoverRow:function(e){var t=this.internalData.xeTable,l=this.$refs.refElem;t&&l&&(e?_xeUtils.default.arrayEach(l.querySelectorAll('.vxe-body--row[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--hover")}):_xeUtils.default.arrayEach(l.querySelectorAll(".vxe-body--row.row--hover"),function(e){return(0,_dom.removeClass)(e,"row--hover")}))},triggerHeaderScrollEvent:function(e){var t,l,r,a=this.internalData,o=a.elemStore;a.inVirtualScroll||a.inBodyScroll||a.inFooterScroll||(t=e.currentTarget,o=(0,_util.getRefElem)(o["main-body-scroll"]),l=this.$refs.refScrollXHandleElem,o&&t&&(r=t.scrollLeft,a.inHeaderScroll=!0,(0,_dom.setScrollLeft)(l,r),(0,_dom.setScrollLeft)(o,r),handleScrollEvent(this,e,!1,!0,t.scrollTop,r)))},triggerBodyScrollEvent:function(e){var t,l,r,a,o,n=this,i=n.internalData,c=i.elemStore;i.inVirtualScroll||i.inHeaderScroll||i.inFooterScroll||(t=e.currentTarget,c=(0,_util.getRefElem)(c["main-header-scroll"]),l=n.$refs.refScrollXHandleElem,r=n.$refs.refScrollYHandleElem,c&&t&&(a=t.scrollLeft,o=t.scrollTop,i.inBodyScroll=!0,(0,_dom.setScrollLeft)(l,a),(0,_dom.setScrollLeft)(c,a),(0,_dom.setScrollTop)(r,o),syncTableScrollTop(n,o),handleScrollEvent(n,e,!0,!0,t.scrollTop,a)))},triggerFooterScrollEvent:function(e){var t,l=this.internalData;l.inVirtualScroll||l.inHeaderScroll||l.inBodyScroll||(l=e.currentTarget)&&(t=l.scrollLeft,handleScrollEvent(this,e,!1,!0,l.scrollTop,t))},triggerVirtualScrollXEvent:function(e){var t,l,r,a=this.internalData,o=a.elemStore;a.inHeaderScroll||a.inBodyScroll||(t=e.currentTarget,l=(0,_util.getRefElem)(o["main-header-scroll"]),o=(0,_util.getRefElem)(o["main-body-scroll"]),t&&(r=t.scrollLeft,a.inVirtualScroll=!0,(0,_dom.setScrollLeft)(l,r),(0,_dom.setScrollLeft)(o,r),handleScrollEvent(this,e,!1,!0,t.scrollTop,r)))},triggerVirtualScrollYEvent:function(e){var t,l,r=this.internalData,a=r.elemStore;r.inHeaderScroll||r.inBodyScroll||(t=e.currentTarget,a=(0,_util.getRefElem)(a["main-body-scroll"]),t&&(l=t.scrollTop,r.inVirtualScroll=!0,(0,_dom.setScrollTop)(a,l),syncTableScrollTop(this,l),handleScrollEvent(this,e,!0,!1,l,t.scrollLeft)))},handleUpdateSXSpace:function(){var e=this,t=e.reactData,l=t.scrollXLoad,r=t.scrollXWidth,a=e.internalData.elemStore,t=(["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(a["main-".concat(e,"-xSpace")]);e&&(e.style.width=l?"".concat(r,"px"):"")}),e.$refs.refScrollXSpaceElem);return t&&(t.style.width="".concat(r,"px")),calcScrollbar(e),e.$nextTick()},handleUpdateSYSpace:function(){return updateScrollYSpace(this)},handleUpdateSYStatus:function(e){this.reactData.scrollYLoad=e},handleGlobalResizeEvent:function(){_handleLazyRecalculate(this)},renderScrollX:function(e){return e("div",{key:"vsx",ref:"refScrollXVirtualElem",class:"vxe-gantt-view--scroll-x-virtual"},[e("div",{ref:"refScrollXLeftCornerElem",class:"vxe-gantt-view--scroll-x-left-corner"}),e("div",{ref:"refScrollXWrapperElem",class:"vxe-gantt-view--scroll-x-wrapper"},[e("div",{ref:"refScrollXHandleElem",class:"vxe-gantt-view--scroll-x-handle",on:{scroll:this.triggerVirtualScrollXEvent}},[e("div",{ref:"refScrollXSpaceElem",class:"vxe-gantt-view--scroll-x-space"})])]),e("div",{ref:"refScrollXRightCornerElem",class:"vxe-gantt-view--scroll-x-right-corner"})])},renderScrollY:function(e){return e("div",{ref:"refScrollYVirtualElem",class:"vxe-gantt-view--scroll-y-virtual"},[e("div",{ref:"refScrollYTopCornerElem",class:"vxe-gantt-view--scroll-y-top-corner"}),e("div",{ref:"refScrollYWrapperElem",class:"vxe-gantt-view--scroll-y-wrapper"},[e("div",{ref:"refScrollYHandleElem",class:"vxe-gantt-view--scroll-y-handle",on:{scroll:this.triggerVirtualScrollYEvent}},[e("div",{ref:"refScrollYSpaceElem",class:"vxe-gantt-view--scroll-y-space"})])]),e("div",{ref:"refScrollYBottomCornerElem",class:"vxe-gantt-view--scroll-y-bottom-corner"})])},renderViewport:function(e){return e("div",{class:"vxe-gantt-view--viewport-wrapper"},[e(_ganttHeader.default),e(_ganttBody.default),e(_ganttFooter.default)])},renderBody:function(e){var t=this;return e("div",{class:"vxe-gantt-view--layout-wrapper"},t.$xeGantt.computeScrollbarYToLeft?[t.renderScrollY(e),t.renderViewport(e)]:[t.renderViewport(e),t.renderScrollY(e)])},renderVN:function(e){var t=this,l=t.$xeGantt,r=t.reactData,a=r.overflowX;return e("div",{ref:"refElem",class:["vxe-gantt-view",{"is--scroll-y":r.overflowY,"is--scroll-x":a,"is--virtual-x":r.scrollXLoad,"is--virtual-y":r.scrollYLoad}]},[e("div",{class:"vxe-gantt-view--render-wrapper"},l.computeScrollbarXToTop?[t.renderScrollX(e),t.renderBody(e)]:[t.renderBody(e),t.renderScrollX(e)]),e("div",{class:"vxe-gantt-view--render-vars"},[e("div",{ref:"refColInfoElem",class:"vxe-gantt-view--column-info"})])])}},watch:{"reactData.tableData":function(){handleUpdateData(this)}},mounted:function(){globalEvents.on(this,"resize",this.handleGlobalResizeEvent)},beforeDestroy:function(){var e=this.internalData;globalEvents.off(this,"keydown"),_xeUtils.default.assign(e,createInternalData())},render:function(e){return this.renderVN(e)}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_dom=require("../../ui/src/dom"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body")),_ganttFooter=_interopRequireDefault(require("./gantt-footer"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var l;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(l="Object"===(l={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:l)||"Set"===l?Array.from(e):"Arguments"===l||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(l)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var l=0,r=Array(t);l<t;l++)r[l]=e[l];return r}function _iterableToArrayLimit(e,t){var l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var r,a,o,n,i=[],c=!0,s=!1;try{if(o=(l=l.call(e)).next,0===t){if(Object(l)!==l)return;c=!1}else for(;!(c=(r=o.call(l)).done)&&(i.push(r.value),i.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=l.return&&(n=l.return(),Object(n)!==n))return}finally{if(s)throw a}}return i}}function _arrayWithHoles(e){if(Array.isArray(e))return e}var globalEvents=_core.VxeUI.globalEvents;function createInternalData(){return{xeTable:null,visibleColumn:[],startMaps:{},endMaps:{},chartMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},lastScrollTop:0,lastScrollLeft:0}}var maxYHeight=5e6;function parseStringDate(e,t){e=e.$xeGantt.computeTaskOpts.dateFormat;return _xeUtils.default.toStringDate(t,e||null)}function handleParseColumn(o){var e=o.$xeGantt,t=o.reactData,l=o.internalData,r=e.reactData,a=e.treeConfig,r=r.taskScaleList,n=t.minViewDate,i=t.maxViewDate,c=l.scrollXStore,s=_xeUtils.default.last(r),d=[],u=[];if(c.startIndex=0,c.endIndex=1,s&&n&&i){var f=s.type,h=r.find(function(e){return"week"===e.type}),m=864e5;switch(s.type){case"hour":m=36e5;break;case"minute":m=6e4;break;case"second":m=1e3}for(var p=n.getTime(),c=i.getTime()-n.getTime(),S=Math.max(5,Math.floor(c/m)+1),v={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},g={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}},y=function(e,t,l){var r,a;f!==e&&(t=t[e],r="".concat(t.field),(a=g[e][r])||(g[e][r]=a=t,v[e].push(a)),a)&&(a.children||(a.children=[]),a.children.push(l))},x=0;x<S;x++){var b=new Date(p+x*m),_=_slicedToArray(_xeUtils.default.toDateString(b,"yyyy-M-d-H-m-s").split("-"),6),T=_[0],w=_[1],D=_[2],E=_[3],X=_[4],_=_[5],L=b.getDay(),R=L+1,Y=Math.ceil((b.getMonth()+1)/3),b=_xeUtils.default.getYearWeek(b,h?h.startDay:void 0),L={yy:T,M:w,d:D,H:E,m:X,s:_,q:Y,W:b,E:R,e:L},Y={year:{field:T,title:T,dateObj:L},quarter:{field:"".concat(T,"_q").concat(Y),title:"".concat(Y),dateObj:L},month:{field:"".concat(T,"_").concat(w),title:w,dateObj:L},week:{field:"".concat(T,"_W").concat(b),title:"".concat(b),dateObj:L},day:{field:"".concat(T,"_").concat(w,"_").concat(D,"_E").concat(R),title:"".concat(R),dateObj:L},date:{field:"".concat(T,"_").concat(w,"_").concat(D),title:D,dateObj:L},hour:{field:"".concat(T,"_").concat(w,"_").concat(D,"_").concat(E),title:E,dateObj:L},minute:{field:"".concat(T,"_").concat(w,"_").concat(D,"_").concat(E,"_").concat(X),title:X,dateObj:L},second:{field:"".concat(T,"_").concat(w,"_").concat(D,"_").concat(E,"_").concat(X,"_").concat(_),title:_,dateObj:L}},b=Y[f];s.level<19&&y("year",Y,b),s.level<17&&y("quarter",Y,b),s.level<14&&y("month",Y,b),s.level<13&&y("week",Y,b),s.level<11&&y("day",Y,b),s.level<12&&y("date",Y,b),s.level<7&&y("hour",Y,b),s.level<5&&y("minute",Y,b),d.push(b)}r.forEach(function(e){var t;e.type===f?u.push({scaleItem:e,columns:d}):((t=v[e.type]||[])&&t.forEach(function(e){e.childCount=e.children?e.children.length:0,e.children=void 0}),u.push({scaleItem:e,columns:t}))});var I,C,H,V,$=l.xeTable;$&&(I=e.computeStartField,C=e.computeEndField,i=$.afterFullData,r=(c=$.computeTreeOpts).transform,e=c.children||c.childrenField,H={},V=function(e){var t,l=$.getRowid(e),r=_xeUtils.default.get(e,I),a=_xeUtils.default.get(e,C);r&&a&&(r=parseStringDate(o,r),a=parseStringDate(o,a),t=Math.floor((r.getTime()-n.getTime())/m),a=Math.floor((a.getTime()-r.getTime())/m)+1,H[l]={row:e,rowid:l,oLeftSize:t,oWidthSize:a})},a?_xeUtils.default.eachTree($.afterTreeFullData,V,{children:r?c.mapChildrenField:e}):i.forEach(V),l.chartMaps=H)}l.visibleColumn=d,t.headerGroups=u,updateScrollXStatus(o),handleTableColumn(o)}function handleUpdateData(l){var r,a,e,t,o,n,i=l.$xeGantt,c=l.reactData,s=l.internalData,d=i.treeConfig,u=s.xeTable,f=null,h=null;u&&(r=i.computeStartField,a=i.computeEndField,i=u.afterFullData,t=(e=u.computeTreeOpts).transform,o=e.children||e.childrenField,n=function(e){var t=_xeUtils.default.get(e,r),e=_xeUtils.default.get(e,a);t&&e&&(t=parseStringDate(l,t),(!f||f.getTime()>t.getTime())&&(f=t),t=parseStringDate(l,e),!h||h.getTime()<t.getTime())&&(h=t)},d?_xeUtils.default.eachTree(u.afterTreeFullData,n,{children:t?e.mapChildrenField:o}):i.forEach(n)),c.minViewDate=f,c.maxViewDate=h,s.startMaps={},s.endMaps={},handleParseColumn(l)}function calcScrollbar(e){var t=e.$xeGantt,l=e.reactData,r=l.scrollXWidth,a=l.scrollYHeight,o=e.internalData.elemStore,t=t.computeScrollbarOpts,o=(0,_util.getRefElem)(o["main-body-wrapper"]),n=e.$refs.refScrollXHandleElem,e=e.$refs.refScrollYHandleElem;o&&(a=a>o.clientHeight,e&&(l.scrollbarWidth=t.width||e.offsetWidth-e.clientWidth||14),l.overflowY=a,e=r>o.clientWidth,n&&(l.scrollbarHeight=t.height||n.offsetHeight-n.clientHeight||14),l.overflowX=e)}function updateChart(e){var t=e.reactData,l=e.internalData,r=t.viewCellWidth,t=l.elemStore,a=l.chartMaps,l=(0,_util.getRefElem)(t["main-chart-wrapper"]);return l&&_xeUtils.default.arrayEach(l.children,function(e){var t=e.children[0];t&&(e=(e=e.getAttribute("rowid"))?a[e]:null)&&(t.style.left="".concat(r*e.oLeftSize,"px"),t.style.width="".concat(r*e.oWidthSize,"px"))}),e.$nextTick()}function updateStyle(e){var t,l,r,a,o,n,i,c,s,d=e.$xeGantt,u=e.reactData,f=e.internalData,h=u.scrollbarWidth,m=u.headerGroups,p=u.tableColumn,S=f.elemStore,v=f.visibleColumn,f=f.xeTable,g=e.$refs.refElem;if(g&&g.clientHeight)return a=d.computeScrollbarOpts,i=d.computeScrollbarXToTop,n=e.$refs.refScrollXLeftCornerElem,o=e.$refs.refScrollXRightCornerElem,s=e.$refs.refScrollXVirtualElem,h=h,c=u.scrollbarHeight,r=l=t=0,f&&(t=f.tBodyHeight,l=f.tHeaderHeight,r=f.tFooterHeight),f="visible",(d.computeScrollbarYToLeft||a.y&&!1===a.y.visible)&&(h=0,f="hidden"),(d=(0,_util.getRefElem)(S["main-header-scroll"]))&&(d.style.height="".concat(l,"px"),d.style.setProperty("--vxe-ui-gantt-view-cell-height","".concat(l/m.length,"px"))),(a=(0,_util.getRefElem)(S["main-body-scroll"]))&&(a.style.height="".concat(t,"px")),(d=(0,_util.getRefElem)(S["main-footer-scroll"]))&&(d.style.height="".concat(r,"px")),s&&(s.style.height="".concat(c,"px"),s.style.visibility="visible"),(m=e.$refs.refScrollXWrapperElem)&&(m.style.left=i?"".concat(h,"px"):"",m.style.width="".concat(g.clientWidth-h,"px")),n&&(n.style.width=i?"".concat(h,"px"):"",n.style.display=i&&c?"block":""),o&&(o.style.width=i?"":"".concat(h,"px"),o.style.display=!i&&c?"block":""),(d=e.$refs.refScrollYVirtualElem)&&(d.style.width="".concat(h,"px"),d.style.height="".concat(t+l+r,"px"),d.style.visibility=f),(s=e.$refs.refScrollYTopCornerElem)&&(s.style.height="".concat(l,"px"),s.style.display=l?"block":""),(m=e.$refs.refScrollYWrapperElem)&&(m.style.height="".concat(t,"px"),m.style.top="".concat(l,"px")),(g=e.$refs.refScrollYBottomCornerElem)&&(g.style.height="".concat(r,"px"),g.style.top="".concat(l+t,"px"),g.style.display=r?"block":""),n=40,i=(n=(o=e.$refs.refColInfoElem)?o.clientWidth||40:n)*v.length,a&&0<(h=(c=a.clientWidth)-i)&&(n+=Math.floor(h/v.length),i=c),u.viewCellWidth=n,d=(0,_util.getRefElem)(S["main-header-table"]),f=(0,_util.getRefElem)(S["main-body-table"]),s=n*p.length,d&&(d.style.width="".concat(i,"px")),f&&(f.style.width="".concat(s,"px")),u.scrollXWidth=i,updateChart(e)}function handleRecalculateStyle(e){var t=e.internalData,l=e.$refs.refElem;return t.rceRunTime=Date.now(),l&&l.clientWidth?(calcScrollbar(e),updateStyle(e),updateChart(e),computeScrollLoad(e)):e.$nextTick()}function _handleLazyRecalculate(o){var n=o.internalData;return new Promise(function(e){var t=n.rceTimeout,l=n.rceRunTime,r=n.xeTable,a=50;r&&(a=r.computeResizeOpts.refreshDelay||50),!t||(clearTimeout(t),l&&l+(a-5)<Date.now())?e(handleRecalculateStyle(o)):o.$nextTick(function(){e()}),n.rceTimeout=setTimeout(function(){n.rceTimeout=void 0,handleRecalculateStyle(o)},a)})}function computeScrollLoad(r){var a=r.reactData,o=r.internalData;return r.$nextTick().then(function(){var e,t=a.scrollXLoad,l=o.scrollXStore;t?(e=(t=handleVirtualXVisible(r)).toVisibleIndex,t=t.visibleSize,l.preloadSize=1,l.offsetSize=2,l.visibleSize=t,l.endIndex=Math.max(l.startIndex+l.visibleSize+2,l.endIndex),l.visibleStartIndex=Math.max(l.startIndex,e),l.visibleEndIndex=Math.min(l.endIndex,e+t),updateScrollXData(r).then(function(){loadScrollXData(r)})):updateScrollXSpace(r)})}function handleVirtualXVisible(e){var t,l=e.reactData.viewCellWidth,e=e.internalData.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]);return e?(t=e.clientWidth,e=e.scrollLeft,e=Math.floor(e/l)-1,t=Math.ceil(t/l)+1,{toVisibleIndex:Math.max(0,e),visibleSize:Math.max(1,t)}):{toVisibleIndex:0,visibleSize:6}}function loadScrollXData(e){var t=e.reactData.isScrollXBig,l=e.internalData.scrollXStore,r=l.preloadSize,a=l.startIndex,o=l.endIndex,n=l.offsetSize,i=handleVirtualXVisible(e),c=i.toVisibleIndex,i=i.visibleSize,t={startIndex:Math.max(0,t?c-1:c-1-n-r),endIndex:t?c+i:c+i+n+r},n=(l.visibleStartIndex=c-1,l.visibleEndIndex=c+i+1,t.startIndex),r=t.endIndex;!(c<=a||o-i-1<=c)||a===n&&o===r||(l.startIndex=n,l.endIndex=r,updateScrollXData(e))}function updateScrollXData(e){return handleTableColumn(e),updateScrollXSpace(e),e.$nextTick()}function updateScrollXStatus(e){return e.reactData.scrollXLoad=!0}function handleTableColumn(e){var t=e.reactData,e=e.internalData,l=t.scrollXLoad,r=e.visibleColumn,e=e.scrollXStore,l=l?r.slice(e.startIndex,e.endIndex):r.slice(0);t.tableColumn=l}function updateScrollXSpace(e){var t=e.reactData,l=e.internalData,r=t.scrollXLoad,a=t.scrollXWidth,o=t.viewCellWidth,n=l.elemStore,l=l.scrollXStore,i=(0,_util.getRefElem)(n["main-body-table"]),l=l.startIndex,c=0,l=(r&&(c=Math.max(0,l*o)),i&&(i.style.transform="translate(".concat(c,"px, ").concat(t.scrollYTop||0,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(n["main-".concat(e,"-xSpace")]);e&&(e.style.width=r?"".concat(a,"px"):"")}),e.$refs.refScrollXSpaceElem);return l&&(l.style.width="".concat(a,"px")),calcScrollbar(e),e.$nextTick()}function triggerScrollXEvent(e){loadScrollXData(e)}function updateScrollYSpace(e){var t=e.reactData,l=e.internalData,r=t.scrollYLoad,a=t.overflowY,o=l.elemStore,l=l.xeTable,n=(0,_util.getRefElem)(o["main-body-scroll"]),i=(0,_util.getRefElem)(o["main-body-table"]),c=0,s=0,d=!1,l=(l&&(c=l.scrollYTop,s=l.scrollYHeight,d=l.isScrollYBig),s),u=c,f=0,n=(n&&(f=n.clientHeight),d&&(u=n&&i&&n.scrollTop+f>=maxYHeight?maxYHeight-i.clientHeight:c/(s-f)*(maxYHeight-f),l=maxYHeight),r&&a||(u=0),(0,_util.getRefElem)(o["main-chart-wrapper"])),c=(i&&(i.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),n&&(n.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),(0,_util.getRefElem)(o["main-body-ySpace"])),f=(c&&(c.style.height=l?"".concat(l,"px"):""),e.$refs.refScrollYSpaceElem);return f&&(f.style.height=l?"".concat(l,"px"):""),t.scrollYTop=u,t.scrollYHeight=s,t.isScrollYBig=d,calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function checkLastSyncScroll(e,t,l){var r=e.reactData,a=e.internalData,e=a.lcsTimeout;r.lazScrollLoading=!0,e&&clearTimeout(e),a.lcsTimeout=setTimeout(function(){a.lcsRunTime=Date.now(),a.lcsTimeout=void 0,a.intoRunScroll=!1,a.inVirtualScroll=!1,a.inWheelScroll=!1,a.inHeaderScroll=!1,a.inBodyScroll=!1,a.inFooterScroll=!1,r.lazScrollLoading=!1},200)}function handleScrollEvent(e,t,l,r,a,o){checkLastSyncScroll(e,r,l)}function syncTableScrollTop(e,t){var e=e.internalData.xeTable;e&&(e=e.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]))&&(e.scrollTop=t)}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",inject:{$xeGantt:{default:null}},provide:function(){return{$xeGanttView:this}},props:{},data:function(){return{xID:_xeUtils.default.uniqueId(),reactData:{scrollXLoad:!1,scrollYLoad:!1,overflowY:!0,overflowX:!0,scrollbarWidth:0,scrollbarHeight:0,lastScrollTime:0,lazScrollLoading:!1,scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,minViewDate:null,maxViewDate:null,tableData:[],tableColumn:[],headerGroups:[],viewCellWidth:20},internalData:createInternalData()}},computed:Object.assign({},{}),methods:{refreshData:function(){return handleUpdateData(this),_handleLazyRecalculate(this)},updateViewData:function(){var e=this.reactData,t=this.internalData.xeTable;return t&&(t=t.tableData,e.tableData=t),this.$nextTick()},connectUpdate:function(e){var e=e.$table,t=this.internalData;return e&&(t.xeTable=e),this.$nextTick()},handleUpdateStyle:function(){return updateStyle(this)},handleLazyRecalculate:function(){return _handleLazyRecalculate(this)},handleUpdateCurrentRow:function(e){var t,l=this.internalData.xeTable,r=this.$refs.refElem;l&&r&&(e?(t=l.highlightCurrentRow,(l.computeRowOpts.isCurrent||t)&&_xeUtils.default.arrayEach(r.querySelectorAll('[rowid="'.concat(l.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--current")})):_xeUtils.default.arrayEach(r.querySelectorAll(".row--current"),function(e){return(0,_dom.removeClass)(e,"row--current")}))},handleUpdateHoverRow:function(e){var t=this.internalData.xeTable,l=this.$refs.refElem;t&&l&&(e?_xeUtils.default.arrayEach(l.querySelectorAll('.vxe-body--row[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--hover")}):_xeUtils.default.arrayEach(l.querySelectorAll(".vxe-body--row.row--hover"),function(e){return(0,_dom.removeClass)(e,"row--hover")}))},triggerHeaderScrollEvent:function(e){var t,l,r,a=this.internalData,o=a.elemStore;a.inVirtualScroll||a.inBodyScroll||a.inFooterScroll||(t=e.currentTarget,o=(0,_util.getRefElem)(o["main-body-scroll"]),l=this.$refs.refScrollXHandleElem,o&&t&&(r=t.scrollLeft,a.inHeaderScroll=!0,(0,_dom.setScrollLeft)(l,r),(0,_dom.setScrollLeft)(o,r),handleScrollEvent(this,e,!1,!0,t.scrollTop,r)))},triggerBodyScrollEvent:function(e){var t,l,r,a,o,n=this,i=n.reactData,c=n.internalData,i=i.scrollXLoad,s=c.elemStore,d=c.lastScrollLeft,u=c.lastScrollTop;c.inVirtualScroll||c.inHeaderScroll||c.inFooterScroll||(t=e.currentTarget,s=(0,_util.getRefElem)(s["main-header-scroll"]),l=n.$refs.refScrollXHandleElem,r=n.$refs.refScrollYHandleElem,d=(a=t.scrollLeft)!==d,u=(o=t.scrollTop)!==u,c.inBodyScroll=!0,c.scrollRenderType="",u&&((0,_dom.setScrollTop)(r,o),syncTableScrollTop(n,o)),d&&(c.inBodyScroll=!0,(0,_dom.setScrollLeft)(l,a),(0,_dom.setScrollLeft)(s,a),i)&&triggerScrollXEvent(n),handleScrollEvent(n,e,u,d,t.scrollTop,a))},triggerVirtualScrollXEvent:function(e){var t,l,r,a=this.reactData,o=this.internalData,a=a.scrollXLoad,n=o.elemStore;o.inHeaderScroll||o.inBodyScroll||(t=e.currentTarget,l=(0,_util.getRefElem)(n["main-header-scroll"]),n=(0,_util.getRefElem)(n["main-body-scroll"]),t&&(r=t.scrollLeft,o.inVirtualScroll=!0,(0,_dom.setScrollLeft)(l,r),(0,_dom.setScrollLeft)(n,r),a&&triggerScrollXEvent(this),handleScrollEvent(this,e,!1,!0,t.scrollTop,r)))},triggerVirtualScrollYEvent:function(e){var t,l,r=this.internalData,a=r.elemStore;r.inHeaderScroll||r.inBodyScroll||(t=e.currentTarget,a=(0,_util.getRefElem)(a["main-body-scroll"]),t&&(l=t.scrollTop,r.inVirtualScroll=!0,(0,_dom.setScrollTop)(a,l),syncTableScrollTop(this,l),handleScrollEvent(this,e,!0,!1,l,t.scrollLeft)))},handleUpdateSXSpace:function(){return updateScrollXSpace(this)},handleUpdateSYSpace:function(){return updateScrollYSpace(this)},handleUpdateSYStatus:function(e){this.reactData.scrollYLoad=e},handleGlobalResizeEvent:function(){_handleLazyRecalculate(this)},renderScrollX:function(e){return e("div",{key:"vsx",ref:"refScrollXVirtualElem",class:"vxe-gantt-view--scroll-x-virtual"},[e("div",{ref:"refScrollXLeftCornerElem",class:"vxe-gantt-view--scroll-x-left-corner"}),e("div",{ref:"refScrollXWrapperElem",class:"vxe-gantt-view--scroll-x-wrapper"},[e("div",{ref:"refScrollXHandleElem",class:"vxe-gantt-view--scroll-x-handle",on:{scroll:this.triggerVirtualScrollXEvent}},[e("div",{ref:"refScrollXSpaceElem",class:"vxe-gantt-view--scroll-x-space"})])]),e("div",{ref:"refScrollXRightCornerElem",class:"vxe-gantt-view--scroll-x-right-corner"})])},renderScrollY:function(e){return e("div",{ref:"refScrollYVirtualElem",class:"vxe-gantt-view--scroll-y-virtual"},[e("div",{ref:"refScrollYTopCornerElem",class:"vxe-gantt-view--scroll-y-top-corner"}),e("div",{ref:"refScrollYWrapperElem",class:"vxe-gantt-view--scroll-y-wrapper"},[e("div",{ref:"refScrollYHandleElem",class:"vxe-gantt-view--scroll-y-handle",on:{scroll:this.triggerVirtualScrollYEvent}},[e("div",{ref:"refScrollYSpaceElem",class:"vxe-gantt-view--scroll-y-space"})])]),e("div",{ref:"refScrollYBottomCornerElem",class:"vxe-gantt-view--scroll-y-bottom-corner"})])},renderViewport:function(e){return e("div",{class:"vxe-gantt-view--viewport-wrapper"},[e(_ganttHeader.default),e(_ganttBody.default),e(_ganttFooter.default)])},renderBody:function(e){var t=this;return e("div",{class:"vxe-gantt-view--layout-wrapper"},t.$xeGantt.computeScrollbarYToLeft?[t.renderScrollY(e),t.renderViewport(e)]:[t.renderViewport(e),t.renderScrollY(e)])},renderVN:function(e){var t=this,l=t.$xeGantt,r=t.reactData,a=r.overflowX;return e("div",{ref:"refElem",class:["vxe-gantt-view",{"is--scroll-y":r.overflowY,"is--scroll-x":a,"is--virtual-x":r.scrollXLoad,"is--virtual-y":r.scrollYLoad}]},[e("div",{class:"vxe-gantt-view--render-wrapper"},l.computeScrollbarXToTop?[t.renderScrollX(e),t.renderBody(e)]:[t.renderBody(e),t.renderScrollX(e)]),e("div",{class:"vxe-gantt-view--render-vars"},[e("div",{ref:"refColInfoElem",class:"vxe-gantt-view--column-info"})])])}},watch:{"reactData.tableData":function(){handleUpdateData(this)}},mounted:function(){globalEvents.on(this,"resize",this.handleGlobalResizeEvent)},beforeDestroy:function(){var e=this.internalData;globalEvents.off(this,"keydown"),_xeUtils.default.assign(e,createInternalData())},render:function(e){return this.renderVN(e)}});
|