没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:龚雪|2024-03-28 10:41:07.323|阅读 40 次
概述:本文将主要介绍如何用DHTMLX Gantt构建类似JIRA式的项目路线图,欢迎下载最新版组件体验!
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。
当您声称您的产品具有高级定制功能时,客户一定会对产品进行严格测试,这个规则当然适用于DHTMLX Gantt,官方技术团队收到了很多关于如何在JavaScript甘特图组件中实现某些外观定制的请求,结合实际的案例,我们将在本文中为您展示如何在实践中实现这些定制。
在上文中(点击这里回顾>>),我们介绍了如何为任务分配资源以及任务栏中的任务名称和资源等,本文将继续介绍如何高亮显示项目任务和周末等。
当通过DHTMLX构建的JavaScript甘特图管理项目时,能够突出显示属于不同项目和周末的任务组是很有用的。
让我们从突出显示项目的任务开始。要启用此特性,需要应用根据任务坐标绘制的附加层,但在此之前,请检查任务类型是否为project。
gantt.addTaskLayer(function (task) { if (task.type == "project") {
使用getTaskPosition()方法获取项目坐标,最上面的坐标是已知的——尺寸对象最上面的参数。
const sizes = gantt.getTaskPosition(task, task.start_date, task.end_date);
将最左边的任务坐标添加到左边数组,将最右边的坐标添加到右边数组,然后遍历项目的每个子任务并添加这些坐标。另外,根据子任务的坐标增加sizes对象中的height参数。
const left = [sizes.left]; const right = [sizes.left + sizes.width]; gantt.eachTask(function (child) { const childSizes = gantt.getTaskPosition(child, child.start_date, child.end_date); left.push(childSizes.left) right.push(childSizes.left + childSizes.width) if (sizes.height < childSizes.top + childSizes.height) sizes.height = childSizes.top + childSizes.height - sizes.top }, task.id);
在遍历所有任务之后,必须对左侧数组进行排序以获得最小值,然后将其添加到sizes对象的左侧参数中。
sizes.left = left.sort((a, b) => a - b)[0]
接下来,对正确的数组进行排序,但不要将最右边的值添加到sizes对象的右边参数中。相反,从结果值中减去最左边的坐标以获得矩形的宽度。
const mostRight = right.sort((a, b) => a - b).reverse()[0] sizes.width = mostRight - sizes.left
然后您需要创建一个HTML元素,并从sizes对象中获取其坐标。在样式中从项目的颜色参数中指定颜色,如果不指定颜色,则默认设置为灰色。
在突出显示周末时,应该应用timeline_cell_class模板。在这里,您应该检查数组中是否有包含周末的日期,如果有,则返回一个自定义类名。
const weekends = [ +new Date(2025, 11, 24), +new Date(2025, 11, 25), +new Date(2025, 11, 31), +new Date(2026, 0, 1), ] gantt.templates.timeline_cell_class = function (task, date) { if (weekends.indexOf(+date) > -1) { return "weekend"; } };
最后我们想与大家分享如何在任务顶部显示自定义图标。一个简单的方法是使用addTaskLayer()方法,使用此方法,您可以检查任务是否具有icon参数,该参数将指示任务是否具有自定义图标,它是我们添加到演示项目中的自定义任务属性。
gantt.addTaskLayer(function (task) { if (task.type == "project") {
之后,让我们使用getTaskPosition()方法获取任务的坐标。然后,创建一个HTML元素,根据icon参数从带有图标的数组中指定图像,并设置样式。
const sizes = gantt.getTaskPosition(task, task.end_date, task.end_date); const img = document.createElement('img'); img.src = icons[task.icon - 1] img.style = ` left: ${sizes.left - 10}px; width: 30px; top: ${sizes.top}px; height: 30px; margin-top: 2px; position: absolute; border-radius: 2px; color: white; opacity: 0.9; z-index:1; pointer-events: none; return img;
就是这样,按照上面的说明,您可以实现我们示例中的关键自定义甘特图特性,并将它们添加到您的项目中。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@wqylolg.cn
文章转载自:慧都网FastReport .NET 的主要功能之一是能够将多份报告合并为一份。当您需要合并来自不同来源的数据或以更方便的格式呈现信息时,此功能非常有用。在本文中,我们将讨论如何在 FastReport .NET 中将多份报告合并为一份。
本文将手把手教你如何用VMProtect对这一关键函数进行虚拟化保护,大幅提升代码安全性,让逆向工程攻击者无从下手!
在 PDF 文档中添加页眉和页脚有助于保持一致的版式和专业的外观。本文将介绍如何使用 Spire.PDF for Java,通过 Java 在现有的 PDF 文档中添加页眉和页脚,并提供详细的步骤和代码示例。
对于开发人员来说,由于自动化和定制化,通常首选使用编程方法来去除 PDF 中的水印。Aspose.PDF 提供可靠且可定制的解决方案,可无缝集成到各种应用程序中,确保准确性并保持文档完整性。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@wqylolg.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢