文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

十分钟轻松搞定前端甘特图!

2024-11-30 15:38

关注

甘特图是一种广泛使用的工具,它可以用来管理和展示项目进度,同时提高协作效率。本文将介绍一些流行的 JavaScript 甘特图库及其用法,以帮助更好地理解和选择适合需求的甘特图库!

下面是维基百科对甘特图的介绍:

甘特图(Gantt chart)是条状图的一种流行类型,显示项目、进度以及其他与时间相关的系统进展的内在关系随着时间进展的情况,是由亨利·甘特 (Henry Laurence Gantt) 于1910年开发出。在项目管理中,甘特图显示项目的终端元素的开始和结束,概要元素或终端元素的依赖关系,管理者可透过甘特图,监控项目当前各任务的进度。若想要同时显示多个不同的项目开始与结束的时间,就可以利用甘特图呈现,监控项目当前各任务的进度。

Frappe Gantt

Frappe Gantt是一个用于生成甘特图的JavaScript库,支持交互式绘制、拖拽、缩放、任务依赖关系和时间刻度等功能。其具有以下特点:

可以通过以下步骤来使用 Frappe Gantt:

  1. 在终端中导航到项目目录并运行以下命令安装Frappe Gantt:

npm install frappe-gantt

  1. 在JavaScript文件中引入Frappe Gantt,并创建容器元素、配置甘特图数据、初始化Gantt对象,并将其附加到容器元素上

<div id="gantt">div>
import Gantt from 'frappe-gantt';

const tasks = [
{
id: 'task-1',
name: 'Task 1',
start: '2023-04-12',
end: '2023-05-12'
},
{
id: 'task-2',
name: 'Task 2',
start: '2023-05-12',
end: '2023-06-12',
dependencies: 'task-1'
}
];

const gantt = new Gantt('#gantt', tasks);

需要注意的是,在使用 Frappe Gantt 时,还需要在项目中引入相关样式和语言包等资源,以便正常使用。

Github:https://github.com/frappe/gantt。

Dhtmlx Gantt

DHTMLX Gantt 是一个开源的 JavaScript 甘特图库,可以在图表中说明和管理项目进度。其具有以下特点:

dhtmlxGantt 提供了免费版和付费版,使用步骤如下:

  1. 在终端中导航到项目目录并运行以下命令安装 dhtmlxGantt 插件

npm install dhtmlx-gantt

  1. 在JavaScript文件中初始化dhtmlxGantt对象并配置相关参数

import 'dhtmlx-gantt';
import 'dhtmlx-gantt/codebase/dhtmlxgantt.css';

const tasks = {
data: [
{
id: 1,
text: 'Project #1',
start_date: '2023-04-12',
duration: 18,
progress: 0.4
},
{
id: 2,
text: 'Task #1',
start_date: '2023-04-12',
duration: 8,
parent: 1,
progress: 0.6
}
],
links: [
{
id: 1,
source: 1,
target: 2,
type: '1'
}
]
};

gantt.init('gantt_here');
gantt.parse(tasks);

以上代码将在id为"gantt_here"的div中创建一个简单的甘特图。

Github:https://github.com/DHTMLX/gantt。

gantt-task-react

gantt-task-react是一个基于React和TypeScript的交互式甘特图组件。它允许用户快速创建美观、可交互的甘特图,并提供了各种配置选项,使得开发者可以自定义甘特图的背景色、时间刻度、任务栏等样式。其具有以下特点:

可以通过以下步骤来使用 gantt-task-react:

  1. 在终端中导航到项目目录并运行以下命令安装gantt-task-react:

npm install gantt-task-react

  1. 在需要使用 gantt-task-react 的组件中引入Gantt组件:

import React from 'react';
import Gantt from 'gantt-task-react';

function MyComponent() {
const tasks = {
data: [
{
id: 1,
text: 'Task #1',
start_date: '2023-04-12',
duration: 4,
progress: 0.4
},
{
id: 2,
text: 'Task #2',
start_date: '2023-04-14',
duration: 3,
progress: 0.6
}
]
};

return (

);
}

export default MyComponent;

  1. 在Gantt组件中添加需要的配置项。

  tasks={tasks}
dateGrid={{
hour: "[Hh]"
}}
timeSteps={{
day: 1
}}
scrollPositinotallow={{
scrollTop: 150
}}
taskListWidth={300}
/>

以上代码将在 MyComponent 中创建一个简单的甘特图,并设置了一些常用的配置项。

Github:https://github.com/MaTeMaTuK/gantt-task-react。

Vue Ganttastic

Vue Ganttastic 是一个基于Vue 3的简单、交互式且高度可定制的甘特图组件。它可以在Web应用中展示任务和进度,支持拖拽、缩放和事件处理等交互特性。其具有以下特点:

可以通过以下步骤来使用 Vue Ganttastic:

  1. 在终端中导航到Vue项目目录并运行以下命令安装Vue Ganttastic:

npm install vue-ganttastic

  1. 在需要使用Vue Ganttastic的组件中引入GanttChart组件:



  1. 在GanttChart组件中添加需要的配置项。

  :tasks="tasks"
:chart-start-date="new Date('2023-04-10')"
:chart-end-date="new Date('2023-04-20')"
:bar-style="{ backgroundColor: '#66ccff' }"
:is-vertical="false"
:day-class-factory="dayClassFactory"
/>

以上代码将在App组件中创建一个简单的甘特图,并设置了一些常用的配置项。

Github:https://github.com/zunnzunn/vue-ganttastic。

NgxGantt

NgxGantt 是一款基于 Angular 框架的甘特图组件,支持多种视图展示并支持多种高级的特性,能快速的帮助开发者搭建自己的甘特图应用。其具有以下特点:

可以通过以下步骤来使用 ngx-gantt:

  1. 在终端中导航到Vue项目目录并运行以下命令安装 ngx-gantt:

npm install ngx-gantt

  1. 在"app.module.ts"中引入和注册GanttModule。

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { GanttModule } from 'ngx-gantt';

import { AppComponent } from './app.component';

@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
GanttModule,
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }

  1. 在组件中使用标签,并传入需要展示的任务数据。

其中,tasks​ 是一个任务列表(数组),每个任务对象包含任务名、开始时间、结束时间、进度等属性;ganttOptions 是一个可选的配置对象,用于自定义甘特图的外观和行为,例如:设置语言、设置日期格式、设置样式风格等。

Github:https://github.com/worktile/ngx-gantt。

来源:前端充电宝内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯