zoukankan      html  css  js  c++  java
  • ztree总结

    <form id="mform" action="" method="post" target="orgFrame">
    <input id="orgCode" name="orgCode" type="hidden" value=""/>
    <div class="" align="center" style=" 100%;margin-left: 0px">
    <table style=" 900px; margin-top: 20px;">
    <tr>
    <td align="left">
    <input type="button" class="btn-bg" id="addNode" value="添 加">
    <input type="button" class="btn-bg" id="editNode" value="编 辑">
    <input type="button" class="btn-bg" id="mvNode" value="删 除">
    </td>
    </tr>
    </table>
    <table>
    <tr>
    <td>
    <div style='height:580px;250px;border:#C6BEB2 1px solid;margin-top:10px;overflow-y:scroll;'>
    <ul id='orgTree' class='ztree' style='display: block;'></ul>
    </div>
    </td>
    <td>
    <div style='height:580px;650px;border:#C6BEB2 1px solid;margin-top:10px;overflow: visible;'>
    <iframe name="orgFrame" id="orgFrame" width="100%" style="height:99%" frameborder="0" scrolling="no" ></iframe>
    </div>
    </td>
    </tr>
    </table>
    </div>
    </form>

    <script type="text/javascript">
    //初始化树
    $(document).ready(function(){
    initZTree();
    });

    var initZTree = function() {
    var obj1 = ${orgOJsonbject }; //后台返回的json格式的数据,

    //isParent是否是父节点o是节点的id 默认名称为id 但是也可以在配置里面修改为返回数据的主键id、displayName为节点的现实名称,也是设置的 :设置下面有介绍

    var treeNodes = {isParent:true, o:obj1.id, displayName:obj1.orgName,orgCode:obj1.orgCode};

    $.fn.zTree.init($("#orgTree"), setting1, treeNodes); //id = orgTree的容器里面展现改树结构

    var zTree=$.fn.zTree.getZTreeObj("orgTree");//获取改树对象
    var node=zTree.getNodeByParam("o",obj1.id,null);//根据属性查找节点,
    zTree.expandNode(node,true,true,true);//展开改node节点(因为进入页面开始只查询了父节点,其他节点需要通过展开时候自动的异步加载来现实数据,但是,我想要现实两层数据,又不想改后台代码,所以就在初始化树之后,在展开父节点,就显示第二层的数据了,也可以强制异步加载:下面有介绍

    };

    var setting1 = {//设置模块,可以设置你想显示什么样子的树
    check: {
    enable: true,//表示启用选框,
    autoCheckTrigger: true,
    chkboxType: { "Y": "", "N": "" },
    radioType : "all",//全树都只能选一个
    chkStyle : "radio"//显示单选还是复选checkbox或者radio
    },
    async: {//异步加载
    enable: true,//表示启用异步加载
    url: FRAMEWORK_BASE_PATH + "/organization/sub_organization_query",//访问路径
    autoParam: ["o=parentId"],//传递的参数o是代表你想传递的树的属性,这里o是id,parentId表示后台接收的时候显示的属性名称,比如方法a(String parentId)这个parentId就是前台传递的o的值
    dataType: "text",
    type : "get",
    dataFilter:function(treeId, parentNode, treeONodes){//treeONodes后台返回的json格式的数据
    for(var key = 0;key<treeONodes.length;key++){//对数据进行处理
    treeONodes[key]["isParent"]=true;
    treeONodes[key]["o"]=treeONodes[key]["id"];
    treeONodes[key]["displayName"]=treeONodes[key]["orgName"];
    }
    return treeONodes;
    },
    },
    data: {
    key: {
    name: "displayName"
    },
    simpleData: {
    enable: true,
    idKey: "o",//将id改成o
    pIdKey: "parentOrgId",//父id改为parentOrgId
    rootPId: null//根节点的父id显示null
    }
    },
    callback: {//回调函数的设置
    onClick:zTreeOnClick,//点击的时候触发
    onCheck: zTreeOnCheck//点击选框的时候触发
    }
    };

    function zTreeOnClick(event, treeId, treeNode){
    treeNode.checked = true;//自己写的现实节点的时候默认选中选框
    var treeObj = $.fn.zTree.getZTreeObj("orgTree");
    treeObj.updateNode(treeNode); //当修改节点属性值的时候一定要手动updateNode不能树不会显示更新
    removeClass();
    addClass(treeNode);
    $('#mform').attr("action","${FRAMEWORK_BASE_PATH}/organization/organization_view?edit=false");//点击在右边显示改节点的详情
    $('#orgCode').val(treeNode.orgCode);
    $('#mform').submit();
    }

    function zTreeOnCheck(event, treeId, treeNode){
    zTreeOnClick(event, treeId, treeNode);//自己写的点击选框默认选中该节点
    removeClass();
    addClass(treeNode);
    }

    function removeClass(){
    $(".curSelectedNode").each(function(){
    var nid = "#"+this.id;
    $(nid).removeClass("curSelectedNode");
    });
    }

    function addClass(treeNode){
    var nodeid = "#"+treeNode.tId+"_a";
    $(nodeid).addClass("curSelectedNode");
    }

    function updateEditNode(orgCode,displayName,kind){//但你执行完增删改的时候 更新树的操作
    var treeObj = $.fn.zTree.getZTreeObj("orgTree");
    var node=treeObj.getNodeByParam("orgCode",orgCode,null);
    if(kind==1){//新增节点跟新 参数displayName为新增节点的orgCode
    var type = "refresh";
    var silent = false;
    /*强行异步加载父节点的子节点。[setting.async.enable = true 时有效]*/
    treeObj.reAsyncChildNodes(node, type, silent);
    }else if(kind==2){//删除更新
    treeObj.removeNode(node);
    }else if(kind==3){//上移更新
    //传过来的是parentId
    node=treeObj.getNodeByParam("o",orgCode,null);
    var type = "refresh";
    var silent = false;
    /*强行异步加载父节点的子节点。[setting.async.enable = true 时有效]*/
    treeObj.reAsyncChildNodes(node, type, silent);
    }else if(kind==4){//修改名称更新
    node.displayName = displayName;
    treeObj.updateNode(node);
    }
    }
    //添加按钮添加事件
    $('#addNode').bind('click', function() {
    $('#mform').attr("action","${FRAMEWORK_BASE_PATH}/organization/organization_add");
    var treeObj = $.fn.zTree.getZTreeObj("orgTree");
    var nodes = treeObj.getCheckedNodes(true);
    if(nodes.length > 1 || nodes.length == 0){
    alert("请选择一个节点!");
    } else {
    var orgCode = "";
    var node = "";
    for (var i=0, l = nodes.length; i < l; i++) {
    if((nodes[i].displayName != "省公司")&&(nodes[i].levelEntity.levelNo == "OL-10000-03" || nodes[i].levelEntity.levelNo == "OL-10001-03")){
    alert("该组织已为最底层组织,无下一层组织!");
    return;
    }
    orgCode = nodes[i].orgCode;
    }
    $('#orgCode').val(orgCode);
    $('#mform').submit();
    }
    });

    //编辑按钮添加事件
    $('#editNode').bind('click', function() {
    $('#mform').attr("action","${FRAMEWORK_BASE_PATH}/organization/organization_view?edit=true");
    var treeObj = $.fn.zTree.getZTreeObj("orgTree");
    var nodes = treeObj.getCheckedNodes(true);
    if(nodes.length > 1 || nodes.length == 0){
    alert("请选择一个节点!");
    } else {
    var o = "";
    for (var i=0, l = nodes.length; i < l; i++) {
    o = nodes[i].orgCode;
    }
    $('#orgCode').val(o);
    $('#mform').submit();
    }
    });

    //删除按钮添加事件
    $('#mvNode').bind('click', function() {
    var treeObj = $.fn.zTree.getZTreeObj("orgTree");
    var nodes = treeObj.getCheckedNodes(true);
    if(nodes.length > 1 || nodes.length == 0){
    alert("请选择一个节点!");
    } else {
    var orgCode = "";
    var id = ""
    var deptName = "";
    var node = "";
    for (var i=0, l=nodes.length; i < l; i++) {
    node = nodes[i];
    orgCode = nodes[i].orgCode;
    id = nodes[i].o;
    }
    if(confirm("确认删除组织?")){
    $.ajax({
    url: FRAMEWORK_BASE_PATH + "/organization/organization_remove",
    async : false,
    type : "POST",
    data : {"id" : id,"orgCode" : orgCode},
    dataType : "json",
    success : function(r) {
    if(r.result){
    alert("删除成功!");
    //initZTree();
    //删除选中的节点
    updateEditNode(orgCode,"",2);
    $("#orgFrame").empty();
    } else {
    var message = r.message;
    if(message.indexOf("实例") >= 0){
    message = message.substring(0,message.indexOf("实例")+3)+"请先删除该实例";
    }
    alert(message);
    }
    }
    });
    }
    }
    });
    </script>

  • 相关阅读:
    Linux下的lds链接脚本简介(一)
    linux字符驱动之poll机制按键驱动
    Linux中断处理驱动程序编写
    基于Hexo + Git + Nginx的博客发布
    Visual Studio2012打开时弹出“遇到异常:这可能是由某个扩展导致的”错误的解决办法
    卫星轨道和两行数据TLE
    C#基础系列:开发自己的窗体设计器(PropertyGrid显示中文属性名)
    C# WinForm PropertyGrid用法
    C#基础系列:实现自己的ORM(反射以及Attribute在ORM中的应用)
    [转]计算机视觉、机器学习相关领域论文和源代码大集合
  • 原文地址:https://www.cnblogs.com/husfsh-16300/p/6702953.html
Copyright © 2011-2022 走看看