甘特图基线任务条
基线任务条用于展示“计划基线”与“实际任务”的差异。通过在任务条上方、下方或与其重叠位置绘制一条基线条,帮助识别偏差。
配置项
taskBar.baselineStartDateField:基线开始日期字段,例如baselineStartDate。taskBar.baselineEndDateField:基线结束日期字段,例如baselineEndDate。taskBar.baselineStyle:基线条样式,支持与barStyle相同字段(如width、barColor、cornerRadius、borderLineWidth等),也支持传函数按任务返回样式。taskBar.baselinePosition:'top' | 'bottom' | 'overlap',默认'bottom'。
默认基线样式为:
{ barColor: '#d3d3d3', completedBarColor: '#a9a9a9', width: 20, cornerRadius: 3, borderWidth: 0 }
定位建议
- 若希望主任务条与基线条分层展示,设置
baselinePosition为top或bottom,重叠请设置baselinePosition: 'overlap',任务条和基线条会垂直居中进行展示; - 如果要自定义任务条位置,可以通过调整
baselineStyle中的paddingTop,及barStyle中的paddingTop来实现。
API:读取基线信息
使用 getBaselineInfoByTaskListIndex(index, subIndex?) 可获取指定任务的基线开始/结束日期与天数:
const info = ganttInstance.getBaselineInfoByTaskListIndex(0);
// { baselineStartDate, baselineEndDate, baselineDays }
代码示例
import { Gantt } from '@visactor/vtable-gantt';
const records = [
{
id: 1,
title: '项目规划',
startDate: '2024-07-05',
endDate: '2024-07-14',
baselineStartDate: '2024-07-01',
baselineEndDate: '2024-07-10',
progress: 80
}
];
const option = {
records,
taskListTable: {
columns: [{ field: 'title', title: '任务名称', width: 180 }],
tableWidth: 300
},
rowHeight: 90,
taskBar: {
startDateField: 'startDate',
endDateField: 'endDate',
progressField: 'progress',
baselineStartDateField: 'baselineStartDate',
baselineEndDateField: 'baselineEndDate',
baselinePosition: 'bottom',
baselineStyle: {
width: 15,
barColor: 'gray',
cornerRadius: 5
}
},
timelineHeader: {
colWidth: 50,
scales: [{ unit: 'day', step: 1 }]
},
minDate: '2024-06-25',
maxDate: '2024-09-01'
};
const ganttInstance = new Gantt(document.getElementById('vTable'), option);