funListT07: [ { id: 1, name: "零部件01", start: "2022-01-01", end: "2022-01-05", }, { id: 2, name: "零部件02", start: "2022-01-03", end: "2022-01-08", }, { id: 3, name: "零部件03", start: "2022-01-06", end: "2022-01-10", }, { id: 4, name: "零部件04", start: "2022-01-02", end: "2022-01-09", }, { id: 5, name: "零部件05", start: "2022-01-05", end: "2022-01-10", }, { id: 6, name: "零部件06", start: "2022-01-06", end: "2022-01-12", }, { id: 7, name: "零部件07", start: "2022-01-03", end: "2022-01-10", }, ],如何实现甘特图,echarts
时间: 2024-02-14 18:04:09 浏览: 49
要实现甘特图,可以使用 echarts 中的 Gantt 组件。首先,需要将数据处理成符合 Gantt 组件要求的格式,即将每个任务转换成一个对象,包括 id、name、start、end 等属性。然后,将所有任务放入一个数组中,作为 Gantt 组件的数据源。
接下来,创建一个 echarts 实例,并在其中引入 Gantt 组件。通过设置 Gantt 组件的各个属性,如 legend、tooltip、xAxis、yAxis、series 等,来配置甘特图的样式和展示方式。其中,series 属性中的 type 属性要设置为 'gantt',表示将使用 Gantt 组件。
最后,将处理好的数据和配置好的 Gantt 组件放入 echarts 实例中,并在页面中渲染出甘特图。具体的代码实现如下:
```javascript
// 数据源
const data = [
{
id: 1,
name: "零部件01",
start: "2022-01-01",
end: "2022-01-05",
},
{
id: 2,
name: "零部件02",
start: "2022-01-03",
end: "2022-01-08",
},
{
id: 3,
name: "零部件03",
start: "2022-01-06",
end: "2022-01-10",
},
{
id: 4,
name: "零部件04",
start: "2022-01-02",
end: "2022-01-09",
},
{
id: 5,
name: "零部件05",
start: "2022-01-05",
end: "2022-01-10",
},
{
id: 6,
name: "零部件06",
start: "2022-01-06",
end: "2022-01-12",
},
{
id: 7,
name: "零部件07",
start: "2022-01-03",
end: "2022-01-10",
},
];
// 创建 echarts 实例
const myChart = echarts.init(document.getElementById("myChart"));
// 引入 Gantt 组件
echarts.use([require('echarts-gantt')]);
// 配置 Gantt 组件
const option = {
tooltip: {
trigger: "item",
formatter: function (params) {
const task = params.data;
return task.name + "<br/>" + "起始时间:" + task.start + "<br/>" + "结束时间:" + task.end;
},
},
legend: {
data: ["零部件甘特图"],
},
grid: {
left: "10%",
right: "10%",
bottom: "15%",
},
xAxis: {
type: "time",
splitLine: {
show: false,
},
},
yAxis: {
type: "category",
data: data.map((item) => item.name),
axisLabel: {
interval: 0,
align: "left",
},
splitLine: {
show: false,
},
},
series: [
{
type: "gantt",
name: "零部件甘特图",
data: data.map((item) => ({
name: item.name,
value: [
item.start,
item.end,
item.id,
],
})),
itemStyle: {
color: "#008000",
borderColor: "#008000",
},
label: {
show: true,
formatter: function (params) {
return params.name;
},
},
},
],
};
// 将数据和配置放入 echarts 实例,并渲染出甘特图
myChart.setOption(option);
```
以上代码中,通过设置 tooltip、legend、grid、xAxis、yAxis 和 series 等属性,来配置甘特图的各个方面。其中,series 中的 data 属性是一个数组,里面存放的是处理好的任务数据,通过 map 函数将每个任务转换成一个对象。Gantt 组件会根据数据中的起始时间和结束时间,自动计算出任务的进度,并在甘特图中展示出来。最后,通过调用 setOption 方法,将数据和配置放入 echarts 实例中,并在页面中渲染出甘特图。
阅读全文