甘特图组件DHTMLX Gantt示例 - 如何有效管理团队工作时间?(二)

本文主要是介绍甘特图组件DHTMLX Gantt示例 - 如何有效管理团队工作时间?(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如果没有有效的时间管理工具,如工作时间日历,很难想象一个项目如何成功运转。这就是为什么我们的开发团队非常重视项目管理,并提供了多种选择来安排DHTMLX Gantt的工作时间。使用DHTMLX Gantt这个JavaScript库,您可以创建一个强大的甘特图,并用一个或多个工作时间日历来补充它。

在本文中,我们将回顾如何在Web项目中使用DHTMLX Gantt工作日历功能的有趣示例。在上文中我们主要为大家介绍了DHTMLX Gantt中工作日历背后的关键概念(点击这里回顾>>),本文将继续介绍如何设置工作时间日历的用例。

DHTMLX Gantt正式版下载

工作时间日历的用例

现在我们继续在实际场景中使用DHTMLX Gantt的工作时间日历功能的实际示例。

在自定义日历中设置周末/假日

首先,考虑如何在DHTMLX Gantt中生成自定义日历,您可以使用addCalendar方法:

gantt.addCalendar({
id:"custom", // optional
worktime: {
hours: ["8:00-17:00"],
days: [ 1, 1, 1, 1, 1, 1 ,1]
}
});

之后,您可以像使用全局日历一样为该日历设置自定义假日:

const calendar = gantt.getCalendar("custom");
calendar.setWorkTime({
date:new Date(2021,8,1),
hours:false
});

这样的日历可以分配给任何任务:

{
"id":1, "calendar_id":"custom", "text":"Task #1", "start_date":"02-04-2019",
"duration":"8", "parent":"1"
}

或资源:

gantt.config.resource_calendars = {
//[resourceId]: calendarId
1: "custom"
};

自定义日历可以从现有日历中获取设置,您可以将现有日历传递给gantt.getCalendar方法,该方法将创建您已经拥有的日历的精确副本。

之后,您可以用自己喜欢的方式自定义新的日历:

const calendarId = gantt.addCalendar(gantt.getCalendar("global"));
const calendar = gantt.getCalendar(calendarId);
calendar.setWorkTime({
date:new Date(2021,8,1),
hours:false
});

最后,您可以使用合并函数的gantt.mergeCalendars方法将多个日历合并为一个日历。

const johnCalendarId = gantt.addCalendar({
worktime: {
hours: ["7:00-11:00", "12:00-16:00"],
days: [1, 1, 1, 1, 1, 0, 0]
}
});
const mikeCalendarId = gantt.addCalendar({
worktime: {
hours: ["8:00-12:00", "13:00-17:00"],
days: [0, 1, 1, 1, 1, 1, 0]
}
});// get common work times of both:
const joinedCalendar = gantt.mergeCalendars([
gantt.getCalendar(mikeCalendarId),
gantt.getCalendar(johnCalendarId)
]);// the result is equivalent to the following:
// worktime: {
// hours: ["8:00-11:00", "13:00-16:00"],
// days: [0, 1, 1, 1, 1, 0, 0]
// }

这个方法是在dynamic_resource_calendar配置中使用的,允许您创建合并多个已分配资源日历设置的日历,来显示所有已分配资源何时同时可用。

甘特图组件DHTMLX Gantt示例图

gant.mergecalendars方法也可用于管理自定义日历的周末/假日,您可以创建一个包含假日和休息日的日历,并将其集成到您创建的任何工作时间日历中。

在下面的示例中,您可以看到基于全局日历和另一个自定义日历的自定义工作日历。默认情况下应用于所有任务的全局日历设置不会更改。全局日历与自定义日历合并,自定义日历的设置取自包含非工作日的数组,由此产生的自定义日历继承两个日历的工作时间设置(即所有非工作日)。

甘特图组件DHTMLX Gantt示例图

在日历上突出显示偶数的星期六

有时可能有必要在视觉上强调遵循某些条件的某些天或时间段,下面的示例展示了如何在日历中突出显示偶数星期六。isWorkTime函数帮助查找特定日期是否不工作,并检查更复杂的条件,例如一周中的奇数和偶数天,使用task_class突出显示必要的天数。此模板将对甘特图时间轴中所有单元格调用,并返回类名。有了这个模板,就可以在CSS规则中自定义单元格。

甘特图组件DHTMLX Gantt示例图

从MS项目导入工作时间

与MS Project的兼容性是DHTMLX Gantt一个非常重要的功能,受到许多开发者的喜爱。它允许您导入/导出与项目相关的各种材料,包括工作时间日历,这个例子展示了如何从导入的MS Project文件中设置工作时间设置。这个流行的软件工具通常会在其文件中添加工作日历,在导入MS Project文件的过程中,工作时间设置与任务数据一起出现,可以按照第一个示例中讨论的方式应用这些设置。

甘特图组件DHTMLX Gantt示例图

从Excel导入工作时间设置

由于DHTMLX Gantt还支持从Excel导出/导入,因此您可以使用此功能使用通用Excel文件存储和加载工作时间设置。在服务器端进行转换后,数据以JSON格式发送到甘特图页面,您还可以以JSON格式从数组中获取所需的日期,并使用setWorkTime方法指定工作时间设置。

甘特图组件DHTMLX Gantt示例图

管理工作时间

在DHTMLX Gantt中,可以启用/禁用工作时间,下面的示例展示了如何实现。每个任务有三个日期参数——start_date、end_date和duration,Gantt将所有这些参数用于任务,但end_date具有更高的优先级。当工作时间设置更改时,日期通常保持不变,因此任务的持续时间会发生变化。为了保持持续时间不变,必须根据任务持续时间重新计算结束日期。

甘特图组件DHTMLX Gantt示例图

这篇关于甘特图组件DHTMLX Gantt示例 - 如何有效管理团队工作时间?(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java中StopWatch的使用示例详解

《Java中StopWatch的使用示例详解》stopWatch是org.springframework.util包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍... 目录stopWatch 是org.springframework.util 包下的一个工具类,使用它

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu

springboot security快速使用示例详解

《springbootsecurity快速使用示例详解》:本文主要介绍springbootsecurity快速使用示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录创www.chinasem.cn建spring boot项目生成脚手架配置依赖接口示例代码项目结构启用s

golang 日志log与logrus示例详解

《golang日志log与logrus示例详解》log是Go语言标准库中一个简单的日志库,本文给大家介绍golang日志log与logrus示例详解,感兴趣的朋友一起看看吧... 目录一、Go 标准库 log 详解1. 功能特点2. 常用函数3. 示例代码4. 优势和局限二、第三方库 logrus 详解1.

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

Redis 中的热点键和数据倾斜示例详解

《Redis中的热点键和数据倾斜示例详解》热点键是指在Redis中被频繁访问的特定键,这些键由于其高访问频率,可能导致Redis服务器的性能问题,尤其是在高并发场景下,本文给大家介绍Redis中的热... 目录Redis 中的热点键和数据倾斜热点键(Hot Key)定义特点应对策略示例数据倾斜(Data S

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时