|
|
@@ -1475,6 +1475,24 @@
|
|
|
end_date: this.formatGanttRenderDate(renderEnd)
|
|
|
};
|
|
|
},
|
|
|
+ getGanttTaskStartTime(task) {
|
|
|
+ const start = parseDate(task.rawStartDate || task.start_date);
|
|
|
+ return start ? start.getTime() : Number.MAX_SAFE_INTEGER;
|
|
|
+ },
|
|
|
+ sortGanttTasksByStartTime(tasks = []) {
|
|
|
+ return tasks
|
|
|
+ .map((task, index) => ({ task, index }))
|
|
|
+ .sort((a, b) => {
|
|
|
+ const startDiff =
|
|
|
+ this.getGanttTaskStartTime(a.task) -
|
|
|
+ this.getGanttTaskStartTime(b.task);
|
|
|
+ if (startDiff !== 0) {
|
|
|
+ return startDiff;
|
|
|
+ }
|
|
|
+ return a.index - b.index;
|
|
|
+ })
|
|
|
+ .map((item) => item.task);
|
|
|
+ },
|
|
|
initData() {
|
|
|
const sourceTasks = this.filteredGanttTasks;
|
|
|
const parentTaskMap = sourceTasks.reduce((result, item) => {
|
|
|
@@ -1483,7 +1501,7 @@
|
|
|
}
|
|
|
return result;
|
|
|
}, {});
|
|
|
- this.ganttData = sourceTasks
|
|
|
+ const ganttData = sourceTasks
|
|
|
.filter((item) => !(item.render === 'split' && !item.parent))
|
|
|
.map((current) => {
|
|
|
const hasHiddenParent =
|
|
|
@@ -1550,6 +1568,7 @@
|
|
|
}
|
|
|
return this.applyGanttFullDayRange(newObj);
|
|
|
});
|
|
|
+ this.ganttData = this.sortGanttTasksByStartTime(ganttData);
|
|
|
|
|
|
this.reload();
|
|
|
}
|