甘特图基线任务条
基线任务条用于展示“计划基线”与“实际任务”的差异。通过在任务条上方、下方或与其重叠位置绘制一条基线条,帮助识别偏差。
配置项
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);