如何在DHTMLX Gantt中实现一个区域内按照预定比例同时显示两种不同颜色的任务条?
时间: 2024-11-11 14:42:05 浏览: 5
dhtmlxGantt.doc
在DHTMLX Gantt中,要在一个区域内按照预定比例同时显示两种不同颜色的任务条,你可以通过组合使用`drawTask`方法和自定义CSS样式来实现。这里是一个简单的步骤说明:
1. **创建任务**:
首先,你需要为这两种任务分别创建`gantt.data`数组中的条目。每个任务需要有`start_date`, `end_date`, 和 `color` 属性,其中颜色可以是你想要的任意颜色。
```javascript
var data = [
{id: "task1", start_date: "2023-01-01", end_date: "2023-01-15", color:"#FF0000"}, // 红色任务
{id: "task2", start_date: "2023-01-08", end_date: "2023-01-18", color:"#00FF00"} // 绿色任务
];
```
2. **设置区域**:
定义一个时间段范围,在这个范围内你想同时显示两种颜色的任务。例如,如果你想要从第5天到第10天显示红色和绿色交替:
```javascript
var startDate = new Date("2023-01-06");
var endDate = new Date("2023-01-11");
```
3. **绘制任务**:
使用`drawTask`方法,指定任务开始日期、结束日期以及颜色。在这里,你可以创建一个循环,每两个任务交替使用红色和绿色,直到达到预设的区域:
```javascript
for (var i = 0; i < tasksInRange.length; i += 2) {
gantt.drawTask(tasksInRange[i].id, tasksInRange[i].start_date, tasksInRange[i].end_date, {color: tasksInRange[i].color});
}
```
4. **计算任务数量**:
`tasksInRange` 是包含红色和绿色任务的数组切片,计算它有多少元素以确定如何交替显示。
5. **应用CSS样式**:
如果希望在视觉上更明显地区分任务,可以给两种颜色的任务添加特定的类名,并在CSS中定义它们的样式。
```css
.task-red {
background-color: red;
}
.task-green {
background-color: green;
}
```
阅读全文