react 甘特图之旅

news/2024/9/21 17:20:01 标签: react.js, 甘特图, 前端
  1. react-gantt
    GitHub 仓库: https://github.com/clayrisser/react-gantt

  2. react-gantt-chart
    GitHub 仓库: https://github.com/MaTeMaTuK/gantt-task-react

  3. easy-gant-beta
    GitHub 仓库: https://github.com/web-widgets/react-gantt-demos

上面的版本不兼容

  1. dhtmlx-gantt
    官方网站: https://docs.dhtmlx.com/gantt/
    GitHub 仓库: https://github.com/dhtmlx/dhtmlx-gantt

试用版
npm install @dhx/trial-gantt 安装不了

npm install dhtmlx-gantt 标准版(免费)
可以参考:https://dhtmlx.com/blog/create-react-gantt-chart-component-dhtmlxgantt/
安装

 npm install @bryntum/gantt-trial    

5、 syncfusion/ej2-react-gantt 收费, 30天免费试用
syncfusion/ej2-react-gantt

npm install @syncfusion/ej2-react-gantt
npm list @syncfusion/ej2-buttons @syncfusion/ej2-base

6、kendo-react-ui 收费
kendo-react-ui

npm install @progress/kendo-react-gantt 
 
npm install @progress/kendo-react-common
npm install @progress/kendo-react-grid 

综上,我推荐dhtmlx-gantt 免费版,

在这里插入图片描述

import React, { useEffect, useRef } from 'react';
import { gantt } from 'dhtmlx-gantt';
import 'dhtmlx-gantt/codebase/dhtmlxgantt.css';
 


const Dhtmlx = () => {
  const container = useRef<HTMLDivElement>(null);

  const data = {
    data: [
      { id: 1, text: "Project #1", start_date: null, duration: null, parent: 0, progress: 0, open: true },
      { id: 2, text: "Task #1", start_date: "2024-08-01 00:00", duration: 1, parent: 1, progress: 1 },
      { id: 3, text: "Task #2", start_date: "2024-08-06 00:00", duration: 2, parent: 1, progress: 0.5 },
      { id: 4, text: "Task #3", start_date: null, duration: null, parent: 1, progress: 0.8, open: true },
      { id: 5, text: "Task #3.1", start_date: "2024-08-09 00:00", duration: 2, parent: 4, progress: 0.2 },
      { id: 6, text: "Task #3.2", start_date: "2024-08-11 00:00", duration: 1, parent: 4, progress: 0 }
    ],
    links: [
      { id: 1, source: 2, target: 3, type: "0" },
      { id: 2, source: 3, target: 4, type: "0" },
      { id: 3, source: 5, target: 6, type: "0" }
    ]

  };

  useEffect(() => {
    if (container.current) {
      gantt.config.date_format = "%Y-%m-%d %H:%i";
      gantt.init(container.current);
      gantt.parse(data);
    }

    return () => {
      gantt.clearAll();
    };
  }, []);
  return (
    <div>
      <div ref={container} style={{ width: '100%', height: '500px' }}></div>
    </div>
  )

}

export default Dhtmlx 
 

http://www.niftyadmin.cn/n/5669147.html

相关文章

【智能大数据分析 | 实验一】MapReduce实验:单词计数

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈智能大数据分析 ⌋ ⌋ ⌋ 智能大数据分析是指利用先进的技术和算法对大规模数据进行深入分析和挖掘&#xff0c;以提取有价值的信息和洞察。它结合了大数据技术、人工智能&#xff08;AI&#xff09;、机器学习&#xff08;ML&a…

IS-ISv6单拓扑存在的问题

文章目录 IS-ISv6单拓扑配置单拓扑存在的问题解决 IS-ISv6单拓扑 配置 R1&#xff1a;sy sy R1 ipv6 inter g0/0/0 ip add 12.1.1.1 24 ipv6 enable ipv add 2001:12::1 64 inter loop0 ip add 1.1.1.1 32 ipv6 enable ipv address 2002::1 128isis net 49.111111111111.00 is…

每日OJ题_牛客_WY22 Fibonacci数列(斐波那契)

目录 牛客_WY22 Fibonacci数列&#xff08;斐波那契&#xff09; 解析代码 牛客_WY22 Fibonacci数列&#xff08;斐波那契&#xff09; Fibonacci数列_牛客题霸_牛客网 解析代码 求斐波那契数列的过程中&#xff0c;判断⼀下&#xff1a;何时 n 会在两个 fib 数之间。 #in…

如何将 java.nio.ByteBuffer 转为 String

如何将 java.nio.ByteBuffer 转为 String 方法1: newString()方法结合ByteBuffer的array()方法, 忽略是否flip()过 用String的 public String(byte[] bytes, int offset, int length, Charset charset)方法 和 ByteBuffer的array()方法 长度在取 bbf.position()0?bbf.limit(…

GD32F103单片机-EXTI外部中断

GD32F103单片机-EXTI外部中断 一、EXTI及NVIC介绍二、编程实验2.1 相关库函数2.2 实验代码 一、EXTI及NVIC介绍 GD32和STM32的EXTI基本相似&#xff0c;具体见STM32F1单片机-外部中断GD32的EXTI包括20个相互独立的边沿检测电路请求产生中断或事件&#xff0c;4位优先级配置寄存…

漏洞——CVE简介

1、什么是CVE CVE (Common Vulnerabilities and Exposures)&#xff08;常见漏洞与暴露&#xff09;是一个标准化的命名系统&#xff0c;用于识别和描述公开披露的网络安全漏洞。CVE 的目的是为漏洞提供唯一的标识符&#xff0c;使安全专家、软件供应商和用户能够统一参考和讨…

ABAP-Swagger 一种公开 ABAP REST 服务的方法

ABAP-Swagger An approach to expose ABAP REST services 一种公开 ABAP REST 服务的方法 Usage 1: develop a class in ABAP with public methods 2: implement interface ZIF_SWAG_HANDLER, and register the public methods(example method zif_swag_handler~meta) 3: …

java集合(1)

引入 我们我们保存多个数据时大多是使用数组&#xff0c;但数组有许多不足之处 数组的长度必须在开始时指定&#xff0c;而且长度一旦确定便不能修改保存的必须为同一类型的元素数组增加/删除元素较麻烦 //数组扩容 int[] num1 new int[1]; num1[0]1;//创建数组并赋值 int[]…