隐藏

JS版组织结构图

发布:2015/8/1 16:05:06作者:管理员 来源:本站 浏览次数:1346

原来想在网上找,结果这个东西竟然没有,找到一个C#版的还是要收费,无奈只能苦战三天,终于搞定了,请各位测试,有可能往下加节点会有不对的也说不定。
请不要期待兼容性,从来不顾及这个
如果各位有更好的思路请不吝指教
另外,目前只做了一种展示方式,如果各位有兴趣需要,等我再更新
功能:支持自定义节点样式,无限级节点支持,节点间宽度高度间隔自定义,颜色线条大小自定义
修正部分错误

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JS版组织结构图</title>
<style type="text/css">
.OrgBox{
 font-size:12px;
 padding:5px 5px 5px 5px;
 clear:left;
 float:left;
 text-align:center;
 position:absolute;
 background-image:url(http://www.on-cn.cn/tempimg/org.jpg);
 width:70px;
 height:106px;
}
.OrgBox img{
 width:60px;
 height:70px;
}
.OrgBox div{
 color:#FFA500;
 font-weight:800;
}

</style>
</head>
<body>
<script language="javascript">
    function $(id) { return document.getElementById(id) }

    function offset(node) {
        var x = node.offsetLeft;
        var y = node.offsetTop;
        var w = node.offsetWidth;
        var h = node.offsetHeight;
        var parent = node.offsetParent;
        while (parent != null) {
            x += parent.offsetLeft;
            y += parent.offsetTop;
            parent = parent.offsetParent;
        }
        if (w == 0) {
            w += parseInt(node.currentStyle.width);
            w += parseInt(node.currentStyle.paddingRight);
            w += parseInt(node.currentStyle.paddingLeft);
            w += parseInt(node.currentStyle.borderWidth) * 2;
        }
        if (h == 0) {
            h += parseInt(node.currentStyle.height);
            h += parseInt(node.currentStyle.paddingTop);
            h += parseInt(node.currentStyle.paddingBottom);
            h += parseInt(node.currentStyle.borderWidth) * 2;
        }
        return { x: x, y: y, w: w, h: h };
    }

 

    /*
     *@Generator -> Surnfu - Email:Surnfu@126.com - QQ:31333716 Ver:1.0.0
     *@Copyright (c) 2009 Surnfu composition  http://www.on-cn.com
     *使用示例
     *==============================================================================
    var a=new OrgNode()
        a.Text="节点文本"
        a.Description="节点描述"
        a.Link="节点链接"
        //a.customParam.Img="xxx" //自定义节点参数,需要设置节点模板
    var b=new OrgNode()
        b.Text="节点文本"
        b.Description="节点描述"
        b.Link="节点链接"
    a.Nodes.Add(b);
    var OrgShows=new OrgShow(a);
        OrgShows.Top=50;  //设置顶距离
        OrgShows.Left=50; //设置左距离
        OrgShows.IntervalWidth=10; //设置节点间隔宽度
        OrgShows.IntervalHeight=20; //设置节点间隔高度
        OrgShows.ShowType=2;  //设置节点展示方式  1横向  2竖向
        OrgShows.BoxHeight=100;  //设置节点默认高度
        //OrgShows.BoxWidth=100; //设置节点默认宽度
        //OrgShows.BoxTemplet="="<div id=\"{Id}\" style=\"font-size:12px;padding:5px 5px 5px 5px;border:thin solid orange;background-color:lightgrey; clear:left;float:left;text-align:center;position:absolute;\" title=\"{Description}\" ><a href=\"{Link}\">{Text}</a></div>";自定义节点模板
        OrgShows.LineSize=2;  //设置线条大小
        OrgShows.LineColor=2;  //设置线条颜色
        OrgShows.Run()
     *==============================================================================
     */
    function OrgNode() {
        this.Text = null;
        this.Link = null;
        this.Description = null;
        this.BoxWidth = null;
        this.BoxHeight = null;
        this.parentNode = null;
        this.NodeGroupId = null; //同一层的级别序号,从零开始
        this.NodeOrderId = null; //同一级中的序号,从零开始
        this.TopLine = null;
        this.BottomLine = null;
        this.Depth = null;
        this.Top = null;
        this.Left = null;
        this.Type = null;
        this.Nodes = [];
        this.customParam = []; //节点自定义参数
        var This = this;
        this.Nodes.Add = function (OrgNode_) {
            OrgNode_.parentNode = This;
            This.Nodes[This.Nodes.length] = OrgNode_;
        }
        this.Box = null;
        this.Templet = null;
        this.Id = "OrgNode_" + GetRandomId(20);

        this.inIt = function () {
            if (this.inIted == true) return;
            var tempDiv = document.createElement("DIV");
            document.body.appendChild(tempDiv);
            var tempHTML = this.Templet;
            tempHTML = tempHTML.replace("{Id}", this.Id);
            tempHTML = tempHTML.replace("{Text}", this.Text);
            tempHTML = (this.Link == null) ? tempHTML.replace("{Link}", "JavaScript:void(0)") : tempHTML.replace("{Link}", this.Link);
            tempHTML = tempHTML.replace("{Description}", this.Description);
            for (var Param_ in this.customParam) {
                tempHTML = tempHTML.replace("{" + Param_ + "}", this.customParam[Param_]);
            }
            tempDiv.innerHTML = tempHTML;
            this.Box = $(this.Id);

            if (this.BoxWidth != null) {
                if (offset(this.Box).w < this.BoxWidth) {
                    this.Box.style.width = this.BoxWidth + "px";
                    if (offset(this.Box).w > this.BoxWidth) {
                        this.Box.style.width = (this.BoxWidth - (offset(this.Box).w - this.BoxWidth)) + "px";
                    }
                }
            }

            if (this.BoxHeight != null) {
                if (offset(this.Box).h < this.BoxHeight) {
                    this.Box.style.height = this.BoxHeight + "px";
                    if (offset(this.Box).h > this.BoxHeight) {
                        this.Box.style.height = (this.BoxHeight - (offset(this.Box).h - this.BoxHeight)) + "px";
                    }
                }
            }

            this.Width = offset(this.Box).w;
            this.Height = offset(this.Box).h;
            this.inIted = true;
        }

        function GetRandomId(n_) {
            var litter = "abcdefghijklmnopqrstuvwxyz"
            litter += litter.toUpperCase()
            litter += "1234567890";
            var idRnd = "";
            for (var i = 1; i <= n_; i++) {
                idRnd += litter.substr((0 + Math.round(Math.random() * (litter.length - 0))), 1)
            }
            return idRnd;
        }
    }

    function OrgShow(OrgNode_) {
        this.LineSize = 2;
        this.LineColor = "#000000";

        this.IntervalWidth = 100;
        this.IntervalHeight = 50;
        this.Top = 0;
        this.Left = 0;
        this.Depth = 0;
        this.Nodes = [];
        this.DepthGroup = []; //this.DepthGroup[n].Nodes 层深节点集合
        //this.DepthGroup[n].NodeGroups[m]  层深节点按上层分类集合 this.DepthGroup[n].NodeGroups[m][k]层深节点
        var This = this;
        this.BoxWidth = null;
        this.BoxHeight = null;
        this.BoxTemplet = null;
        this.ShowType = null;

        this.Run = function () {
            BoxInit(OrgNode_);
            GetDepth(OrgNode_);
            SetDepthsHeight()//设置层深高度

            //***************************
            for (var n = 1; n <= this.Depth; n++) {//设置顶距离
                var tempTop = this.Top + GetDepthHeightToRoot(n);
                var tempNodes = this.DepthGroup[n].Nodes;
                for (var m = 0; m < tempNodes.length; m++) {
                    tempNodes[m].Top = tempTop;
                }
            }

            //***************************
            for (var n = this.Depth; n >= 1; n--) {//设置左距离
                var DepthNodes = this.DepthGroup[n].Nodes;
                if (n == this.Depth) {
                    for (var m = 0; m < DepthNodes.length; m++) {
                        if (m == 0) {
                            DepthNodes[m].Left = 0;
                        } else {
                            DepthNodes[m].Left = DepthNodes[m - 1].Left + DepthNodes[m - 1].Width + this.IntervalWidth;
                        }
                    }
                } else {
                    for (var m = 0; m < DepthNodes.length; m++) {
                        if (DepthNodes[m].Nodes.length != 0) {
                            var tempNodeLeft_ = DepthNodes[m].Nodes[0].Left + (GetGroupWidthByNode(DepthNodes[m].Nodes[0]) / 2);
                            tempNodeLeft_ -= (DepthNodes[m].Width / 2);
                            DepthNodes[m].Left = tempNodeLeft_;
                        }
                    }
                    for (var m = 0; m < DepthNodes.length; m++) {
                        if (DepthNodes[m].Left == null) {
                            SetLeftByDepthNode(DepthNodes, m, "LTR");
                        }
                    }
                }
            }
            SetDepthGroupWidth();//设置群组宽度

            var MaxLeftValue = this.Nodes[0].Left;
            for (var n = 1; n < this.Nodes.length; n++) {//取得最小左距离
                if (MaxLeftValue > this.Nodes[n].Left) {
                    MaxLeftValue = this.Nodes[n].Left;
                }
            }
            MaxLeftValue = (-MaxLeftValue) + this.Left;
            for (var n = 0; n < this.Nodes.length; n++) {//重新设置距离
                this.Nodes[n].Left += MaxLeftValue;
                this.Nodes[n].Box.style.left = this.Nodes[n].Left + "px"
                this.Nodes[n].Box.style.top = this.Nodes[n].Top + "px"
            }


            //***************************
            for (var n = 1; n <= this.Depth; n++) {//设置竖线条
                var tempNodes = this.DepthGroup[n].Nodes;
                for (var m = 0; m < tempNodes.length; m++) {
                    if (n != this.Depth) {//设置底线条
                        if (tempNodes[m].Nodes.length != 0) {
                            var tempLineLeft = tempNodes[m].Left + (tempNodes[m].Width / 2);
                            var tempLineHeight = ((this.IntervalHeight - this.LineSize) / 2);
                            tempLineHeight += (this.DepthGroup[n].Height - tempNodes[m].Height);
                            var tempLineTop = tempNodes[m].Top + tempNodes[m].Height;
                            var tempBottomLine = new CreateLine(2, tempLineTop, tempLineLeft, tempLineHeight, this.LineSize, this.LineColor, "LineBottom_" + tempNodes[m].Id);
                            tempNodes[m].BottomLine = tempBottomLine.Line;
                        }
                    }
                    if (n != 1) {//设置顶线条
                        var tempLineLeft = tempNodes[m].Left + (tempNodes[m].Width / 2);
                        var tempLineHeight = ((this.IntervalHeight - this.LineSize) / 2);
                        var tempLineTop = tempNodes[m].Top - tempLineHeight;
                        if (this.DepthGroup[tempNodes[m].Depth].NodeGroups[tempNodes[m].NodeGroupId].length == 1) {//如果只有一个节点
                            var tempBottomLineHeight = parseFloat(tempNodes[m].parentNode.BottomLine.style.height) + this.LineSize;
                            tempNodes[m].parentNode.BottomLine.style.height = (tempLineHeight + tempBottomLineHeight) + "px";
                        } else {
                            var temptopLine = new CreateLine(2, tempLineTop, tempLineLeft, tempLineHeight, this.LineSize, this.LineColor, "LineTop_" + tempNodes[m].Id);
                            tempNodes[m].TopLine = temptopLine.Line;
                        }
                    }
                }
            }

            for (var n = 2; n <= this.Depth; n++) {//设置横线条
                var tempNodeGroups_ = this.DepthGroup[n].NodeGroups;
                for (var m = 0; m < tempNodeGroups_.length; m++) {
                    if (tempNodeGroups_[m].length != 1) {
                        var tempLineWidth = tempNodeGroups_[m].Width - (tempNodeGroups_[m][0].Width / 2) + this.LineSize;
                        tempLineWidth -= (tempNodeGroups_[m][tempNodeGroups_[m].length - 1].Width / 2);
                        var tempLineTop = tempNodeGroups_[m][0].Top - ((this.IntervalHeight - this.LineSize) / 2) - this.LineSize;
                        var tempLineLeft = tempNodeGroups_[m][0].Left + (tempNodeGroups_[m][0].Width / 2);
                        var tempGroupLine = new CreateLine(1, tempLineTop, tempLineLeft, tempLineWidth, this.LineSize, this.LineColor, "LineGroup_" + tempNodeGroups_[m][0].Id);
                    }
                }
            }

            //*************************************************************************************************
        }
        function GetGroupWidthByNode(Node_) {//根据群组中任一节点,取得群组宽度
            var tempNodesGroup_ = This.DepthGroup[Node_.Depth].NodeGroups[Node_.NodeGroupId];
            var tempGroupWidth_ = tempNodesGroup_[tempNodesGroup_.length - 1].Left - tempNodesGroup_[0].Left;
            tempGroupWidth_ += tempNodesGroup_[tempNodesGroup_.length - 1].Width
            return tempGroupWidth_;
        }


        function SetLeftByDepthNode(DepthNodes_, NodeId, Type) {
            if (Type == "LTR" && NodeId == DepthNodes_.length - 1) {
                SetLeftByDepthNode(DepthNodes_, NodeId, "RTL");
                return;
            }
            if (Type == "RTL" && NodeId == 0) {
                SetLeftByDepthNode(DepthNodes_, NodeId, "LTR");
                return;
            }
            var FindIndex = null;
            if (Type == "LTR") {
                for (var r_ = NodeId + 1; r_ < DepthNodes_.length; r_++) {
                    if (DepthNodes_[r_].Left != null) {
                        FindIndex = r_;
                        break;
                    }
                }
                if (FindIndex == null) {
                    SetLeftByDepthNode(DepthNodes_, NodeId, "RTL");
                    return;
                } else {
                    for (var r_ = FindIndex - 1; r_ >= NodeId; r_--) {
                        DepthNodes_[r_].Left = DepthNodes_[r_ + 1].Left - This.IntervalWidth - DepthNodes_[r_].Width;
                    }
                }
            }
            if (Type == "RTL") {
                for (var r_ = NodeId - 1; r_ >= 0; r_--) {
                    if (DepthNodes_[r_].Left != null) {
                        FindIndex = r_;
                        break;
                    }
                }
                if (FindIndex == null) {
                    SetLeftByDepthNode(DepthNodes_, NodeId, "LTR");
                    return;
                } else {
                    for (var r_ = FindIndex + 1; r_ <= NodeId; r_++) {
                        DepthNodes_[r_].Left = DepthNodes_[r_ - 1].Left + This.IntervalWidth + DepthNodes_[r_ - 1].Width;
                    }
                }
            }
        }

        function GetDepthHeightToRoot(DepthId) {//取得距离顶层的高度
            var tempHeight_ = 0;
            for (var x_ = DepthId; x_ >= 1; x_--) {
                tempHeight_ += This.DepthGroup[x_].Height;
            }
            tempHeight_ += This.IntervalHeight * (DepthId - 1);
            tempHeight_ -= This.DepthGroup[DepthId].Height;
            return tempHeight_;
        }


        function SetLeftPosByChildNode(Node_, ChildNode_) {//根据下级节点位置设置节点位置
            var tempNodeGroups = This.DepthGroup[ChildNode_.Depth].NodeGroups[ChildNode_.NodeGroupId];
            var tempNodeLeft;
            if (tempNodeGroups.length == 1) {
                tempNodeLeft = ((ChildNode_.Width / 2) + ChildNode_.Left) - (Node_.Width / 2);
            } else {
                tempNodeLeft = GetFirstLeftPos(ChildNode_) + (tempNodeGroups.Width / 2) - (Node_.Width / 2);
            }
            Node_.Left = tempNodeLeft;
        }

        function GetFirstLeftPos(Node_) {//根据节点位置取得同一级中首个节点位置
            if (Node_.NodeOrderId == 0) {//Node_为首节点
                return Node_.Left;
            }
            var tempWidth = 0;
            for (var k_ = 0; k_ <= Node_.NodeOrderId; k_++) {
                var tempGroupsNode = This.DepthGroup[Node_.Depth].NodeGroups[Node_.NodeGroupId][k_];
                tempWidth += tempGroupsNode.Width;
            }
            tempWidth += (Node_.NodeOrderId * This.IntervalWidth);
            return ((Node_.Left - tempWidth) + (Node_.Width / 2));
        }


        function ChildNodesWidth(OrgObj) {//取得层宽
            var ReWidth = 0;
            for (var s_ = 0; s_ < OrgObj.Nodes.length; s_++) {
                ReWidth += OrgObj.Nodes[s_].Width;
            }
            ReWidth += (OrgObj.Nodes.length - 1) * This.IntervalWidth;
            return ReWidth;
        }

        function SetDepthGroupWidth() {//设置层深宽度
            for (var n_ = 1; n_ <= This.Depth; n_++) {
                var tempNodeGroups = This.DepthGroup[n_].NodeGroups;
                for (var m_ = 0; m_ < tempNodeGroups.length; m_++) {
                    tempNodeGroups[m_].Width = GetGroupWidthByNode(tempNodeGroups[m_][0]);
                }
            }
        }


        function SetDepthsHeight() {//设置层深高度
            for (var n_ = 1; n_ <= This.Depth; n_++) {
                var tempNodes_ = This.DepthGroup[n_].Nodes;
                var MaxHeight = 0;
                for (var m_ = 0; m_ < tempNodes_.length; m_++) {
                    if (tempNodes_[m_].Height > MaxHeight) {
                        MaxHeight = tempNodes_[m_].Height;
                    }
                }
                This.DepthGroup[n_].Height = MaxHeight;
            }
        }

        function GetDepth(OrgObj) {//取得层深,层群集
            This.Nodes[This.Nodes.length] = OrgObj;
            OrgObj.Depth = (This.Depth == 0) ? This.Depth + 1 : OrgObj.parentNode.Depth + 1;
            This.Depth = (OrgObj.Depth > This.Depth) ? OrgObj.Depth : This.Depth;
            if (typeof (This.DepthGroup[OrgObj.Depth]) != "object") {
                This.DepthGroup[OrgObj.Depth] = [];
                This.DepthGroup[OrgObj.Depth].Nodes = [];
                This.DepthGroup[OrgObj.Depth].NodeGroups = [];
            }
            This.DepthGroup[OrgObj.Depth].Nodes[This.DepthGroup[OrgObj.Depth].Nodes.length] = OrgObj;
            if (OrgObj.Depth == 1) {
                This.DepthGroup[OrgObj.Depth].NodeGroups[0] = [];
                This.DepthGroup[OrgObj.Depth].NodeGroups[0][0] = OrgObj;
                OrgObj.NodeGroupId = 0;
                OrgObj.NodeOrderId = 0;
            } else {
                if (This.DepthGroup[OrgObj.Depth].NodeGroups.length == 0) {
                    This.DepthGroup[OrgObj.Depth].NodeGroups[0] = [];
                    This.DepthGroup[OrgObj.Depth].NodeGroups[0][0] = OrgObj;
                    OrgObj.NodeGroupId = 0;
                    OrgObj.NodeOrderId = 0;
                } else {
                    var GroupsLength = This.DepthGroup[OrgObj.Depth].NodeGroups.length;
                    var GroupNodesLength = This.DepthGroup[OrgObj.Depth].NodeGroups[GroupsLength - 1].length;
                    if (OrgObj.parentNode == This.DepthGroup[OrgObj.Depth].NodeGroups[GroupsLength - 1][GroupNodesLength - 1].parentNode) {
                        This.DepthGroup[OrgObj.Depth].NodeGroups[GroupsLength - 1][GroupNodesLength] = OrgObj;
                        OrgObj.NodeGroupId = GroupsLength - 1;
                        OrgObj.NodeOrderId = GroupNodesLength;
                    } else {
                        if (typeof (This.DepthGroup[OrgObj.Depth].NodeGroups[GroupsLength]) != "object") {
                            This.DepthGroup[OrgObj.Depth].NodeGroups[GroupsLength] = [];
                        }
                        GroupNodesLength = This.DepthGroup[OrgObj.Depth].NodeGroups[GroupsLength].length;
                        This.DepthGroup[OrgObj.Depth].NodeGroups[GroupsLength][GroupNodesLength] = OrgObj;
                        OrgObj.NodeGroupId = GroupsLength;
                        OrgObj.NodeOrderId = GroupNodesLength;
                    }
                }
            }

            if (OrgObj.Nodes.length != 0) {
                for (var n = 0; n < OrgObj.Nodes.length; n++) {
                    GetDepth(OrgObj.Nodes[n]);
                }
            }
        }
        function BoxInit(OrgObj_) {//节点初始化
            OrgObj_.Templet = GetBoxTemplet();
            OrgObj_.BoxWidth = This.BoxWidth;
            OrgObj_.BoxHeight = This.BoxHeight;
            OrgObj_.inIt();

            if (OrgObj_.Nodes.length != 0) {
                for (var n = 0; n < OrgObj_.Nodes.length; n++) {
                    BoxInit(OrgObj_.Nodes[n]);
                }
            }
        }

        function GetBoxTemplet() {//取得节点模板
            if (This.BoxTemplet != null) return This.BoxTemplet;
            var TempletStr = "<div id=\"{Id}\" style=\"font-size:12px;padding:5px 5px 5px 5px;border:thin solid orange;background-color:lightgrey; clear:left;float:left;text-align:center;position:absolute;"
            if (This.ShowType == 2) TempletStr += "writing-mode: tb-rl;";
            TempletStr += "\" title=\"{Description}\" ><a href=\"{Link}\">{Text}</a></div>";
            return TempletStr;
        }

        function CreateLine(type_, top_, left_, long_, size_, color_, id_) {
            this.Type = type_;
            top_ = top_ + "";
            left_ = left_ + "";
            long_ = long_ + "";
            this.Top = (top_.substr(top_.length - 2).toLowerCase() != "px") ? top_ + "px" : top_;
            this.Left = (left_.substr(left_.length - 2).toLowerCase() != "px") ? left_ + "px" : left_;
            this.Long = (long_.substr(long_.length - 2).toLowerCase() != "px") ? long_ + "px" : long_;
            this.Size = (size_ == undefined) ? "1px" : size_ + "";
            this.Id = (id_ == undefined) ? null : id_;
            this.Size = (this.Size.substr(this.Size.length - 2).toLowerCase() != "px") ? this.Size + "px" : this.Size;
            this.Color = (color_ == undefined) ? "#000000" : color_;
            this.Line = document.createElement("DIV");
            document.body.appendChild(this.Line);
            this.Line.innerText = "x";
            this.Line.style.position = "absolute";
            this.Line.style.top = this.Top;
            this.Line.style.left = this.Left;
            this.Line.style.overflow = "hidden";
            if (this.Type == 1) {
                this.Line.style.borderTopColor = this.Color;
                this.Line.style.borderTopWidth = this.Size;
                this.Line.style.borderTopStyle = "solid";
                this.Line.style.width = this.Long;
                this.Line.style.height = "0px";
            } else {
                this.Line.style.borderLeftColor = this.Color;
                this.Line.style.borderLeftWidth = this.Size;
                this.Line.style.borderLeftStyle = "solid";
                this.Line.style.height = this.Long;
                this.Line.style.width = "0px";
            }
            if (this.Id != null) this.Line.id = this.Id;
        }

    }

    var a = new OrgNode()
    a.customParam.EmpName = "张明"
    a.customParam.department = "总经办"
    a.customParam.EmpPhoto = "http://www.on-cn.cn/tempimg/org1.jpg"

    var b = new OrgNode()
    b.customParam.EmpName = "陈黎明"
    b.customParam.department = "运营部"
    b.customParam.EmpPhoto = "http://www.on-cn.cn/tempimg/org2.jpg"

    var c = new OrgNode()
    c.customParam.EmpPhoto = "http://www.on-cn.cn/tempimg/org1.jpg"

    var d = new OrgNode()
    d.customParam.EmpPhoto = "http://www.on-cn.cn/tempimg/org1.jpg"

    var e = new OrgNode()

    var f = new OrgNode()

    var g = new OrgNode()


    var h = new OrgNode()

    var k1 = new OrgNode()

    var x = new OrgNode()

    var y = new OrgNode()

    var z = new OrgNode()


    var z1 = new OrgNode()

    var z11 = new OrgNode()

    var z12 = new OrgNode()

    var z13 = new OrgNode()


    z1.Nodes.Add(z11);
    z1.Nodes.Add(z12);
    z1.Nodes.Add(z13);


    var z2 = new OrgNode()
    z2.Text = "三-2"
    z2.Description = "zxxxcz"


    var y1 = new OrgNode()
    y1.Text = "三员工一-1"
    y1.Description = "zxxxcz"


    var y2 = new OrgNode()
    y2.Text = "三员工一-2"
    y2.Description = "zxxxcz"

    var y21 = new OrgNode()
    y21.Text = "三员工一-2-1"
    y21.Description = "zxxxcz"

    var y22 = new OrgNode()
    y22.Text = "三员工一-2-2"
    y22.Description = "zxxxcz"


    y2.Nodes.Add(y21);
    y2.Nodes.Add(y22);
    y.Nodes.Add(y1);
    y.Nodes.Add(y2);
    z.Nodes.Add(z1);
    z.Nodes.Add(z2);
    x.Nodes.Add(y);
    x.Nodes.Add(z);
    g.Nodes.Add(h);
    g.Nodes.Add(k1);
    a.Nodes.Add(b);
    a.Nodes.Add(x);
    a.Nodes.Add(c);
    b.Nodes.Add(g);
    c.Nodes.Add(d);
    c.Nodes.Add(e);
    c.Nodes.Add(f);

    var OrgShows = new OrgShow(a);
    OrgShows.Top = 50;
    OrgShows.Left = 50;
    OrgShows.IntervalWidth = 10;
    OrgShows.IntervalHeight = 20;
    //OrgShows.ShowType=2;
    //OrgShows.BoxHeight=100;
    OrgShows.BoxTemplet = "<div id=\"{Id}\" class=\"OrgBox\"><img src=\"{EmpPhoto}\" /><span>{EmpName}</span><div>{department}</div></div>"
    OrgShows.Run()
</script>
</body>
</html>