首页 > 代码库 > DWZ+Ztree源码

DWZ+Ztree源码

JSP代码部分

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <link rel="stylesheet" href="http://www.mamicode.com//js/jqueryTree/css/demo.css" type="text/css">
 <link rel="stylesheet" href="http://www.mamicode.com//js/jqueryTree/css/zTreeStyle/zTreeStyle.css" type="text/css">
 <script type="text/javascript" src="http://www.mamicode.com//js/jqueryTree/js/jquery-1.4.4.min.js"></script>
 <script type="text/javascript" src="http://www.mamicode.com//js/jqueryTree/js/jquery.ztree.core-3.5.js"></script>
 <script type="text/javascript" src="http://www.mamicode.com//js/jqueryTree/js/jquery.ztree.excheck-3.5.js"></script>
 <script type="text/javascript" src="http://www.mamicode.com//js/jqueryTree/js/jquery.ztree.exedit-3.5.js"></script>
 <style type="text/css">
 .ztree li span.button.add {margin-left:2px; margin-right: -1px; background-position:-144px 0; vertical-align:top; *vertical-align:middle}
 #layout { text-align:left;}
 #layout { display:block; height:100%; position:relative;}
 h4.contentTitle{color:#00579b;border-color:#A3C0E8;background:#E2F0FF url(../../../../images/grid/header-bg.gif) repeat-x left -1px;}
 h4.contentTitle{font-weight:normal; display:block; font-size:13px; padding:0px 5px;border-style:solid; border-width:0px 0px 0px 0px; line-height:22px;vertical-align:middle; white-space:nowrap;}
 body{font-size:12px;background:#EAEEF5;}
 </style>
 </head>
 <body>
 <div id="layout" style="width:100%;">
  <div id=‘background1‘ class=‘background‘></div>
  <h4 class="contentTitle" align="left"><img src="http://www.mamicode.com//images/default/nav.gif" />&nbsp;当前位置:综合管理 &gt; 技术资料 &gt; 技术资料维护</h4>
 </div>
 <div class="content_wrap" style="float: left;">
 <div class="zTreeDemoBackground left"><ul id="treeDemo" class="ztree"></ul></div>
 <iframe id="iframFileMng" name="location" frameborder="0" style="float: left; border: 1px solid #666; width: 75%; height: 460px; margin-left: 10px"
 src="bgImg.jsp"></iframe>
 </div>
 <div id="divRight" style="width: 650px; margin-top: 100px">
 <input type=‘hidden‘ id=‘nodePid‘ name=‘nodePid‘ />
 </body>
 <script type="text/javascript">
 var searchUrl = "<%=request.getContextPath()%>/sysMaintenance/technicalInfomation/TechnicalInfomationMngAction/technicalInfomationTree.ajax";
 var setting = {
   view: {
    addHoverDom: addHoverDom,//用于当鼠标移动到节点上时,显示用户自定义控件
   removeHoverDom: removeHoverDom,//用于当鼠标移出节点时,隐藏用户自定义控件
   dblClickExpand: true,//双击节点是否自动展开父节点的标识
   showLine: true,//设置是否显示节点之间的连线
   selectedMulti: false//设置是否允许同时选中多个节点
  },
   edit: {
    enable: true,//设置是否可编辑
   editNameSelectAll: true,  // 节点编辑名称 input 初次显示时,设置 txt 内容是否为全选状态。
   showRemoveBtn: showRemoveBtn, //设置是否显示删除按钮
   showRenameBtn: showRenameBtn //设置是否显示重命名按钮
  },
   data: {
    keep: {
     parent: true,//如果设置为 true,则所有 isParent = true 的节点,即使该节点的子节点被全部删除或移走,依旧保持父节点状态。
    leaf: true//如果设置为 true,则所有 isParent = false 的节点,都无法添加子节点。
   },
    simpleData: {
     enable: true//如果设置为true,则zNodes格式必须为json格式,且是有父子关系的json格式
   }
   },
   callback: {
    beforeRemove: beforeRemove,//删除之前调用函数
   beforeRename: beforeRename,//重命名之前调用函数
   beforeMouseDown: true,//当鼠标按下之前
   beforeDrag: false,//禁止拖拽操作
   onClick: selectNodeFun,//当鼠标按下时,选中当前节点
   onRemove: onRemove,//当删除节点后
   onRename: onRename//当重命名节点名称后
  }
  };

function onRemove(e, treeId, treeNode) {
  showLog("[ "+getTime()+" onRemove ]&nbsp;&nbsp;&nbsp;&nbsp; " + treeNode.name);
 }
 function onRename(e, treeId, treeNode) {
  showLog("[ "+getTime()+" onRename ]&nbsp;&nbsp;&nbsp;&nbsp; " + treeNode.name);
 }

 function selectNodeFun(event, treeId, treeNode) {
  var iframe = document.getElementById("iframFileMng");
  iframe.src = treeNode.url != null ? treeNode.url : "";
  showAddNodeFun(treeNode);//显示添加子节点按钮
 showRemoveBtn(treeId, treeNode);//显示删除按钮
 showRenameBtn(treeId, treeNode);//显示重命名按钮
    showRightInfo(treeNode);   // 显示左侧目录信息
};

function getTime() {
  var now= new Date(),
  h=now.getHours(),
  m=now.getMinutes(),
  s=now.getSeconds(),
  ms=now.getMilliseconds();
  return (h+":"+m+":"+s+ " " +ms);
 }

 function showRightInfo(treeNode) {
   $("#nodeId").val(treeNode.id);  // 节点ID
   $("#hideNodeId").val(treeNode.id); // 节点ID(隐藏域)
   $("#nodeName").val(treeNode.name); // 节点名称
  $("#num").val(treeNode.num);  // 文件编号(排序用)
   
   $("#nodePid").val(treeNode.pId);
 }
 function showRemoveBtn(treeId, treeNode) {
  var isShow = treeNode.id == 1000000000 ? false : true
  if(isShow) {
   return true;
  }
  return false;
 }
 function showRenameBtn(treeId, treeNode) {
  var isShow = true;
  if(isShow) {
   return true;
  }
  return false;
 }

 function showAddNodeFun(treeNode) {
  
  var sObj = $("#" + treeNode.tId + "_span");
  if (treeNode.editNameFlag || $("#addBtn_"+treeNode.id).length>0) return;
  var addStr = "<span class=‘button add‘ id=‘addBtn_" + treeNode.id + "‘ title=‘add node‘ onfocus=‘this.blur();‘></span>";
  sObj.after(addStr);
  var btn = $("#addBtn_"+treeNode.id);
  if (btn) btn.bind("click", function(){
   addNodeFun(treeNode);
  });
 }

 function addNodeFun(treeNode) {
  treeNode.isParent = true; // 改变节点级别(改为父级节点)
  treeNode.iconOpen = ‘../../../../images/folderopen-blue.gif‘;
  $.ajax({
   type : "post",
   context: null,
   url : "<%=request.getContextPath()%>/sysMaintenance/technicalInfomation/TechnicalInfomationMngAction/technicalInfomationAdd.ajax",
   data : {"pId" : treeNode.id},
   success : function(msg) {
    var val = "";
    if(navigator.userAgent.indexOf("MSIE 9.0")>0||navigator.userAgent.indexOf("MSIE 8.0")>0){
     val = "["+msg.text.substring(6,msg.text.length)+"]";//IE8下
   }else{
     val = "["+msg.childNodes[0].lastChild.lastChild.data+"]";//除IE8以外
   }
    val = eval(‘(‘ + val + ‘)‘);
    var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
    treeObj.addNodes(
      treeNode,
      {
       id:val[0].newNodeId,
       pId:val[0].parentNodeId,
       name:val[0].newNodeName,
       url:val[0].url,
       target:val[0].target,
       iconClose:val[0].iconClose,
       icon:val[0].icon,
       isParent:val[0].isParent
      }
     );
    
    setTimeout("selectNewNode(" + val[0].newNodeId + ")", 1);
   }
  });
 }

 function selectNewNode(newNodeId) {
  var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
  var node = treeObj.getNodeByParam(‘id‘, newNodeId);
  treeObj.selectNode(node);
  $("#nodeId").val(‘‘);
  $("#nodeName").val(‘‘);
  $("#num").val(‘‘);
 }
 function beforeRename(treeId, treeNode, newName) {
  className = (className === "dark" ? "":"dark");
  showLog("[ "+getTime()+" beforeRename ]&nbsp;&nbsp;&nbsp;&nbsp; " + treeNode.name);
  if (newName.length == 0) {
   ;
   var zTree = $.fn.zTree.getZTreeObj("treeDemo");
   setTimeout(function(){zTree.editName(treeNode);}, 10);
   return false;
  }
  editNodeFun(treeNode.id, newName);
  return true;
 }
 function showLog(str) {
  if (!log) log = $("#log");
  log.append("<li class=‘"+className+"‘>"+str+"</li>");
  if(log.children("li").length > 8) {
   log.get(0).removeChild(log.children("li")[0]);
  }
 }

 function beforeRemove(treeId, treeNode) {
  var bool = false;
  className = (className === "dark" ? "":"dark");
  showLog("[ "+getTime()+" beforeRemove ]&nbsp;&nbsp;&nbsp;&nbsp; " + treeNode.name);
  var result = confirm("确认禁用节点 < " + treeNode.name + " > 吗?");
  if(result) {
   bool = countPidNum(treeNode.id);
  } else {
   bool = false;
  }
  return bool;
 }

 function countPidNum(id) {
  var bool = false;
  $.ajax({
   type : "post",
   url : "<%=request.getContextPath()%>/sysMaintenance/technicalInfomation/TechnicalInfomationMngAction/countPidNum.ajax",
   data : {"id" : id},
   async : false,
   success : function(msg) {
    if (msg.lastChild.lastChild.lastChild.nodeValuehttp://www.mamicode.com/=="true") {
     bool = disableNodeFun(id, true);
    } else {
     bool = disableNodeFun(id, false);
    }
   }
  });
  return bool;
 }
 function disableNodeFun(id, isChildNode) {
  var bool = false;
  if(isChildNode) {
   if(confirm(‘该节点下存在其他子节点, 是否禁用?‘)) {
    $.ajax({
     type : "post",
     url : "<%=request.getContextPath()%>/sysMaintenance/technicalInfomation/TechnicalInfomationMngAction/technicalInfomationDisable.ajax",
     data : {"id" : id, "isChildNode" : isChildNode},
     async : false,
     success : function(msg) {
      if (msg.lastChild.lastChild.lastChild.nodeValuehttp://www.mamicode.com/=="true") {
       bool = true;
      } else {
       bool = false;
      }
     }
    });
   }
  } else {
   $.ajax({
    type : "post",
    url : "<%=request.getContextPath()%>/sysMaintenance/technicalInfomation/TechnicalInfomationMngAction/technicalInfomationDisable.ajax",
    data : {"id" : id, "isChildNode" : isChildNode},
    async : false,
    success : function(msg) {
     if (msg.lastChild.lastChild.lastChild.nodeValuehttp://www.mamicode.com/=="true") {
      bool = true;
     } else {
      bool = false;
     }
    }
   });
  }
  return bool;
 }

 function editNodeFun(id, newName) {
  $.ajax({
   type : "post",
   url : "<%=request.getContextPath()%>/sysMaintenance/technicalInfomation/TechnicalInfomationMngAction/technicalInfomationEdit.ajax",
   data : {"id" : id, "newName" : newName},
   success : function(msg) {
   }
  });
 }
 function addHoverDom(treeId, treeNode) {
  var sObj = $("#" + treeNode.tId + "_span");
  if (treeNode.editNameFlag || $("#addBtn_"+treeNode.id).length>0) return;
  var addStr = "<span class=‘button add‘ id=‘addBtn_" + treeNode.id + "‘ title=‘add node‘ onfocus=‘this.blur();‘></span>";
  sObj.after(addStr);
  var btn = $("#addBtn_"+treeNode.id);
  if (btn) btn.bind("click", function(){
   addNodeFun(treeNode);
  });
 };

function removeHoverDom(treeId, treeNode) {
  $("#addBtn_"+treeNode.id).unbind().remove();
 };
 function showRemoveBtn(treeId, treeNode) {
  var isShow = treeNode.id == 1000000000 ? false : true;
  if(isShow) {
   return true;
  }
  return false;
 }

function showRenameBtn(treeId, treeNode) {
  var isShow = true;
  if(isShow) {
   return true;
  }
  return false;
 }
 var zNodes;//tree data
 var log, className = "dark";

 $(document).ready(function(){
  $.ajax({ url: searchUrl, context: null,type : "post", success: initTree});
 });

 function initTree(res){
  //IE8和IE9回调取值方式与IE10和IE11取值方式不同。
 if(navigator.userAgent.indexOf("MSIE 9.0")>0||navigator.userAgent.indexOf("MSIE 8.0")>0){
   zNodes = "["+res.text.substring(4,res.text.length-1)+"]";//IE8下
 }else{
   zNodes = "["+res.childNodes[0].childNodes[1].childNodes[0].data+"]";//除IE8以外
 }
  //String转换为json格式
 zNodes = eval(‘(‘ + zNodes + ‘)‘);
  //加载树
 $.fn.zTree.init($("#treeDemo"), setting, zNodes);
 }
 </script>
 </html>

后台部分

  package com.org.dms.action.sysMaintenance.technicalInfomation;
 import java.sql.SQLException;
 import java.util.HashMap;

import org.apache.log4j.Logger;

import com.org.dms.common.DicConstant;
 import com.org.dms.dao.sysMaintenance.technicalInfomation.TechnicalInfomationMngDAO;
 import com.org.dms.dao.sysMaintenance.technicalInfomation.TechnicalInfomationQueryDAO;
 import com.org.frameImpl.vo.TmTechnicalTreeVO;
 import com.org.framework.Globals;
 import com.org.framework.common.BaseResultSet;
 import com.org.framework.common.PageManager;
 import com.org.framework.common.QuerySet;
 import com.org.framework.common.User;
 import com.org.framework.util.Pub;
 import com.org.framework.util.RequestUtil;
 import com.org.mvc.context.ActionContext;



 public class TechnicalInfomationMngAction {

 private Logger log = Logger.getLogger(this.getClass());
  private ActionContext atx = ActionContext.getContext();
  User user = (User) atx.getSession().get(Globals.USER_KEY);
  private TechnicalInfomationQueryDAO dao1 = TechnicalInfomationQueryDAO.getInstance(atx);
  private TechnicalInfomationMngDAO dao2 = TechnicalInfomationMngDAO.getInstance(atx);
  
  public void technicalInfomationTree() {
   
   QuerySet treeList;
   try {
    treeList = dao1.technicalInfomationTree();
    
    String tree = "";
    if(treeList!=null && treeList.getRowCount()>0){
     for (int i = 0; i < treeList.getRowCount(); i++) {
      String id = treeList.getString(i + 1, "NODE_ID");
      String parentNodeId = treeList.getString(i + 1, "PARENT_NODE_ID");
                  String nodeName = treeList.getString(i + 1, "NODE_NAME");
                  String nodeNo = treeList.getString(i + 1, "NODE_NO") == null?"99":treeList.getString(i + 1, "NODE_NO");
                  if(Long.parseLong(parentNodeId) == 0) {
                   tree += "{"id":"" + id + "","pId":"" + parentNodeId + "", "name":"" + nodeName + "", "num":"" + nodeNo + "","url":"bgImg.jsp", "target":"location", "iconOpen":"../../../../images/folderopen-blue.gif", "iconClose":"../../../../images/folder-blue.gif"," + " open:true},";
         } else {
          tree += "{"id":"" + id + "", "pId":"" + parentNodeId + "", "name":"" + nodeName + "", "num":"" + nodeNo + "", "url":"technicalManagerMain.jsp?nodeId=" + id + "", "target":"location", "iconOpen":"../../../../images/folderopen-blue.gif", "iconClose":"../../../../images/folder-blue.gif", "icon":"../../../../images/folder-blue.gif",isParent:false,open:false},";
         }
     }
    }
    atx.setOutMsg("tree", tree);
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    log.error(user,e);
   }
  }
  
  
  public void technicalInfomationAdd() {
   try {
    
    String parentNodeId = Pub.val(atx.getRequest(), "pId"); // 目录ID
    
    TmTechnicalTreeVO technicalTree = new TmTechnicalTreeVO();
    technicalTree.setNodeId(dao1.selectSeq());
    technicalTree.setNodeName("新建文件夹");
    technicalTree.setParentNodeId(parentNodeId);
    technicalTree.setNodeStatus(DicConstant.YXBS_01);
    technicalTree.setNodeType("10000001");
    technicalTree.setCreateBy(user.getAccount());
    technicalTree.setCreateTime(Pub.getCurrentDate());
    dao1.insertTmTechnicalTree(technicalTree);
    String node = "{"parentNodeId":"" + parentNodeId + "","newNodeId":"" + technicalTree.getNodeId() + "", "newNodeName":"" + technicalTree.getNodeName() + "", "url":"technicalManagerMain.jsp?nodeId=" + technicalTree.getNodeId() + "", "target":"location", "icon":"../../../../images/folder-blue.gif", "iconClose":"../../../../images/folder-blue.gif"," + " isParent:false},";
    atx.setOutMsg("result",node);
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    log.error(user,e);
   }
  }
  
  
  public void technicalInfomationEdit() throws SQLException {
   try{
    // 从前台获取需要编辑的信息ID
    String nodeId = Pub.val(atx.getRequest(), "id");
    String nodeName = Pub.val(atx.getRequest(), "newName");
    TmTechnicalTreeVO setTechnicalTree = new TmTechnicalTreeVO();
    setTechnicalTree.setNodeId(nodeId);
    setTechnicalTree.setNodeName(nodeName);
    setTechnicalTree.setUpdateBy(user.getAccount());
    setTechnicalTree.setUpdateTime(Pub.getCurrentDate());
    dao1.updateTmTechnicalTree(setTechnicalTree);
    atx.setOutMsg("isEdit", "true");
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    log.error(user,e);
   }
  }
  
  
  public void countPidNum() {
   try{
    // 从前台获取需要禁用的信息ID
    String nodeId = Pub.val(atx.getRequest(), "id");
    
    QuerySet ps = dao2.countPidNum(nodeId);
    
    int result = Integer.parseInt(ps.getString(1,"c"));
    
    if(result > 0) {
     atx.setOutMsg(""isExist"", "true");
    } else {
     atx.setOutMsg(""isExist"", "false");
    }
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    log.error(user,e);
   }
  }
  
  
  public void technicalInfomationDisable() {
   try{
    // 从前台获取需要禁用的信息ID
    String nodeId = Pub.val(atx.getRequest(), "id");
    String isChildNode = Pub.val(atx.getRequest(), "isChildNode");
    // isChildNode为true代表有子节点,将对其下子节点一起禁用
   if(isChildNode.equals("true")) {
     dao2.technicalInfomationDisable(nodeId);
     atx.setOutMsg(""isDisable"", "true");
    } else {
     TmTechnicalTreeVO setTechnicalTree = new TmTechnicalTreeVO();
     setTechnicalTree.setNodeId(nodeId);
     setTechnicalTree.setNodeStatus(DicConstant.YXBS_02);
     setTechnicalTree.setUpdateBy(user.getAccount());
     setTechnicalTree.setUpdateTime(Pub.getCurrentDate());
     dao1.updateTmTechnicalTree(setTechnicalTree);
     atx.setOutMsg(""isDisable"", "true");
    }
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    log.error(user,e);
   }
  }
  
  public void technicalInfomationFileMng() {
   
   try {
    PageManager page = new PageManager();
    HashMap<String, String> hm = RequestUtil.getValues(atx.getRequest());
    BaseResultSet ps = dao1.technicalFileMng(page,hm);
    atx.setOutData("bs", ps);
   } catch (Exception e) {
    e.printStackTrace();
    log.error(user,e);
    atx.setException(e);
   }
  }
  
  
  public void technicalInfomationDelTree() {
   
   QuerySet treeList;
   try {
    treeList = dao1.technicalInfomationTree();
    
    String tree = "";
    if(treeList!=null && treeList.getRowCount()>0){
     for (int i = 0; i < treeList.getRowCount(); i++) {
      String id = treeList.getString(i + 1, "NODE_ID");
      String parentNodeId = treeList.getString(i + 1, "PARENT_NODE_ID");
                  String nodeName = treeList.getString(i + 1, "NODE_NAME");
                  String nodeNo = treeList.getString(i + 1, "NODE_NO") == null?"99":treeList.getString(i + 1, "NODE_NO");
                  if(Long.parseLong(parentNodeId) == 0) {
          tree += "{"id":"" + id + "","pId":"" + parentNodeId + "", "name":"" + nodeName + "", "num":"" + nodeNo + "","url":"bgImg.jsp", "target":"location", "iconOpen":"../../../../images/folderopen-blue.gif", "iconClose":"../../../../images/folder-blue.gif"," + " open:true},";
         } else {
          tree += "{"id":"" + id + "", "pId":"" + parentNodeId + "", "name":"" + nodeName + "", "num":"" + nodeNo + "", "url":"technicalManagerDelMain.jsp?nodeId=" + id + "", "target":"location", "iconOpen":"../../../../images/folderopen-blue.gif", "iconClose":"../../../../images/folder-blue.gif", "icon":"../../../../images/folder-blue.gif",isParent:false,open:false},";
         }
     }
    }
    atx.setOutMsg("tree", tree);
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    log.error(user,e);
   }
  }
 }

 

DWZ+Ztree源码