三、jq前端树插件ztree使用

ztree 插件使用(使用了h-ui框架)

1.添加div

<ul id="treeDemo" class="ztree"></ul>

2.写ztee配置

<script type="text/javascript">
var setting = {
    edit: {  
        drag:{  
            isMove:false,  
            isCopy:false  
        },  
        enable: true,//不可编辑  
        showAddBtn: true,//显示增加按钮  
        showRemoveBtn: showRemoveBtn,  
        showRenameBtn: showRenameBtn  
    },  
data: {
simpleData: {
enable: true
}
}, 
    view: {  
        addHoverDom: addHoverDom,  
        removeHoverDom: removeHoverDom,  
        selectedMulti: false,
    },  
    callback: {  
        beforeRemove:beforeRemove,  
        beforeRename:beforeRename,  
        onRemove: removeFun,  
        onRename: renameFun,  
    }
}; 
function removeFun(event,treeId,treeNode){
    //删除之后执行此方法


}  
function renameFun(event,treeId,treeNode){  
    //重命名之后执行此方法      
}  


function beforeRemove(treeId, treeNode) {  
         //删除之前的回调函数,  
    var  Remove= false;
if(!treeNode.pId==0){  
  $.ajax({
   url: "/wwwydl/s/admin/delsubcolumn",
   type: "post",
   dataType: "json",
   data:{subcolumnid:treeNode.id,columnid:treeNode.pId},
            async : false,
       success: function (result) {
           if (result.success) {            
            layer.msg('删除成功!',{icon:1,time:1500});
            Remove=true;
           }else{        
            layer.msg(result.message,{icon:1,time:1500}); 
           }
    },
   error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('网络连接异常,请重试!');
   }
}); 
  return Remove;
}else{  
  $.ajax({
   url: "/wwwydl/s/admin/delcolumn",
   type: "post",
   dataType: "json",
           async : false,
   data:{columnid:treeNode.id},
       success: function (result) {
           if (result.success) {
            layer.msg('删除成功!',{icon:1,time:1500});
            Remove= true;
           }else{
            layer.msg(result.message,{icon:1,time:1500});
           }
    },
   error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('网络连接异常,请重试!');
   }
}); 
  return Remove;

}  
function beforeRename(treeId, treeNode, newName, isCancel) {  
var  Remove= false;
if(!treeNode.pId==0){  
$.ajax({
   url: "/wwwydl/s/admin/upsubcolumnname",
   type: "post",
   dataType: "json",
   async: false ,
   data:{subcolumnid:treeNode.id,subcolumnname:treeNode.name,columnid:treeNode.pId},
       success: function (result) {
           if (result.success) {
            layer.msg('修改成功!',{icon:1,time:1500});
            testIframe.window.location.reload();
            Remove=true;
           }else{
            layer.msg(result.message,{icon:1,time:1500});
           }
    },
   error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('网络连接异常,请重试!');
   }
});  
}else{  
$.ajax({
   url: "/wwwydl/s/admin/upcolumnname",
   type: "post",
   dataType: "json",
   async: false ,
   data:{columnid:treeNode.id,columnname:treeNode.name},
       success: function (result) {
           if (result.success) {
            layer.msg('修改成功!',{icon:1,time:1500});
            testIframe.window.location.reload();
            Remove=true;
           }else{
            layer.msg(result.message,{icon:1,time:1500});
           }
    },
   error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('网络连接异常,请重试!');
   }
}); 
}
return Remove;
}  
 function showRemoveBtn(treeId, treeNode) {  
         //用于控制删除按钮的显示与否  
if(treeNode.id == 0){  
   //隐藏删除按钮  
   return false;  
}else{  
   return true;  
}  
}  
function showRenameBtn(treeId, treeNode) {  
        //用于控制修改按钮的显示与否  
if(treeNode.id == 0){  
   //隐藏修改按钮  
   return false;  
}else{  
   return true;  
}  
}
var newCount1 = 1;
var newCount2 = 1;
function addHoverDom(treeId, treeNode) {
if(treeNode.pId==0||treeNode.id==0){  
var sObj = $("#" + treeNode.tId + "_span");
if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return;
var addStr = "<span class='button add' id='addBtn_" + treeNode.tId
+ "' title='add node' οnfοcus='this.blur();'></span>";
sObj.after(addStr);
var btn = $("#addBtn_"+treeNode.tId);
if (btn) btn.bind("click", function(){
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
var name1="new_column" + (newCount1++);
var name2="new_subcolumn" + (newCount2++);
if(treeNode.id==0){
$.ajax({
   url: "/wwwydl/s/admin/addcolumn",
   type: "post",
   dataType: "json",
   data:{columnname:name1},
       success: function (result) {
           if (result.success) {
            zTree.addNodes(treeNode, {id:result.data, pId:treeNode.id, name:name1});
            layer.msg('添加成功!',{icon:1,time:1500});
            testIframe.window.location.reload();
           }else{
            layer.msg(result.message,{icon:1,time:1500});
           }
    },
   error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('网络连接异常,请重试!');
   }
});
}else if(treeNode.pId==0){
$.ajax({
   url: "/wwwydl/s/admin/addsubcolumn",
   type: "post",
   dataType: "json",
   data:{subcolumnname:name2,columnid:treeNode.id},
       success: function (result) {
           if (result.success) {
            zTree.addNodes(treeNode, {id:result.data, pId:treeNode.id, name:name2});
            layer.msg('添加成功!',{icon:1,time:1500});
            testIframe.window.location.reload();
           }else{
            layer.msg(result.message,{icon:1,time:1500});
           }
    },
   error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('网络连接异常,请重试!');
   }
}); 
}
return false;
});  
}
};
function removeHoverDom(treeId, treeNode) {  
     //鼠标移除节点后,新增按钮消失  
$("#addBtn_"+treeNode.tId).unbind().remove();  
}; 
//第一次,异步请求出根节点。  
$.ajax({
   url: "/wwwydl/s/admin/getcolumnztree",
   type: "get",
   dataType: "json",
   success: function (result) {
       if (result.success) {
        var rootJson = eval(result.data); 
        $.fn.zTree.init($("#treeDemo"), setting, rootJson);
       }
},
   error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('网络连接异常,请重试!');
   }
});
</script>

前端源码:

<%@ page language="Java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<!--[if lt IE 9]>
<script type="text/javascript" src="lib/html5.js"></script>
<script type="text/javascript" src="lib/respond.min.js"></script>
<script type="text/javascript" src="lib/PIE_IE678.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="../resources/common/static/h-ui/css/H-ui.min.css" />
<link rel="stylesheet" type="text/css" href="../resources/common/static/h-ui.admin/css/H-ui.admin.css" />
<link rel="stylesheet" type="text/css" href="../resources/common/lib/Hui-iconfont/1.0.7/iconfont.css" />
<link rel="stylesheet" type="text/css" href="../resources/common/lib/icheck/icheck.css" />
<link rel="stylesheet" type="text/css" href="../resources/common/static/h-ui.admin/skin/default/skin.css" id="skin" />
<link rel="stylesheet" type="text/css" href="../resources/common/static/h-ui.admin/css/style.css" />
<link rel="stylesheet" href="../resources/common/lib/zTree/v3/css/zTreeStyle/zTreeStyle.css" type="text/css">
	<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}
	</style>
<!--[if IE 6]>
<script type="text/javascript" src="http://lib.h-ui.net/DD_belatedPNG_0.0.8a-min.js" ></script>
<script>DD_belatedPNG.fix('*');</script>
<![endif]-->
<title>栏目分类</title>
</head>
<body>
<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页 <span class="c-gray en">&gt;</span> 管理员管理 <span class="c-gray en">&gt;</span> 栏目管理 <a class="btn btn-success radius r" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a></nav>
<table class="table">
	<tr>
		<td width="400" class="va-t"><ul id="treeDemo" class="ztree"></ul></td>
		<td class="va-t"><IFRAME ID="testIframe" Name="testIframe" FRAMEBORDER=0 SCROLLING=AUTO width=100%  height=600px SRC="admin-column-add.jsp"></IFRAME></td>
	</tr>
</table>
<script type="text/javascript" src="../resources/common/lib/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript" src="../resources/common/lib/layer/2.1/layer.js"></script> 
<script type="text/javascript" src="../resources/common/lib/zTree/v3/js/jquery.ztree.all-3.5.min.js"></script> 
<script type="text/javascript" src="../resources/common/static/h-ui/js/H-ui.js"></script> 
<script type="text/javascript" src="../resources/common/static/h-ui.admin/js/H-ui.admin.js"></script> 
<script type="text/javascript">
var setting = {
    edit: {  
        drag:{  
            isMove:false,  
            isCopy:false  
        },  
        enable: true,//不可编辑  
        showAddBtn: true,//显示增加按钮  
        showRemoveBtn: showRemoveBtn,  
        showRenameBtn: showRenameBtn  
    },  
	data: {
		simpleData: {
			enable: true
		}
	}, 
    view: {  
        addHoverDom: addHoverDom,  
        removeHoverDom: removeHoverDom,  
        selectedMulti: false,
    },  
    callback: {  
        beforeRemove:beforeRemove,  
        beforeRename:beforeRename,  
        onRemove: removeFun,  
        onRename: renameFun,  
    }
}; 
function removeFun(event,treeId,treeNode){
    //删除之后执行此方法


}  
function renameFun(event,treeId,treeNode){  
    //重命名之后执行此方法      
}  


function beforeRemove(treeId, treeNode) {  
         //删除之前的回调函数,  
    var  Remove= false;
	if(!treeNode.pId==0){  
 		$.ajax({
		    url: "/wwwydl/s/admin/delsubcolumn",
		    type: "post",
		    dataType: "json",
		    data:{subcolumnid:treeNode.id,columnid:treeNode.pId},
            async : false,
    	    success: function (result) {
    	        if (result.success) {    	        	
    	        	layer.msg('删除成功!',{icon:1,time:1500});
    	        	Remove=true;
    	        }else{ 	        	
    	        	layer.msg(result.message,{icon:1,time:1500}); 
    	        }
    			},
		    error: function (XMLHttpRequest, textStatus, errorThrown) {
					alert('网络连接异常,请重试!');
		    }
		}); 
 		return Remove;
		}else{  
 			$.ajax({
			    url: "/wwwydl/s/admin/delcolumn",
			    type: "post",
			    dataType: "json",
	            async : false,
			    data:{columnid:treeNode.id},
	    	    success: function (result) {
	    	        if (result.success) {
	    	        	layer.msg('删除成功!',{icon:1,time:1500});
	    	        	Remove= true;
	    	        }else{
	    	        	layer.msg(result.message,{icon:1,time:1500});
	    	        }
	    			},
			    error: function (XMLHttpRequest, textStatus, errorThrown) {
						alert('网络连接异常,请重试!');
			    }
			}); 
 			return Remove;
		} 
}  
function beforeRename(treeId, treeNode, newName, isCancel) {  
	 var  Remove= false;
	if(!treeNode.pId==0){  
		$.ajax({
		    url: "/wwwydl/s/admin/upsubcolumnname",
		    type: "post",
		    dataType: "json",
		    async: false ,
		    data:{subcolumnid:treeNode.id,subcolumnname:treeNode.name,columnid:treeNode.pId},
    	    success: function (result) {
    	        if (result.success) {
    	        	layer.msg('修改成功!',{icon:1,time:1500});
    	        	testIframe.window.location.reload();
    	        	Remove=true;
    	        }else{
    	        	layer.msg(result.message,{icon:1,time:1500});
    	        }
    			},
		    error: function (XMLHttpRequest, textStatus, errorThrown) {
					alert('网络连接异常,请重试!');
		    }
		});  
		}else{  
			$.ajax({
			    url: "/wwwydl/s/admin/upcolumnname",
			    type: "post",
			    dataType: "json",
			    async: false ,
			    data:{columnid:treeNode.id,columnname:treeNode.name},
	    	    success: function (result) {
	    	        if (result.success) {
	    	        	layer.msg('修改成功!',{icon:1,time:1500});
	    	        	testIframe.window.location.reload();
	    	        	Remove=true;
	    	        }else{
	    	        	layer.msg(result.message,{icon:1,time:1500});
	    	        }
	    			},
			    error: function (XMLHttpRequest, textStatus, errorThrown) {
						alert('网络连接异常,请重试!');
			    }
			}); 
		}
	return Remove;
}  
 function showRemoveBtn(treeId, treeNode) {  
         //用于控制删除按钮的显示与否  
if(treeNode.id == 0){  
   //隐藏删除按钮  
   return false;  
}else{  
   return true;  
}  
}  
function showRenameBtn(treeId, treeNode) {  
        //用于控制修改按钮的显示与否  
if(treeNode.id == 0){  
   //隐藏修改按钮  
   return false;  
}else{  
   return true;  
}  
}
var newCount1 = 1;
var newCount2 = 1;
function addHoverDom(treeId, treeNode) {
	if(treeNode.pId==0||treeNode.id==0){  
		var sObj = $("#" + treeNode.tId + "_span");
		if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return;
		var addStr = "<span class='button add' id='addBtn_" + treeNode.tId
			+ "' title='add node' οnfοcus='this.blur();'></span>";
		sObj.after(addStr);
		var btn = $("#addBtn_"+treeNode.tId);
		if (btn) btn.bind("click", function(){
			var zTree = $.fn.zTree.getZTreeObj("treeDemo");
			var name1="new_column" + (newCount1++);
			var name2="new_subcolumn" + (newCount2++);
			if(treeNode.id==0){
				$.ajax({
				    url: "/wwwydl/s/admin/addcolumn",
				    type: "post",
				    dataType: "json",
				    data:{columnname:name1},
		    	    success: function (result) {
		    	        if (result.success) {
		    	        	zTree.addNodes(treeNode, {id:result.data, pId:treeNode.id, name:name1});			
		    	        	layer.msg('添加成功!',{icon:1,time:1500});
		    	        	testIframe.window.location.reload();
		    	        }else{
		    	        	layer.msg(result.message,{icon:1,time:1500});
		    	        }
		    			},
				    error: function (XMLHttpRequest, textStatus, errorThrown) {
							alert('网络连接异常,请重试!');
				    }
				}); 				
			}else if(treeNode.pId==0){
				$.ajax({
				    url: "/wwwydl/s/admin/addsubcolumn",
				    type: "post",
				    dataType: "json",
				    data:{subcolumnname:name2,columnid:treeNode.id},
		    	    success: function (result) {
		    	        if (result.success) {
		    	        	zTree.addNodes(treeNode, {id:result.data, pId:treeNode.id, name:name2});			
		    	        	layer.msg('添加成功!',{icon:1,time:1500});
		    	        	testIframe.window.location.reload();
		    	        }else{
		    	        	layer.msg(result.message,{icon:1,time:1500});
		    	        }
		    			},
				    error: function (XMLHttpRequest, textStatus, errorThrown) {
							alert('网络连接异常,请重试!');
				    }
				}); 
			}			
			return false;
		});  
	}
};
function removeHoverDom(treeId, treeNode) {  
     //鼠标移除节点后,新增按钮消失  
$("#addBtn_"+treeNode.tId).unbind().remove();  
}; 
//第一次,异步请求出根节点。  
	$.ajax({
	    url: "/wwwydl/s/admin/getcolumnztree",
	    type: "get",
	    dataType: "json",
	    success: function (result) {
	        if (result.success) {
	        	var rootJson = eval(result.data); 
	        	$.fn.zTree.init($("#treeDemo"), setting, rootJson);
	        }
		},
	    error: function (XMLHttpRequest, textStatus, errorThrown) {
				alert('网络连接异常,请重试!');
	    }
	}); 
</script>
</body>
</html>
效果图:

后端:

        控制层:

	/**
	 * 方法描述:获取栏目ztree
	 *@return
	 */
	@RequestMapping("/getcolumnztree")
	@ResponseBody
	public ResResult getcolumnztree(){	
		logger.info("后端-系统管理-获取栏目ztree");
		List<ZtreeVo> ztreelist=columnService.getcolumnztree();	
        return ResResult.ok(ztreelist);
	}


          服务层:

       	public List<ZtreeVo> getcolumnztree() {
		List<Mcolumn> column=getcolumn();
		List<ZtreeVo> ztreelist=new ArrayList<ZtreeVo>();
		ZtreeVo ztree=new ZtreeVo();
		ztree.setId(0);
		ztree.setpId(-1);
		ztree.setName("栏目列表");
		ztree.setOpen(true);
		ztreelist.add(ztree);
		for(Mcolumn c:column){
			ZtreeVo ztree1=new ZtreeVo();
			ztree1.setId(c.getColumnid());
			ztree1.setpId(0);
			ztree1.setName(c.getColumnname());
			ztree1.setOpen(true);
			ztreelist.add(ztree1);
			List<Subcolumn> subcolumns=subColumnService.getsubcolumnid(c.getColumnid());
			for(Subcolumn s:subcolumns){
				ZtreeVo ztree2=new ZtreeVo();
				int id= Integer.parseInt(Integer.toString(c.getColumnid())+Integer.toString(s.getSubcolumnid()));
				ztree2.setId(id);
				ztree2.setpId(s.getColumnid());
				ztree2.setName(s.getSubcolumnname());
				ztree2.setOpen(false);
				ztreelist.add(ztree2);
			}
		}
		return ztreelist;
	}


        vo层:

     

public class ZtreeVo {
	/**
	 * ztree id
	 */
	private int id;
	/**
	 * ztree pId
	 */
	private int pId;
	/**
	 * ztree name
	 */
	private String name;
	/**
	 * ztree url
	 */
	private String url;

	/**
	 * ztree icon 节点自定义图标的 URL 路径
	 */
	private String icon;
	/**
	 * ztree iconClose 父节点自定义折叠时图标的 URL 路径
	 */
	private String iconClose;
	/**
	 * ztree iconOpen 父节点自定义展开时图标的 URL 路径
	 */
	private String iconOpen;
	/**
	 * ztree iconSkin 节点自定义图标的 className
	 */
	private String iconSkin;
	/**
	 * ztree open
	 */
	private boolean open;
	

	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getpId() {
		return pId;
	}
	public void setpId(int pId) {
		this.pId = pId;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}	
	public String getIcon() {
		return icon;
	}
	public void setIcon(String icon) {
		this.icon = icon;
	}	
	public String getIconClose() {
		return iconClose;
	}
	public void setIconClose(String iconClose) {
		this.iconClose = iconClose;
	}
	public String getIconOpen() {
		return iconOpen;
	}
	public void setIconOpen(String iconOpen) {
		this.iconOpen = iconOpen;
	}
	public String getIconSkin() {
		return iconSkin;
	}
	public void setIconSkin(String iconSkin) {
		this.iconSkin = iconSkin;
	}
	public boolean isOpen() {
		return open;
	}
	public void setOpen(boolean open) {
		this.open = open;
	}	
}



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值