用拓扑图展现层级和组织关系(四)

最近冰冰很火,《万物生长》里风情万种,《跑男》里敢抢敢拼,为了缓解各位攻城狮的工作压力,我们特地制作了一款颜值爆表的组织结构图,欢迎大家来领取各自的男神女神

组织结构图的呈现方式多种多样,用途也是非常广泛,可以应用于集团内部,企业各部门之间的组织关系呈现。我们就来看看twaver实现出来的效果。

上下布局:

圆形布局:

这些布局用twaver来实现是非常的合适,实现起来也是很容易,twaver内部就提供了多种布局方式:自左向右,从下向上,具体可以看twaver的官方文档介绍。这里就不多说了,今天我们着重说一下twaver如果实现上图中的网元。先放大看看效果:

这里借用了女神的范冰冰头像。我们假设范冰冰为财务部出纳,我想范爷做为财务部主管也是当之无愧的,从刚开始的北漂到后来的一夜狂赚8千万。现在的社会,只要有钱投资了房产后半辈子就不用愁了,闲话不多扯。这里我们采用的是名片式的方式来呈现组织图上的每个网元,左侧一张图片,右侧是职称,这种矢量和位图的结合效果也是非常赞的。那么这种网元如何来实现呢?首先我们需要定义一个圆角矩形:

twaver.Util.registerImage(‘employee‘, {
        w: 200,
        h: 135,
        cache: false,
        origin: {x:0, y:0},
        v: [{
            shape: ‘rect‘,
            w: ‘100%‘,
            h: ‘100%‘,
            r: 8,
            lineColor:‘black‘,
            lineWidth:2.5,
            fill: ‘#F5ECCE‘,
        }],
    });


在圆角矩形的右侧放上文字:

{
            shape: ‘text‘,
            text: ‘<%=getClient("text")%>‘,
            font: ‘12px "Microsoft Yahei"‘,
            translate: {x:150,y:135/2},
        }

translate是将文字平移到指定的位置,这里我们需要放在右侧,因此需要设置偏右,x,y是相对于网元左上角原点来设置的。


接下来需要在左侧放置一个椭圆用于放组织节点的照片,这里的椭圆可以直接用path来描述 。

{
            shape: ‘path‘,
            data: ‘M-45,-25Q-45,-64,0,-64Q45,-64,45,-25L45,25Q45,64,0,64Q-45,64,-45,25z‘,
            lineColor:‘#BBBBBB‘,
            lineWidth:1,
            translate: {x: 60, y:135/2}
        }

data用于描述path的路径,这里面的M,Q,L分别代表moveto,quadraticCurveTo和lineto,比如M-45,就是移动到-45的位置上。具体的含义可以参考TWaver的官方文档


接下来需要加上员工的图片,图片这里采用的是一般的位图,位图需要注册后才能使用。由于原始图片是方形的,需要裁减出圆角矩形的形状,说到裁减,twaver的矢量描述中支持clip,默认是不clip,设置clip之后,就会将超出矢量图片之外的区域的进行裁剪,可以用shape来描述裁减的区域,这里我们需要裁剪出圆角矩形,因此设置和上面矩形相同的path路径即可。

twaver.Util.registerImage(‘clip_pic‘, {
        w: 128,
        h: 128,
        cache: false,
        clip: {
            shape: ‘path‘,
            data: ‘M-45,-25Q-45,-64,0,-64Q45,-64,45,-25L45,25Q45,64,0,64Q-45,64,-45,25z‘,
        },
        v: [{
            shape: ‘image‘,
            x:-64,
            y:-64,
            name: ‘<%=getClient("pic")%>‘,
        }],
    });

关于clip的更多使用,可以参考下面的文档:

html5-canvas-clipping-region-tutorial

canvas-clip-image-in-a-circle

好了,一个组织结构图的网元就这样轻松实现。最后随机造一些数据可以看到整体效果了

想要具体demo的小伙伴,请发邮件至tw-service#servasoft.com,我们会将完整代码发送给您。

时间: 2024-10-25 16:30:23

用拓扑图展现层级和组织关系(四)的相关文章

用拓扑图展现层级和组织关系(一)

大部分拓扑图界面都有显示“分级呈现”的需求.一个复杂的系统或组织,会有很多不同层次的节点和连接关系.如何用图形相对清晰的呈现出来,是一个需要不断探讨的话题. twaver中有很多的方式可以显示“分级”的先是方法: 1.用Group网元组显示.Group网元组是把一些网元显示在一个组中.这个组可以双击展开.闭合.在闭合状态,它和一个普通的网元节点没什么区别:有位置.有图标.有动作.双击后,默认它会把其内部的孩子显示出来,而自己变成一个覆盖所有孩子的“区域”,形状可能是圆形.方形等.也有人称之为“本

用拓扑图展现层级和组织关系(二)

上一篇里我们用TWaver制作了一个公司内部的流程图,这一篇,我们来研究如何呈现出公司内部门和员工间的关系网图.先来看看效果:例子中我们展示的是各部门员工之间的复杂关系图.在公司内部,不仅部门内部员工之间发生着关系往来,部门和部门之间的员工也在发生这各种往来关系.如果你还是用原先的那种表格来呈现,显然很难直观看出各种关系,用图形化的拓扑呈现就会显得一目了然.好了,我们就来分析一下这张图如何用twaver实现它. 首先我们要定义部门的网元,twaver矢量减少了我们很多定制UI的繁琐,我们直接用矢

用拓扑图展现层级和组织关系(三)

互联网购物成了当今非常热门的话题,各种购物网站,手机APP如雨后春笋般涌现出来.什么买衣服,买水果,买米,买油都得到了解决,自从有了这些app,再也不用去超市排着超长的队伍,扛着超重货物,骑着超累的车子了.之前每出一趟门买东西简直是跟参加了一场马拉松似的,现在好了,直接送货到家.那么在购物的背后又有什么样的流程呢,今天我们给大家介绍的是TWaver的另一款流程图. 说到TWaver的流程图却是层出不穷,千姿百态.2D的,3D的,静态的,动态的.这次要给大家呈现的是一款全矢量的,非常清新优美的流程

使用JsPlumb绘制拓扑图的通用方法

转自:http://www.it165.net/pro/html/201311/7616.html 使用JsPlumb绘制拓扑图的通用方法 一. 实现目标 绘制拓扑图, 实际上是个数据结构和算法的问题. 需要设计一个合适的数据结构来表达拓扑结构,设计一个算法来计算拓扑节点的位置及连接. 二. 实现思想 1. 数据结构 首先, 从节点开始. 显然, 需要一个字段 type 表示节点类型, 一个字段 data 表示节点数据(详情), 对于连接, 则采用一个 rel 字段, 表示有哪些节点与之关联,

交互设计层级理解

交互层级主要分为四个层级: 硬件层级--支持交互形式的基础 1.触屏技术 2.重力感应 3.人脸识别 4.指纹和声音识别 系统层级--延续交互习惯的平台 1.PC端 2.移动端 IOS:iPhone OS是苹果公司为iPhone开发的操作系统. Android:Android是Google基于Linux平台开发的开源手机操作系统 UI层级--设定交互方式和界面风格的参考 软件APP层级--安装在手机上的软件,完善原始系统的不足和个性化 原文地址:https://www.cnblogs.com/c

解密小米:到底想做什么?

即使估值已经超过450亿美元,小米依然是一家很饥渴的公司. 这家公司的创始人兼首席执行官雷军在最近的一个月中,带着他的自拍杆多次出现在了全球媒体的镜头中,46岁的他看上去意得志满.3月15日,他在朋友圈中贴出了李克强总理答记者问的一段话——“最近互联网上流行的一个词叫风口,我想站在‘互联网+’的风口上顺势而为,会使中国经济飞起来.” 雷军成功地将他的“风口”和“顺势而为”理论输出到了国家领导层.他的另一个身份是全国人大代表,根据耶鲁大学Rory Truex的调查,如果一家公司的CEO当上全国人大

高大上必备!D3.js对产品的贡献度剖析

在这个用数据说话的时代(靠脸吃饭的年代),没有一个好的展现形态(没有一张帅气清秀的脸蛋),对于整个产品产生的影响,那简直... 在数据可视化竞争的战场,互联网的各家各户都很注重自家产品的前端展现.这也造成了目前前端各种火到爆,火的不要不要的原因之一.各类新型的框架也是接踵而至,如:emberjs.angluarjs.backbonejs.vuejs以及reactjs等等,这个对目前企业的发展也造成了一定的困扰. 追星派:此派弟子非常注重对新技能的渴求,看到新的技能书,不管前方道路如何坎坷,练了再

Nagios4.x安装配置总结

1.  Nagios介绍 Nagios是一个监视系统运行状态和网络信息的监视系统.Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等. Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等. 1.1监控范围 1.监控网络服务(SMTP.POP3.HTTP.NNTP.PING等): 2.监控主机资源(处理器负荷.磁盘.内存利用率等): 3.简单地插件设计使得用户可以方便地扩展自己服

HTML5的WebGL实现的3D和2D拓扑树

在HT for Web中2D和3D应用都支持树状结构数据的展示,展现效果各异,2D上的树状结构在展现层级关系明显,但是如果数据量大的话,看起来就没那么直观,找到指定的节点比较困难,而3D上的树状结构在展现上配合HT for Web的弹力布局组件会显得比较直观,一眼望去可以把整个树状结构数据看个大概,但是在弹力布局的作用下,其层次结构看得就不是那么清晰了.所以这时候结构清晰的3D树的需求就来了,那么这个3D树具体长成啥样呢,我们来一起目睹下~ 要实现这样的效果,该从何下手呢?接下来我们就将这个问题