Dhtmlx Gantt 常用方法及基本配置合集

2023-10-28 19:50

本文主要是介绍Dhtmlx Gantt 常用方法及基本配置合集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

甘特图基本配置

使用依赖

甘特图扩展功能

gantt.plugins({tooltip: true,quick_info: true,// 快速信息框// multiselect: true,// 激活多任务选择});

甘特图任务悬浮框位置

 gantt.config.tooltip_offset_x = 10;gantt.config.tooltip_offset_y = 30;

激活列表展开(折叠)功能

gantt.config.open_split_tasks = true;

创建新事件通过点击“+”按钮打开灯箱

gantt.config.details_on_create = true;

甘特图图表宽度自适应

gantt.config.autofit = true;

用户可以通过拖拽调整行高

 gantt.config.resize_rows = true;

界面初始化时展开图表树形结构

gantt.config.open_tree_initially = true;

图表项目栏可以任意拖拽(任意节点下)

  gantt.config.order_branch = true;gantt.config.order_branch_free = true;

新增空白列后新增项目

gantt.config.placeholder_task = true;

图表刷新后位置不变

 gantt.config.preserve_scroll = true;gantt.config.round_dnd_dates = true;

设置甘特图表头高度

  gantt.config.scale_height = 50;

是否显示依赖连线(取消)

gantt.config.show_links = true;

点击表头可排序

gantt.config.sort = true;

激活/禁用“quick_info”扩展(弹出任务的详细信息表单)

gantt.plugins({tooltip: true,quick_info: true,// 快速信息框});
gantt.config.show_quick_info = true;

点击表头可排序

gantt.config.sort = true;

设置行高

gantt.config.row_height = 44;

允许拖放

gantt.config.drag_project = true;

配置甘特图时间刻度高度

gantt.config.scale_height = 40;

设置甘特图时间的起始结束时间,并允许显示超过时间刻度任务

gantt.config.start_date = new Date(`${new Date().getFullYear()-2},${new Date().getMonth()},${new Date().getDay()}`)gantt.config.end_date = new Date(`${new Date().getFullYear()+2},${new Date().getMonth()},${new Date().getDay()}`)gantt.config.show_tasks_outside_timescale = true

设置时间刻度相关属性

  gantt.config.scales = [{ unit: "year", step: 1, format: "%Y" },{ unit: "month", step: 1, format: "%M" },];

配置任务内部显示元素

(用户可自定义任务内部显示内容)

 gantt.templates.task_text = function (start, end, task) {return `<span style="margin-left:10px;color:white;">${task.text}</span>`;};

配置Gantt内置弹出框元素(title内容)

gantt.templates.lightbox_header = function (start_date, end_date, task) {return `<b>${task.text}</b>`
};

配置Gantt内置弹出框元素

(此处除了 description 与 time 为gantt内置弹出框元素其余为自定义元素

【 自定义元素详细配置方法在另外一篇文章解释 

  gantt.config.lightbox.sections = [{name: "description",height: 36,map_to: "text",type: "textarea",focus: true,},{ name: "time", type: "duration", map_to: "auto" },{name: "Participants",height: 36,map_to: "Participants",type: "ParticipantsPlan",focus: true,},{name: "BgColor",height: 36,map_to: "color",type: "ParticipantsPlanColor",focus: true,},];

Gantt除了配置基本也可以配置指定元素弹出框

    // 配置任务灯箱gantt.config.lightbox.project_sections= [{name: "description", height: 70, map_to: "text", type: "textarea", focus: true},{name: "type", type: "typeselect", map_to: "type"},{name: "time", type: "duration", readonly: true, map_to: "auto"}];// 配置里程碑灯箱gantt.config.lightbox.milestone_sections= [{name: "description", height: 70, map_to: "text", type: "textarea", focus: true},{name: "type", type: "typeselect", map_to: "type"},{name: "time", type: "duration", single_date: true, map_to: "auto"}];

控制网格区域的样式(类名)

 gantt.templates.grid_row_class = function (start, end, task) {console.log("网格class", start, end, task);};

日期网格配置

  gantt.templates.date_grid = function(date, task, column){console.log('日期网格',date,task,column)if(task && gantt.isUnscheduled(task) && gantt.config.show_unscheduled){return gantt.templates.task_unscheduled_time(task);}else{return gantt.templates.grid_date_format(date);}}

配置网格缩进

gantt.templates.grid_indent = function(item){return '<div class="gantt_tree_indent" style="display:none"></div>'}

网格内容配置

【 自定义元素详细配置方法在另外一篇文章解释 

gantt.config.columns=[{name:"text",       label:"Task name",  tree:true, width:'*' },{name:"start_date", label:"Start time", align: "center" },{name:"duration",   label:"Duration",   align: "center" },{name:"add",        label:"" }
];

任务的日期(格式化)

 gantt.templates.task_date= function(date){return gantt.date.date_to_str(gantt.config.task_date)(date);};

鼠标悬浮工具提示文本配置

【 此功能属于扩展功能需单独配置 】

 gantt.plugins({tooltip: true});
 gantt.templates.tooltip_text = function (start, end, task) {return ("<b>标题:</b> " +task.text +"<br/><span>开始:</span> " +gantt.templates.tooltip_date_format(start) +"<br/><span>结束:</span> " +gantt.templates.tooltip_date_format(end) +"<br/><span>进度:</span> " +Math.round(task.progress * 100) +"%");};

Gantt内置方法

return true 的含义是执行,默认即可 ,如果需要自定义 return fasle。便不会执行内置方法

双击任务触发(每一行)

gantt.attachEvent("onTaskDblClick", function (id, e) {return true})

将任务添加到Gantt之前触发

gantt.attachEvent("onAfterTaskAdd",function(id,item){return true})

用户选择任务时触发

gantt.attachEvent("onTaskSelected",function(id){return true})

用户悬停Gantt时触发

gantt.attachEvent("onMouseMove",function(id,e){})

用户拖拽任务后释放鼠标之后,应用更改之前触发

gantt.attachEvent("onAfterTaskDrag",function(id,mode,e){return true})

点击“+”进行添加任务操作触发

gantt.attachEvent("onTaskCreated",function(task){return true})

用户打开Gantt内置弹出框之前触发

gantt.attachEvent("onBeforeLightbox",function(id){return true})

获取进度条进度

 gantt.templates.progress_text = function (start, end, task) {return Math.round(task.progress * 100) + "%";};

获取拉杆状态

 gantt.templates.drag_link = function (from, from_start, to, to_start) {console.log("拉杆from", from, from_start, to, to_start);// return text;};

获取拖动链接类

 gantt.templates.drag_link_class = function (from,from_start,to,to_start ) {console.log("from", from, from_start, to, to_start);};

层级折叠监听

// 监听折叠动作(打开)
gantt.attachEvent("onTaskOpened", function(taskId) {// console.log('节点状态(开)',gantt.getTask(taskId))
});
// 监听折叠动作(关闭)
gantt.attachEvent("onTaskClosed", function(taskId) {// console.log('节点状态(关)',gantt.getTask(taskId))
});

以上是项目中所用到的部分方法,详细内容可查看官方文档。

Gantt Docs

这篇关于Dhtmlx Gantt 常用方法及基本配置合集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/295564

相关文章

Python判断for循环最后一次的6种方法

《Python判断for循环最后一次的6种方法》在Python中,通常我们不会直接判断for循环是否正在执行最后一次迭代,因为Python的for循环是基于可迭代对象的,它不知道也不关心迭代的内部状态... 目录1.使用enuhttp://www.chinasem.cnmerate()和len()来判断for

Java循环创建对象内存溢出的解决方法

《Java循环创建对象内存溢出的解决方法》在Java中,如果在循环中不当地创建大量对象而不及时释放内存,很容易导致内存溢出(OutOfMemoryError),所以本文给大家介绍了Java循环创建对象... 目录问题1. 解决方案2. 示例代码2.1 原始版本(可能导致内存溢出)2.2 修改后的版本问题在

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

Java中Object类的常用方法小结

《Java中Object类的常用方法小结》JavaObject类是所有类的父类,位于java.lang包中,本文为大家整理了一些Object类的常用方法,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. public boolean equals(Object obj)2. public int ha

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

详解如何在React中执行条件渲染

《详解如何在React中执行条件渲染》在现代Web开发中,React作为一种流行的JavaScript库,为开发者提供了一种高效构建用户界面的方式,条件渲染是React中的一个关键概念,本文将深入探讨... 目录引言什么是条件渲染?基础示例使用逻辑与运算符(&&)使用条件语句列表中的条件渲染总结引言在现代

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex