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/es/gantt/src/gantt-header.js +5 -3
- package/es/gantt/src/gantt-view.js +281 -150
- package/es/gantt/src/gantt.js +9 -12
- package/es/gantt/style.css +5 -1
- package/es/gantt/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-gantt/style.css +5 -1
- package/es/vxe-gantt/style.min.css +1 -1
- package/lib/gantt/src/gantt-header.js +4 -3
- package/lib/gantt/src/gantt-header.min.js +1 -1
- package/lib/gantt/src/gantt-view.js +305 -154
- package/lib/gantt/src/gantt-view.min.js +1 -1
- package/lib/gantt/src/gantt.js +8 -11
- package/lib/gantt/src/gantt.min.js +1 -1
- package/lib/gantt/style/style.css +5 -1
- package/lib/gantt/style/style.min.css +1 -1
- package/lib/index.umd.js +322 -171
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-gantt/style/style.css +5 -1
- package/lib/vxe-gantt/style/style.min.css +1 -1
- package/package.json +3 -3
- package/packages/gantt/src/gantt-header.ts +5 -3
- package/packages/gantt/src/gantt-view.ts +302 -163
- package/packages/gantt/src/gantt.ts +7 -10
- package/styles/components/gantt.scss +6 -1
- package/styles/theme/dark.scss +1 -0
- package/styles/theme/light.scss +1 -0
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.
|
|
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.
|
|
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
|
|
8451
|
-
|
|
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', {},
|
|
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
|
-
//
|
|
9074
|
-
|
|
9075
|
-
|
|
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
|
-
|
|
9132
|
-
|
|
9133
|
-
|
|
9134
|
-
|
|
9135
|
-
|
|
9136
|
-
|
|
9137
|
-
|
|
9138
|
-
|
|
9139
|
-
|
|
9140
|
-
|
|
9141
|
-
|
|
9142
|
-
|
|
9143
|
-
|
|
9144
|
-
|
|
9145
|
-
|
|
9146
|
-
|
|
9147
|
-
|
|
9148
|
-
|
|
9149
|
-
|
|
9150
|
-
|
|
9151
|
-
|
|
9152
|
-
|
|
9153
|
-
|
|
9154
|
-
|
|
9155
|
-
|
|
9156
|
-
|
|
9157
|
-
|
|
9158
|
-
|
|
9159
|
-
|
|
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 (
|
|
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
|
-
|
|
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 (
|
|
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
|
-
|
|
9453
|
-
|
|
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
|
-
|
|
9467
|
-
|
|
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
|
-
|
|
9578
|
+
viewCellWidth = colInfoElem.clientWidth || 40;
|
|
9551
9579
|
}
|
|
9552
|
-
var viewTableWidth =
|
|
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
|
-
|
|
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(
|
|
9597
|
+
bodyTableElem.style.width = "".concat(vmTableWidth, "px");
|
|
9568
9598
|
}
|
|
9569
9599
|
reactData.scrollXWidth = viewTableWidth;
|
|
9570
9600
|
return updateChart($xeGanttView);
|
|
9571
9601
|
}
|
|
9572
|
-
function
|
|
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
|
-
|
|
9579
|
-
|
|
9580
|
-
|
|
9581
|
-
|
|
9582
|
-
|
|
9583
|
-
|
|
9584
|
-
|
|
9585
|
-
|
|
9586
|
-
|
|
9587
|
-
|
|
9588
|
-
|
|
9589
|
-
|
|
9590
|
-
|
|
9591
|
-
|
|
9592
|
-
|
|
9593
|
-
|
|
9594
|
-
|
|
9595
|
-
|
|
9596
|
-
|
|
9597
|
-
|
|
9598
|
-
|
|
9599
|
-
|
|
9600
|
-
|
|
9601
|
-
|
|
9602
|
-
//
|
|
9603
|
-
//
|
|
9604
|
-
|
|
9605
|
-
|
|
9606
|
-
|
|
9607
|
-
|
|
9608
|
-
|
|
9609
|
-
//
|
|
9610
|
-
//
|
|
9611
|
-
//
|
|
9612
|
-
|
|
9613
|
-
|
|
9614
|
-
|
|
9615
|
-
//
|
|
9616
|
-
//
|
|
9617
|
-
//
|
|
9618
|
-
|
|
9619
|
-
|
|
9620
|
-
|
|
9621
|
-
|
|
9622
|
-
|
|
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
|
-
|
|
9897
|
-
|
|
9898
|
-
|
|
9899
|
-
|
|
9900
|
-
|
|
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,
|
|
9903
|
-
setScrollLeft(headerScrollElem,
|
|
9904
|
-
|
|
9905
|
-
|
|
9906
|
-
|
|
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
|
-
|
|
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: '
|
|
10633
|
-
level: viewTypeLevelMaps.
|
|
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
|
-
}
|
|
12391
|
+
}), h('div', {
|
|
12238
12392
|
class: 'vxe-gantt--resizable-split-number-right'
|
|
12239
|
-
}
|
|
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) {
|