当前位置: 首页 > news >正文

「实战应用」如何用DHTMLX将上下文菜单集成到JavaScript甘特图中(三)

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。

DHTMLX Gantt是一个高度可定制的工具,可以与项目管理应用程序所需的其他功能相补充。在本文中您将学习如何使用自定义上下文菜单来补充基于DHTMLX的JavaScript甘特图,来提高用户在任务管理中的效率。考虑到DHTMLX产品的良好互兼容性,DHTMLX Suite的Menu小部件是实现本教程目标的甘特图组件的完美补充。

DHTMLX Gantt最新正式版下载

在上文中(点击这里回顾>>)我们为大家介绍了如何完成创建/更新/删除和复制/粘贴操作,本文继续介绍如何完成更改Tree的等级、更改任务类型等操作,更多内容请持续关注我们哟~

更改Tree的等级

「实战应用」如何用DHTMLX将上下文菜单集成到JavaScript甘特图中

本节有助于组织项目中的层次结构,您可以通过以下方式向项目添加层次结构:

  • 选择任务并缩进,使其成为子任务,上述任务变为项目任务:
case "indent":
const prevId = gantt.getPrevSibling(task.id);
if (prevId) {
const newParent = gantt.getTask(prevId);
gantt.moveTask(task.id, gantt.getChildren(newParent.id).length, newParent.id);
newParent.type = gantt.config.types.project;
newParent.$open = true;
gantt.updateTask(task.id);
gantt.updateTask(newParent.id);
return task.id;
}
break;
  • 反之亦然——扩展一个任务,使它不再是前一个父任务的子任务:
case "outdent":
const oldParent = task.parent;
if (gantt.isTaskExists(oldParent) && oldParent != gantt.config.root_id) {
var index = gantt.getTaskIndex(oldParent) + 1;gantt.moveTask(task.id, index, gantt.getParent(task.parent));
if (!gantt.hasChild(oldParent)) {
gantt.getTask(oldParent).type = gantt.config.types.task;
}
gantt.updateTask(task.id);
gantt.updateTask(oldParent);
return task.id;
}
break;
更改任务类型

「实战应用」如何用DHTMLX将上下文菜单集成到JavaScript甘特图中

在上下文菜单的这一部分中,您可以为所选任务指定任务类型。

  • 常规任务

在这里设置“任务”类型,与前面一样,它可能是一个持续时间为零的里程碑,您应该设置任务持续时间并更新end_date参数,然后更新任务。

case "type_task":
task.type = "task";
task.duration = task.duration || 1;
task.end_date = gantt.calculateEndDate(task);
gantt.updateTask(task.id);
break;
  • 项目任务

您可以为任务设置“项目”类型并更新它。

case "type_project":
task.type = "project";
gantt.updateTask(task.id);
break;
  • 里程碑任务

您可以为任务设置“milestone”类型并更新它。

case "type_milestone":
task.type = "milestone";
gantt.updateTask(task.id);
break;
更改可见性

「实战应用」如何用DHTMLX将上下文菜单集成到JavaScript甘特图中

此上下文菜单项侧重于管理任务和相关元素的可见性,并包括以下选项:

  • Rollup(汇总)

我们从任务的rollup参数开始,项目栏上显示了卷起的元素,并提供了项目进度的快速概述。首先更改rollup参数,以便任务显示在项目栏上,更新任务及其父任务来呈现更改。

case "rollup":
task.rollup = !task.rollup;
gantt.updateTask(task.id);
gantt.updateTask(task.parent);
break;
  • 隐藏任务栏

对于此选项,您需要更改任务的hide_bar参数,来在时间轴中隐藏任务,更新任务来呈现更改。

case "hide_bar":
task.hide_bar = !task.hide_bar;
gantt.updateTask(task.id);
break;
  • 隐藏任务行

向hiddenTasks对象添加任务来隐藏整个任务行,然后更新任务来呈现更改,任务将不会显示在网格和时间轴中。

case "hide_row":
hiddenTasks[task.id] = true;
gantt.updateTask(task.id);
break;
  • 显示所有隐藏任务

清空hiddenTasks对象来显示所有先前隐藏的任务,然后执行render命令来呈现更改。

case "show_hidden":
hiddenTasks = {};
gantt.render();
break;

篇幅有限未完待续,更多内容敬请期待.......

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 处理在 electron 中使用开启了懒加载的 el-image 后,窗口最大化或窗口尺寸变化后图片无法显示的问题
  • [米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-21 VTC视频时序控制器设计
  • RESTful API设计指南:构建高效、可扩展和易用的API
  • 达梦数据库DM8-索引篇
  • 【GraphRAG】微软 graphrag 效果实测
  • Keysight 是德 DSA90804A 高性能示波器
  • 基于centos2009搭建openstack-t版-ovs网络-脚本运行
  • 数据库系统概论:数据库系统的锁机制
  • 「MQTT over QUIC」与「MQTT over TCP」与 「TCP 」通信测试报告
  • oracle 经营范围 设计
  • 学习大数据DAY20 Linux环境配置与Linux基本指令
  • 【java】力扣 合并两个有序数组
  • IDEA创建Java工程、Maven安装与建立工程、Web工程、Tomcat配置
  • 脑肿瘤有哪些分类? 哪些人会得脑肿瘤?
  • buu做题(5)
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • cookie和session
  • ES6之路之模块详解
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • orm2 中文文档 3.1 模型属性
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Vue UI框架库开发介绍
  • 从tcpdump抓包看TCP/IP协议
  • 关于springcloud Gateway中的限流
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 聊聊hikari连接池的leakDetectionThreshold
  • 实现菜单下拉伸展折叠效果demo
  • 首页查询功能的一次实现过程
  • 树莓派 - 使用须知
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • # wps必须要登录激活才能使用吗?
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #define 用法
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转载)CentOS查看系统信息|CentOS查看命令
  • **PHP二维数组遍历时同时赋值
  • .NET : 在VS2008中计算代码度量值
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net core 外观者设计模式 实现,多种支付选择
  • .NET 材料检测系统崩溃分析
  • .net 生成二级域名
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • [ IDE ] SEGGER Embedded Studio for RISC-V