JavaScript多功能甘特图组件jsGantt详解

 更新时间:2023年07月06日 08:58:04   作者:杭州程序员张张  
jsGantt是一个可定制的、灵活的、多语言的甘特图组件,由原生 JavaScript构建,它使用客户端渲染以获得快速的性能和动态的交互性,非常适用于任何需要交互式时间线或时间表显示的项目,本文就给大家介绍一下JavaScript多功能甘特图组件jsGantt

更多特点

  • 多语言支持: 通过对多语言的支持,使您的甘特图可以在全球范围内使用。

  • 任务和可折叠的任务组: 以有组织的方式构建你的任务,并轻松浏览它们。

  • 依赖关系和突出显示: 可视化任务的依赖性,并通过简单的悬停获得任务细节。

  • 数据可编辑性: 通过内嵌的责任方列表,随时更新你的甘特表。

  • 附加列: 使用附加列来丰富你的甘特表,使其具有更多的数据。

  • 动态加载和格式变化: 动态加载任务,并在小时、日、周、月和季度格式之间毫不费力地切换。

  • 远程或本地数据: 从本地JS对象或远程JSON/XML数据源获取你的甘特图数据。

  • 也可与Angular、React、Vue和.Net合作

如何使用它

1.安装并导入jsGantt。

# NPM
$ npm i jsgantt-improved
import {JSGantt} from 'jsgantt-improved';

2.或者直接在文档中加载所需的JS/CSS文件。

<!-- OR -->
<link rel="stylesheet" href="dist/jsgantt.css" rel="external nofollow"  />
<script src="dist/jsgantt.js"></script>

3.创建一个空的容器来放置甘特图。

<div style="position:relative" class="gantt" id="example"></div>

4.创建一个新的甘特图实例。

  • pDiv: 图表容器的选择器

  • pFormat: "小时"、"日"、"周"、"月 "或 "季度"

// JSGantt.GanttChart(pDiv, pFormat);
const myChart = new JSGantt.GanttChart(document.getElementById('GanttChartDIV'), 'day');

5.从JS对象、JS字符串、JSON或XML加载任务数据。

// object
myChart.AddTaskItemObject({
  pID: 1,
  pName: "Name 1",
  pStart: "2023-02-25",
  pEnd: "2023-03-17",
  pPlanStart: "2023-04-01",
  pPlanEnd: "2023-04-15 12:00",
  pClass: "",
  pPlanClass: ""
  pLink: "",
  pMile: 0,
  pRes: "Brian", // resource name
  pComp: 0,
  pGroup: 0, // 0 = normal task, 1 = standard group task, 2 = combined group task
  pParent: 0, // parent ID
  pOpen: 1, // 1 = open, 0 = closed
  pDepend: "", // comma separated list of ids this task is dependent on
  pCaption: "",
  pCost: 1000,
  pNotes: "Some Notes text",
  pBarText: "ex. bar text",
  category: "My Category",
  sector: "Finance"
});
// JSON
JSGantt.parseJSON('./data.json', myChart);
// XML
JSGantt.parseXML("./data.xml", myChart);

6.在页面上画出图表。

myChart.Draw();

7.按ID删除一个任务项目。

myChart.RemoveTaskItem(5);

8.清除所有任务。

myChart.ClearTasks()

9.设置选项。

g.setOptions({
  vCaptionType: 'Complete',  // Set to Show Caption : None,Caption,Resource,Duration,Complete,     
  vQuarterColWidth: 36,
  vDateTaskDisplayFormat: 'day dd month yyyy', // Shown in tooltip box
  vDayMajorDateDisplayFormat: 'mon yyyy - Week ww',// Set format to display dates in the "Major" header of the "Day" view
  vWeekMinorDateDisplayFormat: 'dd mon', // Set format to display dates in the "Minor" header of the "Week" view
  vLang: lang,
  vAdditionalHeaders: { // Add data columns to your table
    category: {
      title: 'Category'
    },
    sector: {
      title: 'Sector'
    }
  },
  vShowTaskInfoLink: 1, // Show link in tool tip (0/1)
  vShowEndWeekDate: 0,  // Show/Hide the date for the last day of the week in header for daily view (1/0)
  vUseSingleCell: 10000, // Set the threshold at which we will only use one cell per table row (0 disables).  Helps with rendering performance for large charts.
  vFormatArr: ['Day', 'Week', 'Month', 'Quarter'], // Even with setUseSingleCell using Hour format on such a large chart can cause issues in some browsers
  vScrollTo: new Date(),
  // EVENTS
  // OnChangee
  vEventsChange: {
    taskname: console.log,
    res: console.log,
  },
  // EventsClickCell
  vEvents: {
    taskname: console.log,
    res: console.log,
    dur: console.log,
    comp: console.log,
    start: console.log,
    end: console.log,
    planstart: console.log,
    planend: console.log,
    cost: console.log,
    additional_category: console.log, // for additional fields
    beforeDraw: ()=>console.log('before draw listener'),
    afterDraw: ()=>console.log('before after listener')
  },
  vEventClickRow: console.log,
  vEventClickCollapse: console.log
});

到此这篇关于JavaScript多功能甘特图组件jsGantt详解的文章就介绍到这了,更多相关JavaScript 甘特图组件jsGantt内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何在uni-app使用微软的文字转语音服务

    如何在uni-app使用微软的文字转语音服务

    有了语音识别,交流就会变得很简单,下面这篇文章主要给大家介绍了关于如何在uni-app使用微软的文字转语音服务的相关资料,需要的朋友可以参考下
    2022-06-06
  • 基于Ionic3实现选项卡切换并重新加载echarts

    基于Ionic3实现选项卡切换并重新加载echarts

    这篇文章主要介绍了基于Ionic3实现选项卡切换并重新加载echarts,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • JavaScript Window.open弹窗使用详解

    JavaScript Window.open弹窗使用详解

    这篇文章主要为大家介绍了JavaScript Window.open 弹窗使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • JavaScript中数字计算时丢失精度问题解决方法

    JavaScript中数字计算时丢失精度问题解决方法

    在前端开发中,精度丢失是一个常见的问题,特别是在涉及到浮点数计算时,下面这篇文章主要给大家介绍了关于JavaScript中数字计算时丢失精度问题的解决方法,需要的朋友可以参考下
    2024-09-09
  • 探讨js字符串数组拼接的性能问题

    探讨js字符串数组拼接的性能问题

    这篇文章主要介绍了有关js对字符串数组进行拼接的性能问题,字符串连接一直是js中性能最低的操作之一,应该如何解决呢?请参看本文的介绍
    2014-10-10
  • isArray()函数(JavaScript中对象类型判断的几种方法)

    isArray()函数(JavaScript中对象类型判断的几种方法)

    我们知道,JavaScript中检测对象类型的运算符有:typeof、instanceof,还有对象的constructor属性
    2009-11-11
  • 微信小程序访问豆瓣电影api的实现方法

    微信小程序访问豆瓣电影api的实现方法

    这篇文章主要介绍了微信小程序访问豆瓣电影api的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • 详解uniapp页面跳转URL传参大坑

    详解uniapp页面跳转URL传参大坑

    本文主要介绍了详解uniapp页面跳转URL传参大坑,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • js实现下一页页码效果

    js实现下一页页码效果

    本文主要介绍了js实现下一页页码效果的实例,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • Javascript中this关键字指向问题的测试与详解

    Javascript中this关键字指向问题的测试与详解

    this是Javascript中一个非常容易理解错,进而用错的特性。所以下面这篇文章主要给大家介绍了关于Javascript中this关键字指向问题的相关资料,文中通过测试的题目考验大家对this的熟悉程度,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08

最新评论