vxe-gantt 3.0.6 → 3.0.8

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.8");
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.8";
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;
@@ -9127,37 +9124,37 @@ function handleParseColumn($xeGanttView) {
9127
9124
  var currTime = minViewDate.getTime();
9128
9125
  var diffDayNum = maxViewDate.getTime() - minViewDate.getTime();
9129
9126
  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
- }
9127
+ // switch (minScale.type) {
9128
+ // case 'day':
9129
+ // case 'date':
9130
+ // if (diffDayNum > (1000 * 60 * 60 * 24 * 366 * 3)) {
9131
+ // reactData.tableColumn = []
9132
+ // reactData.headerGroups = []
9133
+ // return
9134
+ // }
9135
+ // break
9136
+ // case 'hour':
9137
+ // if (diffDayNum > (1000 * 60 * 60 * 24 * 31 * 3)) {
9138
+ // reactData.tableColumn = []
9139
+ // reactData.headerGroups = []
9140
+ // return
9141
+ // }
9142
+ // break
9143
+ // case 'minute':
9144
+ // if (diffDayNum > (1000 * 60 * 60 * 24 * 3)) {
9145
+ // reactData.tableColumn = []
9146
+ // reactData.headerGroups = []
9147
+ // return
9148
+ // }
9149
+ // break
9150
+ // case 'second':
9151
+ // if (diffDayNum > (1000 * 60 * 60 * 3)) {
9152
+ // reactData.tableColumn = []
9153
+ // reactData.headerGroups = []
9154
+ // return
9155
+ // }
9156
+ // break
9157
+ // }
9161
9158
  var renderListMaps = {
9162
9159
  year: [],
9163
9160
  quarter: [],
@@ -9323,9 +9320,13 @@ function handleParseColumn($xeGanttView) {
9323
9320
  if ($xeTable) {
9324
9321
  var startField = $xeGantt.computeStartField;
9325
9322
  var endField = $xeGantt.computeEndField;
9323
+ var tableReactData = $xeTable;
9324
+ var isRowGroupStatus = tableReactData.isRowGroupStatus;
9326
9325
  var tableInternalData = $xeTable;
9327
9326
  var afterFullData = tableInternalData.afterFullData,
9328
- afterTreeFullData = tableInternalData.afterTreeFullData;
9327
+ afterTreeFullData = tableInternalData.afterTreeFullData,
9328
+ afterGroupFullData = tableInternalData.afterGroupFullData;
9329
+ var aggregateOpts = $xeTable.computeAggregateOpts;
9329
9330
  var treeOpts = $xeTable.computeTreeOpts;
9330
9331
  var transform = treeOpts.transform;
9331
9332
  var childrenField = treeOpts.children || treeOpts.childrenField;
@@ -9347,7 +9348,16 @@ function handleParseColumn($xeGanttView) {
9347
9348
  };
9348
9349
  }
9349
9350
  };
9350
- if (treeConfig) {
9351
+ if (isRowGroupStatus) {
9352
+ // 行分组
9353
+ var mapChildrenField = aggregateOpts.mapChildrenField;
9354
+ if (mapChildrenField) {
9355
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterGroupFullData, handleParseRender, {
9356
+ children: mapChildrenField
9357
+ });
9358
+ }
9359
+ } else if (treeConfig) {
9360
+ // 树结构
9351
9361
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData, handleParseRender, {
9352
9362
  children: transform ? treeOpts.mapChildrenField : childrenField
9353
9363
  });
@@ -9357,8 +9367,10 @@ function handleParseColumn($xeGanttView) {
9357
9367
  internalData.chartMaps = ctMaps;
9358
9368
  }
9359
9369
  }
9360
- reactData.tableColumn = fullCols;
9370
+ internalData.visibleColumn = fullCols;
9361
9371
  reactData.headerGroups = groupCols;
9372
+ updateScrollXStatus($xeGanttView);
9373
+ handleTableColumn($xeGanttView);
9362
9374
  }
9363
9375
  function handleUpdateData($xeGanttView) {
9364
9376
  var $xeGantt = $xeGanttView.$xeGantt;
@@ -9366,6 +9378,7 @@ function handleUpdateData($xeGanttView) {
9366
9378
  var internalData = $xeGanttView.internalData;
9367
9379
  var ganttProps = $xeGantt;
9368
9380
  var treeConfig = ganttProps.treeConfig;
9381
+ var scrollXStore = internalData.scrollXStore;
9369
9382
  var $xeTable = internalData.xeTable;
9370
9383
  var sdMaps = {};
9371
9384
  var edMaps = {};
@@ -9374,9 +9387,13 @@ function handleUpdateData($xeGanttView) {
9374
9387
  if ($xeTable) {
9375
9388
  var startField = $xeGantt.computeStartField;
9376
9389
  var endField = $xeGantt.computeEndField;
9390
+ var tableReactData = $xeTable;
9391
+ var isRowGroupStatus = tableReactData.isRowGroupStatus;
9377
9392
  var tableInternalData = $xeTable;
9378
9393
  var afterFullData = tableInternalData.afterFullData,
9379
- afterTreeFullData = tableInternalData.afterTreeFullData;
9394
+ afterTreeFullData = tableInternalData.afterTreeFullData,
9395
+ afterGroupFullData = tableInternalData.afterGroupFullData;
9396
+ var aggregateOpts = $xeTable.computeAggregateOpts;
9380
9397
  var treeOpts = $xeTable.computeTreeOpts;
9381
9398
  var transform = treeOpts.transform;
9382
9399
  var childrenField = treeOpts.children || treeOpts.childrenField;
@@ -9394,7 +9411,16 @@ function handleUpdateData($xeGanttView) {
9394
9411
  }
9395
9412
  }
9396
9413
  };
9397
- if (treeConfig) {
9414
+ if (isRowGroupStatus) {
9415
+ // 行分组
9416
+ var mapChildrenField = aggregateOpts.mapChildrenField;
9417
+ if (mapChildrenField) {
9418
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterGroupFullData, handleMinMaxData, {
9419
+ children: mapChildrenField
9420
+ });
9421
+ }
9422
+ } else if (treeConfig) {
9423
+ // 树结构
9398
9424
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData, handleMinMaxData, {
9399
9425
  children: transform ? treeOpts.mapChildrenField : childrenField
9400
9426
  });
@@ -9402,6 +9428,8 @@ function handleUpdateData($xeGanttView) {
9402
9428
  afterFullData.forEach(handleMinMaxData);
9403
9429
  }
9404
9430
  }
9431
+ scrollXStore.startIndex = 0;
9432
+ scrollXStore.endIndex = Math.max(1, scrollXStore.visibleSize);
9405
9433
  reactData.minViewDate = minDate;
9406
9434
  reactData.maxViewDate = maxDate;
9407
9435
  internalData.startMaps = sdMaps;
@@ -9449,10 +9477,8 @@ function updateChart($xeGanttView) {
9449
9477
  }
9450
9478
  var rowid = rowEl.getAttribute('rowid');
9451
9479
  var rowRest = rowid ? chartMaps[rowid] : null;
9452
- if (rowRest) {
9453
- barEl.style.left = "".concat(viewCellWidth * rowRest.oLeftSize, "px");
9454
- barEl.style.width = "".concat(viewCellWidth * rowRest.oWidthSize, "px");
9455
- }
9480
+ barEl.style.left = "".concat(rowRest ? viewCellWidth * rowRest.oLeftSize : 0, "px");
9481
+ barEl.style.width = "".concat(rowRest ? viewCellWidth * rowRest.oWidthSize : 0, "px");
9456
9482
  });
9457
9483
  }
9458
9484
  return $xeGanttView.$nextTick();
@@ -9463,9 +9489,10 @@ function updateStyle($xeGanttView) {
9463
9489
  var internalData = $xeGanttView.internalData;
9464
9490
  var scrollbarWidth = reactData.scrollbarWidth,
9465
9491
  scrollbarHeight = reactData.scrollbarHeight,
9466
- tableColumn = reactData.tableColumn,
9467
- headerGroups = reactData.headerGroups;
9468
- var elemStore = internalData.elemStore;
9492
+ headerGroups = reactData.headerGroups,
9493
+ tableColumn = reactData.tableColumn;
9494
+ var elemStore = internalData.elemStore,
9495
+ visibleColumn = internalData.visibleColumn;
9469
9496
  var $xeTable = internalData.xeTable;
9470
9497
  var el = $xeGanttView.$refs.refElem;
9471
9498
  if (!el || !el.clientHeight) {
@@ -9546,82 +9573,210 @@ function updateStyle($xeGanttView) {
9546
9573
  yBottomCornerEl.style.display = tFooterHeight ? 'block' : '';
9547
9574
  }
9548
9575
  var colInfoElem = $xeGanttView.$refs.refColInfoElem;
9576
+ var viewCellWidth = 40;
9549
9577
  if (colInfoElem) {
9550
- reactData.viewCellWidth = colInfoElem.clientWidth || 40;
9578
+ viewCellWidth = colInfoElem.clientWidth || 40;
9551
9579
  }
9552
- var viewTableWidth = reactData.viewCellWidth * tableColumn.length;
9580
+ var viewTableWidth = viewCellWidth * visibleColumn.length;
9553
9581
  if (bodyScrollElem) {
9554
9582
  var viewWidth = bodyScrollElem.clientWidth;
9555
9583
  var remainWidth = viewWidth - viewTableWidth;
9556
9584
  if (remainWidth > 0) {
9557
- reactData.viewCellWidth += Math.floor(remainWidth / tableColumn.length);
9585
+ viewCellWidth += Math.floor(remainWidth / visibleColumn.length);
9558
9586
  viewTableWidth = viewWidth;
9559
9587
  }
9560
9588
  }
9589
+ reactData.viewCellWidth = viewCellWidth;
9561
9590
  var headerTableElem = getRefElem(elemStore['main-header-table']);
9562
9591
  var bodyTableElem = getRefElem(elemStore['main-body-table']);
9592
+ var vmTableWidth = viewCellWidth * tableColumn.length;
9563
9593
  if (headerTableElem) {
9564
9594
  headerTableElem.style.width = "".concat(viewTableWidth, "px");
9565
9595
  }
9566
9596
  if (bodyTableElem) {
9567
- bodyTableElem.style.width = "".concat(viewTableWidth, "px");
9597
+ bodyTableElem.style.width = "".concat(vmTableWidth, "px");
9568
9598
  }
9569
9599
  reactData.scrollXWidth = viewTableWidth;
9570
9600
  return updateChart($xeGanttView);
9571
9601
  }
9572
- function _handleLazyRecalculate($xeGanttView) {
9602
+ function handleRecalculateStyle($xeGanttView) {
9603
+ var internalData = $xeGanttView.internalData;
9604
+ var el = $xeGanttView.$refs.refElem;
9605
+ internalData.rceRunTime = Date.now();
9606
+ if (!el || !el.clientWidth) {
9607
+ return $xeGanttView.$nextTick();
9608
+ }
9573
9609
  calcScrollbar($xeGanttView);
9574
9610
  updateStyle($xeGanttView);
9575
9611
  updateChart($xeGanttView);
9612
+ return computeScrollLoad($xeGanttView);
9613
+ }
9614
+ function _handleLazyRecalculate($xeGanttView) {
9615
+ var internalData = $xeGanttView.internalData;
9616
+ return new Promise(function (resolve) {
9617
+ var rceTimeout = internalData.rceTimeout,
9618
+ rceRunTime = internalData.rceRunTime;
9619
+ var $xeTable = internalData.xeTable;
9620
+ var refreshDelay = 50;
9621
+ if ($xeTable) {
9622
+ var resizeOpts = $xeTable.computeResizeOpts;
9623
+ refreshDelay = resizeOpts.refreshDelay || 50;
9624
+ }
9625
+ if (rceTimeout) {
9626
+ clearTimeout(rceTimeout);
9627
+ if (rceRunTime && rceRunTime + (refreshDelay - 5) < Date.now()) {
9628
+ resolve(handleRecalculateStyle($xeGanttView));
9629
+ } else {
9630
+ $xeGanttView.$nextTick(function () {
9631
+ resolve();
9632
+ });
9633
+ }
9634
+ } else {
9635
+ resolve(handleRecalculateStyle($xeGanttView));
9636
+ }
9637
+ internalData.rceTimeout = setTimeout(function () {
9638
+ internalData.rceTimeout = undefined;
9639
+ handleRecalculateStyle($xeGanttView);
9640
+ }, refreshDelay);
9641
+ });
9642
+ }
9643
+ function computeScrollLoad($xeGanttView) {
9644
+ var reactData = $xeGanttView.reactData;
9645
+ var internalData = $xeGanttView.internalData;
9646
+ return $xeGanttView.$nextTick().then(function () {
9647
+ var scrollXLoad = reactData.scrollXLoad;
9648
+ var scrollXStore = internalData.scrollXStore;
9649
+ // 计算 X 逻辑
9650
+ if (scrollXLoad) {
9651
+ var _handleVirtualXVisibl = handleVirtualXVisible($xeGanttView),
9652
+ toXVisibleIndex = _handleVirtualXVisibl.toVisibleIndex,
9653
+ visibleXSize = _handleVirtualXVisibl.visibleSize;
9654
+ var offsetXSize = 2;
9655
+ scrollXStore.preloadSize = 1;
9656
+ scrollXStore.offsetSize = offsetXSize;
9657
+ scrollXStore.visibleSize = visibleXSize;
9658
+ scrollXStore.endIndex = Math.max(scrollXStore.startIndex + scrollXStore.visibleSize + offsetXSize, scrollXStore.endIndex);
9659
+ scrollXStore.visibleStartIndex = Math.max(scrollXStore.startIndex, toXVisibleIndex);
9660
+ scrollXStore.visibleEndIndex = Math.min(scrollXStore.endIndex, toXVisibleIndex + visibleXSize);
9661
+ updateScrollXData($xeGanttView).then(function () {
9662
+ loadScrollXData($xeGanttView);
9663
+ });
9664
+ } else {
9665
+ updateScrollXSpace($xeGanttView);
9666
+ }
9667
+ });
9668
+ }
9669
+ function handleVirtualXVisible($xeGanttView) {
9670
+ var reactData = $xeGanttView.reactData;
9671
+ var internalData = $xeGanttView.internalData;
9672
+ var viewCellWidth = reactData.viewCellWidth;
9673
+ var elemStore = internalData.elemStore;
9674
+ var bodyScrollElem = getRefElem(elemStore['main-body-scroll']);
9675
+ if (bodyScrollElem) {
9676
+ var clientWidth = bodyScrollElem.clientWidth;
9677
+ var scrollLeft = bodyScrollElem.scrollLeft;
9678
+ var toVisibleIndex = Math.floor(scrollLeft / viewCellWidth) - 1;
9679
+ var visibleSize = Math.ceil(clientWidth / viewCellWidth) + 1;
9680
+ return {
9681
+ toVisibleIndex: Math.max(0, toVisibleIndex),
9682
+ visibleSize: Math.max(1, visibleSize)
9683
+ };
9684
+ }
9685
+ return {
9686
+ toVisibleIndex: 0,
9687
+ visibleSize: 6
9688
+ };
9689
+ }
9690
+ function loadScrollXData($xeGanttView) {
9691
+ var reactData = $xeGanttView.reactData;
9692
+ var internalData = $xeGanttView.internalData;
9693
+ var isScrollXBig = reactData.isScrollXBig;
9694
+ var scrollXStore = internalData.scrollXStore;
9695
+ var preloadSize = scrollXStore.preloadSize,
9696
+ startIndex = scrollXStore.startIndex,
9697
+ endIndex = scrollXStore.endIndex,
9698
+ offsetSize = scrollXStore.offsetSize;
9699
+ var _handleVirtualXVisibl2 = handleVirtualXVisible($xeGanttView),
9700
+ toVisibleIndex = _handleVirtualXVisibl2.toVisibleIndex,
9701
+ visibleSize = _handleVirtualXVisibl2.visibleSize;
9702
+ var offsetItem = {
9703
+ startIndex: Math.max(0, isScrollXBig ? toVisibleIndex - 1 : toVisibleIndex - 1 - offsetSize - preloadSize),
9704
+ endIndex: isScrollXBig ? toVisibleIndex + visibleSize : toVisibleIndex + visibleSize + offsetSize + preloadSize
9705
+ };
9706
+ scrollXStore.visibleStartIndex = toVisibleIndex - 1;
9707
+ scrollXStore.visibleEndIndex = toVisibleIndex + visibleSize + 1;
9708
+ var offsetStartIndex = offsetItem.startIndex,
9709
+ offsetEndIndex = offsetItem.endIndex;
9710
+ if (toVisibleIndex <= startIndex || toVisibleIndex >= endIndex - visibleSize - 1) {
9711
+ if (startIndex !== offsetStartIndex || endIndex !== offsetEndIndex) {
9712
+ scrollXStore.startIndex = offsetStartIndex;
9713
+ scrollXStore.endIndex = offsetEndIndex;
9714
+ updateScrollXData($xeGanttView);
9715
+ }
9716
+ }
9717
+ }
9718
+ function updateScrollXData($xeGanttView) {
9719
+ handleTableColumn($xeGanttView);
9720
+ updateScrollXSpace($xeGanttView);
9576
9721
  return $xeGanttView.$nextTick();
9577
9722
  }
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
- // }
9723
+ function updateScrollXStatus($xeGanttView) {
9724
+ var reactData = $xeGanttView.reactData;
9725
+ var scrollXLoad = true;
9726
+ reactData.scrollXLoad = scrollXLoad;
9727
+ return scrollXLoad;
9728
+ }
9729
+ function handleTableColumn($xeGanttView) {
9730
+ var reactData = $xeGanttView.reactData;
9731
+ var internalData = $xeGanttView.internalData;
9732
+ var scrollXLoad = reactData.scrollXLoad;
9733
+ var visibleColumn = internalData.visibleColumn,
9734
+ scrollXStore = internalData.scrollXStore;
9735
+ var tableColumn = scrollXLoad ? visibleColumn.slice(scrollXStore.startIndex, scrollXStore.endIndex) : visibleColumn.slice(0);
9736
+ reactData.tableColumn = tableColumn;
9737
+ }
9738
+ function updateScrollXSpace($xeGanttView) {
9739
+ var reactData = $xeGanttView.reactData;
9740
+ var internalData = $xeGanttView.internalData;
9741
+ var scrollXLoad = reactData.scrollXLoad,
9742
+ scrollXWidth = reactData.scrollXWidth,
9743
+ viewCellWidth = reactData.viewCellWidth;
9744
+ var elemStore = internalData.elemStore,
9745
+ scrollXStore = internalData.scrollXStore;
9746
+ var bodyTableElem = getRefElem(elemStore['main-body-table']);
9747
+ // const headerTableElem = getRefElem(elemStore['main-header-table'])
9748
+ // const footerTableElem = getRefElem(elemStore['main-footer-table'])
9749
+ var startIndex = scrollXStore.startIndex;
9750
+ var xSpaceLeft = 0;
9751
+ if (scrollXLoad) {
9752
+ xSpaceLeft = Math.max(0, startIndex * viewCellWidth);
9753
+ }
9754
+ // if (headerTableElem) {
9755
+ // headerTableElem.style.transform = `translate(${xSpaceLeft}px, 0px)`
9756
+ // }
9757
+ if (bodyTableElem) {
9758
+ bodyTableElem.style.transform = "translate(".concat(xSpaceLeft, "px, ").concat(reactData.scrollYTop || 0, "px)");
9759
+ }
9760
+ // if (footerTableElem) {
9761
+ // footerTableElem.style.transform = `translate(${xSpaceLeft}px, 0px)`
9762
+ // }
9763
+ var layoutList = ['header', 'body', 'footer'];
9764
+ layoutList.forEach(function (layout) {
9765
+ var xSpaceElem = getRefElem(elemStore["main-".concat(layout, "-xSpace")]);
9766
+ if (xSpaceElem) {
9767
+ xSpaceElem.style.width = scrollXLoad ? "".concat(scrollXWidth, "px") : '';
9768
+ }
9769
+ });
9770
+ var scrollXSpaceEl = $xeGanttView.$refs.refScrollXSpaceElem;
9771
+ if (scrollXSpaceEl) {
9772
+ scrollXSpaceEl.style.width = "".concat(scrollXWidth, "px");
9773
+ }
9774
+ calcScrollbar($xeGanttView);
9775
+ return $xeGanttView.$nextTick();
9776
+ }
9777
+ function triggerScrollXEvent($xeGanttView) {
9778
+ loadScrollXData($xeGanttView);
9779
+ }
9625
9780
  function updateScrollYSpace($xeGanttView) {
9626
9781
  var reactData = $xeGanttView.reactData;
9627
9782
  var internalData = $xeGanttView.internalData;
@@ -9750,6 +9905,8 @@ function syncTableScrollTop($xeGanttView, scrollTop) {
9750
9905
  scrollbarWidth: 0,
9751
9906
  // 横向滚动条的高度
9752
9907
  scrollbarHeight: 0,
9908
+ // 最后滚动时间戳
9909
+ lastScrollTime: 0,
9753
9910
  lazScrollLoading: false,
9754
9911
  scrollVMLoading: false,
9755
9912
  scrollYHeight: 0,
@@ -9878,11 +10035,15 @@ function syncTableScrollTop($xeGanttView, scrollTop) {
9878
10035
  },
9879
10036
  triggerBodyScrollEvent: function triggerBodyScrollEvent(evnt) {
9880
10037
  var $xeGanttView = this;
10038
+ var reactData = $xeGanttView.reactData;
9881
10039
  var internalData = $xeGanttView.internalData;
10040
+ var scrollXLoad = reactData.scrollXLoad;
9882
10041
  var elemStore = internalData.elemStore,
9883
10042
  inVirtualScroll = internalData.inVirtualScroll,
9884
10043
  inHeaderScroll = internalData.inHeaderScroll,
9885
- inFooterScroll = internalData.inFooterScroll;
10044
+ inFooterScroll = internalData.inFooterScroll,
10045
+ lastScrollLeft = internalData.lastScrollLeft,
10046
+ lastScrollTop = internalData.lastScrollTop;
9886
10047
  if (inVirtualScroll) {
9887
10048
  return;
9888
10049
  }
@@ -9893,42 +10054,49 @@ function syncTableScrollTop($xeGanttView, scrollTop) {
9893
10054
  var headerScrollElem = getRefElem(elemStore['main-header-scroll']);
9894
10055
  var xHandleEl = $xeGanttView.$refs.refScrollXHandleElem;
9895
10056
  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;
10057
+ var scrollLeft = wrapperEl.scrollLeft;
10058
+ var scrollTop = wrapperEl.scrollTop;
10059
+ var isRollX = scrollLeft !== lastScrollLeft;
10060
+ var isRollY = scrollTop !== lastScrollTop;
10061
+ internalData.inBodyScroll = true;
10062
+ internalData.scrollRenderType = '';
10063
+ if (isRollY) {
10064
+ setScrollTop(yHandleEl, scrollTop);
10065
+ syncTableScrollTop($xeGanttView, scrollTop);
10066
+ }
10067
+ if (isRollX) {
9901
10068
  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);
10069
+ setScrollLeft(xHandleEl, scrollLeft);
10070
+ setScrollLeft(headerScrollElem, scrollLeft);
10071
+ if (scrollXLoad) {
10072
+ triggerScrollXEvent($xeGanttView);
10073
+ }
9927
10074
  }
9928
- },
10075
+ handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, wrapperEl.scrollTop, scrollLeft);
10076
+ },
10077
+ // triggerFooterScrollEvent (evnt: Event) {
10078
+ // const $xeGanttView = this
10079
+ // const internalData = $xeGanttView.internalData
10080
+ // const { inVirtualScroll, inHeaderScroll, inBodyScroll } = internalData
10081
+ // if (inVirtualScroll) {
10082
+ // return
10083
+ // }
10084
+ // if (inHeaderScroll || inBodyScroll) {
10085
+ // return
10086
+ // }
10087
+ // const wrapperEl = evnt.currentTarget as HTMLDivElement
10088
+ // if (wrapperEl) {
10089
+ // const isRollX = true
10090
+ // const isRollY = false
10091
+ // const currLeftNum = wrapperEl.scrollLeft
10092
+ // handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum)
10093
+ // }
10094
+ // },
9929
10095
  triggerVirtualScrollXEvent: function triggerVirtualScrollXEvent(evnt) {
9930
10096
  var $xeGanttView = this;
10097
+ var reactData = $xeGanttView.reactData;
9931
10098
  var internalData = $xeGanttView.internalData;
10099
+ var scrollXLoad = reactData.scrollXLoad;
9932
10100
  var elemStore = internalData.elemStore,
9933
10101
  inHeaderScroll = internalData.inHeaderScroll,
9934
10102
  inBodyScroll = internalData.inBodyScroll;
@@ -9945,6 +10113,9 @@ function syncTableScrollTop($xeGanttView, scrollTop) {
9945
10113
  internalData.inVirtualScroll = true;
9946
10114
  setScrollLeft(headerScrollElem, currLeftNum);
9947
10115
  setScrollLeft(bodyScrollElem, currLeftNum);
10116
+ if (scrollXLoad) {
10117
+ triggerScrollXEvent($xeGanttView);
10118
+ }
9948
10119
  handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum);
9949
10120
  }
9950
10121
  },
@@ -9971,24 +10142,7 @@ function syncTableScrollTop($xeGanttView, scrollTop) {
9971
10142
  },
9972
10143
  handleUpdateSXSpace: function handleUpdateSXSpace() {
9973
10144
  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();
10145
+ return updateScrollXSpace($xeGanttView);
9992
10146
  },
9993
10147
  handleUpdateSYSpace: function handleUpdateSYSpace() {
9994
10148
  var $xeGanttView = this;
@@ -10629,8 +10783,8 @@ function gantt_createInternalData() {
10629
10783
  type: 'month',
10630
10784
  level: viewTypeLevelMaps.month
10631
10785
  }, {
10632
- type: 'day',
10633
- level: viewTypeLevelMaps.day
10786
+ type: 'date',
10787
+ level: viewTypeLevelMaps.date
10634
10788
  });
10635
10789
  }
10636
10790
  reactData.taskScaleList = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(scaleConfs, {
@@ -10929,20 +11083,20 @@ function gantt_createInternalData() {
10929
11083
  var tipHeight = 0;
10930
11084
  if (rsNumLeftEl) {
10931
11085
  if (offsetLeft < 0) {
11086
+ rsNumLeftEl.style.display = 'none';
11087
+ } else {
10932
11088
  rsNumLeftEl.textContent = "".concat(targetTableWidth, "px");
10933
11089
  rsNumLeftEl.style.display = 'block';
10934
11090
  tipHeight = rsNumLeftEl.offsetHeight;
10935
- } else {
10936
- rsNumLeftEl.style.display = 'none';
10937
11091
  }
10938
11092
  }
10939
11093
  if (rsNumRightEl) {
10940
11094
  if (offsetLeft < 0) {
10941
- rsNumRightEl.style.display = 'none';
10942
- } else {
10943
11095
  rsNumRightEl.textContent = "".concat(Math.floor(containerRect.width - targetTableWidth), "px");
10944
11096
  rsNumRightEl.style.display = 'block';
10945
11097
  tipHeight = rsNumRightEl.offsetHeight;
11098
+ } else {
11099
+ rsNumRightEl.style.display = 'none';
10946
11100
  }
10947
11101
  }
10948
11102
  var tipTop = evnt.clientY - containerRect.top - tipHeight / 2;
@@ -12234,9 +12388,9 @@ function gantt_createInternalData() {
12234
12388
  class: 'vxe-gantt--resizable-split-tip-number'
12235
12389
  }, [h('div', {
12236
12390
  class: 'vxe-gantt--resizable-split-number-left'
12237
- }, '10px'), h('div', {
12391
+ }), h('div', {
12238
12392
  class: 'vxe-gantt--resizable-split-number-right'
12239
- }, '20px')])]), h('div', {
12393
+ })])]), h('div', {
12240
12394
  class: 'vxe-gantt--border-line'
12241
12395
  })]));
12242
12396
  break;
@@ -12315,9 +12469,6 @@ function gantt_createInternalData() {
12315
12469
  if (props.expandConfig) {
12316
12470
  warnLog('vxe.error.notProp', ['expand-config']);
12317
12471
  }
12318
- if (props.aggregateConfig) {
12319
- warnLog('vxe.error.notProp', ['aggregate-config']);
12320
- }
12321
12472
  $xeGantt.$nextTick(function () {
12322
12473
  if (props.formConfig) {
12323
12474
  if (!VxeUIFormComponent) {