vxe-gantt 3.0.27 → 3.1.0
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 +11 -2
- package/es/gantt/src/gantt-view.js +306 -45
- package/es/gantt/src/gantt.js +18 -0
- package/es/gantt/src/util.js +11 -0
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/gantt/src/gantt-header.js +9 -1
- package/lib/gantt/src/gantt-header.min.js +1 -1
- package/lib/gantt/src/gantt-view.js +341 -49
- package/lib/gantt/src/gantt-view.min.js +1 -1
- package/lib/gantt/src/gantt.js +20 -0
- package/lib/gantt/src/gantt.min.js +1 -1
- package/lib/gantt/src/util.js +12 -0
- package/lib/gantt/src/util.min.js +1 -1
- package/lib/index.umd.js +389 -56
- package/lib/index.umd.min.js +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/package.json +3 -3
- package/packages/gantt/src/gantt-header.ts +9 -2
- package/packages/gantt/src/gantt-view.ts +316 -47
- package/packages/gantt/src/gantt.ts +21 -0
- package/packages/gantt/src/util.ts +13 -0
|
@@ -21,6 +21,8 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
|
|
|
21
21
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
22
22
|
var globalEvents = _core.VxeUI.globalEvents;
|
|
23
23
|
var sourceType = 'gantt';
|
|
24
|
+
var minuteMs = 1000 * 60;
|
|
25
|
+
var dayMs = minuteMs * 60 * 24;
|
|
24
26
|
function createInternalData() {
|
|
25
27
|
return {
|
|
26
28
|
xeTable: null,
|
|
@@ -86,43 +88,17 @@ function updateTodayData($xeGanttView) {
|
|
|
86
88
|
second: "".concat(yyyy, "_").concat(MM, "_").concat(dd, "_").concat(HH, "_").concat(mm, "_").concat(ss)
|
|
87
89
|
};
|
|
88
90
|
}
|
|
89
|
-
function
|
|
91
|
+
function handleColumnHeader($xeGanttView) {
|
|
90
92
|
var $xeGantt = $xeGanttView.$xeGantt;
|
|
91
|
-
var reactData = $xeGanttView.reactData;
|
|
92
|
-
var internalData = $xeGanttView.internalData;
|
|
93
|
-
var ganttProps = $xeGantt;
|
|
94
93
|
var ganttReactData = $xeGantt.reactData;
|
|
95
|
-
var treeConfig = ganttProps.treeConfig;
|
|
96
94
|
var taskScaleList = ganttReactData.taskScaleList;
|
|
97
|
-
var
|
|
98
|
-
|
|
99
|
-
var
|
|
95
|
+
var scaleUnit = $xeGantt.computeScaleUnit;
|
|
96
|
+
var minScale = $xeGantt.computeMinScale;
|
|
97
|
+
var weekScale = $xeGantt.computeWeekScale;
|
|
98
|
+
var scaleDateList = $xeGanttView.computeScaleDateList;
|
|
100
99
|
var fullCols = [];
|
|
101
100
|
var groupCols = [];
|
|
102
|
-
if (minScale &&
|
|
103
|
-
var minSType = minScale.type;
|
|
104
|
-
var weekScale = taskScaleList.find(function (item) {
|
|
105
|
-
return item.type === 'week';
|
|
106
|
-
});
|
|
107
|
-
var gapTime = 1000 * 60 * 60 * 24;
|
|
108
|
-
switch (minScale.type) {
|
|
109
|
-
case 'hour':
|
|
110
|
-
gapTime = 1000 * 60 * 60;
|
|
111
|
-
break;
|
|
112
|
-
case 'minute':
|
|
113
|
-
gapTime = 1000 * 60;
|
|
114
|
-
break;
|
|
115
|
-
case 'second':
|
|
116
|
-
gapTime = 1000;
|
|
117
|
-
break;
|
|
118
|
-
default:
|
|
119
|
-
{
|
|
120
|
-
break;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
var currTime = minViewDate.getTime();
|
|
124
|
-
var diffDayNum = maxViewDate.getTime() - minViewDate.getTime();
|
|
125
|
-
var countSize = Math.max(5, Math.floor(diffDayNum / gapTime) + 1);
|
|
101
|
+
if (minScale && scaleUnit && scaleDateList.length) {
|
|
126
102
|
var renderListMaps = {
|
|
127
103
|
year: [],
|
|
128
104
|
quarter: [],
|
|
@@ -146,7 +122,7 @@ function handleParseColumn($xeGanttView) {
|
|
|
146
122
|
second: {}
|
|
147
123
|
};
|
|
148
124
|
var handleData = function handleData(type, colMaps, minCol) {
|
|
149
|
-
if (
|
|
125
|
+
if (minScale.type === type) {
|
|
150
126
|
return;
|
|
151
127
|
}
|
|
152
128
|
var currCol = colMaps[type];
|
|
@@ -164,8 +140,8 @@ function handleParseColumn($xeGanttView) {
|
|
|
164
140
|
currGpCol.children.push(minCol);
|
|
165
141
|
}
|
|
166
142
|
};
|
|
167
|
-
for (var i = 0; i <
|
|
168
|
-
var itemDate =
|
|
143
|
+
for (var i = 0; i < scaleDateList.length; i++) {
|
|
144
|
+
var itemDate = scaleDateList[i];
|
|
169
145
|
var _XEUtils$toDateString3 = _xeUtils.default.toDateString(itemDate, 'yyyy-M-d-H-m-s').split('-'),
|
|
170
146
|
_XEUtils$toDateString4 = _slicedToArray(_XEUtils$toDateString3, 6),
|
|
171
147
|
yyyy = _XEUtils$toDateString4[0],
|
|
@@ -179,6 +155,7 @@ function handleParseColumn($xeGanttView) {
|
|
|
179
155
|
var q = Math.ceil((itemDate.getMonth() + 1) / 3);
|
|
180
156
|
var W = _xeUtils.default.getYearWeek(itemDate, weekScale ? weekScale.startDay : undefined);
|
|
181
157
|
var dateObj = {
|
|
158
|
+
date: itemDate,
|
|
182
159
|
yy: yyyy,
|
|
183
160
|
M: MM,
|
|
184
161
|
d: dd,
|
|
@@ -237,7 +214,7 @@ function handleParseColumn($xeGanttView) {
|
|
|
237
214
|
dateObj: dateObj
|
|
238
215
|
}
|
|
239
216
|
};
|
|
240
|
-
var minCol = colMaps[
|
|
217
|
+
var minCol = colMaps[minScale.type];
|
|
241
218
|
if (minScale.level < 19) {
|
|
242
219
|
handleData('year', colMaps, minCol);
|
|
243
220
|
}
|
|
@@ -265,7 +242,7 @@ function handleParseColumn($xeGanttView) {
|
|
|
265
242
|
fullCols.push(minCol);
|
|
266
243
|
}
|
|
267
244
|
taskScaleList.forEach(function (scaleItem) {
|
|
268
|
-
if (scaleItem.type ===
|
|
245
|
+
if (scaleItem.type === minScale.type) {
|
|
269
246
|
groupCols.push({
|
|
270
247
|
scaleItem: scaleItem,
|
|
271
248
|
columns: fullCols
|
|
@@ -284,6 +261,240 @@ function handleParseColumn($xeGanttView) {
|
|
|
284
261
|
columns: list
|
|
285
262
|
});
|
|
286
263
|
});
|
|
264
|
+
}
|
|
265
|
+
return {
|
|
266
|
+
fullCols: fullCols,
|
|
267
|
+
groupCols: groupCols
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
function createChartRender($xeGanttView, fullCols) {
|
|
271
|
+
var $xeGantt = $xeGanttView.$xeGantt;
|
|
272
|
+
var reactData = $xeGanttView.reactData;
|
|
273
|
+
var minViewDate = reactData.minViewDate;
|
|
274
|
+
var minScale = $xeGantt.computeMinScale;
|
|
275
|
+
var scaleUnit = $xeGantt.computeScaleUnit;
|
|
276
|
+
var weekScale = $xeGantt.computeWeekScale;
|
|
277
|
+
switch (scaleUnit) {
|
|
278
|
+
case 'year':
|
|
279
|
+
{
|
|
280
|
+
var indexMaps = {};
|
|
281
|
+
fullCols.forEach(function (_ref, i) {
|
|
282
|
+
var dateObj = _ref.dateObj;
|
|
283
|
+
var yyyyMM = _xeUtils.default.toDateString(dateObj.date, 'yyyy');
|
|
284
|
+
indexMaps[yyyyMM] = i;
|
|
285
|
+
});
|
|
286
|
+
return function (startValue, endValue) {
|
|
287
|
+
var startDate = parseStringDate($xeGanttView, startValue);
|
|
288
|
+
var endDate = parseStringDate($xeGanttView, endValue);
|
|
289
|
+
var startStr = _xeUtils.default.toDateString(startDate, 'yyyy');
|
|
290
|
+
var startFirstDate = _xeUtils.default.getWhatYear(startDate, 0, 'first');
|
|
291
|
+
var endStr = _xeUtils.default.toDateString(endDate, 'yyyy');
|
|
292
|
+
var endFirstDate = _xeUtils.default.getWhatYear(endDate, 0, 'first');
|
|
293
|
+
var dateSize = Math.floor((_xeUtils.default.getWhatYear(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / dayMs);
|
|
294
|
+
var subtract = (startDate.getTime() - startFirstDate.getTime()) / dayMs / dateSize;
|
|
295
|
+
var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / dayMs + 1) / dateSize;
|
|
296
|
+
var offsetLeftSize = (indexMaps[startStr] || 0) + subtract;
|
|
297
|
+
return {
|
|
298
|
+
offsetLeftSize: offsetLeftSize,
|
|
299
|
+
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize
|
|
300
|
+
};
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
case 'quarter':
|
|
304
|
+
{
|
|
305
|
+
var _indexMaps = {};
|
|
306
|
+
fullCols.forEach(function (_ref2, i) {
|
|
307
|
+
var dateObj = _ref2.dateObj;
|
|
308
|
+
var q = _xeUtils.default.toDateString(dateObj.date, 'yyyy-q');
|
|
309
|
+
_indexMaps[q] = i;
|
|
310
|
+
});
|
|
311
|
+
return function (startValue, endValue) {
|
|
312
|
+
var startDate = parseStringDate($xeGanttView, startValue);
|
|
313
|
+
var endDate = parseStringDate($xeGanttView, endValue);
|
|
314
|
+
var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-q');
|
|
315
|
+
var startFirstDate = _xeUtils.default.getWhatQuarter(startDate, 0, 'first');
|
|
316
|
+
var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-q');
|
|
317
|
+
var endFirstDate = _xeUtils.default.getWhatQuarter(endDate, 0, 'first');
|
|
318
|
+
var dateSize = Math.floor((_xeUtils.default.getWhatQuarter(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / dayMs);
|
|
319
|
+
var subtract = (startDate.getTime() - startFirstDate.getTime()) / dayMs / dateSize;
|
|
320
|
+
var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / dayMs + 1) / dateSize;
|
|
321
|
+
var offsetLeftSize = (_indexMaps[startStr] || 0) + subtract;
|
|
322
|
+
return {
|
|
323
|
+
offsetLeftSize: offsetLeftSize,
|
|
324
|
+
offsetWidthSize: (_indexMaps[endStr] || 0) - offsetLeftSize + addSize
|
|
325
|
+
};
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
case 'month':
|
|
329
|
+
{
|
|
330
|
+
var _indexMaps2 = {};
|
|
331
|
+
fullCols.forEach(function (_ref3, i) {
|
|
332
|
+
var dateObj = _ref3.dateObj;
|
|
333
|
+
var yyyyMM = _xeUtils.default.toDateString(dateObj.date, 'yyyy-MM');
|
|
334
|
+
_indexMaps2[yyyyMM] = i;
|
|
335
|
+
});
|
|
336
|
+
return function (startValue, endValue) {
|
|
337
|
+
var startDate = parseStringDate($xeGanttView, startValue);
|
|
338
|
+
var endDate = parseStringDate($xeGanttView, endValue);
|
|
339
|
+
var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-MM');
|
|
340
|
+
var startFirstDate = _xeUtils.default.getWhatMonth(startDate, 0, 'first');
|
|
341
|
+
var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-MM');
|
|
342
|
+
var endFirstDate = _xeUtils.default.getWhatMonth(endDate, 0, 'first');
|
|
343
|
+
var dateSize = Math.floor((_xeUtils.default.getWhatMonth(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / dayMs);
|
|
344
|
+
var subtract = (startDate.getTime() - startFirstDate.getTime()) / dayMs / dateSize;
|
|
345
|
+
var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / dayMs + 1) / dateSize;
|
|
346
|
+
var offsetLeftSize = (_indexMaps2[startStr] || 0) + subtract;
|
|
347
|
+
return {
|
|
348
|
+
offsetLeftSize: offsetLeftSize,
|
|
349
|
+
offsetWidthSize: (_indexMaps2[endStr] || 0) - offsetLeftSize + addSize
|
|
350
|
+
};
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
case 'week':
|
|
354
|
+
{
|
|
355
|
+
var _indexMaps3 = {};
|
|
356
|
+
fullCols.forEach(function (_ref4, i) {
|
|
357
|
+
var dateObj = _ref4.dateObj;
|
|
358
|
+
var yyyyW = _xeUtils.default.toDateString(dateObj.date, 'yyyy-W', {
|
|
359
|
+
firstDay: weekScale ? weekScale.startDay : undefined
|
|
360
|
+
});
|
|
361
|
+
_indexMaps3[yyyyW] = i;
|
|
362
|
+
});
|
|
363
|
+
return function (startValue, endValue) {
|
|
364
|
+
var startDate = parseStringDate($xeGanttView, startValue);
|
|
365
|
+
var endDate = parseStringDate($xeGanttView, endValue);
|
|
366
|
+
var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-W', {
|
|
367
|
+
firstDay: weekScale ? weekScale.startDay : undefined
|
|
368
|
+
});
|
|
369
|
+
var startFirstDate = _xeUtils.default.getWhatWeek(startDate, 0, weekScale ? weekScale.startDay : undefined, weekScale ? weekScale.startDay : undefined);
|
|
370
|
+
var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-W', {
|
|
371
|
+
firstDay: weekScale ? weekScale.startDay : undefined
|
|
372
|
+
});
|
|
373
|
+
var endFirstDate = _xeUtils.default.getWhatWeek(endDate, 0, weekScale ? weekScale.startDay : undefined, weekScale ? weekScale.startDay : undefined);
|
|
374
|
+
var dateSize = Math.floor((_xeUtils.default.getWhatWeek(endDate, 1, weekScale ? weekScale.startDay : undefined, weekScale ? weekScale.startDay : undefined).getTime() - endFirstDate.getTime()) / dayMs);
|
|
375
|
+
var subtract = (startDate.getTime() - startFirstDate.getTime()) / dayMs / dateSize;
|
|
376
|
+
var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / dayMs + 1) / dateSize;
|
|
377
|
+
var offsetLeftSize = (_indexMaps3[startStr] || 0) + subtract;
|
|
378
|
+
return {
|
|
379
|
+
offsetLeftSize: offsetLeftSize,
|
|
380
|
+
offsetWidthSize: (_indexMaps3[endStr] || 0) - offsetLeftSize + addSize
|
|
381
|
+
};
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
case 'day':
|
|
385
|
+
case 'date':
|
|
386
|
+
{
|
|
387
|
+
var _indexMaps4 = {};
|
|
388
|
+
fullCols.forEach(function (_ref5, i) {
|
|
389
|
+
var dateObj = _ref5.dateObj;
|
|
390
|
+
var yyyyMM = _xeUtils.default.toDateString(dateObj.date, 'yyyy-MM-dd');
|
|
391
|
+
_indexMaps4[yyyyMM] = i;
|
|
392
|
+
});
|
|
393
|
+
return function (startValue, endValue) {
|
|
394
|
+
var startDate = parseStringDate($xeGanttView, startValue);
|
|
395
|
+
var endDate = parseStringDate($xeGanttView, endValue);
|
|
396
|
+
var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-MM-dd');
|
|
397
|
+
var startFirstDate = _xeUtils.default.getWhatDay(startDate, 0, 'first');
|
|
398
|
+
var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-MM-dd');
|
|
399
|
+
var endFirstDate = _xeUtils.default.getWhatDay(endDate, 0, 'first');
|
|
400
|
+
var minuteSize = Math.floor((_xeUtils.default.getWhatDay(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / minuteMs);
|
|
401
|
+
var subtract = (startDate.getTime() - startFirstDate.getTime()) / minuteMs / minuteSize;
|
|
402
|
+
var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / minuteMs + 1) / minuteSize;
|
|
403
|
+
var offsetLeftSize = (_indexMaps4[startStr] || 0) + subtract;
|
|
404
|
+
return {
|
|
405
|
+
offsetLeftSize: offsetLeftSize,
|
|
406
|
+
offsetWidthSize: (_indexMaps4[endStr] || 0) - offsetLeftSize + addSize
|
|
407
|
+
};
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
case 'hour':
|
|
411
|
+
{
|
|
412
|
+
var _indexMaps5 = {};
|
|
413
|
+
fullCols.forEach(function (_ref6, i) {
|
|
414
|
+
var dateObj = _ref6.dateObj;
|
|
415
|
+
var yyyyMM = _xeUtils.default.toDateString(dateObj.date, 'yyyy-MM-dd HH');
|
|
416
|
+
_indexMaps5[yyyyMM] = i;
|
|
417
|
+
});
|
|
418
|
+
return function (startValue, endValue) {
|
|
419
|
+
var startDate = parseStringDate($xeGanttView, startValue);
|
|
420
|
+
var endDate = parseStringDate($xeGanttView, endValue);
|
|
421
|
+
var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-MM-dd HH');
|
|
422
|
+
var startFirstDate = _xeUtils.default.getWhatHours(startDate, 0, 'first');
|
|
423
|
+
var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-MM-dd HH');
|
|
424
|
+
var endFirstDate = _xeUtils.default.getWhatHours(endDate, 0, 'first');
|
|
425
|
+
var minuteSize = Math.floor((_xeUtils.default.getWhatHours(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / minuteMs);
|
|
426
|
+
var subtract = (startDate.getTime() - startFirstDate.getTime()) / minuteMs / minuteSize;
|
|
427
|
+
var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / minuteMs + 1) / minuteSize;
|
|
428
|
+
var offsetLeftSize = (_indexMaps5[startStr] || 0) + subtract;
|
|
429
|
+
return {
|
|
430
|
+
offsetLeftSize: offsetLeftSize,
|
|
431
|
+
offsetWidthSize: (_indexMaps5[endStr] || 0) - offsetLeftSize + addSize
|
|
432
|
+
};
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
case 'minute':
|
|
436
|
+
{
|
|
437
|
+
var _indexMaps6 = {};
|
|
438
|
+
fullCols.forEach(function (_ref7, i) {
|
|
439
|
+
var dateObj = _ref7.dateObj;
|
|
440
|
+
var yyyyMM = _xeUtils.default.toDateString(dateObj.date, 'yyyy-MM-dd HH:mm');
|
|
441
|
+
_indexMaps6[yyyyMM] = i;
|
|
442
|
+
});
|
|
443
|
+
return function (startValue, endValue) {
|
|
444
|
+
var startDate = parseStringDate($xeGanttView, startValue);
|
|
445
|
+
var endDate = parseStringDate($xeGanttView, endValue);
|
|
446
|
+
var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-MM-dd HH:mm');
|
|
447
|
+
var startFirstDate = _xeUtils.default.getWhatMinutes(startDate, 0, 'first');
|
|
448
|
+
var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-MM-dd HH:mm');
|
|
449
|
+
var endFirstDate = _xeUtils.default.getWhatMinutes(endDate, 0, 'first');
|
|
450
|
+
var minuteSize = Math.floor((_xeUtils.default.getWhatMinutes(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / minuteMs);
|
|
451
|
+
var subtract = (startDate.getTime() - startFirstDate.getTime()) / minuteMs / minuteSize;
|
|
452
|
+
var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / minuteMs + 1) / minuteSize;
|
|
453
|
+
var offsetLeftSize = (_indexMaps6[startStr] || 0) + subtract;
|
|
454
|
+
return {
|
|
455
|
+
offsetLeftSize: offsetLeftSize,
|
|
456
|
+
offsetWidthSize: (_indexMaps6[endStr] || 0) - offsetLeftSize + addSize
|
|
457
|
+
};
|
|
458
|
+
};
|
|
459
|
+
}
|
|
460
|
+
case 'second':
|
|
461
|
+
{
|
|
462
|
+
var gapTime = (0, _util.getStandardGapTime)(minScale.type);
|
|
463
|
+
return function (startValue, endValue) {
|
|
464
|
+
var startDate = parseStringDate($xeGanttView, startValue);
|
|
465
|
+
var endDate = parseStringDate($xeGanttView, endValue);
|
|
466
|
+
var offsetLeftSize = 0;
|
|
467
|
+
var offsetWidthSize = 0;
|
|
468
|
+
if (minViewDate) {
|
|
469
|
+
offsetLeftSize = (startDate.getTime() - minViewDate.getTime()) / gapTime;
|
|
470
|
+
offsetWidthSize = (endDate.getTime() - startDate.getTime()) / gapTime + 1;
|
|
471
|
+
}
|
|
472
|
+
return {
|
|
473
|
+
offsetLeftSize: offsetLeftSize,
|
|
474
|
+
offsetWidthSize: offsetWidthSize
|
|
475
|
+
};
|
|
476
|
+
};
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
return function () {
|
|
480
|
+
return {
|
|
481
|
+
offsetLeftSize: 0,
|
|
482
|
+
offsetWidthSize: 0
|
|
483
|
+
};
|
|
484
|
+
};
|
|
485
|
+
}
|
|
486
|
+
function handleParseColumn($xeGanttView) {
|
|
487
|
+
var $xeGantt = $xeGanttView.$xeGantt;
|
|
488
|
+
var reactData = $xeGanttView.reactData;
|
|
489
|
+
var internalData = $xeGanttView.internalData;
|
|
490
|
+
var ganttProps = $xeGantt;
|
|
491
|
+
var treeConfig = ganttProps.treeConfig;
|
|
492
|
+
var minViewDate = reactData.minViewDate,
|
|
493
|
+
maxViewDate = reactData.maxViewDate;
|
|
494
|
+
var _handleColumnHeader = handleColumnHeader($xeGanttView),
|
|
495
|
+
fullCols = _handleColumnHeader.fullCols,
|
|
496
|
+
groupCols = _handleColumnHeader.groupCols;
|
|
497
|
+
if (minViewDate && maxViewDate) {
|
|
287
498
|
var $xeTable = internalData.xeTable;
|
|
288
499
|
if ($xeTable) {
|
|
289
500
|
var startField = $xeGantt.computeStartField;
|
|
@@ -299,20 +510,20 @@ function handleParseColumn($xeGanttView) {
|
|
|
299
510
|
var transform = treeOpts.transform;
|
|
300
511
|
var childrenField = treeOpts.children || treeOpts.childrenField;
|
|
301
512
|
var ctMaps = {};
|
|
513
|
+
var renderFn = createChartRender($xeGanttView, fullCols);
|
|
302
514
|
var handleParseRender = function handleParseRender(row) {
|
|
303
515
|
var rowid = $xeTable.getRowid(row);
|
|
304
516
|
var startValue = _xeUtils.default.get(row, startField);
|
|
305
517
|
var endValue = _xeUtils.default.get(row, endField);
|
|
306
518
|
if (startValue && endValue) {
|
|
307
|
-
var
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
var oWidthSize = Math.floor((endDate.getTime() - startDate.getTime()) / gapTime) + 1;
|
|
519
|
+
var _renderFn = renderFn(startValue, endValue),
|
|
520
|
+
offsetLeftSize = _renderFn.offsetLeftSize,
|
|
521
|
+
offsetWidthSize = _renderFn.offsetWidthSize;
|
|
311
522
|
ctMaps[rowid] = {
|
|
312
523
|
row: row,
|
|
313
524
|
rowid: rowid,
|
|
314
|
-
oLeftSize:
|
|
315
|
-
oWidthSize:
|
|
525
|
+
oLeftSize: offsetLeftSize,
|
|
526
|
+
oWidthSize: offsetWidthSize
|
|
316
527
|
};
|
|
317
528
|
}
|
|
318
529
|
};
|
|
@@ -586,10 +797,10 @@ function _handleLazyRecalculate($xeGanttView) {
|
|
|
586
797
|
var rceTimeout = internalData.rceTimeout,
|
|
587
798
|
rceRunTime = internalData.rceRunTime;
|
|
588
799
|
var $xeTable = internalData.xeTable;
|
|
589
|
-
var refreshDelay =
|
|
800
|
+
var refreshDelay = 30;
|
|
590
801
|
if ($xeTable) {
|
|
591
802
|
var resizeOpts = $xeTable.computeResizeOpts;
|
|
592
|
-
refreshDelay = resizeOpts.refreshDelay ||
|
|
803
|
+
refreshDelay = resizeOpts.refreshDelay || refreshDelay;
|
|
593
804
|
}
|
|
594
805
|
if (rceTimeout) {
|
|
595
806
|
clearTimeout(rceTimeout);
|
|
@@ -991,15 +1202,96 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
991
1202
|
internalData: internalData
|
|
992
1203
|
};
|
|
993
1204
|
},
|
|
994
|
-
computed: Object.assign({}, {}),
|
|
1205
|
+
computed: Object.assign(Object.assign({}, {}), {
|
|
1206
|
+
computeScaleDateList: function computeScaleDateList() {
|
|
1207
|
+
var $xeGanttView = this;
|
|
1208
|
+
var $xeGantt = $xeGanttView.$xeGantt;
|
|
1209
|
+
var reactData = $xeGanttView.reactData;
|
|
1210
|
+
var minViewDate = reactData.minViewDate,
|
|
1211
|
+
maxViewDate = reactData.maxViewDate;
|
|
1212
|
+
var minScale = $xeGantt.computeMinScale;
|
|
1213
|
+
var dateList = [];
|
|
1214
|
+
if (!minViewDate || !maxViewDate) {
|
|
1215
|
+
return dateList;
|
|
1216
|
+
}
|
|
1217
|
+
var startTime = minViewDate.getTime();
|
|
1218
|
+
var endTime = maxViewDate.getTime();
|
|
1219
|
+
switch (minScale.type) {
|
|
1220
|
+
case 'year':
|
|
1221
|
+
{
|
|
1222
|
+
var currDate = _xeUtils.default.getWhatYear(minViewDate, 0, 'first');
|
|
1223
|
+
while (currDate <= maxViewDate) {
|
|
1224
|
+
var itemDate = currDate;
|
|
1225
|
+
dateList.push(itemDate);
|
|
1226
|
+
currDate = _xeUtils.default.getWhatYear(currDate, 1);
|
|
1227
|
+
}
|
|
1228
|
+
break;
|
|
1229
|
+
}
|
|
1230
|
+
case 'quarter':
|
|
1231
|
+
{
|
|
1232
|
+
var _currDate = _xeUtils.default.getWhatQuarter(minViewDate, 0, 'first');
|
|
1233
|
+
while (_currDate <= maxViewDate) {
|
|
1234
|
+
var _itemDate = _currDate;
|
|
1235
|
+
dateList.push(_itemDate);
|
|
1236
|
+
_currDate = _xeUtils.default.getWhatQuarter(_currDate, 1);
|
|
1237
|
+
}
|
|
1238
|
+
break;
|
|
1239
|
+
}
|
|
1240
|
+
case 'month':
|
|
1241
|
+
{
|
|
1242
|
+
var _currDate2 = _xeUtils.default.getWhatMonth(minViewDate, 0, 'first');
|
|
1243
|
+
while (_currDate2 <= maxViewDate) {
|
|
1244
|
+
var _itemDate2 = _currDate2;
|
|
1245
|
+
dateList.push(_itemDate2);
|
|
1246
|
+
_currDate2 = _xeUtils.default.getWhatMonth(_currDate2, 1);
|
|
1247
|
+
}
|
|
1248
|
+
break;
|
|
1249
|
+
}
|
|
1250
|
+
case 'week':
|
|
1251
|
+
{
|
|
1252
|
+
var _currDate3 = _xeUtils.default.getWhatWeek(minViewDate, 0, minScale.startDay, minScale.startDay);
|
|
1253
|
+
while (_currDate3 <= maxViewDate) {
|
|
1254
|
+
var _itemDate3 = _currDate3;
|
|
1255
|
+
dateList.push(_itemDate3);
|
|
1256
|
+
_currDate3 = _xeUtils.default.getWhatWeek(_currDate3, 1);
|
|
1257
|
+
}
|
|
1258
|
+
break;
|
|
1259
|
+
}
|
|
1260
|
+
case 'day':
|
|
1261
|
+
case 'date':
|
|
1262
|
+
case 'hour':
|
|
1263
|
+
case 'minute':
|
|
1264
|
+
case 'second':
|
|
1265
|
+
{
|
|
1266
|
+
var gapTime = (0, _util.getStandardGapTime)(minScale.type);
|
|
1267
|
+
var currTime = startTime;
|
|
1268
|
+
while (currTime <= endTime) {
|
|
1269
|
+
var _itemDate4 = new Date(currTime);
|
|
1270
|
+
dateList.push(_itemDate4);
|
|
1271
|
+
currTime += gapTime;
|
|
1272
|
+
}
|
|
1273
|
+
break;
|
|
1274
|
+
}
|
|
1275
|
+
}
|
|
1276
|
+
return dateList;
|
|
1277
|
+
}
|
|
1278
|
+
}),
|
|
995
1279
|
methods: {
|
|
996
1280
|
//
|
|
997
1281
|
// Method
|
|
998
1282
|
//
|
|
999
1283
|
refreshData: function refreshData() {
|
|
1000
1284
|
var $xeGanttView = this;
|
|
1285
|
+
var internalData = $xeGanttView.internalData;
|
|
1001
1286
|
handleUpdateData($xeGanttView);
|
|
1002
|
-
|
|
1287
|
+
handleRecalculateStyle($xeGanttView);
|
|
1288
|
+
return $xeGanttView.$nextTick().then(function () {
|
|
1289
|
+
var $xeTable = internalData.xeTable;
|
|
1290
|
+
handleRecalculateStyle($xeGanttView);
|
|
1291
|
+
if ($xeTable) {
|
|
1292
|
+
return $xeTable.recalculate();
|
|
1293
|
+
}
|
|
1294
|
+
});
|
|
1003
1295
|
},
|
|
1004
1296
|
updateViewData: function updateViewData() {
|
|
1005
1297
|
var $xeGanttView = this;
|
|
@@ -1013,8 +1305,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1013
1305
|
}
|
|
1014
1306
|
return $xeGanttView.$nextTick();
|
|
1015
1307
|
},
|
|
1016
|
-
connectUpdate: function connectUpdate(
|
|
1017
|
-
var $table =
|
|
1308
|
+
connectUpdate: function connectUpdate(_ref8) {
|
|
1309
|
+
var $table = _ref8.$table;
|
|
1018
1310
|
var $xeGanttView = this;
|
|
1019
1311
|
var internalData = $xeGanttView.internalData;
|
|
1020
1312
|
if ($table) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_dom=require("../../ui/src/dom"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body")),_ganttFooter=_interopRequireDefault(require("./gantt-footer"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var l;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(l="Object"===(l={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:l)||"Set"===l?Array.from(e):"Arguments"===l||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(l)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var l=0,a=Array(t);l<t;l++)a[l]=e[l];return a}function _iterableToArrayLimit(e,t){var l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a,r,o,n,c=[],i=!0,s=!1;try{if(o=(l=l.call(e)).next,0===t){if(Object(l)!==l)return;i=!1}else for(;!(i=(a=o.call(l)).done)&&(c.push(a.value),c.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{if(!i&&null!=l.return&&(n=l.return(),Object(n)!==n))return}finally{if(s)throw r}}return c}}function _arrayWithHoles(e){if(Array.isArray(e))return e}var globalEvents=_core.VxeUI.globalEvents,sourceType="gantt";function createInternalData(){return{xeTable:null,visibleColumn:[],startMaps:{},endMaps:{},chartMaps:{},todayDateMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},lastScrollTop:0,lastScrollLeft:0}}var maxYHeight=5e6;function parseStringDate(e,t){e=e.$xeGantt.computeTaskOpts.dateFormat;return _xeUtils.default.toStringDate(t,e||null)}function updateTodayData(e){var t=e.$xeGantt,e=e.internalData,t=t.reactData.taskScaleList.find(function(e){return"week"===e.type}),l=new Date,a=_slicedToArray(_xeUtils.default.toDateString(l,"yyyy-M-d-H-m-s").split("-"),6),r=a[0],o=a[1],n=a[2],c=a[3],i=a[4],a=a[5],s=l.getDay()+1,d=Math.ceil((l.getMonth()+1)/3),l=_xeUtils.default.getYearWeek(l,t?t.startDay:void 0);e.todayDateMaps={year:r,quarter:"".concat(r,"_q").concat(d),month:"".concat(r,"_").concat(o),week:"".concat(r,"_W").concat(l),day:"".concat(r,"_").concat(o,"_").concat(n,"_E").concat(s),date:"".concat(r,"_").concat(o,"_").concat(n),hour:"".concat(r,"_").concat(o,"_").concat(n,"_").concat(c),minute:"".concat(r,"_").concat(o,"_").concat(n,"_").concat(c,"_").concat(i),second:"".concat(r,"_").concat(o,"_").concat(n,"_").concat(c,"_").concat(i,"_").concat(a)}}function handleParseColumn(o){var e=o.$xeGantt,t=o.reactData,l=o.internalData,a=e.reactData,W=e.treeConfig,a=a.taskScaleList,n=t.minViewDate,r=t.maxViewDate,c=_xeUtils.default.last(a),i=[],s=[];if(c&&n&&r){var d=c.type,u=a.find(function(e){return"week"===e.type}),f=864e5;switch(c.type){case"hour":f=36e5;break;case"minute":f=6e4;break;case"second":f=1e3}for(var k=n.getTime(),r=r.getTime()-n.getTime(),M=Math.max(5,Math.floor(r/f)+1),h={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},p={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}},m=function(e,t,l){var a,r;d!==e&&(t=t[e],a="".concat(t.field),(r=p[e][a])||(p[e][a]=r=t,h[e].push(r)),r)&&(r.children||(r.children=[]),r.children.push(l))},S=0;S<M;S++){var v=new Date(k+S*f),y=_slicedToArray(_xeUtils.default.toDateString(v,"yyyy-M-d-H-m-s").split("-"),6),g=y[0],x=y[1],b=y[2],_=y[3],T=y[4],y=y[5],D=v.getDay(),w=D+1,E=Math.ceil((v.getMonth()+1)/3),v=_xeUtils.default.getYearWeek(v,u?u.startDay:void 0),D={yy:g,M:x,d:b,H:_,m:T,s:y,q:E,W:v,E:w,e:D},E={year:{field:g,title:g,dateObj:D},quarter:{field:"".concat(g,"_q").concat(E),title:"".concat(E),dateObj:D},month:{field:"".concat(g,"_").concat(x),title:x,dateObj:D},week:{field:"".concat(g,"_W").concat(v),title:"".concat(v),dateObj:D},day:{field:"".concat(g,"_").concat(x,"_").concat(b,"_E").concat(w),title:"".concat(w),dateObj:D},date:{field:"".concat(g,"_").concat(x,"_").concat(b),title:b,dateObj:D},hour:{field:"".concat(g,"_").concat(x,"_").concat(b,"_").concat(_),title:_,dateObj:D},minute:{field:"".concat(g,"_").concat(x,"_").concat(b,"_").concat(_,"_").concat(T),title:T,dateObj:D},second:{field:"".concat(g,"_").concat(x,"_").concat(b,"_").concat(_,"_").concat(T,"_").concat(y),title:y,dateObj:D}},v=E[d];c.level<19&&m("year",E,v),c.level<17&&m("quarter",E,v),c.level<14&&m("month",E,v),c.level<13&&m("week",E,v),c.level<11&&m("day",E,v),c.level<12&&m("date",E,v),c.level<7&&m("hour",E,v),c.level<5&&m("minute",E,v),i.push(v)}a.forEach(function(e){var t;e.type===d?s.push({scaleItem:e,columns:i}):((t=h[e.type]||[])&&t.forEach(function(e){e.childCount=e.children?e.children.length:0,e.children=void 0}),s.push({scaleItem:e,columns:t}))});var X,L,R,Y,H,I,C,$,V=l.xeTable;V&&(X=e.computeStartField,L=e.computeEndField,r=V.isRowGroupStatus,a=V.afterFullData,e=V.afterTreeFullData,R=V.computeAggregateOpts,H=(Y=V.computeTreeOpts).transform,I=Y.children||Y.childrenField,C={},$=function(e){var t,l=V.getRowid(e),a=_xeUtils.default.get(e,X),r=_xeUtils.default.get(e,L);a&&r&&(a=parseStringDate(o,a),r=parseStringDate(o,r),t=Math.floor((a.getTime()-n.getTime())/f),r=Math.floor((r.getTime()-a.getTime())/f)+1,C[l]={row:e,rowid:l,oLeftSize:t,oWidthSize:r})},r?(r=R.mapChildrenField)&&_xeUtils.default.eachTree(V.afterGroupFullData,$,{children:r}):W?_xeUtils.default.eachTree(e,$,{children:H?Y.mapChildrenField:I}):a.forEach($),l.chartMaps=C)}l.visibleColumn=i,t.headerGroups=s,updateTodayData(o),updateScrollXStatus(o),handleTableColumn(o)}function handleUpdateData(l){var a,r,e,t,o,n,c,i,s,d=l.$xeGantt,u=l.reactData,f=l.internalData,h=d.treeConfig,p=f.scrollXStore,m=f.xeTable,S=null,v=null;m&&(a=d.computeStartField,r=d.computeEndField,d=m.isRowGroupStatus,e=m.afterFullData,t=m.afterTreeFullData,o=m.computeAggregateOpts,c=(n=m.computeTreeOpts).transform,i=n.children||n.childrenField,s=function(e){var t=_xeUtils.default.get(e,a),e=_xeUtils.default.get(e,r);t&&e&&(t=parseStringDate(l,t),(!S||S.getTime()>t.getTime())&&(S=t),t=parseStringDate(l,e),!v||v.getTime()<t.getTime())&&(v=t)},d?(d=o.mapChildrenField)&&_xeUtils.default.eachTree(m.afterGroupFullData,s,{children:d}):h?_xeUtils.default.eachTree(t,s,{children:c?n.mapChildrenField:i}):e.forEach(s)),p.startIndex=0,p.endIndex=Math.max(1,p.visibleSize),u.minViewDate=S,u.maxViewDate=v,f.startMaps={},f.endMaps={},handleParseColumn(l)}function calcScrollbar(e){var t=e.$xeGantt,l=e.reactData,a=l.scrollXWidth,r=l.scrollYHeight,o=e.internalData.elemStore,t=t.computeScrollbarOpts,o=(0,_util.getRefElem)(o["main-body-wrapper"]),n=e.$refs.refScrollXHandleElem,e=e.$refs.refScrollYHandleElem;o&&(r=r>o.clientHeight,e&&(l.scrollbarWidth=t.width||e.offsetWidth-e.clientWidth||14),l.overflowY=r,e=a>o.clientWidth,n&&(l.scrollbarHeight=t.height||n.offsetHeight-n.clientHeight||14),l.overflowX=e)}function updateChart(e){var t=e.reactData,l=e.internalData,a=t.viewCellWidth,t=l.elemStore,r=l.chartMaps,l=(0,_util.getRefElem)(t["main-chart-wrapper"]);return l&&_xeUtils.default.arrayEach(l.children,function(e){var t=e.children[0];t&&(e=(e=e.getAttribute("rowid"))?r[e]:null,t.style.left="".concat(e?a*e.oLeftSize:0,"px"),t.style.width="".concat(e?a*e.oWidthSize:0,"px"))}),e.$nextTick()}function updateStyle(e){var t,l,a,r,o,n,c,i,s,d=e.$xeGantt,u=e.reactData,f=e.internalData,h=u.scrollbarWidth,p=u.headerGroups,m=u.tableColumn,S=f.elemStore,v=f.visibleColumn,f=f.xeTable,y=e.$refs.refElem;if(y)return r=d.computeScrollbarOpts,c=d.computeScrollbarXToTop,n=e.$refs.refScrollXLeftCornerElem,o=e.$refs.refScrollXRightCornerElem,s=e.$refs.refScrollXVirtualElem,h=h,i=u.scrollbarHeight,a=l=t=0,f&&(t=f.tBodyHeight,l=f.tHeaderHeight,a=f.tFooterHeight),f="visible",(d.computeScrollbarYToLeft||r.y&&!1===r.y.visible)&&(h=0,f="hidden"),(d=(0,_util.getRefElem)(S["main-header-scroll"]))&&(d.style.height="".concat(l,"px"),d.style.setProperty("--vxe-ui-gantt-view-cell-height","".concat(l/p.length,"px"))),(r=(0,_util.getRefElem)(S["main-body-scroll"]))&&(r.style.height="".concat(t,"px")),(d=(0,_util.getRefElem)(S["main-footer-scroll"]))&&(d.style.height="".concat(a,"px")),s&&(s.style.height="".concat(i,"px"),s.style.visibility="visible"),(p=e.$refs.refScrollXWrapperElem)&&(p.style.left=c?"".concat(h,"px"):"",p.style.width="".concat(y.clientWidth-h,"px")),n&&(n.style.width=c?"".concat(h,"px"):"",n.style.display=c&&i?"block":""),o&&(o.style.width=c?"":"".concat(h,"px"),o.style.display=!c&&i?"block":""),(d=e.$refs.refScrollYVirtualElem)&&(d.style.width="".concat(h,"px"),d.style.height="".concat(t+l+a,"px"),d.style.visibility=f),(s=e.$refs.refScrollYTopCornerElem)&&(s.style.height="".concat(l,"px"),s.style.display=l?"block":""),(p=e.$refs.refScrollYWrapperElem)&&(p.style.height="".concat(t,"px"),p.style.top="".concat(l,"px")),(y=e.$refs.refScrollYBottomCornerElem)&&(y.style.height="".concat(a,"px"),y.style.top="".concat(l+t,"px"),y.style.display=a?"block":""),n=40,c=(n=(o=e.$refs.refColInfoElem)?o.clientWidth||40:n)*v.length,r&&0<(h=(i=r.clientWidth)-c)&&(n+=h/v.length,c=i),u.viewCellWidth=n,d=(0,_util.getRefElem)(S["main-header-table"]),f=(0,_util.getRefElem)(S["main-body-table"]),s=n*m.length,d&&(d.style.width="".concat(c,"px")),f&&(f.style.width="".concat(s,"px")),u.scrollXWidth=c,updateChart(e)}function handleRecalculateStyle(e){var t=e.internalData,l=e.$refs.refElem;return t.rceRunTime=Date.now(),l&&l.clientWidth?(calcScrollbar(e),updateStyle(e),updateChart(e),computeScrollLoad(e)):e.$nextTick()}function _handleLazyRecalculate(o){var n=o.internalData;return new Promise(function(e){var t=n.rceTimeout,l=n.rceRunTime,a=n.xeTable,r=50;a&&(r=a.computeResizeOpts.refreshDelay||50),!t||(clearTimeout(t),l&&l+(r-5)<Date.now())?e(handleRecalculateStyle(o)):o.$nextTick(function(){e()}),n.rceTimeout=setTimeout(function(){n.rceTimeout=void 0,handleRecalculateStyle(o)},r)})}function computeScrollLoad(a){var r=a.reactData,o=a.internalData;return a.$nextTick().then(function(){var e,t=r.scrollXLoad,l=o.scrollXStore;t?(e=(t=handleVirtualXVisible(a)).toVisibleIndex,t=t.visibleSize,l.preloadSize=1,l.offsetSize=2,l.visibleSize=t,l.endIndex=Math.max(l.startIndex+l.visibleSize+2,l.endIndex),l.visibleStartIndex=Math.max(l.startIndex,e),l.visibleEndIndex=Math.min(l.endIndex,e+t),updateScrollXData(a).then(function(){loadScrollXData(a)})):updateScrollXSpace(a)})}function handleVirtualXVisible(e){var t,l=e.reactData.viewCellWidth,e=e.internalData.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]);return e?(t=e.clientWidth,e=e.scrollLeft,e=Math.floor(e/l)-1,t=Math.ceil(t/l)+1,{toVisibleIndex:Math.max(0,e),visibleSize:Math.max(1,t)}):{toVisibleIndex:0,visibleSize:6}}function loadScrollXData(e){var t=e.reactData.isScrollXBig,l=e.internalData.scrollXStore,a=l.preloadSize,r=l.startIndex,o=l.endIndex,n=l.offsetSize,c=handleVirtualXVisible(e),i=c.toVisibleIndex,c=c.visibleSize,t={startIndex:Math.max(0,t?i-1:i-1-n-a),endIndex:t?i+c:i+c+n+a},n=(l.visibleStartIndex=i-1,l.visibleEndIndex=i+c+1,t.startIndex),a=t.endIndex;!(i<=r||o-c-1<=i)||r===n&&o===a||(l.startIndex=n,l.endIndex=a,updateScrollXData(e))}function updateScrollXData(e){return handleTableColumn(e),updateScrollXSpace(e),e.$nextTick()}function updateScrollXStatus(e){return e.reactData.scrollXLoad=!0}function handleTableColumn(e){var t=e.reactData,e=e.internalData,l=t.scrollXLoad,a=e.visibleColumn,e=e.scrollXStore,l=l?a.slice(e.startIndex,e.endIndex):a.slice(0);t.tableColumn=l}function updateScrollXSpace(e){var t=e.reactData,l=e.internalData,a=t.scrollXLoad,r=t.scrollXWidth,o=t.viewCellWidth,n=l.elemStore,l=l.scrollXStore,c=(0,_util.getRefElem)(n["main-body-table"]),l=l.startIndex,i=0,l=(a&&(i=Math.max(0,l*o)),c&&(c.style.transform="translate(".concat(i,"px, ").concat(t.scrollYTop||0,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(n["main-".concat(e,"-xSpace")]);e&&(e.style.width=a?"".concat(r,"px"):"")}),e.$refs.refScrollXSpaceElem);return l&&(l.style.width="".concat(r,"px")),calcScrollbar(e),e.$nextTick()}function triggerScrollXEvent(e){loadScrollXData(e)}function updateScrollYSpace(e){var t=e.reactData,l=e.internalData,a=t.scrollYLoad,r=t.overflowY,o=l.elemStore,l=l.xeTable,n=(0,_util.getRefElem)(o["main-body-scroll"]),c=(0,_util.getRefElem)(o["main-body-table"]),i=0,s=0,d=!1,l=(l&&(i=l.scrollYTop,s=l.scrollYHeight,d=l.isScrollYBig),s),u=i,f=0,n=(n&&(f=n.clientHeight),d&&(u=n&&c&&n.scrollTop+f>=maxYHeight?maxYHeight-c.clientHeight:i/(s-f)*(maxYHeight-f),l=maxYHeight),a&&r||(u=0),(0,_util.getRefElem)(o["main-chart-wrapper"])),i=(c&&(c.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),n&&(n.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),(0,_util.getRefElem)(o["main-body-ySpace"])),f=(i&&(i.style.height=l?"".concat(l,"px"):""),e.$refs.refScrollYSpaceElem);return f&&(f.style.height=l?"".concat(l,"px"):""),t.scrollYTop=u,t.scrollYHeight=s,t.isScrollYBig=d,calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function checkLastSyncScroll(e,t,l){var a=e.reactData,r=e.internalData,e=r.lcsTimeout;a.lazScrollLoading=!0,e&&clearTimeout(e),r.lcsTimeout=setTimeout(function(){r.lcsRunTime=Date.now(),r.lcsTimeout=void 0,r.intoRunScroll=!1,r.inVirtualScroll=!1,r.inWheelScroll=!1,r.inHeaderScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,a.lazScrollLoading=!1},200)}function handleScrollData(e,t,l,a,r){var o=e.reactData,n=e.internalData;l&&(n.lastScrollLeft=r),t&&(n.lastScrollTop=a),o.lastScrollTime=Date.now(),checkLastSyncScroll(e,l,t)}function handleScrollEvent(e,t,l,a,r,o){var n,c,i,s,d,u,f,h,p,m,S,v,y=e.$xeGantt,g=e.internalData,x=g.xeTable,b=e.$refs.refScrollXHandleElem,_=e.$refs.refScrollYHandleElem;b&&_&&x&&(n=_.clientHeight,c=b.clientWidth,_=_.scrollHeight,b=b.scrollWidth,d="",p=h=f=u=s=m=i=v=!1,a&&(S=x.computeScrollXThreshold,(m=o<=0)||(s=b-1<=o+c),g.lastScrollLeft<o?(d="right",b-S<=o+c&&(p=!0)):(d="left",o<=S&&(h=!0))),l&&(S=x.computeScrollYThreshold,(v=r<=0)||(i=_-1<=r+n),g.lastScrollTop<r?(d="bottom",_-S<=r+n&&(f=!0)):(d="top",r<=S&&(u=!0))),handleScrollData(e,l,a,r,o),x={source:sourceType,scrollTop:r,scrollLeft:o,bodyHeight:n,bodyWidth:c,scrollHeight:_,scrollWidth:b,isX:a,isY:l,isTop:v,isBottom:i,isLeft:m,isRight:s,direction:d},(f||u||p||h)&&y.dispatchEvent("scroll-boundary",x,t),y.dispatchEvent("scroll",x,t))}function syncTableScrollTop(e,t){var e=e.internalData.xeTable;e&&(e=e.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]))&&(e.scrollTop=t)}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",inject:{$xeGantt:{default:null}},provide:function(){return{$xeGanttView:this}},props:{},data:function(){return{xID:_xeUtils.default.uniqueId(),reactData:{scrollXLoad:!1,scrollYLoad:!1,overflowY:!0,overflowX:!0,scrollbarWidth:0,scrollbarHeight:0,lastScrollTime:0,lazScrollLoading:!1,scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,minViewDate:null,maxViewDate:null,tableData:[],tableColumn:[],headerGroups:[],viewCellWidth:20},internalData:createInternalData()}},computed:Object.assign({},{}),methods:{refreshData:function(){return handleUpdateData(this),_handleLazyRecalculate(this)},updateViewData:function(){var e=this.reactData,t=this.internalData.xeTable;return t&&(t=t.tableData,e.tableData=t),this.$nextTick()},connectUpdate:function(e){var e=e.$table,t=this.internalData;return e&&(t.xeTable=e),this.$nextTick()},handleUpdateStyle:function(){return updateStyle(this)},handleLazyRecalculate:function(){return _handleLazyRecalculate(this)},handleUpdateCurrentRow:function(e){var t=this.internalData.xeTable,l=this.$refs.refElem;t&&l&&(e?(t.computeRowOpts.isCurrent||t.highlightCurrentRow)&&_xeUtils.default.arrayEach(l.querySelectorAll('[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--current")}):_xeUtils.default.arrayEach(l.querySelectorAll(".row--current"),function(e){return(0,_dom.removeClass)(e,"row--current")}))},handleUpdateHoverRow:function(e){var t=this.internalData.xeTable,l=this.$refs.refElem;t&&l&&(e?_xeUtils.default.arrayEach(l.querySelectorAll('.vxe-body--row[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--hover")}):_xeUtils.default.arrayEach(l.querySelectorAll(".vxe-body--row.row--hover"),function(e){return(0,_dom.removeClass)(e,"row--hover")}))},triggerHeaderScrollEvent:function(e){var t,l,a,r=this.internalData,o=r.elemStore;r.inVirtualScroll||r.inBodyScroll||r.inFooterScroll||(t=e.currentTarget,o=(0,_util.getRefElem)(o["main-body-scroll"]),l=this.$refs.refScrollXHandleElem,o&&t&&(a=t.scrollLeft,r.inHeaderScroll=!0,(0,_dom.setScrollLeft)(l,a),(0,_dom.setScrollLeft)(o,a),handleScrollEvent(this,e,!1,!0,t.scrollTop,a)))},triggerBodyScrollEvent:function(e){var t,l,a,r,o,n=this,c=n.reactData,i=n.internalData,c=c.scrollXLoad,s=i.elemStore,d=i.lastScrollLeft,u=i.lastScrollTop;i.inVirtualScroll||i.inHeaderScroll||i.inFooterScroll||(t=e.currentTarget,s=(0,_util.getRefElem)(s["main-header-scroll"]),l=n.$refs.refScrollXHandleElem,a=n.$refs.refScrollYHandleElem,d=(r=t.scrollLeft)!==d,u=(o=t.scrollTop)!==u,i.inBodyScroll=!0,i.scrollRenderType="",u&&((0,_dom.setScrollTop)(a,o),syncTableScrollTop(n,o)),d&&(i.inBodyScroll=!0,(0,_dom.setScrollLeft)(l,r),(0,_dom.setScrollLeft)(s,r),c)&&triggerScrollXEvent(n),handleScrollEvent(n,e,u,d,t.scrollTop,r))},triggerVirtualScrollXEvent:function(e){var t,l,a,r=this.reactData,o=this.internalData,r=r.scrollXLoad,n=o.elemStore;o.inHeaderScroll||o.inBodyScroll||(t=e.currentTarget,l=(0,_util.getRefElem)(n["main-header-scroll"]),n=(0,_util.getRefElem)(n["main-body-scroll"]),t&&(a=t.scrollLeft,o.inVirtualScroll=!0,(0,_dom.setScrollLeft)(l,a),(0,_dom.setScrollLeft)(n,a),r&&triggerScrollXEvent(this),handleScrollEvent(this,e,!1,!0,t.scrollTop,a)))},triggerVirtualScrollYEvent:function(e){var t,l,a=this.internalData,r=a.elemStore;a.inHeaderScroll||a.inBodyScroll||(t=e.currentTarget,r=(0,_util.getRefElem)(r["main-body-scroll"]),t&&(l=t.scrollTop,a.inVirtualScroll=!0,(0,_dom.setScrollTop)(r,l),syncTableScrollTop(this,l),handleScrollEvent(this,e,!0,!1,l,t.scrollLeft)))},handleUpdateSXSpace:function(){return updateScrollXSpace(this)},handleUpdateSYSpace:function(){return updateScrollYSpace(this)},handleUpdateSYStatus:function(e){this.reactData.scrollYLoad=e},handleGlobalResizeEvent:function(){_handleLazyRecalculate(this)},renderScrollX:function(e){return e("div",{key:"vsx",ref:"refScrollXVirtualElem",class:"vxe-gantt-view--scroll-x-virtual"},[e("div",{ref:"refScrollXLeftCornerElem",class:"vxe-gantt-view--scroll-x-left-corner"}),e("div",{ref:"refScrollXWrapperElem",class:"vxe-gantt-view--scroll-x-wrapper"},[e("div",{ref:"refScrollXHandleElem",class:"vxe-gantt-view--scroll-x-handle",on:{scroll:this.triggerVirtualScrollXEvent}},[e("div",{ref:"refScrollXSpaceElem",class:"vxe-gantt-view--scroll-x-space"})]),e("div",{class:"vxe-gantt-view--scroll-x-handle-appearance"})]),e("div",{ref:"refScrollXRightCornerElem",class:"vxe-gantt-view--scroll-x-right-corner"})])},renderScrollY:function(e){return e("div",{ref:"refScrollYVirtualElem",class:"vxe-gantt-view--scroll-y-virtual"},[e("div",{ref:"refScrollYTopCornerElem",class:"vxe-gantt-view--scroll-y-top-corner"}),e("div",{ref:"refScrollYWrapperElem",class:"vxe-gantt-view--scroll-y-wrapper"},[e("div",{ref:"refScrollYHandleElem",class:"vxe-gantt-view--scroll-y-handle",on:{scroll:this.triggerVirtualScrollYEvent}},[e("div",{ref:"refScrollYSpaceElem",class:"vxe-gantt-view--scroll-y-space"})]),e("div",{class:"vxe-gantt-view--scroll-y-handle-appearance"})]),e("div",{ref:"refScrollYBottomCornerElem",class:"vxe-gantt-view--scroll-y-bottom-corner"})])},renderViewport:function(e){return e("div",{class:"vxe-gantt-view--viewport-wrapper"},[e(_ganttHeader.default),e(_ganttBody.default),e(_ganttFooter.default)])},renderBody:function(e){var t=this;return e("div",{class:"vxe-gantt-view--layout-wrapper"},t.$xeGantt.computeScrollbarYToLeft?[t.renderScrollY(e),t.renderViewport(e)]:[t.renderViewport(e),t.renderScrollY(e)])},renderVN:function(e){var t=this,l=t.$xeGantt,a=t.reactData,r=a.overflowX;return e("div",{ref:"refElem",class:["vxe-gantt-view",{"is--scroll-y":a.overflowY,"is--scroll-x":r,"is--virtual-x":a.scrollXLoad,"is--virtual-y":a.scrollYLoad}]},[e("div",{class:"vxe-gantt-view--render-wrapper"},l.computeScrollbarXToTop?[t.renderScrollX(e),t.renderBody(e)]:[t.renderBody(e),t.renderScrollX(e)]),e("div",{class:"vxe-gantt-view--render-vars"},[e("div",{ref:"refColInfoElem",class:"vxe-gantt-view--column-info"})])])}},watch:{"reactData.tableData":function(){handleUpdateData(this)}},mounted:function(){globalEvents.on(this,"resize",this.handleGlobalResizeEvent)},beforeDestroy:function(){var e=this.internalData;globalEvents.off(this,"keydown"),_xeUtils.default.assign(e,createInternalData())},render:function(e){return this.renderVN(e)}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_dom=require("../../ui/src/dom"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body")),_ganttFooter=_interopRequireDefault(require("./gantt-footer"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var a;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(a="Object"===(a={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:a)||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,l=Array(t);a<t;a++)l[a]=e[a];return l}function _iterableToArrayLimit(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l,r,i,o,n=[],c=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(l=i.call(a)).done)&&(n.push(l.value),n.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(s)throw r}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}var globalEvents=_core.VxeUI.globalEvents,sourceType="gantt",minuteMs=6e4,dayMs=60*minuteMs*24;function createInternalData(){return{xeTable:null,visibleColumn:[],startMaps:{},endMaps:{},chartMaps:{},todayDateMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},lastScrollTop:0,lastScrollLeft:0}}var maxYHeight=5e6;function parseStringDate(e,t){e=e.$xeGantt.computeTaskOpts.dateFormat;return _xeUtils.default.toStringDate(t,e||null)}function updateTodayData(e){var t=e.$xeGantt,e=e.internalData,t=t.reactData.taskScaleList.find(function(e){return"week"===e.type}),a=new Date,l=_slicedToArray(_xeUtils.default.toDateString(a,"yyyy-M-d-H-m-s").split("-"),6),r=l[0],i=l[1],o=l[2],n=l[3],c=l[4],l=l[5],s=a.getDay()+1,d=Math.ceil((a.getMonth()+1)/3),a=_xeUtils.default.getYearWeek(a,t?t.startDay:void 0);e.todayDateMaps={year:r,quarter:"".concat(r,"_q").concat(d),month:"".concat(r,"_").concat(i),week:"".concat(r,"_W").concat(a),day:"".concat(r,"_").concat(i,"_").concat(o,"_E").concat(s),date:"".concat(r,"_").concat(i,"_").concat(o),hour:"".concat(r,"_").concat(i,"_").concat(o,"_").concat(n),minute:"".concat(r,"_").concat(i,"_").concat(o,"_").concat(n,"_").concat(c),second:"".concat(r,"_").concat(i,"_").concat(o,"_").concat(n,"_").concat(c,"_").concat(l)}}function handleColumnHeader(e){var t=e.$xeGantt,a=t.reactData.taskScaleList,i=t.computeMinScale,l=t.computeWeekScale,r=e.computeScaleDateList,o=[],n=[];if(i&&t.computeScaleUnit&&r.length){for(var c={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},s={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}},d=function(e,t,a){var l,r;i.type!==e&&(t=t[e],l="".concat(t.field),(r=s[e][l])||(s[e][l]=r=t,c[e].push(r)),r)&&(r.children||(r.children=[]),r.children.push(a))},u=0;u<r.length;u++){var f=r[u],h=_slicedToArray(_xeUtils.default.toDateString(f,"yyyy-M-d-H-m-s").split("-"),6),m=h[0],y=h[1],g=h[2],S=h[3],p=h[4],h=h[5],v=f.getDay(),x=v+1,_=Math.ceil((f.getMonth()+1)/3),D=_xeUtils.default.getYearWeek(f,l?l.startDay:void 0),f={date:f,yy:m,M:y,d:g,H:S,m:p,s:h,q:_,W:D,E:x,e:v},v={year:{field:m,title:m,dateObj:f},quarter:{field:"".concat(m,"_q").concat(_),title:"".concat(_),dateObj:f},month:{field:"".concat(m,"_").concat(y),title:y,dateObj:f},week:{field:"".concat(m,"_W").concat(D),title:"".concat(D),dateObj:f},day:{field:"".concat(m,"_").concat(y,"_").concat(g,"_E").concat(x),title:"".concat(x),dateObj:f},date:{field:"".concat(m,"_").concat(y,"_").concat(g),title:g,dateObj:f},hour:{field:"".concat(m,"_").concat(y,"_").concat(g,"_").concat(S),title:S,dateObj:f},minute:{field:"".concat(m,"_").concat(y,"_").concat(g,"_").concat(S,"_").concat(p),title:p,dateObj:f},second:{field:"".concat(m,"_").concat(y,"_").concat(g,"_").concat(S,"_").concat(p,"_").concat(h),title:h,dateObj:f}},_=v[i.type];i.level<19&&d("year",v,_),i.level<17&&d("quarter",v,_),i.level<14&&d("month",v,_),i.level<13&&d("week",v,_),i.level<11&&d("day",v,_),i.level<12&&d("date",v,_),i.level<7&&d("hour",v,_),i.level<5&&d("minute",v,_),o.push(_)}a.forEach(function(e){var t;e.type===i.type?n.push({scaleItem:e,columns:o}):((t=c[e.type]||[])&&t.forEach(function(e){e.childCount=e.children?e.children.length:0,e.children=void 0}),n.push({scaleItem:e,columns:t}))})}return{fullCols:o,groupCols:n}}function createChartRender(n,e){var t=n.$xeGantt,r=n.reactData.minViewDate,a=t.computeMinScale,c=t.computeWeekScale;switch(t.computeScaleUnit){case"year":var s={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy");s[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy"),l=_xeUtils.default.getWhatYear(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy"),i=_xeUtils.default.getWhatYear(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatYear(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/o,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+l}};case"quarter":var d={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-q");d[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-q"),l=_xeUtils.default.getWhatQuarter(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-q"),i=_xeUtils.default.getWhatQuarter(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatQuarter(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/o,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(d[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(d[r]||0)-t+l}};case"month":var u={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM");u[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-MM"),l=_xeUtils.default.getWhatMonth(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM"),i=_xeUtils.default.getWhatMonth(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatMonth(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/o,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(u[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(u[r]||0)-t+l}};case"week":var f={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-W",{firstDay:c?c.startDay:void 0});f[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-W",{firstDay:c?c.startDay:void 0}),l=_xeUtils.default.getWhatWeek(e,0,c?c.startDay:void 0,c?c.startDay:void 0),r=_xeUtils.default.toDateString(t,"yyyy-W",{firstDay:c?c.startDay:void 0}),i=_xeUtils.default.getWhatWeek(t,0,c?c.startDay:void 0,c?c.startDay:void 0),o=Math.floor((_xeUtils.default.getWhatWeek(t,1,c?c.startDay:void 0,c?c.startDay:void 0).getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/o,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(f[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(f[r]||0)-t+l}};case"day":case"date":var h={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd");h[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd"),l=_xeUtils.default.getWhatDay(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd"),i=_xeUtils.default.getWhatDay(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatDay(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-l.getTime())/minuteMs/o,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(h[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(h[r]||0)-t+l}};case"hour":var m={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH");m[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH"),l=_xeUtils.default.getWhatHours(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH"),i=_xeUtils.default.getWhatHours(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatHours(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-l.getTime())/minuteMs/o,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(m[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(m[r]||0)-t+l}};case"minute":var y={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH:mm");y[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH:mm"),l=_xeUtils.default.getWhatMinutes(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH:mm"),i=_xeUtils.default.getWhatMinutes(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatMinutes(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-l.getTime())/minuteMs/o,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(y[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(y[r]||0)-t+l}};case"second":var i=(0,_util.getStandardGapTime)(a.type);return function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=0,l=0;return r&&(a=(e.getTime()-r.getTime())/i,l=(t.getTime()-e.getTime())/i+1),{offsetLeftSize:a,offsetWidthSize:l}}}return function(){return{offsetLeftSize:0,offsetWidthSize:0}}}function handleParseColumn(e){var r,i,o,t,a,l,n,c,s,d,u,f=e.$xeGantt,h=e.reactData,m=e.internalData,y=f.treeConfig,g=h.minViewDate,S=h.maxViewDate,p=handleColumnHeader(e),v=p.fullCols,p=p.groupCols;g&&S&&(r=m.xeTable)&&(i=f.computeStartField,o=f.computeEndField,g=r.isRowGroupStatus,S=r.afterFullData,f=r.afterTreeFullData,t=r.afterGroupFullData,a=r.computeAggregateOpts,n=(l=r.computeTreeOpts).transform,c=l.children||l.childrenField,s={},d=createChartRender(e,v),u=function(e){var t=r.getRowid(e),a=_xeUtils.default.get(e,i),l=_xeUtils.default.get(e,o);a&&l&&(l=(a=d(a,l)).offsetLeftSize,s[t]={row:e,rowid:t,oLeftSize:l,oWidthSize:a.offsetWidthSize})},g?(g=a.mapChildrenField)&&_xeUtils.default.eachTree(t,u,{children:g}):y?_xeUtils.default.eachTree(f,u,{children:n?l.mapChildrenField:c}):S.forEach(u),m.chartMaps=s),m.visibleColumn=v,h.headerGroups=p,updateTodayData(e),updateScrollXStatus(e),handleTableColumn(e)}function handleUpdateData(a){var l,r,e,t,i,o,n,c,s,d=a.$xeGantt,u=a.reactData,f=a.internalData,h=d.treeConfig,m=f.scrollXStore,y=f.xeTable,g=null,S=null;y&&(l=d.computeStartField,r=d.computeEndField,d=y.isRowGroupStatus,e=y.afterFullData,t=y.afterTreeFullData,i=y.computeAggregateOpts,n=(o=y.computeTreeOpts).transform,c=o.children||o.childrenField,s=function(e){var t=_xeUtils.default.get(e,l),e=_xeUtils.default.get(e,r);t&&e&&(t=parseStringDate(a,t),(!g||g.getTime()>t.getTime())&&(g=t),t=parseStringDate(a,e),!S||S.getTime()<t.getTime())&&(S=t)},d?(d=i.mapChildrenField)&&_xeUtils.default.eachTree(y.afterGroupFullData,s,{children:d}):h?_xeUtils.default.eachTree(t,s,{children:n?o.mapChildrenField:c}):e.forEach(s)),m.startIndex=0,m.endIndex=Math.max(1,m.visibleSize),u.minViewDate=g,u.maxViewDate=S,f.startMaps={},f.endMaps={},handleParseColumn(a)}function calcScrollbar(e){var t=e.$xeGantt,a=e.reactData,l=a.scrollXWidth,r=a.scrollYHeight,i=e.internalData.elemStore,t=t.computeScrollbarOpts,i=(0,_util.getRefElem)(i["main-body-wrapper"]),o=e.$refs.refScrollXHandleElem,e=e.$refs.refScrollYHandleElem;i&&(r=r>i.clientHeight,e&&(a.scrollbarWidth=t.width||e.offsetWidth-e.clientWidth||14),a.overflowY=r,e=l>i.clientWidth,o&&(a.scrollbarHeight=t.height||o.offsetHeight-o.clientHeight||14),a.overflowX=e)}function updateChart(e){var t=e.reactData,a=e.internalData,l=t.viewCellWidth,t=a.elemStore,r=a.chartMaps,a=(0,_util.getRefElem)(t["main-chart-wrapper"]);return a&&_xeUtils.default.arrayEach(a.children,function(e){var t=e.children[0];t&&(e=(e=e.getAttribute("rowid"))?r[e]:null,t.style.left="".concat(e?l*e.oLeftSize:0,"px"),t.style.width="".concat(e?l*e.oWidthSize:0,"px"))}),e.$nextTick()}function updateStyle(e){var t,a,l,r,i,o,n,c,s,d=e.$xeGantt,u=e.reactData,f=e.internalData,h=u.scrollbarWidth,m=u.headerGroups,y=u.tableColumn,g=f.elemStore,S=f.visibleColumn,f=f.xeTable,p=e.$refs.refElem;if(p)return r=d.computeScrollbarOpts,n=d.computeScrollbarXToTop,o=e.$refs.refScrollXLeftCornerElem,i=e.$refs.refScrollXRightCornerElem,s=e.$refs.refScrollXVirtualElem,h=h,c=u.scrollbarHeight,l=a=t=0,f&&(t=f.tBodyHeight,a=f.tHeaderHeight,l=f.tFooterHeight),f="visible",(d.computeScrollbarYToLeft||r.y&&!1===r.y.visible)&&(h=0,f="hidden"),(d=(0,_util.getRefElem)(g["main-header-scroll"]))&&(d.style.height="".concat(a,"px"),d.style.setProperty("--vxe-ui-gantt-view-cell-height","".concat(a/m.length,"px"))),(r=(0,_util.getRefElem)(g["main-body-scroll"]))&&(r.style.height="".concat(t,"px")),(d=(0,_util.getRefElem)(g["main-footer-scroll"]))&&(d.style.height="".concat(l,"px")),s&&(s.style.height="".concat(c,"px"),s.style.visibility="visible"),(m=e.$refs.refScrollXWrapperElem)&&(m.style.left=n?"".concat(h,"px"):"",m.style.width="".concat(p.clientWidth-h,"px")),o&&(o.style.width=n?"".concat(h,"px"):"",o.style.display=n&&c?"block":""),i&&(i.style.width=n?"":"".concat(h,"px"),i.style.display=!n&&c?"block":""),(d=e.$refs.refScrollYVirtualElem)&&(d.style.width="".concat(h,"px"),d.style.height="".concat(t+a+l,"px"),d.style.visibility=f),(s=e.$refs.refScrollYTopCornerElem)&&(s.style.height="".concat(a,"px"),s.style.display=a?"block":""),(m=e.$refs.refScrollYWrapperElem)&&(m.style.height="".concat(t,"px"),m.style.top="".concat(a,"px")),(p=e.$refs.refScrollYBottomCornerElem)&&(p.style.height="".concat(l,"px"),p.style.top="".concat(a+t,"px"),p.style.display=l?"block":""),o=40,n=(o=(i=e.$refs.refColInfoElem)?i.clientWidth||40:o)*S.length,r&&0<(h=(c=r.clientWidth)-n)&&(o+=h/S.length,n=c),u.viewCellWidth=o,d=(0,_util.getRefElem)(g["main-header-table"]),f=(0,_util.getRefElem)(g["main-body-table"]),s=o*y.length,d&&(d.style.width="".concat(n,"px")),f&&(f.style.width="".concat(s,"px")),u.scrollXWidth=n,updateChart(e)}function handleRecalculateStyle(e){var t=e.internalData,a=e.$refs.refElem;return t.rceRunTime=Date.now(),a&&a.clientWidth?(calcScrollbar(e),updateStyle(e),updateChart(e),computeScrollLoad(e)):e.$nextTick()}function _handleLazyRecalculate(i){var o=i.internalData;return new Promise(function(e){var t=o.rceTimeout,a=o.rceRunTime,l=o.xeTable,r=30;l&&(r=l.computeResizeOpts.refreshDelay||r),!t||(clearTimeout(t),a&&a+(r-5)<Date.now())?e(handleRecalculateStyle(i)):i.$nextTick(function(){e()}),o.rceTimeout=setTimeout(function(){o.rceTimeout=void 0,handleRecalculateStyle(i)},r)})}function computeScrollLoad(l){var r=l.reactData,i=l.internalData;return l.$nextTick().then(function(){var e,t=r.scrollXLoad,a=i.scrollXStore;t?(e=(t=handleVirtualXVisible(l)).toVisibleIndex,t=t.visibleSize,a.preloadSize=1,a.offsetSize=2,a.visibleSize=t,a.endIndex=Math.max(a.startIndex+a.visibleSize+2,a.endIndex),a.visibleStartIndex=Math.max(a.startIndex,e),a.visibleEndIndex=Math.min(a.endIndex,e+t),updateScrollXData(l).then(function(){loadScrollXData(l)})):updateScrollXSpace(l)})}function handleVirtualXVisible(e){var t,a=e.reactData.viewCellWidth,e=e.internalData.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]);return e?(t=e.clientWidth,e=e.scrollLeft,e=Math.floor(e/a)-1,t=Math.ceil(t/a)+1,{toVisibleIndex:Math.max(0,e),visibleSize:Math.max(1,t)}):{toVisibleIndex:0,visibleSize:6}}function loadScrollXData(e){var t=e.reactData.isScrollXBig,a=e.internalData.scrollXStore,l=a.preloadSize,r=a.startIndex,i=a.endIndex,o=a.offsetSize,n=handleVirtualXVisible(e),c=n.toVisibleIndex,n=n.visibleSize,t={startIndex:Math.max(0,t?c-1:c-1-o-l),endIndex:t?c+n:c+n+o+l},o=(a.visibleStartIndex=c-1,a.visibleEndIndex=c+n+1,t.startIndex),l=t.endIndex;!(c<=r||i-n-1<=c)||r===o&&i===l||(a.startIndex=o,a.endIndex=l,updateScrollXData(e))}function updateScrollXData(e){return handleTableColumn(e),updateScrollXSpace(e),e.$nextTick()}function updateScrollXStatus(e){return e.reactData.scrollXLoad=!0}function handleTableColumn(e){var t=e.reactData,e=e.internalData,a=t.scrollXLoad,l=e.visibleColumn,e=e.scrollXStore,a=a?l.slice(e.startIndex,e.endIndex):l.slice(0);t.tableColumn=a}function updateScrollXSpace(e){var t=e.reactData,a=e.internalData,l=t.scrollXLoad,r=t.scrollXWidth,i=t.viewCellWidth,o=a.elemStore,a=a.scrollXStore,n=(0,_util.getRefElem)(o["main-body-table"]),a=a.startIndex,c=0,a=(l&&(c=Math.max(0,a*i)),n&&(n.style.transform="translate(".concat(c,"px, ").concat(t.scrollYTop||0,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(o["main-".concat(e,"-xSpace")]);e&&(e.style.width=l?"".concat(r,"px"):"")}),e.$refs.refScrollXSpaceElem);return a&&(a.style.width="".concat(r,"px")),calcScrollbar(e),e.$nextTick()}function triggerScrollXEvent(e){loadScrollXData(e)}function updateScrollYSpace(e){var t=e.reactData,a=e.internalData,l=t.scrollYLoad,r=t.overflowY,i=a.elemStore,a=a.xeTable,o=(0,_util.getRefElem)(i["main-body-scroll"]),n=(0,_util.getRefElem)(i["main-body-table"]),c=0,s=0,d=!1,a=(a&&(c=a.scrollYTop,s=a.scrollYHeight,d=a.isScrollYBig),s),u=c,f=0,o=(o&&(f=o.clientHeight),d&&(u=o&&n&&o.scrollTop+f>=maxYHeight?maxYHeight-n.clientHeight:c/(s-f)*(maxYHeight-f),a=maxYHeight),l&&r||(u=0),(0,_util.getRefElem)(i["main-chart-wrapper"])),c=(n&&(n.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),o&&(o.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),(0,_util.getRefElem)(i["main-body-ySpace"])),f=(c&&(c.style.height=a?"".concat(a,"px"):""),e.$refs.refScrollYSpaceElem);return f&&(f.style.height=a?"".concat(a,"px"):""),t.scrollYTop=u,t.scrollYHeight=s,t.isScrollYBig=d,calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function checkLastSyncScroll(e,t,a){var l=e.reactData,r=e.internalData,e=r.lcsTimeout;l.lazScrollLoading=!0,e&&clearTimeout(e),r.lcsTimeout=setTimeout(function(){r.lcsRunTime=Date.now(),r.lcsTimeout=void 0,r.intoRunScroll=!1,r.inVirtualScroll=!1,r.inWheelScroll=!1,r.inHeaderScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,l.lazScrollLoading=!1},200)}function handleScrollData(e,t,a,l,r){var i=e.reactData,o=e.internalData;a&&(o.lastScrollLeft=r),t&&(o.lastScrollTop=l),i.lastScrollTime=Date.now(),checkLastSyncScroll(e,a,t)}function handleScrollEvent(e,t,a,l,r,i){var o,n,c,s,d,u,f,h,m,y,g,S,p=e.$xeGantt,v=e.internalData,x=v.xeTable,_=e.$refs.refScrollXHandleElem,D=e.$refs.refScrollYHandleElem;_&&D&&x&&(o=D.clientHeight,n=_.clientWidth,D=D.scrollHeight,_=_.scrollWidth,d="",m=h=f=u=s=y=c=S=!1,l&&(g=x.computeScrollXThreshold,(y=i<=0)||(s=_-1<=i+n),v.lastScrollLeft<i?(d="right",_-g<=i+n&&(m=!0)):(d="left",i<=g&&(h=!0))),a&&(g=x.computeScrollYThreshold,(S=r<=0)||(c=D-1<=r+o),v.lastScrollTop<r?(d="bottom",D-g<=r+o&&(f=!0)):(d="top",r<=g&&(u=!0))),handleScrollData(e,a,l,r,i),x={source:sourceType,scrollTop:r,scrollLeft:i,bodyHeight:o,bodyWidth:n,scrollHeight:D,scrollWidth:_,isX:l,isY:a,isTop:S,isBottom:c,isLeft:y,isRight:s,direction:d},(f||u||m||h)&&p.dispatchEvent("scroll-boundary",x,t),p.dispatchEvent("scroll",x,t))}function syncTableScrollTop(e,t){var e=e.internalData.xeTable;e&&(e=e.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]))&&(e.scrollTop=t)}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",inject:{$xeGantt:{default:null}},provide:function(){return{$xeGanttView:this}},props:{},data:function(){return{xID:_xeUtils.default.uniqueId(),reactData:{scrollXLoad:!1,scrollYLoad:!1,overflowY:!0,overflowX:!0,scrollbarWidth:0,scrollbarHeight:0,lastScrollTime:0,lazScrollLoading:!1,scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,minViewDate:null,maxViewDate:null,tableData:[],tableColumn:[],headerGroups:[],viewCellWidth:20},internalData:createInternalData()}},computed:Object.assign(Object.assign({},{}),{computeScaleDateList:function(){var e=this.$xeGantt,t=this.reactData,a=t.minViewDate,l=t.maxViewDate,r=e.computeMinScale,i=[];if(a&&l){var o=a.getTime(),n=l.getTime();switch(r.type){case"year":for(var c=_xeUtils.default.getWhatYear(a,0,"first");c<=l;){var s=c;i.push(s),c=_xeUtils.default.getWhatYear(c,1)}break;case"quarter":for(var d=_xeUtils.default.getWhatQuarter(a,0,"first");d<=l;){var u=d;i.push(u),d=_xeUtils.default.getWhatQuarter(d,1)}break;case"month":for(var f=_xeUtils.default.getWhatMonth(a,0,"first");f<=l;){var h=f;i.push(h),f=_xeUtils.default.getWhatMonth(f,1)}break;case"week":for(var m=_xeUtils.default.getWhatWeek(a,0,r.startDay,r.startDay);m<=l;){var y=m;i.push(y),m=_xeUtils.default.getWhatWeek(m,1)}break;case"day":case"date":case"hour":case"minute":case"second":for(var g=(0,_util.getStandardGapTime)(r.type),S=o;S<=n;){var p=new Date(S);i.push(p),S+=g}}}return i}}),methods:{refreshData:function(){var t=this,a=t.internalData;return handleUpdateData(t),handleRecalculateStyle(t),t.$nextTick().then(function(){var e=a.xeTable;if(handleRecalculateStyle(t),e)return e.recalculate()})},updateViewData:function(){var e=this.reactData,t=this.internalData.xeTable;return t&&(t=t.tableData,e.tableData=t),this.$nextTick()},connectUpdate:function(e){var e=e.$table,t=this.internalData;return e&&(t.xeTable=e),this.$nextTick()},handleUpdateStyle:function(){return updateStyle(this)},handleLazyRecalculate:function(){return _handleLazyRecalculate(this)},handleUpdateCurrentRow:function(e){var t=this.internalData.xeTable,a=this.$refs.refElem;t&&a&&(e?(t.computeRowOpts.isCurrent||t.highlightCurrentRow)&&_xeUtils.default.arrayEach(a.querySelectorAll('[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--current")}):_xeUtils.default.arrayEach(a.querySelectorAll(".row--current"),function(e){return(0,_dom.removeClass)(e,"row--current")}))},handleUpdateHoverRow:function(e){var t=this.internalData.xeTable,a=this.$refs.refElem;t&&a&&(e?_xeUtils.default.arrayEach(a.querySelectorAll('.vxe-body--row[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--hover")}):_xeUtils.default.arrayEach(a.querySelectorAll(".vxe-body--row.row--hover"),function(e){return(0,_dom.removeClass)(e,"row--hover")}))},triggerHeaderScrollEvent:function(e){var t,a,l,r=this.internalData,i=r.elemStore;r.inVirtualScroll||r.inBodyScroll||r.inFooterScroll||(t=e.currentTarget,i=(0,_util.getRefElem)(i["main-body-scroll"]),a=this.$refs.refScrollXHandleElem,i&&t&&(l=t.scrollLeft,r.inHeaderScroll=!0,(0,_dom.setScrollLeft)(a,l),(0,_dom.setScrollLeft)(i,l),handleScrollEvent(this,e,!1,!0,t.scrollTop,l)))},triggerBodyScrollEvent:function(e){var t,a,l,r,i,o=this,n=o.reactData,c=o.internalData,n=n.scrollXLoad,s=c.elemStore,d=c.lastScrollLeft,u=c.lastScrollTop;c.inVirtualScroll||c.inHeaderScroll||c.inFooterScroll||(t=e.currentTarget,s=(0,_util.getRefElem)(s["main-header-scroll"]),a=o.$refs.refScrollXHandleElem,l=o.$refs.refScrollYHandleElem,d=(r=t.scrollLeft)!==d,u=(i=t.scrollTop)!==u,c.inBodyScroll=!0,c.scrollRenderType="",u&&((0,_dom.setScrollTop)(l,i),syncTableScrollTop(o,i)),d&&(c.inBodyScroll=!0,(0,_dom.setScrollLeft)(a,r),(0,_dom.setScrollLeft)(s,r),n)&&triggerScrollXEvent(o),handleScrollEvent(o,e,u,d,t.scrollTop,r))},triggerVirtualScrollXEvent:function(e){var t,a,l,r=this.reactData,i=this.internalData,r=r.scrollXLoad,o=i.elemStore;i.inHeaderScroll||i.inBodyScroll||(t=e.currentTarget,a=(0,_util.getRefElem)(o["main-header-scroll"]),o=(0,_util.getRefElem)(o["main-body-scroll"]),t&&(l=t.scrollLeft,i.inVirtualScroll=!0,(0,_dom.setScrollLeft)(a,l),(0,_dom.setScrollLeft)(o,l),r&&triggerScrollXEvent(this),handleScrollEvent(this,e,!1,!0,t.scrollTop,l)))},triggerVirtualScrollYEvent:function(e){var t,a,l=this.internalData,r=l.elemStore;l.inHeaderScroll||l.inBodyScroll||(t=e.currentTarget,r=(0,_util.getRefElem)(r["main-body-scroll"]),t&&(a=t.scrollTop,l.inVirtualScroll=!0,(0,_dom.setScrollTop)(r,a),syncTableScrollTop(this,a),handleScrollEvent(this,e,!0,!1,a,t.scrollLeft)))},handleUpdateSXSpace:function(){return updateScrollXSpace(this)},handleUpdateSYSpace:function(){return updateScrollYSpace(this)},handleUpdateSYStatus:function(e){this.reactData.scrollYLoad=e},handleGlobalResizeEvent:function(){_handleLazyRecalculate(this)},renderScrollX:function(e){return e("div",{key:"vsx",ref:"refScrollXVirtualElem",class:"vxe-gantt-view--scroll-x-virtual"},[e("div",{ref:"refScrollXLeftCornerElem",class:"vxe-gantt-view--scroll-x-left-corner"}),e("div",{ref:"refScrollXWrapperElem",class:"vxe-gantt-view--scroll-x-wrapper"},[e("div",{ref:"refScrollXHandleElem",class:"vxe-gantt-view--scroll-x-handle",on:{scroll:this.triggerVirtualScrollXEvent}},[e("div",{ref:"refScrollXSpaceElem",class:"vxe-gantt-view--scroll-x-space"})]),e("div",{class:"vxe-gantt-view--scroll-x-handle-appearance"})]),e("div",{ref:"refScrollXRightCornerElem",class:"vxe-gantt-view--scroll-x-right-corner"})])},renderScrollY:function(e){return e("div",{ref:"refScrollYVirtualElem",class:"vxe-gantt-view--scroll-y-virtual"},[e("div",{ref:"refScrollYTopCornerElem",class:"vxe-gantt-view--scroll-y-top-corner"}),e("div",{ref:"refScrollYWrapperElem",class:"vxe-gantt-view--scroll-y-wrapper"},[e("div",{ref:"refScrollYHandleElem",class:"vxe-gantt-view--scroll-y-handle",on:{scroll:this.triggerVirtualScrollYEvent}},[e("div",{ref:"refScrollYSpaceElem",class:"vxe-gantt-view--scroll-y-space"})]),e("div",{class:"vxe-gantt-view--scroll-y-handle-appearance"})]),e("div",{ref:"refScrollYBottomCornerElem",class:"vxe-gantt-view--scroll-y-bottom-corner"})])},renderViewport:function(e){return e("div",{class:"vxe-gantt-view--viewport-wrapper"},[e(_ganttHeader.default),e(_ganttBody.default),e(_ganttFooter.default)])},renderBody:function(e){var t=this;return e("div",{class:"vxe-gantt-view--layout-wrapper"},t.$xeGantt.computeScrollbarYToLeft?[t.renderScrollY(e),t.renderViewport(e)]:[t.renderViewport(e),t.renderScrollY(e)])},renderVN:function(e){var t=this,a=t.$xeGantt,l=t.reactData,r=l.overflowX;return e("div",{ref:"refElem",class:["vxe-gantt-view",{"is--scroll-y":l.overflowY,"is--scroll-x":r,"is--virtual-x":l.scrollXLoad,"is--virtual-y":l.scrollYLoad}]},[e("div",{class:"vxe-gantt-view--render-wrapper"},a.computeScrollbarXToTop?[t.renderScrollX(e),t.renderBody(e)]:[t.renderBody(e),t.renderScrollX(e)]),e("div",{class:"vxe-gantt-view--render-vars"},[e("div",{ref:"refColInfoElem",class:"vxe-gantt-view--column-info"})])])}},watch:{"reactData.tableData":function(){handleUpdateData(this)}},mounted:function(){globalEvents.on(this,"resize",this.handleGlobalResizeEvent)},beforeDestroy:function(){var e=this.internalData;globalEvents.off(this,"keydown"),_xeUtils.default.assign(e,createInternalData())},render:function(e){return this.renderVN(e)}});
|
package/lib/gantt/src/gantt.js
CHANGED
|
@@ -228,6 +228,25 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
228
228
|
var props = $xeGantt;
|
|
229
229
|
return Object.assign({}, getConfig().gantt.taskSplitConfig, props.taskSplitConfig);
|
|
230
230
|
},
|
|
231
|
+
computeScaleUnit: function computeScaleUnit() {
|
|
232
|
+
var $xeGantt = this;
|
|
233
|
+
var minScale = $xeGantt.computeMinScale;
|
|
234
|
+
return minScale ? minScale.type : 'date';
|
|
235
|
+
},
|
|
236
|
+
computeMinScale: function computeMinScale() {
|
|
237
|
+
var $xeGantt = this;
|
|
238
|
+
var reactData = $xeGantt.reactData;
|
|
239
|
+
var taskScaleList = reactData.taskScaleList;
|
|
240
|
+
return _xeUtils.default.last(taskScaleList);
|
|
241
|
+
},
|
|
242
|
+
computeWeekScale: function computeWeekScale() {
|
|
243
|
+
var $xeGantt = this;
|
|
244
|
+
var reactData = $xeGantt.reactData;
|
|
245
|
+
var taskScaleList = reactData.taskScaleList;
|
|
246
|
+
return taskScaleList.find(function (item) {
|
|
247
|
+
return item.type === 'week';
|
|
248
|
+
});
|
|
249
|
+
},
|
|
231
250
|
computeTaskScaleConfs: function computeTaskScaleConfs() {
|
|
232
251
|
var $xeGantt = this;
|
|
233
252
|
var taskViewOpts = $xeGantt.computeTaskViewOpts;
|
|
@@ -494,6 +513,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
494
513
|
computeTaskScaleConfs: function computeTaskScaleConfs() {
|
|
495
514
|
var $xeGantt = this;
|
|
496
515
|
$xeGantt.handleTaskScaleConfig();
|
|
516
|
+
$xeGantt.refreshTaskView();
|
|
497
517
|
}
|
|
498
518
|
},
|
|
499
519
|
methods: Object.assign(Object.assign({}, tableMethods), {
|