甘特图 vue 版(dhtmlx-gantt)

安装

一、通过包管理器下载包

npm install dhtmlx-gantt
yarn add dhtmlx-gantt
pnpm add dhtmlx-gantt

二、在项目中引入,包含 js 和 css

import { gantt } from "dhtmlx-gantt";
import "dhtmlx-gantt/codebase/dhtmlxgantt.css";

三、初始化甘特图配置

1.准备容器

<template>
  <div ref="gantt" class="container"></div>
</template>

2.配置初始数据

data() {
  return {
    tasks: {
      data: [
        {
          id: 1,
          text: "项目1",
          start_date: "2020-01-17",
          duration: 3,
          progress: 0.6,                                   //当前进度百分比
        },
        {
          id: 2,
          text: "项目2",
          start_date: "2020-01-20",
          duration: 3,
          progress: 0.4,
        },
      ],
      links: [{ id: 1, source: 1, target: 2, type: "0" }], //从source指向target的连接线
    },
  };
},

3.初始化和配置甘特图参数,并通过 ref 绑定到容器上(基本配置)

mounted() {
  gantt.config.xml_date = "%Y-%m-%d";  //参数
  gantt.init(this.$refs.gantt);        //通过ref绑定到容器上
  gantt.parse(this.tasks);             //将上方的数据传入
},

以上甘特图引入完毕,你应该可以看到最基本的甘特图了

可选配置

这里只介绍一些常用的配置,更多的配置请看官网文档open in new window

只读模式

gantt.config.readonly = true;

不可选取

gantt.config.select_task = false;

左侧列表相关配置

gantt.config.columns = [
  {
    name: "text",
    label: "名字",
    width: 280,
    template: (obj) => `名字是:${obj.text}`, //通过 template 回调可以指定返回内容值
  },
  {
    name: "start_date",
    label: "开始时间",
  },
  {
    name: "duration",
    label: "时长",
  },
];

Tooltips

//自定义Tooltips样式(可选)
gantt.templates.tooltip_text = (start, end, task) => {
  const t = gantt;
  const output = `
<b>里程碑:</b>
${task.text}
<br />
<b>计划开始时间:</b>
${t.templates.tooltip_date_format(start)}
<br />
<b>计划结束时间:</b>
${t.templates.tooltip_date_format(end)}`;
  return output;
}; //开启Tooltips
gantt.plugins({ tooltip: true });
Last Updated: