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/lib/index.umd.js CHANGED
@@ -7643,7 +7643,7 @@ var core_ = __webpack_require__(4345);
7643
7643
  ;// CONCATENATED MODULE: ./packages/ui/src/log.ts
7644
7644
 
7645
7645
  var log = core_.VxeUI.log;
7646
- var version = "gantt v".concat("3.0.6");
7646
+ var version = "gantt v".concat("3.0.7");
7647
7647
  var warnLog = log.create('warn', version);
7648
7648
  var errLog = log.create('error', version);
7649
7649
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
@@ -7653,7 +7653,7 @@ var errLog = log.create('error', version);
7653
7653
  var setConfig = core_.VxeUI.setConfig,
7654
7654
  setIcon = core_.VxeUI.setIcon,
7655
7655
  checkVersion = core_.VxeUI.checkVersion;
7656
- core_.VxeUI.ganttVersion = "3.0.6";
7656
+ core_.VxeUI.ganttVersion = "3.0.7";
7657
7657
  setConfig({
7658
7658
  gantt: {
7659
7659
  // size: null,
@@ -8447,9 +8447,10 @@ var getI18n = core_.VxeUI.getI18n;
8447
8447
  var $xeGantt = _vm.$xeGantt;
8448
8448
  var $xeGanttView = _vm.$xeGanttView;
8449
8449
  var reactData = $xeGanttView.reactData;
8450
- var tableColumn = reactData.tableColumn,
8451
- headerGroups = reactData.headerGroups,
8450
+ var internalData = $xeGanttView.internalData;
8451
+ var headerGroups = reactData.headerGroups,
8452
8452
  viewCellWidth = reactData.viewCellWidth;
8453
+ var visibleColumn = internalData.visibleColumn;
8453
8454
  return h('div', {
8454
8455
  ref: 'refElem',
8455
8456
  class: 'vxe-gantt-view--header-wrapper'
@@ -8465,7 +8466,7 @@ var getI18n = core_.VxeUI.getI18n;
8465
8466
  }), h('table', {
8466
8467
  ref: 'refHeaderTable',
8467
8468
  class: 'vxe-gantt-view--header-table'
8468
- }, [h('colgroup', {}, tableColumn.map(function (column, cIndex) {
8469
+ }, [h('colgroup', {}, visibleColumn.map(function (column, cIndex) {
8469
8470
  return h('col', {
8470
8471
  key: cIndex,
8471
8472
  style: {
@@ -9052,10 +9053,13 @@ var renderEmptyElement = core_.VxeUI.renderEmptyElement;
9052
9053
 
9053
9054
 
9054
9055
 
9056
+
9057
+
9055
9058
  var globalEvents = core_.VxeUI.globalEvents;
9056
9059
  function createInternalData() {
9057
9060
  return {
9058
9061
  xeTable: null,
9062
+ visibleColumn: [],
9059
9063
  startMaps: {},
9060
9064
  endMaps: {},
9061
9065
  chartMaps: {},
@@ -9070,16 +9074,9 @@ function createInternalData() {
9070
9074
  startIndex: 0,
9071
9075
  endIndex: 0
9072
9076
  },
9073
- // 存放纵向 Y 虚拟滚动相关信息
9074
- scrollYStore: {
9075
- preloadSize: 0,
9076
- offsetSize: 0,
9077
- visibleSize: 0,
9078
- visibleStartIndex: 0,
9079
- visibleEndIndex: 0,
9080
- startIndex: 0,
9081
- endIndex: 0
9082
- }
9077
+ // 最后滚动位置
9078
+ lastScrollTop: 0,
9079
+ lastScrollLeft: 0
9083
9080
  };
9084
9081
  }
9085
9082
  var maxYHeight = 5e6;
@@ -9100,9 +9097,12 @@ function handleParseColumn($xeGanttView) {
9100
9097
  var taskScaleList = ganttReactData.taskScaleList;
9101
9098
  var minViewDate = reactData.minViewDate,
9102
9099
  maxViewDate = reactData.maxViewDate;
9100
+ var scrollXStore = internalData.scrollXStore;
9103
9101
  var minScale = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().last(taskScaleList);
9104
9102
  var fullCols = [];
9105
9103
  var groupCols = [];
9104
+ scrollXStore.startIndex = 0;
9105
+ scrollXStore.endIndex = 1;
9106
9106
  if (minScale && minViewDate && maxViewDate) {
9107
9107
  var minSType = minScale.type;
9108
9108
  var weekScale = taskScaleList.find(function (item) {
@@ -9127,37 +9127,37 @@ function handleParseColumn($xeGanttView) {
9127
9127
  var currTime = minViewDate.getTime();
9128
9128
  var diffDayNum = maxViewDate.getTime() - minViewDate.getTime();
9129
9129
  var countSize = Math.max(5, Math.floor(diffDayNum / gapTime) + 1);
9130
- switch (minScale.type) {
9131
- case 'day':
9132
- case 'date':
9133
- if (diffDayNum > 1000 * 60 * 60 * 24 * 366 * 3) {
9134
- reactData.tableColumn = [];
9135
- reactData.headerGroups = [];
9136
- return;
9137
- }
9138
- break;
9139
- case 'hour':
9140
- if (diffDayNum > 1000 * 60 * 60 * 24 * 31 * 3) {
9141
- reactData.tableColumn = [];
9142
- reactData.headerGroups = [];
9143
- return;
9144
- }
9145
- break;
9146
- case 'minute':
9147
- if (diffDayNum > 1000 * 60 * 60 * 24 * 3) {
9148
- reactData.tableColumn = [];
9149
- reactData.headerGroups = [];
9150
- return;
9151
- }
9152
- break;
9153
- case 'second':
9154
- if (diffDayNum > 1000 * 60 * 60 * 3) {
9155
- reactData.tableColumn = [];
9156
- reactData.headerGroups = [];
9157
- return;
9158
- }
9159
- break;
9160
- }
9130
+ // switch (minScale.type) {
9131
+ // case 'day':
9132
+ // case 'date':
9133
+ // if (diffDayNum > (1000 * 60 * 60 * 24 * 366 * 3)) {
9134
+ // reactData.tableColumn = []
9135
+ // reactData.headerGroups = []
9136
+ // return
9137
+ // }
9138
+ // break
9139
+ // case 'hour':
9140
+ // if (diffDayNum > (1000 * 60 * 60 * 24 * 31 * 3)) {
9141
+ // reactData.tableColumn = []
9142
+ // reactData.headerGroups = []
9143
+ // return
9144
+ // }
9145
+ // break
9146
+ // case 'minute':
9147
+ // if (diffDayNum > (1000 * 60 * 60 * 24 * 3)) {
9148
+ // reactData.tableColumn = []
9149
+ // reactData.headerGroups = []
9150
+ // return
9151
+ // }
9152
+ // break
9153
+ // case 'second':
9154
+ // if (diffDayNum > (1000 * 60 * 60 * 3)) {
9155
+ // reactData.tableColumn = []
9156
+ // reactData.headerGroups = []
9157
+ // return
9158
+ // }
9159
+ // break
9160
+ // }
9161
9161
  var renderListMaps = {
9162
9162
  year: [],
9163
9163
  quarter: [],
@@ -9357,8 +9357,10 @@ function handleParseColumn($xeGanttView) {
9357
9357
  internalData.chartMaps = ctMaps;
9358
9358
  }
9359
9359
  }
9360
- reactData.tableColumn = fullCols;
9360
+ internalData.visibleColumn = fullCols;
9361
9361
  reactData.headerGroups = groupCols;
9362
+ updateScrollXStatus($xeGanttView);
9363
+ handleTableColumn($xeGanttView);
9362
9364
  }
9363
9365
  function handleUpdateData($xeGanttView) {
9364
9366
  var $xeGantt = $xeGanttView.$xeGantt;
@@ -9463,9 +9465,10 @@ function updateStyle($xeGanttView) {
9463
9465
  var internalData = $xeGanttView.internalData;
9464
9466
  var scrollbarWidth = reactData.scrollbarWidth,
9465
9467
  scrollbarHeight = reactData.scrollbarHeight,
9466
- tableColumn = reactData.tableColumn,
9467
- headerGroups = reactData.headerGroups;
9468
- var elemStore = internalData.elemStore;
9468
+ headerGroups = reactData.headerGroups,
9469
+ tableColumn = reactData.tableColumn;
9470
+ var elemStore = internalData.elemStore,
9471
+ visibleColumn = internalData.visibleColumn;
9469
9472
  var $xeTable = internalData.xeTable;
9470
9473
  var el = $xeGanttView.$refs.refElem;
9471
9474
  if (!el || !el.clientHeight) {
@@ -9546,82 +9549,210 @@ function updateStyle($xeGanttView) {
9546
9549
  yBottomCornerEl.style.display = tFooterHeight ? 'block' : '';
9547
9550
  }
9548
9551
  var colInfoElem = $xeGanttView.$refs.refColInfoElem;
9552
+ var viewCellWidth = 40;
9549
9553
  if (colInfoElem) {
9550
- reactData.viewCellWidth = colInfoElem.clientWidth || 40;
9554
+ viewCellWidth = colInfoElem.clientWidth || 40;
9551
9555
  }
9552
- var viewTableWidth = reactData.viewCellWidth * tableColumn.length;
9556
+ var viewTableWidth = viewCellWidth * visibleColumn.length;
9553
9557
  if (bodyScrollElem) {
9554
9558
  var viewWidth = bodyScrollElem.clientWidth;
9555
9559
  var remainWidth = viewWidth - viewTableWidth;
9556
9560
  if (remainWidth > 0) {
9557
- reactData.viewCellWidth += Math.floor(remainWidth / tableColumn.length);
9561
+ viewCellWidth += Math.floor(remainWidth / visibleColumn.length);
9558
9562
  viewTableWidth = viewWidth;
9559
9563
  }
9560
9564
  }
9565
+ reactData.viewCellWidth = viewCellWidth;
9561
9566
  var headerTableElem = getRefElem(elemStore['main-header-table']);
9562
9567
  var bodyTableElem = getRefElem(elemStore['main-body-table']);
9568
+ var vmTableWidth = viewCellWidth * tableColumn.length;
9563
9569
  if (headerTableElem) {
9564
9570
  headerTableElem.style.width = "".concat(viewTableWidth, "px");
9565
9571
  }
9566
9572
  if (bodyTableElem) {
9567
- bodyTableElem.style.width = "".concat(viewTableWidth, "px");
9573
+ bodyTableElem.style.width = "".concat(vmTableWidth, "px");
9568
9574
  }
9569
9575
  reactData.scrollXWidth = viewTableWidth;
9570
9576
  return updateChart($xeGanttView);
9571
9577
  }
9572
- function _handleLazyRecalculate($xeGanttView) {
9578
+ function handleRecalculateStyle($xeGanttView) {
9579
+ var internalData = $xeGanttView.internalData;
9580
+ var el = $xeGanttView.$refs.refElem;
9581
+ internalData.rceRunTime = Date.now();
9582
+ if (!el || !el.clientWidth) {
9583
+ return $xeGanttView.$nextTick();
9584
+ }
9573
9585
  calcScrollbar($xeGanttView);
9574
9586
  updateStyle($xeGanttView);
9575
9587
  updateChart($xeGanttView);
9588
+ return computeScrollLoad($xeGanttView);
9589
+ }
9590
+ function _handleLazyRecalculate($xeGanttView) {
9591
+ var internalData = $xeGanttView.internalData;
9592
+ return new Promise(function (resolve) {
9593
+ var rceTimeout = internalData.rceTimeout,
9594
+ rceRunTime = internalData.rceRunTime;
9595
+ var $xeTable = internalData.xeTable;
9596
+ var refreshDelay = 50;
9597
+ if ($xeTable) {
9598
+ var resizeOpts = $xeTable.computeResizeOpts;
9599
+ refreshDelay = resizeOpts.refreshDelay || 50;
9600
+ }
9601
+ if (rceTimeout) {
9602
+ clearTimeout(rceTimeout);
9603
+ if (rceRunTime && rceRunTime + (refreshDelay - 5) < Date.now()) {
9604
+ resolve(handleRecalculateStyle($xeGanttView));
9605
+ } else {
9606
+ $xeGanttView.$nextTick(function () {
9607
+ resolve();
9608
+ });
9609
+ }
9610
+ } else {
9611
+ resolve(handleRecalculateStyle($xeGanttView));
9612
+ }
9613
+ internalData.rceTimeout = setTimeout(function () {
9614
+ internalData.rceTimeout = undefined;
9615
+ handleRecalculateStyle($xeGanttView);
9616
+ }, refreshDelay);
9617
+ });
9618
+ }
9619
+ function computeScrollLoad($xeGanttView) {
9620
+ var reactData = $xeGanttView.reactData;
9621
+ var internalData = $xeGanttView.internalData;
9622
+ return $xeGanttView.$nextTick().then(function () {
9623
+ var scrollXLoad = reactData.scrollXLoad;
9624
+ var scrollXStore = internalData.scrollXStore;
9625
+ // 计算 X 逻辑
9626
+ if (scrollXLoad) {
9627
+ var _handleVirtualXVisibl = handleVirtualXVisible($xeGanttView),
9628
+ toXVisibleIndex = _handleVirtualXVisibl.toVisibleIndex,
9629
+ visibleXSize = _handleVirtualXVisibl.visibleSize;
9630
+ var offsetXSize = 2;
9631
+ scrollXStore.preloadSize = 1;
9632
+ scrollXStore.offsetSize = offsetXSize;
9633
+ scrollXStore.visibleSize = visibleXSize;
9634
+ scrollXStore.endIndex = Math.max(scrollXStore.startIndex + scrollXStore.visibleSize + offsetXSize, scrollXStore.endIndex);
9635
+ scrollXStore.visibleStartIndex = Math.max(scrollXStore.startIndex, toXVisibleIndex);
9636
+ scrollXStore.visibleEndIndex = Math.min(scrollXStore.endIndex, toXVisibleIndex + visibleXSize);
9637
+ updateScrollXData($xeGanttView).then(function () {
9638
+ loadScrollXData($xeGanttView);
9639
+ });
9640
+ } else {
9641
+ updateScrollXSpace($xeGanttView);
9642
+ }
9643
+ });
9644
+ }
9645
+ function handleVirtualXVisible($xeGanttView) {
9646
+ var reactData = $xeGanttView.reactData;
9647
+ var internalData = $xeGanttView.internalData;
9648
+ var viewCellWidth = reactData.viewCellWidth;
9649
+ var elemStore = internalData.elemStore;
9650
+ var bodyScrollElem = getRefElem(elemStore['main-body-scroll']);
9651
+ if (bodyScrollElem) {
9652
+ var clientWidth = bodyScrollElem.clientWidth;
9653
+ var scrollLeft = bodyScrollElem.scrollLeft;
9654
+ var toVisibleIndex = Math.floor(scrollLeft / viewCellWidth) - 1;
9655
+ var visibleSize = Math.ceil(clientWidth / viewCellWidth) + 1;
9656
+ return {
9657
+ toVisibleIndex: Math.max(0, toVisibleIndex),
9658
+ visibleSize: Math.max(1, visibleSize)
9659
+ };
9660
+ }
9661
+ return {
9662
+ toVisibleIndex: 0,
9663
+ visibleSize: 6
9664
+ };
9665
+ }
9666
+ function loadScrollXData($xeGanttView) {
9667
+ var reactData = $xeGanttView.reactData;
9668
+ var internalData = $xeGanttView.internalData;
9669
+ var isScrollXBig = reactData.isScrollXBig;
9670
+ var scrollXStore = internalData.scrollXStore;
9671
+ var preloadSize = scrollXStore.preloadSize,
9672
+ startIndex = scrollXStore.startIndex,
9673
+ endIndex = scrollXStore.endIndex,
9674
+ offsetSize = scrollXStore.offsetSize;
9675
+ var _handleVirtualXVisibl2 = handleVirtualXVisible($xeGanttView),
9676
+ toVisibleIndex = _handleVirtualXVisibl2.toVisibleIndex,
9677
+ visibleSize = _handleVirtualXVisibl2.visibleSize;
9678
+ var offsetItem = {
9679
+ startIndex: Math.max(0, isScrollXBig ? toVisibleIndex - 1 : toVisibleIndex - 1 - offsetSize - preloadSize),
9680
+ endIndex: isScrollXBig ? toVisibleIndex + visibleSize : toVisibleIndex + visibleSize + offsetSize + preloadSize
9681
+ };
9682
+ scrollXStore.visibleStartIndex = toVisibleIndex - 1;
9683
+ scrollXStore.visibleEndIndex = toVisibleIndex + visibleSize + 1;
9684
+ var offsetStartIndex = offsetItem.startIndex,
9685
+ offsetEndIndex = offsetItem.endIndex;
9686
+ if (toVisibleIndex <= startIndex || toVisibleIndex >= endIndex - visibleSize - 1) {
9687
+ if (startIndex !== offsetStartIndex || endIndex !== offsetEndIndex) {
9688
+ scrollXStore.startIndex = offsetStartIndex;
9689
+ scrollXStore.endIndex = offsetEndIndex;
9690
+ updateScrollXData($xeGanttView);
9691
+ }
9692
+ }
9693
+ }
9694
+ function updateScrollXData($xeGanttView) {
9695
+ handleTableColumn($xeGanttView);
9696
+ updateScrollXSpace($xeGanttView);
9576
9697
  return $xeGanttView.$nextTick();
9577
9698
  }
9578
- // function updateScrollXSpace ($xeGanttView: VxeGanttViewConstructor & VxeGanttViewPrivateMethods) {
9579
- // const reactData = $xeGanttView.reactData
9580
- // const internalData = $xeGanttView.internalData
9581
- // const { scrollXLoad, scrollXWidth } = reactData
9582
- // const { elemStore } = internalData
9583
- // const bodyScrollElem = getRefElem(elemStore['main-body-scroll'])
9584
- // const bodyTableElem = getRefElem(elemStore['main-body-table'])
9585
- // let xSpaceLeft = 0
9586
- // let clientWidth = 0
9587
- // if (bodyScrollElem) {
9588
- // clientWidth = bodyScrollElem.clientWidth
9589
- // }
9590
- // // 虚拟渲染
9591
- // let isScrollXBig = false
9592
- // let ySpaceWidth = scrollXWidth
9593
- // if (scrollXWidth > maxXWidth) {
9594
- // // 触右
9595
- // if (bodyScrollElem && bodyTableElem && bodyScrollElem.scrollLeft + clientWidth >= maxXWidth) {
9596
- // xSpaceLeft = maxXWidth - bodyTableElem.clientWidth
9597
- // } else {
9598
- // xSpaceLeft = (maxXWidth - clientWidth) * (xSpaceLeft / (scrollXWidth - clientWidth))
9599
- // }
9600
- // ySpaceWidth = maxXWidth
9601
- // isScrollXBig = true
9602
- // }
9603
- // if (bodyTableElem) {
9604
- // bodyTableElem.style.transform = `translate(${xSpaceLeft}px, ${reactData.scrollYTop || 0}px)`
9605
- // }
9606
- // const layoutList = ['header', 'body', 'footer']
9607
- // layoutList.forEach(layout => {
9608
- // const xSpaceElem = getRefElem(elemStore[`main-${layout}-xSpace`])
9609
- // if (xSpaceElem) {
9610
- // xSpaceElem.style.width = scrollXLoad ? `${ySpaceWidth}px` : ''
9611
- // }
9612
- // })
9613
- // reactData.scrollXLeft = xSpaceLeft
9614
- // reactData.scrollXWidth = ySpaceWidth
9615
- // reactData.isScrollXBig = isScrollXBig
9616
- // const scrollXSpaceEl = $xeGanttView.$refs.refScrollXSpaceElem as HTMLDivElement
9617
- // if (scrollXSpaceEl) {
9618
- // scrollXSpaceEl.style.width = `${ySpaceWidth}px`
9619
- // }
9620
- // calcScrollbar($xeGanttView)
9621
- // return $xeGanttView.$nextTick().then(() => {
9622
- // updateStyle($xeGanttView)
9623
- // })
9624
- // }
9699
+ function updateScrollXStatus($xeGanttView) {
9700
+ var reactData = $xeGanttView.reactData;
9701
+ var scrollXLoad = true;
9702
+ reactData.scrollXLoad = scrollXLoad;
9703
+ return scrollXLoad;
9704
+ }
9705
+ function handleTableColumn($xeGanttView) {
9706
+ var reactData = $xeGanttView.reactData;
9707
+ var internalData = $xeGanttView.internalData;
9708
+ var scrollXLoad = reactData.scrollXLoad;
9709
+ var visibleColumn = internalData.visibleColumn,
9710
+ scrollXStore = internalData.scrollXStore;
9711
+ var tableColumn = scrollXLoad ? visibleColumn.slice(scrollXStore.startIndex, scrollXStore.endIndex) : visibleColumn.slice(0);
9712
+ reactData.tableColumn = tableColumn;
9713
+ }
9714
+ function updateScrollXSpace($xeGanttView) {
9715
+ var reactData = $xeGanttView.reactData;
9716
+ var internalData = $xeGanttView.internalData;
9717
+ var scrollXLoad = reactData.scrollXLoad,
9718
+ scrollXWidth = reactData.scrollXWidth,
9719
+ viewCellWidth = reactData.viewCellWidth;
9720
+ var elemStore = internalData.elemStore,
9721
+ scrollXStore = internalData.scrollXStore;
9722
+ var bodyTableElem = getRefElem(elemStore['main-body-table']);
9723
+ // const headerTableElem = getRefElem(elemStore['main-header-table'])
9724
+ // const footerTableElem = getRefElem(elemStore['main-footer-table'])
9725
+ var startIndex = scrollXStore.startIndex;
9726
+ var xSpaceLeft = 0;
9727
+ if (scrollXLoad) {
9728
+ xSpaceLeft = Math.max(0, startIndex * viewCellWidth);
9729
+ }
9730
+ // if (headerTableElem) {
9731
+ // headerTableElem.style.transform = `translate(${xSpaceLeft}px, 0px)`
9732
+ // }
9733
+ if (bodyTableElem) {
9734
+ bodyTableElem.style.transform = "translate(".concat(xSpaceLeft, "px, ").concat(reactData.scrollYTop || 0, "px)");
9735
+ }
9736
+ // if (footerTableElem) {
9737
+ // footerTableElem.style.transform = `translate(${xSpaceLeft}px, 0px)`
9738
+ // }
9739
+ var layoutList = ['header', 'body', 'footer'];
9740
+ layoutList.forEach(function (layout) {
9741
+ var xSpaceElem = getRefElem(elemStore["main-".concat(layout, "-xSpace")]);
9742
+ if (xSpaceElem) {
9743
+ xSpaceElem.style.width = scrollXLoad ? "".concat(scrollXWidth, "px") : '';
9744
+ }
9745
+ });
9746
+ var scrollXSpaceEl = $xeGanttView.$refs.refScrollXSpaceElem;
9747
+ if (scrollXSpaceEl) {
9748
+ scrollXSpaceEl.style.width = "".concat(scrollXWidth, "px");
9749
+ }
9750
+ calcScrollbar($xeGanttView);
9751
+ return $xeGanttView.$nextTick();
9752
+ }
9753
+ function triggerScrollXEvent($xeGanttView) {
9754
+ loadScrollXData($xeGanttView);
9755
+ }
9625
9756
  function updateScrollYSpace($xeGanttView) {
9626
9757
  var reactData = $xeGanttView.reactData;
9627
9758
  var internalData = $xeGanttView.internalData;
@@ -9750,6 +9881,8 @@ function syncTableScrollTop($xeGanttView, scrollTop) {
9750
9881
  scrollbarWidth: 0,
9751
9882
  // 横向滚动条的高度
9752
9883
  scrollbarHeight: 0,
9884
+ // 最后滚动时间戳
9885
+ lastScrollTime: 0,
9753
9886
  lazScrollLoading: false,
9754
9887
  scrollVMLoading: false,
9755
9888
  scrollYHeight: 0,
@@ -9878,11 +10011,15 @@ function syncTableScrollTop($xeGanttView, scrollTop) {
9878
10011
  },
9879
10012
  triggerBodyScrollEvent: function triggerBodyScrollEvent(evnt) {
9880
10013
  var $xeGanttView = this;
10014
+ var reactData = $xeGanttView.reactData;
9881
10015
  var internalData = $xeGanttView.internalData;
10016
+ var scrollXLoad = reactData.scrollXLoad;
9882
10017
  var elemStore = internalData.elemStore,
9883
10018
  inVirtualScroll = internalData.inVirtualScroll,
9884
10019
  inHeaderScroll = internalData.inHeaderScroll,
9885
- inFooterScroll = internalData.inFooterScroll;
10020
+ inFooterScroll = internalData.inFooterScroll,
10021
+ lastScrollLeft = internalData.lastScrollLeft,
10022
+ lastScrollTop = internalData.lastScrollTop;
9886
10023
  if (inVirtualScroll) {
9887
10024
  return;
9888
10025
  }
@@ -9893,42 +10030,49 @@ function syncTableScrollTop($xeGanttView, scrollTop) {
9893
10030
  var headerScrollElem = getRefElem(elemStore['main-header-scroll']);
9894
10031
  var xHandleEl = $xeGanttView.$refs.refScrollXHandleElem;
9895
10032
  var yHandleEl = $xeGanttView.$refs.refScrollYHandleElem;
9896
- if (headerScrollElem && wrapperEl) {
9897
- var isRollX = true;
9898
- var isRollY = true;
9899
- var currLeftNum = wrapperEl.scrollLeft;
9900
- var currTopNum = wrapperEl.scrollTop;
10033
+ var scrollLeft = wrapperEl.scrollLeft;
10034
+ var scrollTop = wrapperEl.scrollTop;
10035
+ var isRollX = scrollLeft !== lastScrollLeft;
10036
+ var isRollY = scrollTop !== lastScrollTop;
10037
+ internalData.inBodyScroll = true;
10038
+ internalData.scrollRenderType = '';
10039
+ if (isRollY) {
10040
+ setScrollTop(yHandleEl, scrollTop);
10041
+ syncTableScrollTop($xeGanttView, scrollTop);
10042
+ }
10043
+ if (isRollX) {
9901
10044
  internalData.inBodyScroll = true;
9902
- setScrollLeft(xHandleEl, currLeftNum);
9903
- setScrollLeft(headerScrollElem, currLeftNum);
9904
- setScrollTop(yHandleEl, currTopNum);
9905
- syncTableScrollTop($xeGanttView, currTopNum);
9906
- handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum);
9907
- }
9908
- },
9909
- triggerFooterScrollEvent: function triggerFooterScrollEvent(evnt) {
9910
- var $xeGanttView = this;
9911
- var internalData = $xeGanttView.internalData;
9912
- var inVirtualScroll = internalData.inVirtualScroll,
9913
- inHeaderScroll = internalData.inHeaderScroll,
9914
- inBodyScroll = internalData.inBodyScroll;
9915
- if (inVirtualScroll) {
9916
- return;
9917
- }
9918
- if (inHeaderScroll || inBodyScroll) {
9919
- return;
9920
- }
9921
- var wrapperEl = evnt.currentTarget;
9922
- if (wrapperEl) {
9923
- var isRollX = true;
9924
- var isRollY = false;
9925
- var currLeftNum = wrapperEl.scrollLeft;
9926
- handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum);
10045
+ setScrollLeft(xHandleEl, scrollLeft);
10046
+ setScrollLeft(headerScrollElem, scrollLeft);
10047
+ if (scrollXLoad) {
10048
+ triggerScrollXEvent($xeGanttView);
10049
+ }
9927
10050
  }
9928
- },
10051
+ handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, wrapperEl.scrollTop, scrollLeft);
10052
+ },
10053
+ // triggerFooterScrollEvent (evnt: Event) {
10054
+ // const $xeGanttView = this
10055
+ // const internalData = $xeGanttView.internalData
10056
+ // const { inVirtualScroll, inHeaderScroll, inBodyScroll } = internalData
10057
+ // if (inVirtualScroll) {
10058
+ // return
10059
+ // }
10060
+ // if (inHeaderScroll || inBodyScroll) {
10061
+ // return
10062
+ // }
10063
+ // const wrapperEl = evnt.currentTarget as HTMLDivElement
10064
+ // if (wrapperEl) {
10065
+ // const isRollX = true
10066
+ // const isRollY = false
10067
+ // const currLeftNum = wrapperEl.scrollLeft
10068
+ // handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum)
10069
+ // }
10070
+ // },
9929
10071
  triggerVirtualScrollXEvent: function triggerVirtualScrollXEvent(evnt) {
9930
10072
  var $xeGanttView = this;
10073
+ var reactData = $xeGanttView.reactData;
9931
10074
  var internalData = $xeGanttView.internalData;
10075
+ var scrollXLoad = reactData.scrollXLoad;
9932
10076
  var elemStore = internalData.elemStore,
9933
10077
  inHeaderScroll = internalData.inHeaderScroll,
9934
10078
  inBodyScroll = internalData.inBodyScroll;
@@ -9945,6 +10089,9 @@ function syncTableScrollTop($xeGanttView, scrollTop) {
9945
10089
  internalData.inVirtualScroll = true;
9946
10090
  setScrollLeft(headerScrollElem, currLeftNum);
9947
10091
  setScrollLeft(bodyScrollElem, currLeftNum);
10092
+ if (scrollXLoad) {
10093
+ triggerScrollXEvent($xeGanttView);
10094
+ }
9948
10095
  handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum);
9949
10096
  }
9950
10097
  },
@@ -9971,24 +10118,7 @@ function syncTableScrollTop($xeGanttView, scrollTop) {
9971
10118
  },
9972
10119
  handleUpdateSXSpace: function handleUpdateSXSpace() {
9973
10120
  var $xeGanttView = this;
9974
- var reactData = $xeGanttView.reactData;
9975
- var internalData = $xeGanttView.internalData;
9976
- var scrollXLoad = reactData.scrollXLoad,
9977
- scrollXWidth = reactData.scrollXWidth;
9978
- var elemStore = internalData.elemStore;
9979
- var layoutList = ['header', 'body', 'footer'];
9980
- layoutList.forEach(function (layout) {
9981
- var xSpaceElem = getRefElem(elemStore["main-".concat(layout, "-xSpace")]);
9982
- if (xSpaceElem) {
9983
- xSpaceElem.style.width = scrollXLoad ? "".concat(scrollXWidth, "px") : '';
9984
- }
9985
- });
9986
- var scrollXSpaceEl = $xeGanttView.$refs.refScrollXSpaceElem;
9987
- if (scrollXSpaceEl) {
9988
- scrollXSpaceEl.style.width = "".concat(scrollXWidth, "px");
9989
- }
9990
- calcScrollbar($xeGanttView);
9991
- return $xeGanttView.$nextTick();
10121
+ return updateScrollXSpace($xeGanttView);
9992
10122
  },
9993
10123
  handleUpdateSYSpace: function handleUpdateSYSpace() {
9994
10124
  var $xeGanttView = this;
@@ -10629,8 +10759,8 @@ function gantt_createInternalData() {
10629
10759
  type: 'month',
10630
10760
  level: viewTypeLevelMaps.month
10631
10761
  }, {
10632
- type: 'day',
10633
- level: viewTypeLevelMaps.day
10762
+ type: 'date',
10763
+ level: viewTypeLevelMaps.date
10634
10764
  });
10635
10765
  }
10636
10766
  reactData.taskScaleList = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(scaleConfs, {
@@ -10929,20 +11059,20 @@ function gantt_createInternalData() {
10929
11059
  var tipHeight = 0;
10930
11060
  if (rsNumLeftEl) {
10931
11061
  if (offsetLeft < 0) {
11062
+ rsNumLeftEl.style.display = 'none';
11063
+ } else {
10932
11064
  rsNumLeftEl.textContent = "".concat(targetTableWidth, "px");
10933
11065
  rsNumLeftEl.style.display = 'block';
10934
11066
  tipHeight = rsNumLeftEl.offsetHeight;
10935
- } else {
10936
- rsNumLeftEl.style.display = 'none';
10937
11067
  }
10938
11068
  }
10939
11069
  if (rsNumRightEl) {
10940
11070
  if (offsetLeft < 0) {
10941
- rsNumRightEl.style.display = 'none';
10942
- } else {
10943
11071
  rsNumRightEl.textContent = "".concat(Math.floor(containerRect.width - targetTableWidth), "px");
10944
11072
  rsNumRightEl.style.display = 'block';
10945
11073
  tipHeight = rsNumRightEl.offsetHeight;
11074
+ } else {
11075
+ rsNumRightEl.style.display = 'none';
10946
11076
  }
10947
11077
  }
10948
11078
  var tipTop = evnt.clientY - containerRect.top - tipHeight / 2;
@@ -12234,9 +12364,9 @@ function gantt_createInternalData() {
12234
12364
  class: 'vxe-gantt--resizable-split-tip-number'
12235
12365
  }, [h('div', {
12236
12366
  class: 'vxe-gantt--resizable-split-number-left'
12237
- }, '10px'), h('div', {
12367
+ }), h('div', {
12238
12368
  class: 'vxe-gantt--resizable-split-number-right'
12239
- }, '20px')])]), h('div', {
12369
+ })])]), h('div', {
12240
12370
  class: 'vxe-gantt--border-line'
12241
12371
  })]));
12242
12372
  break;