组织架构树形图

一、说明

(1)通过后台查询数据库,生成树形数组结构,返回到前台。

(2)需要引入的js插件和css文件:

  ①jquery.jOrgChart.css

  ②jquery.min.js

  ③jquery.jOrgChart.js

(3)使用jOrgChart插件,根据返回的数据将其子节点加入到相应的<li></li>中。

首先,我们的数据表应该要有 id(节点),pid(父节点的id),name的字段,

那么我们要把这个数组转为树形数组结构,即将各个元素放在 pid 父类元素的 childrens字段中,下面就是简单生成树形数组的代码。至于展示出来的样式,可以在html页面中添加自定义样式覆盖它之前的样式。

注意:

  后台返回的数据格式必须如下,其中id,pid字段为必须要有。childrens字段也为必须的,不过字段名可以自己定义,name字段是根据自己业务需求的字段,在这里以name字段作为要显示的文本内容:

{
  "data": [{
    "id": 1,
    "name": "企业主体信用得分",
    "pid": null,
    "childrens": [
      {
        "id": 2,
        "name": "企业素质",
        "pid": 1,
        "childrens": [
          {
            "id": 5,
            "name": "基本信息",
            "pid": 2,
            "childrens": [
              {
                "id": 10,
                "name": "企业主体信息识别",
                "pid": 5,
                "childrens": [
                ]
              },
              {
                "id": 11,
                "name": "企业持续注册时间",
                "pid": 5,
                "childrens": [
                ]
              },
              {
                "id": 12,
                "name": "注册资本",
                "pid": 5,
                "childrens": [
                ]
              }
            ]
          },
          {
            "id": 6,
            "name": "管理认证",
            "pid": 2,
            "childrens": [
              {
                "id": 13,
                "name": "国际性管理认证",
                "pid": 6,
                "childrens": [
                ]
              }
            ]
          }
        ]
      },
      {
        "id": 3,
        "name": "履约记录",
        "pid": 1,
        "childrens": [
          {
            "id": 7,
            "name": "税务执行情况",
            "pid": 3,
            "childrens": [
              {
                "id": 14,
                "name": "是否按时缴纳税款",
                "pid": 7,
                "childrens": [
                ]
              }
            ]
          },
          {
            "id": 8,
            "name": "网贷情况",
            "pid": 3,
            "childrens": [
              {
                "id": 15,
                "name": "网贷逾期",
                "pid": 8,
                "childrens": [
                ]
              }
            ]
          }
        ]
      },
      {
        "id": 4,
        "name": "公共监督",
        "pid": 1,
        "childrens": [
          {
            "id": 9,
            "name": "行政处罚",
            "pid": 4,
            "childrens": [
              {
                "id": 16,
                "name": "处罚信息",
                "pid": 9,
                "childrens": [
                ]
              }
            ]
          }
        ]
      }
    ]
  }
]
}

二、实例:

1、json文件(test.json)(即后台接口返回的json格式的数据)

{
  "data": [{
    "id": 1,
    "name": "企业主体信用得分",
    "pid": null,
    "childrens": [
      {
        "id": 2,
        "name": "企业素质",
        "pid": 1,
        "childrens": [
          {
            "id": 5,
            "name": "基本信息",
            "pid": 2,
            "childrens": [
              {
                "id": 10,
                "name": "企业主体信息识别",
                "pid": 5,
                "childrens": [
                ]
              },
              {
                "id": 11,
                "name": "企业持续注册时间",
                "pid": 5,
                "childrens": [
                ]
              },
              {
                "id": 12,
                "name": "注册资本",
                "pid": 5,
                "childrens": [
                ]
              }
            ]
          },
          {
            "id": 6,
            "name": "管理认证",
            "pid": 2,
            "childrens": [
              {
                "id": 13,
                "name": "国际性管理认证",
                "pid": 6,
                "childrens": [
                ]
              }
            ]
          }
        ]
      },
      {
        "id": 3,
        "name": "履约记录",
        "pid": 1,
        "childrens": [
          {
            "id": 7,
            "name": "税务执行情况",
            "pid": 3,
            "childrens": [
              {
                "id": 14,
                "name": "是否按时缴纳税款",
                "pid": 7,
                "childrens": [
                ]
              }
            ]
          },
          {
            "id": 8,
            "name": "网贷情况",
            "pid": 3,
            "childrens": [
              {
                "id": 15,
                "name": "网贷逾期",
                "pid": 8,
                "childrens": [
                ]
              }
            ]
          }
        ]
      },
      {
        "id": 4,
        "name": "公共监督",
        "pid": 1,
        "childrens": [
          {
            "id": 9,
            "name": "行政处罚",
            "pid": 4,
            "childrens": [
              {
                "id": 16,
                "name": "处罚信息",
                "pid": 9,
                "childrens": [
                ]
              }
            ]
          }
        ]
      }
    ]
  }
]
}

2、html页面(test.html)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jOrgChart异步加载</title>
    <link rel="stylesheet" href=‘jquery.jOrgChart.css‘/>
    <script type=‘text/javascript‘ src=‘jquery.min.js‘></script>
    <script type=‘text/javascript‘ src=‘jquery.jOrgChart.js‘></script>
    <style>
        a {
            text-decoration: none;
            color: #fff;
            font-size: 12px;
        }
        .jOrgChart .node {
            width: 120px;
            height: 50px;
            line-height: 50px;
            border-radius: 4px;
            margin: 0 8px;
        }
    </style>
</head>
<body>
<!--显示组织架构图-->
<div id=‘jOrgChart‘></div>

<script type=‘text/javascript‘>
    $(function(){
        //数据返回
        $.ajax({
            url: "test.json",
            type: ‘GET‘,
            dataType: ‘JSON‘,
            data: {action: ‘org_select‘},
            success: function(result){
                var showlist = $("<ul id=‘org‘ style=‘display:none‘></ul>");
                showall(result.data, showlist);
                $("#jOrgChart").append(showlist);
                $("#org").jOrgChart( {
                    chartElement : ‘#jOrgChart‘,//指定在某个dom生成jorgchart
                    dragAndDrop : false //设置是否可拖动
                });

            }
        });
    });

    function showall(menu_list, parent) {
        $.each(menu_list, function(index, val) {
            if(val.childrens.length > 0){

                var li = $("<li></li>");
                li.append("<a href=‘javascript:void(0)‘ onclick=getOrgId("+val.id+");>"+val.name+"</a>").append("<ul></ul>").appendTo(parent);
                //递归显示
                showall(val.childrens, $(li).children().eq(1));
            }else{
                $("<li></li>").append("<a href=‘javascript:void(0)‘ onclick=getOrgId("+val.id+");>"+val.name+"</a>").appendTo(parent);
            }
        });

    }

</script>
</body>
</html>

3、效果图(打开test.html页面后即可看到如下效果)

注意:由于数据是由ajax异步请求获取到的,所以直接双击html文件打开是不行的,需要在服务器环境下运行。

原文地址:https://www.cnblogs.com/xiaolucky/p/12293763.html

时间: 2024-11-06 11:45:22

组织架构树形图的相关文章

组织架构调整策略及设计工具

组织架构调整策略 企业在不同发展阶段会有战略调整,战略调整必然带来组织架构改变.企业组织架构在笔者的企业管理理论体系中属于企业管理流程中的一级流程,组织架构设置好坏直接影响企业流程运行效率.因此,在企业成长过程中,组织架构调整虽然不是常态工作,但也绝不是一劳永逸.一成不变的.企业遇到以下情况都可能调整组织架构:扩大规模.增加市场份额.增加新的产品.增加新的服务:或者缩小产品战线.调整销售渠道.改变代理方式:或者改变管理模式.上线管理软件.引进新设备新技术等等. 调整组织架构必须通盘考虑,以防范组

Lync 组织架构开发思路

有很多使用Lync的企业都希望Lync具有组织架构的功能.其实实现组织架构的开发也较为简单,可以通过一个Web页面显示组织架构内的人员.部门,然后将页面嵌入到Lync客户端中.当然组织架构内的人员数据可以来自AD.HR系统等.关于人员状态及联系人卡片的显示可以在SharePoint中提取响应的JS代码,在页面中呈现.也可以在组织架构页面右键选择人员发起会话. 以上内容纯属个人工作总结之观点,如有总结不到位之处,欢迎批评指正!

拖拽生成组织架构

因为项目需要 找了下网上可以拖拽生成组织架构的资料 找到了 jOrgChart这个控件 花半天自己实现了拖拽生成 用的EASYUI Draggable Droppable 当然熟悉 JQUERYUI 的 也可以用 JQUERY UI 的 拖拽 功能 只完成很基本的功能 但愿能帮到需要用的人^^ <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="tex

html模拟组织架构横向展开

最近看到不少人有类似的需求,实现组织架构的横向展开,显示,无聊就做了一下,先看下最终的效果图 兼容各大主流浏览器,并且支持IE6,7,8,不同的是排除标签圆角效果外,资源文件:文件下载地址 主流浏览器效果图如下: IE6下效果图如下: html模拟组织架构横向展开,布布扣,bubuko.com

组织架构适配下的敏捷开发

摘要: 本文将会讨论如何协调公司内各个工程师团队之间的合作,从而高效地保持系统的弹性和灵活性,以满足敏捷开发的需求.本文选自<Node.js微服务>. 如果一个公司采用微服务来构建软件系统,那么每个干系人都需要参与决策. 微服务是一次重大的范式转换.通常,大型组织倾向于使用相当传统的方式来构建软件系统.每个重大发布需要经历数月的研发周期,之后需要一个完备的质量保证阶段以及数小时的部署阶段. 当一个公司选择使用面向微服务的架构时,方法论就会发生完全的改变:每个小团队负责各自的小功能点,包括它们的

系统权限之组织架构

5年的时间,在4家公司呆过.我发现,它们的组织结构各有各的特点. 第一家公司,最老实了,部门-子部门-职员. 第二家公司,相对大点,集团-子公司-部门-子部门-职员 第三家公司,组织架构有点坑爹,有点乱! 部门-职员-所在公司 行业-行业经理-客户经理-顾问 第四家公司,更坑爹,这个组织架构没几个月就调整一次,中心重新划分.区重新划分.部门重组 集团-中心-部门-子部门-职员 区域-分店-部门-子部门-职员 反正能,上面的我都是随便列一列的.总结下,组织结构: 1.要有层级关系 2.父节点能够很

rtx客户端绿化方法+组织架构更新延迟的解决方案

rtx客户端绿化方法: 1-复制客户端安装目录. 2-运行以下命令,注册dll文件和ocx文件,及rtx程序注册. rtx.exe /regserver ren Config.dll c.d For %%a in (*.dll) do regsvr32.exe /s %%a For %%a in (*.ocx) do regsvr32.exe /s %%a ren c.d Config.dll cd 361msgmgr For %%a in (*.dll) do regsvr32.exe /s

实验室团队的组织架构和绩效考核

声明:本文是CTO训练营的毕业设计.所有内容均为原创,未经许可不得转发. 我们公司背靠某高校实验室,主要的"员工"是在读研究生.我自己本人从该实验室毕业,然后加入一家外企,在里面做了几年了技术经理,再后来又回来作为全职员工加入现在的公司.在最近的一年多时间,跟很多学生一起打交道做项目,遇到了一些实验室特有的困难与问题,在不停的踩坑与填坑中徘徊,从中也总结了一些经验. 每个科班出身混IT圈的人,几乎都是从这样的"摇篮"里孵化出来的,所以类似这样的实验室团队在IT圈想必

组织架构设置原则

组织架构设计必须把握五条原则:战略导向原则.简洁高效原则.负荷适当原则.责任均衡原则.企业价值最大化原则. 战略导向原则.战略决定组织架构,组织架构支撑企业战略落地.内贸企业不会设立外贸部,代工企业不会成立研发部,零售企业不会设立生产部.设置任何部门都必须成为企业某一战略的载体.反过来说明,如果企业某一战略没有承载部门,就会导致架构残缺.华东某企业在全国设立了十个分公司,经营规模也超过十亿元人民币,但由于企业没有成本核算部门,公司欠银行贷款一亿多元,老板连哪家亏损哪家赚钱都搞不清楚!前些年轰然倒