JavaScript多功能甘特图组件 - jsGantt

news2024/9/26 5:24:17

jsGantt 是一个可定制的、灵活的、多语言的甘特图组件,由原生 JavaScript 构建。它使用客户端渲染以获得快速的性能和动态的交互性。非常适用于任何需要交互式时间线或时间表显示的项目。

更多特点

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

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

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

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

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

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

  • 远程或本地数据: 从本地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" />
<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
});

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/712559.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

容器技术与容器编排系统详解

一、Docker 容器技术 概括起来&#xff0c;Docker 容器技术有3个核心概念容器、镜像和镜像仓库。如果把容器类比为动态的、有生命周期的进程&#xff0c;则镜像就像是静态的可执行程序及其运行环境的打包文件&#xff0c;而镜像仓库则可想象成应用程序分发仓库&#xff0c;事先…

6.30学习-函数柯里化,回调解决异步多线程

6.30学习-函数柯里化&#xff0c;回调解决异步多线程 1.函数柯里化1.1 确定参数的函数柯里化1.2参数不确定的函数柯里化1.3 用法1.3.1 给setTimeout传递进来的函数添加参数 2.回调解决异步多线程 1.函数柯里化 函数柯里化&#xff0c;经常可能就面试的时候听说过&#xff0c;反…

【Unity3D编辑器开发】Unity3D中初次尝试使用PropertyDrawer属性

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 前段时间一直比较忙&#xff0c;没有时间更新博客&#xff0c;…

SSH连接vmware 虚拟机 centos

检查虚拟机设置的网络连接是否为NAT模式 点击左上角“编辑” -> “虚拟网络编辑器” 在虚拟网络编辑器中查看IP地址 &#xff0c;点击NAT模式后&#xff0c;点击“NAT设置 记住自己的网关,下面在服务器中配置需要 进入服务器的 /etc/sysconfig/network-scripts/ 编辑 i…

Java性能权威指南-总结22

Java性能权威指南-总结22 对象序列化追踪对象复制 Java EE网络API小结 对象序列化 追踪对象复制 先介绍一个示例&#xff0c;如何不对对象引用进行序列化&#xff0c;以避免在反序列化时处理对象引用。然而&#xff0c;writeobject()中最有力的优化是不重复输出对象引用。 在…

强大业务体系支撑,亚马逊云科技占据近八成中国企业出海总销量

从人类发展历史上看&#xff0c;无论是刳木为舟&#xff0c;剡木为楫&#xff0c;还是郑和下西洋&#xff0c;亦或是欧洲大航海时代&#xff0c;人类对于出海探索这件事就从未停止。而在如今的时代&#xff0c;相似的故事依旧在上演。过去的十年&#xff0c;是中国互联网最为繁…

一文了解AppSec,以及如何通过Perforce工具保障应用程序防护

应用程序防护&#xff08;AppSec&#xff09;是有效且高效的安全措施&#xff0c;有助于帮助软件应用程序解决日益严重的安全威胁。本篇文章将讨论应用程序防护&#xff08;AppSec&#xff09;的原理、最佳实践以及您应该使用什么AppSec工具。 什么是AppSec&#xff1f; AppS…

近视眼选择什么台灯好一点?高品质护眼台灯推荐

目前我国儿童以及青少年的近视率达到53.7%&#xff0c;且近视发病率不断呈现低龄化趋势&#xff0c;导致近视的主要是因为用眼过度。而电子产品的普及&#xff0c;网课、打游戏、刷短视频等&#xff0c;被许多家长认为是导致近视的主要原因&#xff0c;其往往忽略掉了一个很重要…

springboot社区服务系统-计算机毕设 附源码77279

springboot社区服务系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&a…

Unity游戏开发之游戏动画(模型动画制作及导入)

一. 简单制作3D角色 在stream中下载Fuse软件在Fuse中制作人物&#xff0c;导出模型为OBJ格式&#xff08;注意&#xff1a;这里导出目录必须为英文路径&#xff0c;否则只能导出空的OBJ文件&#xff09;压缩Obj文件为zip格式打开Mixamo网站&#xff1a;https://www.mixamo.com…

刷题日记04《回溯算法》

回溯算法本质 回溯算法的本质是穷举&#xff0c;即对所有可能的情况进行一一穷举&#xff0c;如果求解过程中发现某个情况不符合求解要求&#xff0c;直接进行剪枝即可 回溯算法模板 我们可以将回溯算法理解为以下两种模板 1.递归回溯 result [] def backtrack(路径, 选择列表…

企业电子招投标系统源代码之电子招投标系统建设的重点和未来趋势+spring clould +java+二次开发

计算机与网络技术的不断发展&#xff0c;推动了社会各行业信息化的步伐。时至今日&#xff0c;电子政务、电子商务已经非常普及&#xff0c;云计算、大数据、工业4.0、“互联网”等发展理念也逐步深入人心&#xff0c;如何将传统行业与互联网科技有效结合起来&#xff0c;产生1…

港联证券:新能源汽车再迎助力 科技巨头持续加注机器人领域

上周五&#xff0c;A股再度反弹拉升&#xff0c;两市股指盘中全线走高&#xff0c;沪指突破3200点&#xff0c;深成指涨逾1%&#xff0c;创业板指一度涨超2%。截至收盘&#xff0c;沪指涨0.62%报3200.06点&#xff0c;深成指涨1.02%报11026.59点&#xff0c;创业板指涨1.6%报22…

【梦辛工作室】java实现简易消息队列处理器 可分区 分区顺序消费MxMQ

大家好哇&#xff0c;又是我&#xff0c;梦辛工作室的灵&#xff0c;最近在巩固JUC并发包&#xff0c;突然想到如果自己的应用体量不大&#xff0c;但有需要消息队列来实现应用解耦和削峰来缓解服务器突增压力&#xff0c;比如抢票时&#xff0c;突然有比较用户同时抢票&#x…

C++之GNU C的__attribute__((constructor))优先级使用(一百四十九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

C++ 设计模式----“对象性能“模式

“对象性能”模式 面向对象很好地解决了“抽象”的问题&#xff0c;但是必不可免地要付出一定的代价。对于通常情况来讲&#xff0c;面向对象的成本大都可以忽略不计。但是某些情况&#xff0c;面向对象所带来的成本必须谨慎处理。 典型模式 Singleto Flyweighta Singlet…

51单片机笔记

51单片机笔记 一、编程区域 1.1 用户应用程序区&#xff08;AP区&#xff09; 是指用户自己编写的程序区 1.2 ISP监控程序区&#xff1a; ISP区是指芯片出厂时就已经固化在单片机内部的一段程序&#xff0c;STC单片机可以进行ISP串行下载程序&#xff0c;这就是因为芯片在出…

在Blender和Zbrush中创建激光指示器,新手硬表面建模码住!

大家好&#xff0c;今天云渲染小编给大家带来的分享是硬表面建模&#xff0c;CG艺术家Lyubov使用Blender和Zbrush创建激光指示器的幕后花絮。 介绍 我叫 Lyubov&#xff0c;来自俄罗斯圣彼得堡&#xff0c;是一名 3D 建模的初学者。虽然学习还不到一年&#xff0c;但是我对它…

etcd安装

ETCD安装 windows版本 下载 下载地址https://github.com/etcd-io/etcd/releases 安装 其实也不用安装&#xff0c;下载解压后&#xff0c;得到如下 选中etcd.exe&#xff0c;右键→属性→兼容性→以管理员身份运行此程序勾上&#xff0c;当然&#xff0c;每次运行时候右键…

kettle作业循环实现

kettle作业循环实现 使用kettle作业中的JavaScript实现作业循环&#xff0c;这里是固定循环10次 JavaScript2 parent_job.setVariable("max",10); parent_job.setVariable("count",1); true;检验字段的值 JavaScript var current parent_job.getVari…