甘特图实例 dhtmlxGantt.js

news2025/5/25 17:34:01

本文介绍了如何使用dhtmlxGantt库创建一个基础的甘特图示例,并对其进行汉化和自定义配置。首先,通过引入dhtmlxgantt.css和dhtmlxgantt.js文件初始化甘特图。接着,通过设置gantt.i18n.setLocale("cn")实现核心文本的汉化,并配置了时间轴、按钮等元素的显示格式。为了限制用户操作,禁用了任务拖动、双击编辑等功能,并将甘特图设置为只读模式。此外,隐藏了工具栏、快速操作栏和表头操作栏,确保用户仅能查看而无法修改数据。最后,通过gantt.parse方法加载示例数据,并调用gantt.render()渲染甘特图。该示例展示了如何通过灵活的配置实现甘特图的定制化需求。

效果图:

<!DOCTYPE html>
<html>

<head>
    <title>dhtmlxGantt 基础示例</title>
    <link href="dhtmlxgantt.css" rel="stylesheet">
    <script src="dhtmlxgantt.js"></script>

    <style>
        body {
            margin: 0;
            font-family: Arial;
        }

        .gantt-container {
            width: 100%;
            height: 100vh;
        }

        /* 隐藏所有加号按钮 */
        .gantt_add {
            display: none !important;
        }

        /* 或仅隐藏左侧任务树的加号按钮 */
        .gantt_tree_icon.gantt_add {
            display: none !important;
        }

        .gantt_last_cell {
            display: none !important;
        }
    </style>
</head>

<body>
    <div id="gantt" class="gantt-container"></div>

    <script>
        //汉化

        //文件内容示例
        gantt.i18n.setLocale("cn");
        // 核心文本汉化
        gantt.config.labels = {
            new_task: "新建任务",
            icon_save: "保存",
            icon_cancel: "取消",
            icon_details: "详情",
            icon_edit: "编辑",
            icon_delete: "删除",
            confirm_closing: "更改将丢失,确定关闭?",
            confirm_deleting: "任务将永久删除,确定继续?",
            section_description: "描述",
            section_time: "时间范围"
        };

        // 时间轴汉化
        gantt.config.month_date = "%Y年%m月";
        gantt.config.day_date = "%m月%d日";
        gantt.config.week_date = "第%W周";
        gantt.config.scale_date = "%Y年%m月%d日";
        gantt.config.buttons_left = [
            { text: "周视图", command: "scale_cells", param: "week" },
            { text: "月视图", command: "scale_cells", param: "month" }
        ];
        gantt.config.buttons_right = [
            { text: "导出PDF", command: "export_pdf" }
        ];

        // 完全禁用任务拖动
        // 1. 初始化配置
        gantt.config.date_format = "%Y-%m-%d";

        // // 完全禁用任务拖动
        // gantt.config.drag_move = false;
        // gantt.config.drag_resize = false;

        gantt.config.select_task = false;
        // 禁用所有交互事件(包括双击编辑)
        gantt.config.interaction = {
            click: false,//禁用单击
            dblclick: false,//禁用双击
            drag: false,// 禁用任务拖动
            resize: false 禁用调整大小
        };
        // 仅允许查看但禁止修改
        gantt.config.readonly = true;

        // 禁用任务点击选中
        // gantt.config.scale_unit = "week";
        gantt.config.subscales = [
            { unit: "day", step: 1, date: "%D" }
        ];
        // 初始化时禁用任务创建按钮
        gantt.config.show_add_button = false;
        gantt.config.toolbar = []; // 清空工具栏

        gantt.config.show_quick_info = false; // 隐藏快速操作栏
        gantt.config.show_grid_header = false; // 隐藏表头操作栏


        // 2. 加载数据
        gantt.init("gantt");
        gantt.parse({
            data: [
                { id: 1, text: "项目启动", start_date: "2025-05-01", duration: 7, progress: 0.5 },
                { id: 2, text: "需求分析", start_date: "2025-05-08", duration: 5, parent: 1 },
                { id: 3, text: "UI设计", start_date: "2025-05-10", duration: 8, parent: 1 },
                { id: 4, text: "开发", start_date: "2025-05-15", duration: 10 },
                { id: 5, text: "测试", start_date: "2025-05-16", end_date: "2025-05-20" }
            ],
            // links: [
            //     { id: 1, source: 2, target: 3, type: "0" } // 0表示"完成-开始"依赖关系
            // ]
        });




        // 或通过事件拦截(更灵活)
        gantt.attachEvent("onBeforeTaskDrag", function () {
            return false; // 取消拖动操作
        });

        // 刷新视图使配置生效
        gantt.render();


    </script>
</body>

</html>

实例资源包下载:https://download.csdn.net/download/lybwwp/90892502

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

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

相关文章

视频剪辑 VEGAS - 配置视频片段保持原长宽比

VEGAS 配置视频片段保持原长宽比 右击视频片段 -> 选择【开关】 -> 勾选【保持长宽比】 右击视频片段 -> 点击【属性】 -> 弹出【属性】窗口 点击【媒体】 -> 选择【像素宽高比】为【1,0000&#xff08;方形&#xff09;】

力扣 54 .螺旋矩阵

文章目录 题目介绍题解 题目介绍 题解 代码如下&#xff1a; class Solution {public List<Integer> spiralOrder(int[][] matrix) {List<Integer> res new ArrayList<>();if (matrix.length 0){return res;}int l 0, r matrix[0].length - 1, t 0, b…

四、【API 开发篇 (上)】:使用 Django REST Framework 构建项目与模块 CRUD API

【API 开发篇 】&#xff1a;使用 Django REST Framework 构建项目与模块 CRUD API 前言为什么选择 Django REST Framework (DRF)&#xff1f;第一步&#xff1a;创建 Serializers (序列化器)第二步&#xff1a;创建 ViewSets (视图集)第三步&#xff1a;配置 URLs (路由)第四步…

ARM笔记-ARM伪指令及编程基础

第四章 ARM伪指令及编程基础 4.1 伪指令概述 4.1.1 伪指令定义 人们设计了一些专门用于指导汇编器进行汇编工作的指令&#xff0c;由于这些指令不形成机器码指令&#xff0c;它们只是在汇编器进行汇编工作的过程中起作用&#xff0c;所以被叫做伪指令。 4.1.2 伪指令特征 …

Python入门手册:Python基础语法

Python是一种简洁、易读且功能强大的编程语言&#xff0c;非常适合初学者入门。无论你是编程新手&#xff0c;还是有一定编程基础但想学习Python的开发者&#xff0c;掌握Python的基础语法都是迈向高效编程的第一步。本文将详细介绍Python的基本语法&#xff0c;包括变量和数据…

CAD如何导出PDF?PDF如何转CAD?详细教程来了

浩辰CAD看图王是一款功能强大的CAD图纸查看与编辑工具&#xff0c;其核心功能之一便是支持CAD与PDF格式的互转。下面是CAD看图王输出PDF和PDF转CAD功能的详细介绍及操作步骤&#xff1a; 一、输出PDF功能 看图王可以将CAD图纸转换为PDF格式&#xff0c;是文件在不同的设备上显…

python-数据可视化(大数据、数据分析、可视化图像、HTML页面)

通过 Python 读取 XLS 、CSV文件中的数据&#xff0c;对数据进行处理&#xff0c;然后生成包含柱状图、扇形图和折线图的 HTML 报告。这个方案使用了 pandas 处理数据&#xff0c;matplotlib 生成图表&#xff0c;并将图表嵌入到 HTML 页面中。 1.XSL文件生成可视化图像、生成h…

【笔记】OpenCV的学习(未完)

由于只记关键和不懂的部分 希望做到下次再看这部分笔记就记得 所以用词会非常简练 前向传播 输入数据依次经过模型的各层&#xff0c;按照各层定义的运算规则进行计算&#xff0c;最终得到模型预测输出的过程。 单向的信息流动&#xff0c;不涉及模型参数的更新。 助于思考的…

多模态大语言模型arxiv论文略读(八十七)

MG-LLaVA: Towards Multi-Granularity Visual Instruction Tuning ➡️ 论文标题&#xff1a;MG-LLaVA: Towards Multi-Granularity Visual Instruction Tuning ➡️ 论文作者&#xff1a;Xiangyu Zhao, Xiangtai Li, Haodong Duan, Haian Huang, Yining Li, Kai Chen, Hua Ya…

记录将网站从http升级https

http与https 你知道http是什么吗&#xff0c;那你知道https吗&#xff1f;在进行升级之前我们应该都听说http不安全&#xff0c;要用https&#xff0c;那你知道这是为什么吗&#xff1f; 什么是http&#xff1f; HTTP 是超文本传输协议&#xff0c;也就是HyperText Transfer…

免费PDF工具-PDF24V9.16.0【win7专用版】

【百度】https://pan.baidu.com/s/1H7kvHudG5JTfxHg-eu2grA?pwd8euh 提取码: 8euh 【夸克】https://pan.quark.cn/s/92080b2e1f4c 【123】https://www.123912.com/s/0yvtTd-XAHjv https://creator.pdf24.org/listVersions.php

一周学会Pandas2 Python数据处理与分析-Pandas2数据合并与对比-pd.concat():轴向拼接

锋哥原创的Pandas2 Python数据处理与分析 视频教程&#xff1a; 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 在数据分析中&#xff0c;数据往往分散在多个来源&#xff08;如不同文件、数据库表或API&#xff09;&#xff0c;需…

安卓原生兼容服务器

安卓原生兼容服务器的定义 安卓原生兼容服务器‌指基于Android系统内核和服务框架构建的服务器环境&#xff0c;能够在不依赖第三方适配层的情况下&#xff0c;直接运行符合Android API规范的服务程序&#xff0c;并满足与其他软硬件组件的协同工作需求。其核心特征体现在以下…

优化用户体验:拦截浏览器前进后退、刷新、关闭、路由跳转等用户行为并弹窗提示

&#x1f9d1;‍&#x1f4bb; 写在开头 点赞 收藏 学会&#x1f923;&#x1f923;&#x1f923; 需求 首先列举一下需要拦截的行为&#xff0c;接下来我们逐个实现。 浏览器前进后退标签页刷新和关闭路由跳转 1、拦截浏览器前进后退 这里的实现是核心&#xff0c;涉及到大…

大学生创新创业项目管理系统设计——数据库实验九

本实验为自己设计完成&#xff0c;我当年数据库实验得了94分 目录 1.实验目的 2.实验内容和要求 3.实验步骤 4.实验心得 实验九 数据库设计 1.实验目的 掌握数据库设计的过程和方法。 2.实验内容和要求 &#xff08;35&#xff09;大学生创新创业项目管理系统设计 一…

电磁场与电场、磁场的关系

电磁场与电场、磁场之间存在着深刻的内在联系和统一性关系。这三者共同构成了电磁相互作用的基本框架&#xff0c;是理解电磁现象的关键所在。 电场和磁场实际上是电磁场的两个不同表现形式&#xff0c;它们既相互区别又密切联系。电场主要由静止电荷产生&#xff0c;表现为对…

Python爬虫实战:研究Newspaper框架相关技术

1. 引言 1.1 研究背景与意义 互联网的快速发展使得新闻信息呈现爆炸式增长&#xff0c;如何高效地获取和分析这些新闻数据成为研究热点。新闻爬虫作为一种自动获取网页内容的技术工具&#xff0c;能够帮助用户从海量的互联网信息中提取有价值的新闻内容。本文基于 Python 的 …

Kotlin MultiPlatform 跨平台版本的记账 App

前言 一刻记账 KMP (Kotlin MultiPlatform) 跨平台版本今天终于把 Android 和 iOS 进度拉齐了. 之前只有纯 Android 的版本. 最近大半年有空就在迁移代码到 KMP 上 中间学了 iOS 基础知识. xcode 的使用. 跨平台的架构的搭建… 感觉经历了很多很多. 一把辛酸泪 迁移的心路历…

PIO 中的赋值魔术,MOV 指令

前言 在普通编程语言中&#xff0c;mov 可以理解为“赋值指令”&#xff0c;将一个值从一个地方拷贝到另一个地方。在 RP2040 的 PIO 汇编语言中&#xff0c;mov 同样是数据传递的关键指令&#xff0c;但它操作的是 PIO 独有的几个寄存器。 在 PIO 中&#xff0c;你可以用 mov …

第十七次CCF-CSP算法(含C++源码)

第十七次CCF-CSP认证 小明种苹果AC代码 小明种苹果&#xff08;续&#xff09;AC代码 后面好难哈哈 小手冰凉 小明种苹果 输入输出&#xff1a; 题目链接 AC代码 #include<iostream> using namespace std; int n,m; int res,res3; int sum; int res21; int main(){cin …