vxe-gantt 4.0.6 → 4.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.
@@ -13,7 +13,8 @@ export default defineVxeComponent({
13
13
  const refHeaderTable = ref();
14
14
  const refHeaderXSpace = ref();
15
15
  const renderVN = () => {
16
- const { tableColumn, headerGroups, viewCellWidth } = reactData;
16
+ const { headerGroups, viewCellWidth } = reactData;
17
+ const { visibleColumn } = internalData;
17
18
  return h('div', {
18
19
  ref: refElem,
19
20
  class: 'vxe-gantt-view--header-wrapper'
@@ -31,7 +32,7 @@ export default defineVxeComponent({
31
32
  ref: refHeaderTable,
32
33
  class: 'vxe-gantt-view--header-table'
33
34
  }, [
34
- h('colgroup', {}, tableColumn.map((column, cIndex) => {
35
+ h('colgroup', {}, visibleColumn.map((column, cIndex) => {
35
36
  return h('col', {
36
37
  key: cIndex,
37
38
  style: {
@@ -11,6 +11,7 @@ const { globalEvents } = VxeUI;
11
11
  function createInternalData() {
12
12
  return {
13
13
  xeTable: null,
14
+ visibleColumn: [],
14
15
  startMaps: {},
15
16
  endMaps: {},
16
17
  chartMaps: {},
@@ -25,16 +26,9 @@ function createInternalData() {
25
26
  startIndex: 0,
26
27
  endIndex: 0
27
28
  },
28
- // 存放纵向 Y 虚拟滚动相关信息
29
- scrollYStore: {
30
- preloadSize: 0,
31
- offsetSize: 0,
32
- visibleSize: 0,
33
- visibleStartIndex: 0,
34
- visibleEndIndex: 0,
35
- startIndex: 0,
36
- endIndex: 0
37
- }
29
+ // 最后滚动位置
30
+ lastScrollTop: 0,
31
+ lastScrollLeft: 0
38
32
  };
39
33
  }
40
34
  const maxYHeight = 5e6;
@@ -72,6 +66,8 @@ export default defineVxeComponent({
72
66
  scrollbarWidth: 0,
73
67
  // 横向滚动条的高度
74
68
  scrollbarHeight: 0,
69
+ // 最后滚动时间戳
70
+ lastScrollTime: 0,
75
71
  lazScrollLoading: false,
76
72
  scrollVMLoading: false,
77
73
  scrollYHeight: 0,
@@ -112,9 +108,12 @@ export default defineVxeComponent({
112
108
  const { treeConfig } = ganttProps;
113
109
  const { taskScaleList } = ganttReactData;
114
110
  const { minViewDate, maxViewDate } = reactData;
111
+ const { scrollXStore } = internalData;
115
112
  const minScale = XEUtils.last(taskScaleList);
116
113
  const fullCols = [];
117
114
  const groupCols = [];
115
+ scrollXStore.startIndex = 0;
116
+ scrollXStore.endIndex = 1;
118
117
  if (minScale && minViewDate && maxViewDate) {
119
118
  const minSType = minScale.type;
120
119
  const weekScale = taskScaleList.find(item => item.type === 'week');
@@ -136,37 +135,37 @@ export default defineVxeComponent({
136
135
  const currTime = minViewDate.getTime();
137
136
  const diffDayNum = maxViewDate.getTime() - minViewDate.getTime();
138
137
  const countSize = Math.max(5, Math.floor(diffDayNum / gapTime) + 1);
139
- switch (minScale.type) {
140
- case 'day':
141
- case 'date':
142
- if (diffDayNum > (1000 * 60 * 60 * 24 * 366 * 3)) {
143
- reactData.tableColumn = [];
144
- reactData.headerGroups = [];
145
- return;
146
- }
147
- break;
148
- case 'hour':
149
- if (diffDayNum > (1000 * 60 * 60 * 24 * 31 * 3)) {
150
- reactData.tableColumn = [];
151
- reactData.headerGroups = [];
152
- return;
153
- }
154
- break;
155
- case 'minute':
156
- if (diffDayNum > (1000 * 60 * 60 * 24 * 3)) {
157
- reactData.tableColumn = [];
158
- reactData.headerGroups = [];
159
- return;
160
- }
161
- break;
162
- case 'second':
163
- if (diffDayNum > (1000 * 60 * 60 * 3)) {
164
- reactData.tableColumn = [];
165
- reactData.headerGroups = [];
166
- return;
167
- }
168
- break;
169
- }
138
+ // switch (minScale.type) {
139
+ // case 'day':
140
+ // case 'date':
141
+ // if (diffDayNum > (1000 * 60 * 60 * 24 * 366 * 3)) {
142
+ // reactData.tableColumn = []
143
+ // reactData.headerGroups = []
144
+ // return
145
+ // }
146
+ // break
147
+ // case 'hour':
148
+ // if (diffDayNum > (1000 * 60 * 60 * 24 * 31 * 3)) {
149
+ // reactData.tableColumn = []
150
+ // reactData.headerGroups = []
151
+ // return
152
+ // }
153
+ // break
154
+ // case 'minute':
155
+ // if (diffDayNum > (1000 * 60 * 60 * 24 * 3)) {
156
+ // reactData.tableColumn = []
157
+ // reactData.headerGroups = []
158
+ // return
159
+ // }
160
+ // break
161
+ // case 'second':
162
+ // if (diffDayNum > (1000 * 60 * 60 * 3)) {
163
+ // reactData.tableColumn = []
164
+ // reactData.headerGroups = []
165
+ // return
166
+ // }
167
+ // break
168
+ // }
170
169
  const renderListMaps = {
171
170
  year: [],
172
171
  quarter: [],
@@ -347,8 +346,10 @@ export default defineVxeComponent({
347
346
  internalData.chartMaps = ctMaps;
348
347
  }
349
348
  }
350
- reactData.tableColumn = fullCols;
349
+ internalData.visibleColumn = fullCols;
351
350
  reactData.headerGroups = groupCols;
351
+ updateScrollXStatus();
352
+ handleTableColumn();
352
353
  };
353
354
  const handleUpdateData = () => {
354
355
  const ganttProps = $xeGantt.props;
@@ -437,8 +438,8 @@ export default defineVxeComponent({
437
438
  return nextTick();
438
439
  };
439
440
  const updateStyle = () => {
440
- const { scrollbarWidth, scrollbarHeight, tableColumn, headerGroups } = reactData;
441
- const { elemStore } = internalData;
441
+ const { scrollbarWidth, scrollbarHeight, headerGroups, tableColumn } = reactData;
442
+ const { elemStore, visibleColumn } = internalData;
442
443
  const $xeTable = internalData.xeTable;
443
444
  const el = refElem.value;
444
445
  if (!el || !el.clientHeight) {
@@ -519,37 +520,182 @@ export default defineVxeComponent({
519
520
  yBottomCornerEl.style.display = tFooterHeight ? 'block' : '';
520
521
  }
521
522
  const colInfoElem = refColInfoElem.value;
523
+ let viewCellWidth = 40;
522
524
  if (colInfoElem) {
523
- reactData.viewCellWidth = colInfoElem.clientWidth || 40;
525
+ viewCellWidth = colInfoElem.clientWidth || 40;
524
526
  }
525
- let viewTableWidth = reactData.viewCellWidth * tableColumn.length;
527
+ let viewTableWidth = viewCellWidth * visibleColumn.length;
526
528
  if (bodyScrollElem) {
527
529
  const viewWidth = bodyScrollElem.clientWidth;
528
530
  const remainWidth = viewWidth - viewTableWidth;
529
531
  if (remainWidth > 0) {
530
- reactData.viewCellWidth += Math.floor(remainWidth / tableColumn.length);
532
+ viewCellWidth += Math.floor(remainWidth / visibleColumn.length);
531
533
  viewTableWidth = viewWidth;
532
534
  }
533
535
  }
536
+ reactData.viewCellWidth = viewCellWidth;
534
537
  const headerTableElem = getRefElem(elemStore['main-header-table']);
535
538
  const bodyTableElem = getRefElem(elemStore['main-body-table']);
539
+ const vmTableWidth = viewCellWidth * tableColumn.length;
536
540
  if (headerTableElem) {
537
541
  headerTableElem.style.width = `${viewTableWidth}px`;
538
542
  }
539
543
  if (bodyTableElem) {
540
- bodyTableElem.style.width = `${viewTableWidth}px`;
544
+ bodyTableElem.style.width = `${vmTableWidth}px`;
541
545
  }
542
546
  reactData.scrollXWidth = viewTableWidth;
543
547
  return updateChart();
544
548
  };
545
- const handleLazyRecalculate = () => {
549
+ const handleRecalculateStyle = () => {
550
+ const el = refElem.value;
551
+ internalData.rceRunTime = Date.now();
552
+ if (!el || !el.clientWidth) {
553
+ return nextTick();
554
+ }
546
555
  calcScrollbar();
547
556
  updateStyle();
548
557
  updateChart();
558
+ return computeScrollLoad();
559
+ };
560
+ const handleLazyRecalculate = () => {
561
+ return new Promise(resolve => {
562
+ const { rceTimeout, rceRunTime } = internalData;
563
+ const $xeTable = internalData.xeTable;
564
+ let refreshDelay = 50;
565
+ if ($xeTable) {
566
+ const { computeResizeOpts } = $xeTable.getComputeMaps();
567
+ const resizeOpts = computeResizeOpts.value;
568
+ refreshDelay = resizeOpts.refreshDelay || 50;
569
+ }
570
+ if (rceTimeout) {
571
+ clearTimeout(rceTimeout);
572
+ if (rceRunTime && rceRunTime + (refreshDelay - 5) < Date.now()) {
573
+ resolve(handleRecalculateStyle());
574
+ }
575
+ else {
576
+ nextTick(() => {
577
+ resolve();
578
+ });
579
+ }
580
+ }
581
+ else {
582
+ resolve(handleRecalculateStyle());
583
+ }
584
+ internalData.rceTimeout = setTimeout(() => {
585
+ internalData.rceTimeout = undefined;
586
+ handleRecalculateStyle();
587
+ }, refreshDelay);
588
+ });
589
+ };
590
+ const computeScrollLoad = () => {
591
+ return nextTick().then(() => {
592
+ const { scrollXLoad } = reactData;
593
+ const { scrollXStore } = internalData;
594
+ // 计算 X 逻辑
595
+ if (scrollXLoad) {
596
+ const { toVisibleIndex: toXVisibleIndex, visibleSize: visibleXSize } = handleVirtualXVisible();
597
+ const offsetXSize = 2;
598
+ scrollXStore.preloadSize = 1;
599
+ scrollXStore.offsetSize = offsetXSize;
600
+ scrollXStore.visibleSize = visibleXSize;
601
+ scrollXStore.endIndex = Math.max(scrollXStore.startIndex + scrollXStore.visibleSize + offsetXSize, scrollXStore.endIndex);
602
+ scrollXStore.visibleStartIndex = Math.max(scrollXStore.startIndex, toXVisibleIndex);
603
+ scrollXStore.visibleEndIndex = Math.min(scrollXStore.endIndex, toXVisibleIndex + visibleXSize);
604
+ updateScrollXData().then(() => {
605
+ loadScrollXData();
606
+ });
607
+ }
608
+ else {
609
+ updateScrollXSpace();
610
+ }
611
+ });
612
+ };
613
+ const handleVirtualXVisible = () => {
614
+ const { viewCellWidth } = reactData;
615
+ const { elemStore } = internalData;
616
+ const bodyScrollElem = getRefElem(elemStore['main-body-scroll']);
617
+ if (bodyScrollElem) {
618
+ const clientWidth = bodyScrollElem.clientWidth;
619
+ const scrollLeft = bodyScrollElem.scrollLeft;
620
+ const toVisibleIndex = Math.floor(scrollLeft / viewCellWidth) - 1;
621
+ const visibleSize = Math.ceil(clientWidth / viewCellWidth) + 1;
622
+ return { toVisibleIndex: Math.max(0, toVisibleIndex), visibleSize: Math.max(1, visibleSize) };
623
+ }
624
+ return { toVisibleIndex: 0, visibleSize: 6 };
625
+ };
626
+ const loadScrollXData = () => {
627
+ const { isScrollXBig } = reactData;
628
+ const { scrollXStore } = internalData;
629
+ const { preloadSize, startIndex, endIndex, offsetSize } = scrollXStore;
630
+ const { toVisibleIndex, visibleSize } = handleVirtualXVisible();
631
+ const offsetItem = {
632
+ startIndex: Math.max(0, isScrollXBig ? toVisibleIndex - 1 : toVisibleIndex - 1 - offsetSize - preloadSize),
633
+ endIndex: isScrollXBig ? toVisibleIndex + visibleSize : toVisibleIndex + visibleSize + offsetSize + preloadSize
634
+ };
635
+ scrollXStore.visibleStartIndex = toVisibleIndex - 1;
636
+ scrollXStore.visibleEndIndex = toVisibleIndex + visibleSize + 1;
637
+ const { startIndex: offsetStartIndex, endIndex: offsetEndIndex } = offsetItem;
638
+ if (toVisibleIndex <= startIndex || toVisibleIndex >= endIndex - visibleSize - 1) {
639
+ if (startIndex !== offsetStartIndex || endIndex !== offsetEndIndex) {
640
+ scrollXStore.startIndex = offsetStartIndex;
641
+ scrollXStore.endIndex = offsetEndIndex;
642
+ updateScrollXData();
643
+ }
644
+ }
645
+ };
646
+ const updateScrollXData = () => {
647
+ handleTableColumn();
648
+ updateScrollXSpace();
549
649
  return nextTick();
550
650
  };
551
- // const updateScrollXSpace = () => {
552
- // }
651
+ const updateScrollXStatus = () => {
652
+ const scrollXLoad = true;
653
+ reactData.scrollXLoad = scrollXLoad;
654
+ return scrollXLoad;
655
+ };
656
+ const handleTableColumn = () => {
657
+ const { scrollXLoad } = reactData;
658
+ const { visibleColumn, scrollXStore } = internalData;
659
+ const tableColumn = scrollXLoad ? visibleColumn.slice(scrollXStore.startIndex, scrollXStore.endIndex) : visibleColumn.slice(0);
660
+ reactData.tableColumn = tableColumn;
661
+ };
662
+ const updateScrollXSpace = () => {
663
+ const { scrollXLoad, scrollXWidth, viewCellWidth } = reactData;
664
+ const { elemStore, scrollXStore } = internalData;
665
+ const bodyTableElem = getRefElem(elemStore['main-body-table']);
666
+ // const headerTableElem = getRefElem(elemStore['main-header-table'])
667
+ // const footerTableElem = getRefElem(elemStore['main-footer-table'])
668
+ const { startIndex } = scrollXStore;
669
+ let xSpaceLeft = 0;
670
+ if (scrollXLoad) {
671
+ xSpaceLeft = Math.max(0, startIndex * viewCellWidth);
672
+ }
673
+ // if (headerTableElem) {
674
+ // headerTableElem.style.transform = `translate(${xSpaceLeft}px, 0px)`
675
+ // }
676
+ if (bodyTableElem) {
677
+ bodyTableElem.style.transform = `translate(${xSpaceLeft}px, ${reactData.scrollYTop || 0}px)`;
678
+ }
679
+ // if (footerTableElem) {
680
+ // footerTableElem.style.transform = `translate(${xSpaceLeft}px, 0px)`
681
+ // }
682
+ const layoutList = ['header', 'body', 'footer'];
683
+ layoutList.forEach(layout => {
684
+ const xSpaceElem = getRefElem(elemStore[`main-${layout}-xSpace`]);
685
+ if (xSpaceElem) {
686
+ xSpaceElem.style.width = scrollXLoad ? `${scrollXWidth}px` : '';
687
+ }
688
+ });
689
+ const scrollXSpaceEl = refScrollXSpaceElem.value;
690
+ if (scrollXSpaceEl) {
691
+ scrollXSpaceEl.style.width = `${scrollXWidth}px`;
692
+ }
693
+ calcScrollbar();
694
+ return nextTick();
695
+ };
696
+ const triggerScrollXEvent = () => {
697
+ loadScrollXData();
698
+ };
553
699
  const updateScrollYSpace = () => {
554
700
  const { elemStore } = internalData;
555
701
  const $xeTable = internalData.xeTable;
@@ -624,6 +770,13 @@ export default defineVxeComponent({
624
770
  };
625
771
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
626
772
  const handleScrollEvent = (evnt, isRollY, isRollX, scrollTop, scrollLeft) => {
773
+ if (isRollX) {
774
+ internalData.lastScrollLeft = scrollLeft;
775
+ }
776
+ if (isRollY) {
777
+ internalData.lastScrollTop = scrollTop;
778
+ }
779
+ reactData.lastScrollTime = Date.now();
627
780
  checkLastSyncScroll(isRollX, isRollY);
628
781
  };
629
782
  const ganttViewMethods = {
@@ -716,7 +869,8 @@ export default defineVxeComponent({
716
869
  }
717
870
  },
718
871
  triggerBodyScrollEvent(evnt) {
719
- const { elemStore, inVirtualScroll, inHeaderScroll, inFooterScroll } = internalData;
872
+ const { scrollXLoad } = reactData;
873
+ const { elemStore, inVirtualScroll, inHeaderScroll, inFooterScroll, lastScrollLeft, lastScrollTop } = internalData;
720
874
  if (inVirtualScroll) {
721
875
  return;
722
876
  }
@@ -727,36 +881,44 @@ export default defineVxeComponent({
727
881
  const headerScrollElem = getRefElem(elemStore['main-header-scroll']);
728
882
  const xHandleEl = refScrollXHandleElem.value;
729
883
  const yHandleEl = refScrollYHandleElem.value;
730
- if (headerScrollElem && wrapperEl) {
731
- const isRollX = true;
732
- const isRollY = true;
733
- const currLeftNum = wrapperEl.scrollLeft;
734
- const currTopNum = wrapperEl.scrollTop;
735
- internalData.inBodyScroll = true;
736
- setScrollLeft(xHandleEl, currLeftNum);
737
- setScrollLeft(headerScrollElem, currLeftNum);
738
- setScrollTop(yHandleEl, currTopNum);
739
- syncTableScrollTop(currTopNum);
740
- handleScrollEvent(evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum);
884
+ const scrollLeft = wrapperEl.scrollLeft;
885
+ const scrollTop = wrapperEl.scrollTop;
886
+ const isRollX = scrollLeft !== lastScrollLeft;
887
+ const isRollY = scrollTop !== lastScrollTop;
888
+ internalData.inBodyScroll = true;
889
+ internalData.scrollRenderType = '';
890
+ if (isRollY) {
891
+ setScrollTop(yHandleEl, scrollTop);
892
+ syncTableScrollTop(scrollTop);
741
893
  }
742
- },
743
- triggerFooterScrollEvent(evnt) {
744
- const { inVirtualScroll, inHeaderScroll, inBodyScroll } = internalData;
745
- if (inVirtualScroll) {
746
- return;
747
- }
748
- if (inHeaderScroll || inBodyScroll) {
749
- return;
750
- }
751
- const wrapperEl = evnt.currentTarget;
752
- if (wrapperEl) {
753
- const isRollX = true;
754
- const isRollY = false;
755
- const currLeftNum = wrapperEl.scrollLeft;
756
- handleScrollEvent(evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum);
894
+ if (isRollX) {
895
+ internalData.inBodyScroll = true;
896
+ setScrollLeft(xHandleEl, scrollLeft);
897
+ setScrollLeft(headerScrollElem, scrollLeft);
898
+ if (scrollXLoad) {
899
+ triggerScrollXEvent();
900
+ }
757
901
  }
902
+ handleScrollEvent(evnt, isRollY, isRollX, wrapperEl.scrollTop, scrollLeft);
758
903
  },
904
+ // triggerFooterScrollEvent (evnt) {
905
+ // const { inVirtualScroll, inHeaderScroll, inBodyScroll } = internalData
906
+ // if (inVirtualScroll) {
907
+ // return
908
+ // }
909
+ // if (inHeaderScroll || inBodyScroll) {
910
+ // return
911
+ // }
912
+ // const wrapperEl = evnt.currentTarget as HTMLDivElement
913
+ // if (wrapperEl) {
914
+ // const isRollX = true
915
+ // const isRollY = false
916
+ // const currLeftNum = wrapperEl.scrollLeft
917
+ // handleScrollEvent(evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum)
918
+ // }
919
+ // },
759
920
  triggerVirtualScrollXEvent(evnt) {
921
+ const { scrollXLoad } = reactData;
760
922
  const { elemStore, inHeaderScroll, inBodyScroll } = internalData;
761
923
  if (inHeaderScroll || inBodyScroll) {
762
924
  return;
@@ -771,6 +933,9 @@ export default defineVxeComponent({
771
933
  internalData.inVirtualScroll = true;
772
934
  setScrollLeft(headerScrollElem, currLeftNum);
773
935
  setScrollLeft(bodyScrollElem, currLeftNum);
936
+ if (scrollXLoad) {
937
+ triggerScrollXEvent();
938
+ }
774
939
  handleScrollEvent(evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum);
775
940
  }
776
941
  },
@@ -792,23 +957,11 @@ export default defineVxeComponent({
792
957
  }
793
958
  },
794
959
  handleUpdateSXSpace() {
795
- const { scrollXLoad, scrollXWidth } = reactData;
796
- const { elemStore } = internalData;
797
- const layoutList = ['header', 'body', 'footer'];
798
- layoutList.forEach(layout => {
799
- const xSpaceElem = getRefElem(elemStore[`main-${layout}-xSpace`]);
800
- if (xSpaceElem) {
801
- xSpaceElem.style.width = scrollXLoad ? `${scrollXWidth}px` : '';
802
- }
803
- });
804
- const scrollXSpaceEl = refScrollXSpaceElem.value;
805
- if (scrollXSpaceEl) {
806
- scrollXSpaceEl.style.width = `${scrollXWidth}px`;
807
- }
808
- calcScrollbar();
809
- return nextTick();
960
+ return updateScrollXSpace();
961
+ },
962
+ handleUpdateSYSpace() {
963
+ return updateScrollYSpace();
810
964
  },
811
- handleUpdateSYSpace: updateScrollYSpace,
812
965
  handleUpdateSYStatus(sYLoad) {
813
966
  reactData.scrollYLoad = sYLoad;
814
967
  }
@@ -689,23 +689,23 @@ export default defineVxeComponent({
689
689
  let tipHeight = 0;
690
690
  if (rsNumLeftEl) {
691
691
  if (offsetLeft < 0) {
692
+ rsNumLeftEl.style.display = 'none';
693
+ }
694
+ else {
692
695
  rsNumLeftEl.textContent = `${targetTableWidth}px`;
693
696
  rsNumLeftEl.style.display = 'block';
694
697
  tipHeight = rsNumLeftEl.offsetHeight;
695
698
  }
696
- else {
697
- rsNumLeftEl.style.display = 'none';
698
- }
699
699
  }
700
700
  if (rsNumRightEl) {
701
701
  if (offsetLeft < 0) {
702
- rsNumRightEl.style.display = 'none';
703
- }
704
- else {
705
702
  rsNumRightEl.textContent = `${Math.floor(containerRect.width - targetTableWidth)}px`;
706
703
  rsNumRightEl.style.display = 'block';
707
704
  tipHeight = rsNumRightEl.offsetHeight;
708
705
  }
706
+ else {
707
+ rsNumRightEl.style.display = 'none';
708
+ }
709
709
  }
710
710
  const tipTop = evnt.clientY - containerRect.top - tipHeight / 2;
711
711
  rsSplitLineEl.style.left = `${targetTableWidth}px`;
@@ -1776,10 +1776,10 @@ export default defineVxeComponent({
1776
1776
  }, [
1777
1777
  h('div', {
1778
1778
  class: 'vxe-gantt--resizable-split-number-left'
1779
- }, '10px'),
1779
+ }),
1780
1780
  h('div', {
1781
1781
  class: 'vxe-gantt--resizable-split-number-right'
1782
- }, '20px')
1782
+ })
1783
1783
  ])
1784
1784
  ]),
1785
1785
  h('div', {
@@ -152,6 +152,9 @@
152
152
  width: var(--vxe-ui-gantt-view-split-bar-width);
153
153
  background-color: var(--vxe-ui-gantt-view-split-bar-background-color);
154
154
  }
155
+ .vxe-gantt .vxe-gantt--view-split-bar:hover, .vxe-gantt .vxe-gantt--view-split-bar:active {
156
+ background-color: var(--vxe-ui-gantt-view-split-bar-hover-background-color);
157
+ }
155
158
  .vxe-gantt .vxe-gantt--view-split-bar.is--resize {
156
159
  cursor: col-resize;
157
160
  }
@@ -356,7 +359,8 @@
356
359
  }
357
360
  .vxe-gantt--view-split-bar-left-btn:hover,
358
361
  .vxe-gantt--view-split-bar-right-btn:hover {
359
- background-color: var(--vxe-ui-font-primary-lighten-color);
362
+ color: #ffffff;
363
+ background-color: var(--vxe-ui-font-primary-color);
360
364
  }
361
365
  .vxe-gantt--view-split-bar-left-btn:active,
362
366
  .vxe-gantt--view-split-bar-right-btn:active {
@@ -1 +1 @@
1
- @charset "UTF-8";.vxe-gantt-view--chart-wrapper{position:absolute;top:0;left:0;pointer-events:none}.vxe-gantt-view--chart-row{position:relative;width:100%;height:0}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar:hover::after,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar:hover::after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar{display:flex;flex-direction:row;position:absolute;top:50%;left:0;transform:translateY(-50%);color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color);overflow:hidden;pointer-events:all}.vxe-gantt-view--chart-bar{align-items:center;height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-bar:hover::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.1);pointer-events:none}.vxe-gantt-view--chart-progress{flex-shrink:0;width:0;height:100%;text-align:left;background-color:var(--vxe-ui-gantt-view-task-bar-completed-background-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--chart-content{position:absolute;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em;padding:0 .6em}.vxe-gantt-view--chart-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--chart-row.row--drag-origin{opacity:.3}.vxe-gantt{position:relative;overflow:auto;display:flex;flex-direction:column}.vxe-gantt.is--loading:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:99;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:var(--vxe-ui-loading-background-color)}.vxe-gantt.is--loading>.vxe-gantt-view .vxe-loading{background-color:transparent}.vxe-gantt.is--maximize{position:fixed;top:0;left:0;width:100%;height:100%;padding:.5em 1em;background-color:var(--vxe-ui-layout-background-color)}.vxe-gantt.is--split-drag{cursor:col-resize}.vxe-gantt.is--split-drag .vxe-gantt--table-wrapper::after,.vxe-gantt.is--split-drag .vxe-gantt--view-wrapper::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background:0 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-gantt .vxe-gantt--bottom-wrapper,.vxe-gantt .vxe-gantt--form-wrapper,.vxe-gantt .vxe-gantt--top-wrapper{position:relative}.vxe-gantt .vxe-gantt--gantt-container{position:relative;display:flex;flex-direction:row}.vxe-gantt .vxe-gantt--left-wrapper,.vxe-gantt .vxe-gantt--right-wrapper{flex-shrink:0;overflow:auto;outline:0}.vxe-gantt .vxe-gantt--table-wrapper,.vxe-gantt .vxe-gantt--view-wrapper{display:none;position:relative;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--view-split-bar{flex-shrink:0;width:var(--vxe-ui-gantt-view-split-bar-width);background-color:var(--vxe-ui-gantt-view-split-bar-background-color)}.vxe-gantt .vxe-gantt--view-split-bar.is--resize{cursor:col-resize}.vxe-gantt.show--left .vxe-gantt--table-wrapper{display:block}.vxe-gantt.show--left.show--right .vxe-gantt--table-wrapper{flex-grow:unset;flex-shrink:0;width:var(--vxe-ui-gantt-view-table-default-width)}.vxe-gantt.show--right .vxe-gantt--view-wrapper{display:block}.vxe-gantt--layout-body-wrapper{display:flex;flex-direction:row;overflow:auto;flex-grow:1}.vxe-gantt--layout-body-content-wrapper{flex-grow:1;overflow:hidden}.vxe-gantt--layout-aside-left-wrapper,.vxe-gantt--layout-footer-wrapper,.vxe-gantt--layout-header-wrapper{flex-shrink:0;overflow:auto}.vxe-gantt--border-line{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none;border:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--full .vxe-gantt-view--body-column,.vxe-gantt.border--full .vxe-gantt-view--footer-column,.vxe-gantt.border--full .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color)),linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:var(--vxe-ui-table-border-width) 100%,100% var(--vxe-ui-table-border-width);background-position:right top,right bottom}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:0;border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner::before{border-bottom-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--full .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer .vxe-gantt-view--scroll-x-wrapper::after{content:"";position:absolute;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--full.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after{top:0;border-bottom:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--full.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after{bottom:0;height:calc(100% + var(--vxe-ui-table-border-width));border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before{border-left-width:var(--vxe-ui-table-border-width);border-right-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner::before{border-left-width:var(--vxe-ui-table-border-width);border-right-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-top-corner::before{width:calc(100% + 1px);left:-1px}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-wrapper::after,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-wrapper::after{content:"";position:absolute;top:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sy-pos--left .vxe-gantt-view--scroll-y-wrapper::after,.vxe-gantt.border--full.sy-pos--left .vxe-gantt-view--scroll-y-wrapper::after{left:0;border-right:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-wrapper::after,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-wrapper::after{right:0;width:calc(100% + var(--vxe-ui-table-border-width));border-left:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--body-column,.vxe-gantt.border--default .vxe-gantt-view--footer-column,.vxe-gantt.border--default .vxe-gantt-view--header-column,.vxe-gantt.border--inner .vxe-gantt-view--body-column,.vxe-gantt.border--inner .vxe-gantt-view--footer-column,.vxe-gantt.border--inner .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:100% var(--vxe-ui-table-border-width);background-position:right bottom}.vxe-gantt.border--default .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--full .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--inner .vxe-gantt-view--footer-wrapper{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--inner .vxe-gantt--border-line{border-width:0 0 1px 0}.vxe-gantt.border--none .vxe-gantt--border-line{display:none}.vxe-gantt--view-split-bar{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-gantt--view-split-bar-handle{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3}.vxe-gantt--view-split-bar-btn-wrapper{display:flex;flex-direction:column;align-items:center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;pointer-events:none}.vxe-gantt--view-split-bar-btn-wrapper>div{margin-top:1em}.vxe-gantt--view-split-bar-btn-wrapper>div:first-child{margin-top:0}.vxe-gantt--view-split-bar-left-btn,.vxe-gantt--view-split-bar-right-btn{display:flex;flex-direction:row;align-items:center;justify-content:center;font-size:.5em;height:var(--vxe-ui-gantt-view-split-bar-height);width:var(--vxe-ui-gantt-view-split-bar-width);color:var(--vxe-ui-layout-background-color);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-gantt-view-handle-background-color);border:1px solid var(--vxe-ui-input-border-color);pointer-events:all;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .1s ease-in-out}.vxe-gantt--view-split-bar-left-btn:hover,.vxe-gantt--view-split-bar-right-btn:hover{background-color:var(--vxe-ui-font-primary-lighten-color)}.vxe-gantt--view-split-bar-left-btn:active,.vxe-gantt--view-split-bar-right-btn:active{transform:scale(.9)}.vxe-gantt--resizable-split-tip{display:none;position:absolute;top:0;left:0;width:1px;height:100%;z-index:7;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:col-resize}.vxe-gantt--resizable-split-tip:before{content:"";display:block;height:100%;background-color:var(--vxe-ui-table-resizable-drag-line-color)}.vxe-gantt--resizable-split-tip-number{position:absolute;top:0;left:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.vxe-gantt--resizable-split-number-left,.vxe-gantt--resizable-split-number-right{position:absolute;padding:.25em .25em;font-size:12px;border-radius:var(--vxe-ui-border-radius);white-space:nowrap;color:#fff;background-color:var(--vxe-ui-table-resizable-drag-line-color)}.vxe-gantt--resizable-split-number-left{right:0}.vxe-gantt--resizable-split-number-right{left:1px}.vxe-gantt.is--loading>.vxe-gantt-view--scroll-x-virtual{visibility:hidden}.vxe-gantt.is--loading>.vxe-gantt-view--layout-wrapper>.vxe-gantt-view--scroll-y-virtual{visibility:hidden}.vxe-gantt .vxe-gantt-view--scroll-x-virtual{height:0}.vxe-gantt .vxe-gantt-view--scroll-y-virtual{width:0}.vxe-gantt .vxe-gantt-view--scroll-x-virtual,.vxe-gantt .vxe-gantt-view--scroll-y-virtual{visibility:hidden;position:relative;flex-shrink:0;z-index:7}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{width:100%;left:0;bottom:0}.vxe-gantt .vxe-gantt-view--scroll-x-handle{overflow-y:hidden;overflow-x:scroll;height:18px}.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{height:100%}.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{width:100%;height:100%;right:0;top:0}.vxe-gantt .vxe-gantt-view--scroll-y-handle{overflow-y:scroll;overflow-x:hidden;width:18px;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-space{height:1px}.vxe-gantt .vxe-gantt-view--scroll-y-space{width:1px}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{display:none;position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{bottom:0;width:0;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner::before,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:var(--vxe-ui-table-border-width);border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner{left:0}.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{right:0}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner{right:1px}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner::before{border-right:0}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner{bottom:1px}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner::before{border-bottom:0}.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{top:0;right:0;width:100%;height:0}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner{margin-top:-1px}.vxe-gantt-view--layout-wrapper{display:flex;flex-direction:row;background-color:var(--vxe-ui-layout-background-color)}.vxe-gantt-view--viewport-wrapper{position:relative;overflow:hidden;flex-grow:1}.vxe-gantt-view--render-vars{width:0;height:0;overflow:hidden}.vxe-gantt-view--column-info{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view{flex-grow:1;overflow:hidden}.vxe-gantt-view .vxe-body--x-space{width:100%;height:1px;margin-bottom:-1px}.vxe-gantt-view .vxe-body--y-space{width:0;float:left}.vxe-gantt-view--body-table,.vxe-gantt-view--header-table{border:0;border-spacing:0;border-collapse:separate;table-layout:fixed}.vxe-gantt-view--body-table col,.vxe-gantt-view--header-table col{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view--header-wrapper{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt-view--footer-wrapper{margin-top:calc(var(--vxe-ui-table-border-width) * -1);background-color:var(--vxe-ui-table-footer-background-color)}.vxe-gantt-view--body-wrapper,.vxe-gantt-view--header-wrapper{overflow:hidden}.vxe-gantt-view--header-inner-wrapper{overflow-y:hidden;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper{overflow-y:scroll;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper,.vxe-gantt-view--header-inner-wrapper{position:relative;width:100%;height:100%;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.vxe-gantt-view--body-inner-wrapper::-webkit-scrollbar,.vxe-gantt-view--header-inner-wrapper::-webkit-scrollbar{display:none}.vxe-gantt-view--header-column{text-align:center;font-size:1em;height:var(--vxe-ui-gantt-view-cell-height,var(--vxe-ui-table-row-line-height))}.vxe-gantt-view--body-column,.vxe-gantt-view--footer-column,.vxe-gantt-view--header-column{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--body-row.row--stripe{background-color:var(--vxe-ui-table-row-striped-background-color)}.vxe-gantt-view--body-row.row--radio{background-color:var(--vxe-ui-table-row-radio-checked-background-color)}.vxe-gantt-view--body-row.row--checked{background-color:var(--vxe-ui-table-row-checkbox-checked-background-color)}.vxe-gantt-view--body-row.row--current{background-color:var(--vxe-ui-table-row-current-background-color)}.vxe-gantt-view--body-row.row--hover{background-color:var(--vxe-ui-table-row-hover-background-color)}.vxe-gantt-view--body-row.row--hover.row--stripe{background-color:var(--vxe-ui-table-row-hover-striped-background-color)}.vxe-gantt-view--body-row.row--hover.row--radio{background-color:var(--vxe-ui-table-row-hover-radio-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--checked{background-color:var(--vxe-ui-table-row-hover-checkbox-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--current{background-color:var(--vxe-ui-table-row-hover-current-background-color)}.vxe-gantt-view--body-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--body-row.row--drag-origin>.vxe-gantt-view--body-column{opacity:.3}.vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{position:absolute;left:0;bottom:-.4em;height:.8em;width:100%;text-align:center;z-index:1;cursor:row-resize}.vxe-gantt-view--body-row:last-child .vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{height:.4em;bottom:0}.vxe-gantt{font-size:var(--vxe-ui-font-size-default)}.vxe-gantt.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-gantt.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-gantt.size--mini{font-size:var(--vxe-ui-font-size-mini)}
1
+ @charset "UTF-8";.vxe-gantt-view--chart-wrapper{position:absolute;top:0;left:0;pointer-events:none}.vxe-gantt-view--chart-row{position:relative;width:100%;height:0}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar:hover::after,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar:hover::after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar{display:flex;flex-direction:row;position:absolute;top:50%;left:0;transform:translateY(-50%);color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color);overflow:hidden;pointer-events:all}.vxe-gantt-view--chart-bar{align-items:center;height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-bar:hover::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.1);pointer-events:none}.vxe-gantt-view--chart-progress{flex-shrink:0;width:0;height:100%;text-align:left;background-color:var(--vxe-ui-gantt-view-task-bar-completed-background-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--chart-content{position:absolute;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em;padding:0 .6em}.vxe-gantt-view--chart-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--chart-row.row--drag-origin{opacity:.3}.vxe-gantt{position:relative;overflow:auto;display:flex;flex-direction:column}.vxe-gantt.is--loading:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:99;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:var(--vxe-ui-loading-background-color)}.vxe-gantt.is--loading>.vxe-gantt-view .vxe-loading{background-color:transparent}.vxe-gantt.is--maximize{position:fixed;top:0;left:0;width:100%;height:100%;padding:.5em 1em;background-color:var(--vxe-ui-layout-background-color)}.vxe-gantt.is--split-drag{cursor:col-resize}.vxe-gantt.is--split-drag .vxe-gantt--table-wrapper::after,.vxe-gantt.is--split-drag .vxe-gantt--view-wrapper::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background:0 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-gantt .vxe-gantt--bottom-wrapper,.vxe-gantt .vxe-gantt--form-wrapper,.vxe-gantt .vxe-gantt--top-wrapper{position:relative}.vxe-gantt .vxe-gantt--gantt-container{position:relative;display:flex;flex-direction:row}.vxe-gantt .vxe-gantt--left-wrapper,.vxe-gantt .vxe-gantt--right-wrapper{flex-shrink:0;overflow:auto;outline:0}.vxe-gantt .vxe-gantt--table-wrapper,.vxe-gantt .vxe-gantt--view-wrapper{display:none;position:relative;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--view-split-bar{flex-shrink:0;width:var(--vxe-ui-gantt-view-split-bar-width);background-color:var(--vxe-ui-gantt-view-split-bar-background-color)}.vxe-gantt .vxe-gantt--view-split-bar:active,.vxe-gantt .vxe-gantt--view-split-bar:hover{background-color:var(--vxe-ui-gantt-view-split-bar-hover-background-color)}.vxe-gantt .vxe-gantt--view-split-bar.is--resize{cursor:col-resize}.vxe-gantt.show--left .vxe-gantt--table-wrapper{display:block}.vxe-gantt.show--left.show--right .vxe-gantt--table-wrapper{flex-grow:unset;flex-shrink:0;width:var(--vxe-ui-gantt-view-table-default-width)}.vxe-gantt.show--right .vxe-gantt--view-wrapper{display:block}.vxe-gantt--layout-body-wrapper{display:flex;flex-direction:row;overflow:auto;flex-grow:1}.vxe-gantt--layout-body-content-wrapper{flex-grow:1;overflow:hidden}.vxe-gantt--layout-aside-left-wrapper,.vxe-gantt--layout-footer-wrapper,.vxe-gantt--layout-header-wrapper{flex-shrink:0;overflow:auto}.vxe-gantt--border-line{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none;border:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--full .vxe-gantt-view--body-column,.vxe-gantt.border--full .vxe-gantt-view--footer-column,.vxe-gantt.border--full .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color)),linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:var(--vxe-ui-table-border-width) 100%,100% var(--vxe-ui-table-border-width);background-position:right top,right bottom}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:0;border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner::before{border-bottom-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--full .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer .vxe-gantt-view--scroll-x-wrapper::after{content:"";position:absolute;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--full.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after{top:0;border-bottom:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--full.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after{bottom:0;height:calc(100% + var(--vxe-ui-table-border-width));border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before{border-left-width:var(--vxe-ui-table-border-width);border-right-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner::before{border-left-width:var(--vxe-ui-table-border-width);border-right-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-top-corner::before{width:calc(100% + 1px);left:-1px}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-wrapper::after,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-wrapper::after{content:"";position:absolute;top:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sy-pos--left .vxe-gantt-view--scroll-y-wrapper::after,.vxe-gantt.border--full.sy-pos--left .vxe-gantt-view--scroll-y-wrapper::after{left:0;border-right:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-wrapper::after,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-wrapper::after{right:0;width:calc(100% + var(--vxe-ui-table-border-width));border-left:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--body-column,.vxe-gantt.border--default .vxe-gantt-view--footer-column,.vxe-gantt.border--default .vxe-gantt-view--header-column,.vxe-gantt.border--inner .vxe-gantt-view--body-column,.vxe-gantt.border--inner .vxe-gantt-view--footer-column,.vxe-gantt.border--inner .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:100% var(--vxe-ui-table-border-width);background-position:right bottom}.vxe-gantt.border--default .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--full .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--inner .vxe-gantt-view--footer-wrapper{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--inner .vxe-gantt--border-line{border-width:0 0 1px 0}.vxe-gantt.border--none .vxe-gantt--border-line{display:none}.vxe-gantt--view-split-bar{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-gantt--view-split-bar-handle{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3}.vxe-gantt--view-split-bar-btn-wrapper{display:flex;flex-direction:column;align-items:center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;pointer-events:none}.vxe-gantt--view-split-bar-btn-wrapper>div{margin-top:1em}.vxe-gantt--view-split-bar-btn-wrapper>div:first-child{margin-top:0}.vxe-gantt--view-split-bar-left-btn,.vxe-gantt--view-split-bar-right-btn{display:flex;flex-direction:row;align-items:center;justify-content:center;font-size:.5em;height:var(--vxe-ui-gantt-view-split-bar-height);width:var(--vxe-ui-gantt-view-split-bar-width);color:var(--vxe-ui-layout-background-color);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-gantt-view-handle-background-color);border:1px solid var(--vxe-ui-input-border-color);pointer-events:all;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .1s ease-in-out}.vxe-gantt--view-split-bar-left-btn:hover,.vxe-gantt--view-split-bar-right-btn:hover{color:#fff;background-color:var(--vxe-ui-font-primary-color)}.vxe-gantt--view-split-bar-left-btn:active,.vxe-gantt--view-split-bar-right-btn:active{transform:scale(.9)}.vxe-gantt--resizable-split-tip{display:none;position:absolute;top:0;left:0;width:1px;height:100%;z-index:7;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:col-resize}.vxe-gantt--resizable-split-tip:before{content:"";display:block;height:100%;background-color:var(--vxe-ui-table-resizable-drag-line-color)}.vxe-gantt--resizable-split-tip-number{position:absolute;top:0;left:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.vxe-gantt--resizable-split-number-left,.vxe-gantt--resizable-split-number-right{position:absolute;padding:.25em .25em;font-size:12px;border-radius:var(--vxe-ui-border-radius);white-space:nowrap;color:#fff;background-color:var(--vxe-ui-table-resizable-drag-line-color)}.vxe-gantt--resizable-split-number-left{right:0}.vxe-gantt--resizable-split-number-right{left:1px}.vxe-gantt.is--loading>.vxe-gantt-view--scroll-x-virtual{visibility:hidden}.vxe-gantt.is--loading>.vxe-gantt-view--layout-wrapper>.vxe-gantt-view--scroll-y-virtual{visibility:hidden}.vxe-gantt .vxe-gantt-view--scroll-x-virtual{height:0}.vxe-gantt .vxe-gantt-view--scroll-y-virtual{width:0}.vxe-gantt .vxe-gantt-view--scroll-x-virtual,.vxe-gantt .vxe-gantt-view--scroll-y-virtual{visibility:hidden;position:relative;flex-shrink:0;z-index:7}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{width:100%;left:0;bottom:0}.vxe-gantt .vxe-gantt-view--scroll-x-handle{overflow-y:hidden;overflow-x:scroll;height:18px}.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{height:100%}.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{width:100%;height:100%;right:0;top:0}.vxe-gantt .vxe-gantt-view--scroll-y-handle{overflow-y:scroll;overflow-x:hidden;width:18px;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-space{height:1px}.vxe-gantt .vxe-gantt-view--scroll-y-space{width:1px}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{display:none;position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{bottom:0;width:0;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner::before,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:var(--vxe-ui-table-border-width);border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner{left:0}.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{right:0}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner{right:1px}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner::before{border-right:0}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner{bottom:1px}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner::before{border-bottom:0}.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{top:0;right:0;width:100%;height:0}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner{margin-top:-1px}.vxe-gantt-view--layout-wrapper{display:flex;flex-direction:row;background-color:var(--vxe-ui-layout-background-color)}.vxe-gantt-view--viewport-wrapper{position:relative;overflow:hidden;flex-grow:1}.vxe-gantt-view--render-vars{width:0;height:0;overflow:hidden}.vxe-gantt-view--column-info{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view{flex-grow:1;overflow:hidden}.vxe-gantt-view .vxe-body--x-space{width:100%;height:1px;margin-bottom:-1px}.vxe-gantt-view .vxe-body--y-space{width:0;float:left}.vxe-gantt-view--body-table,.vxe-gantt-view--header-table{border:0;border-spacing:0;border-collapse:separate;table-layout:fixed}.vxe-gantt-view--body-table col,.vxe-gantt-view--header-table col{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view--header-wrapper{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt-view--footer-wrapper{margin-top:calc(var(--vxe-ui-table-border-width) * -1);background-color:var(--vxe-ui-table-footer-background-color)}.vxe-gantt-view--body-wrapper,.vxe-gantt-view--header-wrapper{overflow:hidden}.vxe-gantt-view--header-inner-wrapper{overflow-y:hidden;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper{overflow-y:scroll;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper,.vxe-gantt-view--header-inner-wrapper{position:relative;width:100%;height:100%;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.vxe-gantt-view--body-inner-wrapper::-webkit-scrollbar,.vxe-gantt-view--header-inner-wrapper::-webkit-scrollbar{display:none}.vxe-gantt-view--header-column{text-align:center;font-size:1em;height:var(--vxe-ui-gantt-view-cell-height,var(--vxe-ui-table-row-line-height))}.vxe-gantt-view--body-column,.vxe-gantt-view--footer-column,.vxe-gantt-view--header-column{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--body-row.row--stripe{background-color:var(--vxe-ui-table-row-striped-background-color)}.vxe-gantt-view--body-row.row--radio{background-color:var(--vxe-ui-table-row-radio-checked-background-color)}.vxe-gantt-view--body-row.row--checked{background-color:var(--vxe-ui-table-row-checkbox-checked-background-color)}.vxe-gantt-view--body-row.row--current{background-color:var(--vxe-ui-table-row-current-background-color)}.vxe-gantt-view--body-row.row--hover{background-color:var(--vxe-ui-table-row-hover-background-color)}.vxe-gantt-view--body-row.row--hover.row--stripe{background-color:var(--vxe-ui-table-row-hover-striped-background-color)}.vxe-gantt-view--body-row.row--hover.row--radio{background-color:var(--vxe-ui-table-row-hover-radio-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--checked{background-color:var(--vxe-ui-table-row-hover-checkbox-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--current{background-color:var(--vxe-ui-table-row-hover-current-background-color)}.vxe-gantt-view--body-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--body-row.row--drag-origin>.vxe-gantt-view--body-column{opacity:.3}.vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{position:absolute;left:0;bottom:-.4em;height:.8em;width:100%;text-align:center;z-index:1;cursor:row-resize}.vxe-gantt-view--body-row:last-child .vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{height:.4em;bottom:0}.vxe-gantt{font-size:var(--vxe-ui-font-size-default)}.vxe-gantt.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-gantt.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-gantt.size--mini{font-size:var(--vxe-ui-font-size-mini)}