提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|行业资讯|编辑:杨鹏连|2020-10-13 11:11:31.363|阅读 405 次
概述:现在可以用DHTMLX Diagram库实现的图表类型来扩展您的数据可视化工具库。本文分享关于如何制作JavaScript树状图的全面指南。
#慧都22周年庆大促·界面/图表报表/文档/IDE/IOT/测试等千款热门软控件火热促销中>>
dhtmlxSuite是一个用JavaScript建立的富客户端开发框架。它是一个JavaScript UI库,用于建立一个完整的具有Ajax能力的前台组件。用户可以使用它建立一个企业级的跨浏览器Web应用和移动应用程序,它能提供优秀的性能和更丰富的用户体验。
现在可以用DHTMLX Diagram库实现的图表类型来扩展您的数据可视化工具库。本文分享关于如何制作JavaScript树状图的全面指南。您所需要做的就是下载我们的图表库的试用版,并遵守本文中提供的详细说明。
什么是树状图
树形图是一种广泛使用的工具,它允许以层次结构或树状结构的图形方式呈现各种数据。它通常由通过连接线(分支)连接在一起的树元素(节点)组成,生动地说明了节点之间的父子关系。使用这种类型的图,您可以享受一个简单的数据表示概念,轻松跟踪图元素之间的依赖关系以及所提供信息的清晰度的可能性。
由于简单性和高适应性的结合,JavaScript树形图(也称为树形图)在各种应用程序领域得到了普及,例如:
上面的示例描绘了英国王室家族树的一部分,其继承线用红色突出显示。
DHTMLX的JavaScript树形图示例
上图是一个组织结构图,它展示了医疗机构的分层组织结构。它带有自定义形状,其中包括有关医务人员的视觉和文字信息:医生的照片,姓名,位置,联系信息(电话号码和电子邮件)字段以及图标和标签。
如何使用DHTMLX创建JavaScript树图
现在,我们将深入了解使用JavaScript库执行的操作序列,以绘制树形图,如上面的示例一样。
1.初始化JavaScript树形图:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="codebase/diagram.js"></script>
<link rel="stylesheet" href="codebase/diagram.css">
<link href="//cdn.materialdesignicons.com/4.5.95/css/materialdesignicons.min.css?v=3.0.2" media="all" rel="stylesheet" type="text/css">
</head>
<body>
<div id="diagram"></div>
<script>
const diagram = new dhx.Diagram("diagram", {
type: "org",
defaultShapeType: "template"
});
</script>
</body>
</html>
在初始化之前必须采取的第一步如下:
2.设置图表形状的默认配置:
const defaults = {
height: 115,
width: 330
};
您可以通过应用默认配置来加快从头开始创建JavaScript树形图的过程。它使您可以一次为所有形状设置特定元素的共同特征。我们的树图示例由12个具有相同尺寸(115 x 330)的节点组成。因此,我们可以为其指定默认的高度和宽度。
3.创建自定义形状的模板:
const template = ({ photo, name, post, phone, mail }) => (`
<div class="dhx-diagram-demo_personal-card">
<div class="dhx-diagram-demo_personal-card__container dhx-diagram-demo_personal-card__img-container">
<img src="${photo}" alt="${name}-${post}"></img>
</div>
<div class="dhx-diagram-demo_personal-card__container">
<h3>${name}</h3>
<p>${post}</p>
<span class="dhx-diagram-demo_personal-card__info">
<i class="mdi mdi-cellphone-android"></i>
<p>${phone}</p>
</span>
<span class="dhx-diagram-demo_personal-card__info">
<i class="mdi mdi-email-outline"></i>
<a href="mailto:${mail}" target="_blank">${mail}</a>
</span>
</div>
</div>
);
在为树形图创建自定义形状时,您应该做的第一件事就是为形状设置HTML模板。为此,我们应用ES6 +标准。您可以通过以下模板定义自定义形状的所有必需属性:
diagram.addShape("template", {
template,
defaults
});
下一步将向JavaScript树形图中添加自定义形状。可以使用addShape方法来完成。这种简单的方法使您可以利用模板和默认的形状配置快速添加各种形状。
5.准备数据并将其解析到图中:
diagram.data.parse(data);
const data = [
{
id: "main",
name: "Kristin Mccoy",
post: "Medical director",
phone: "(405) 555-0128",
mail: "kmccoy@gmail.com",
photo: "//docs.dhtmlx.com/diagram/samples/common/big_img/big-avatar-1.jpg",
},
{
id: "1",
name: "Theo Fisher",
post: "Head of department",
phone: "(405) 632-1372",
mail: "tfisher@gmail.com",
photo: "//docs.dhtmlx.com/diagram/samples/common/big_img/big-avatar-2.jpg",
parent: "main"
},
{
id: "1.1",
name: "Francesca Saunders",
post: "Attending physician",
phone: "(402) 371-6736",
mail: "fsaunders@gmail.com",
photo: "//docs.dhtmlx.com/diagram/samples/common/big_img/big-avatar-3.jpg",
parent: "1",
open: false
},
{
id: "2",
name: "Alisha Hall",
post: "Head of department",
phone: "(405) 372-9756",
mail: "ahall@gmail.com",
photo: "//docs.dhtmlx.com/diagram/samples/common/big_img/big-avatar-4.jpg",
parent: "main",
open: false
},
{
id: "2.1",
name: "Milena Hunter",
post: "Attending physician",
phone: "(124) 622-1256",
mail: "mhunter@gmail.com",
photo: "//docs.dhtmlx.com/diagram/samples/common/big_img/big-avatar-25.jpg",
parent: "2",
dir: "vertical",
},
{
id: "2.2",
name: "Maximus Dixon",
post: "Medical director",
phone: "(264) 684-4373",
mail: "mdixon@gmail.com",
photo: "//docs.dhtmlx.com/diagram/samples/common/big_img/big-avatar-29.jpg",
parent: "2",
dir: "vertical",
},
{
id: "3",
name: "Edward Sharp",
post: "Head of department",
phone: "(451) 251-2578",
mail: "esharp@gmail.com",
photo: "//docs.dhtmlx.com/diagram/samples/common/big_img/big-avatar-6.jpg",
parent: "main",
dir: "vertical",
},
{
id: "3.1",
name: "Cruz Burke",
post: "Attending physician",
phone: "(587) 234-8975",
mail: "cburke@gmail.com",
photo: "//docs.dhtmlx.com/diagram/samples/common/big_img/big-avatar-7.jpg",
parent: "3",
},
{
id: "3.2",
name: "Eloise Saunders",
post: "Attending physician",
phone: "(875) 231-5332",
mail: "esaunders@gmail.com",
photo: "//docs.dhtmlx.com/diagram/samples/common/big_img/big-avatar-8.jpg",
parent: "3",
},
{
id: "3.3",
name: "Sophia Matthews",
post: "Attending physician",
phone: "(361) 423-7234",
mail: "smatthews@gmail.com",
photo: "//docs.dhtmlx.com/diagram/samples/common/big_img/big-avatar-9.jpg",
parent: "3",
},
{
id: "3.4",
name: "Kara Foster",
post: "Attending physician",
phone: "(565) 525-0672",
mail: "kfoster@gmail.com",
photo: "//docs.dhtmlx.com/diagram/samples/common/big_img/big-avatar-10.jpg",
parent: "3",
},
];
为了用内容填充树形图,您必须应用parse方法。
6.修改JavaScript树形图中特定元素的外观:
<style>
.dhx-diagram-demo_personal-card {
height: 100%;
display: flex;
align-items: center;
justify-content: center;
background: white;
color: rgba(0, 0, 0, 0.7);
border: 1px solid #DFDFDF;
padding: 10px 12px;
}
.dhx-diagram-demo_personal-card i {
color: rgba(0, 0, 0, 0.7);
height: 20px;
width: 20px;
font-size: 18px;
}
.dhx-diagram-demo_personal-card__info {
display: flex;
}
.dhx-diagram-demo_personal-card__info a {
color:#0288D1
}
.dhx-diagram-demo_personal-card__container {
height: 100%;
width: 100%;
overflow: hidden;
position: relative;
}
.dhx-diagram-demo_personal-card__container h3, .dhx-diagram-demo_personal-card__container p {
text-align: left;
font-size: 14px;
line-height: 20px;
height: 20px;
margin: 0 0 4px 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.dhx-diagram-demo_personal-card__container i {
margin-right: 4px;
}
.dhx-diagram-demo_personal-card__img-container {
min-width: 93px;
width: 93px;
margin-right: 12px;
}
.dhx-diagram-demo_personal-card__img-container img {
width: inherit;
height: auto;
}
</style>
最后,您可以通过CSS为个人卡片元素定义样式,从而操纵HTML5树形图的外观。您可以将一系列CSS属性应用于所选元素,并指定其尺寸,对齐方式,间距,颜色和任何其他设置。
完成最后一步后,您可以开始使用此树形图来勾勒公司的内部结构。
该指南显示了如何将我们的JavaScript图库用于构建树图。除了此图类型之外,您还可以使用简单的HTML模板(例如网络图或UML类图)来构建任何其他图。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@hmdbvip.cn
文章转载自:



Sparx Systems Enterprise Architect作为基于UML的统一建模平台,通过全面的架构设计工具集,支持架构师从战略规划到技术落地的全过程,帮助企业在云地融合的复杂环境中构建可持续演进的技术基础。
HOOPS 3D可视化与建模集成方案为制造业研发团队提供了一套稳定、开放、可拓展的三维开发基础。
Parasoft为汽车电子系统中应用AI技术提出了一套路线图,帮助团队在技术创新与合规安全之间找到平衡。
创建易于访问且符合规范的 PDF 文档正成为各行各业日益重要的需求。在本篇bow中,我们将探讨如何使用 Text Control 的 .NET 库验证 PDF/UA 文档,轻松确保生成的 PDF 符合无障碍标准。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@hmdbvip.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
永利最大(官方)网站 