ztree小试牛刀

68 篇文章 0 订阅

ztree page

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<HTML>
<HEAD>
    <TITLE> 商城后台管理</TITLE>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" href="css/demo.css" type="text/css">
    <link rel="stylesheet" href="css/zTreeStyle/zTreeStyle.css" type="text/css">
    <script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
    <script type="text/javascript" src="js/jquery.ztree.core.js"></script>
    <script type="text/javascript" src="js/jquery.ztree.excheck.js"></script>
    <script type="text/javascript" src="js/jquery.ztree.exedit.js"></script>
    
    <SCRIPT type="text/javascript">
        var setting = {
            view: {
                addHoverDom: addHoverDom,
                removeHoverDom: removeHoverDom,
                selectedMulti: false
            },
            async: {
                enable: true,
                url: "ztree/get",
                autoParam: ["id"]
            },
            edit: {
                enable: true,
                editNameSelectAll: true,
                showRemoveBtn: showRemoveBtn,
                showRenameBtn: showRenameBtn
            },
            data: {
                simpleData: {
                    enable: true,
                    idKey:"id",
                    pIdKey:"parent_id",
                    rootPId:0
                }
            },
            callback: { 
                onAsyncSuccess : function(event, treeId, treeNode, msg){ 
            },
                beforeDrag: beforeDrag,
                beforeEditName: beforeEditName,
                beforeRemove: beforeRemove,
                beforeRename: beforeRename,
                onClick: zTreeOnClick
            }
        };
        var  zNodes =[];//树节点,json格式,异步加载可设置为null或[]
        var zTreeObj;//树对象
        
        //拖拽之前
        function beforeDrag(treeId, treeNodes) {
            return false;
        }
        //编辑之前
        function beforeEditName(treeId, treeNode) {
            var zTree = $.fn.zTree.getZTreeObj("treeDemo");
            zTree.selectNode(treeNode);
            setTimeout(function() {
                if (confirm("进入节点 -- " + treeNode.name + " 的编辑状态吗?")) {
                    setTimeout(function() {
                        //获取原节点的名称
                        var oldName=treeNode.nodeName;
                        alert("old;"+oldName);
                        zTree.editName(treeNode);
                        //获取原节点的名称
                        var newName=treeNode.nodeName;
                        alert("new;"+newName);
                        if(newName==""){
                            //获取父节点
                            var node=treeNode.getParentNode();
                            zTree.reAsyncChildNodes(node,"refresh");
                            alert("名称不能为空!");
                        }//修改名称相同,不操作
                        //else if(newName!= treeNode.nodeName){
                        else if(newName!= oldName){
                            $.ajax({
                                url:"ztree/editNodeName",
                                data:{id:treeNode.id,name:newName,pId:treeNode.pId},
                                cache:false,
                                dataType:'JSON',
                                type:'post',
                                success:function(data){
                                    if(data.success){
                                        alert(data.msg);
                                    }//修改失败
                                    else{
                                        var node=treeNode.getParentNode();
                                        //回到旧名称
                                        zTree.reAsyncChildNodes(nodes,"refresh")
                                        alert(data.msg);
                                    }
                                }
                            })
                        }
                    }, 0);
                }
            }, 0);
            return false;
        }
        //删除之前
        function beforeRemove(treeId, treeNode) {
            var zTree = $.fn.zTree.getZTreeObj("treeDemo");
            zTree.selectNode(treeNode);
            //return confirm("确认删除 节点 -- " + treeNode.name + " 吗?");
            //父节点不能删除
            if(treeNode.pId!=0){
                 confirm(" 不能删除根节点 :" + treeNode.name + " !");
                 return false;
            }
            if(confirm("确认删除 节点 :" + treeNode.name + " 吗?")){
                $.post('ztree/deleteByIds?ids='+treeNode.id,function(data){
                    //删除成功
                    if(data.success){
                        //从视角上删除
                        zTree.removeNode(treeNode);
                        //真正的删除
                        alert(data.msg);
                    }else{
                        alert(data.msg);
                        return false;
                    }
                });
            }
        }
        
        //改名之前
        function beforeRename(treeId, treeNode, newName, isCancel) {
            if (newName.length == 0) {
                setTimeout(function() {
                    var zTree = $.fn.zTree.getZTreeObj("treeDemo");
                    zTree.cancelEditName();
                    alert("节点名称不能为空.");
                }, 0);
                return false;
            }
            return true;
        }
        
        //显示删除按钮
        function showRemoveBtn(treeId, treeNode) {
            
            return !treeNode.isFirstNode;
        }
        //显示修改按钮
        function showRenameBtn(treeId, treeNode) {
            
            return true;
        }

        var newCount = 1;
        //鼠标移动显示控件
        function addHoverDom(treeId, treeNode) {
            //alert("add..");
            //显示增加按钮
            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 nodes=zTree.addNodes(treeNode, {id:(100 + newCount), pId:treeNode.id, name:"我的文件夹" + (newCount++)});
                //后台添加新节点
                $.ajax({
                    url:"ztree/addNode",
                    data:{parentId:nodes[0].pId,name:nodes[0].nodeName},
                    cache:false,
                    dataType:'JSON',
                    type:'post',
                    success:function(data){
                        if(data.success){
                            alert(data.msg);
                        }else{
                            zTree.updateNode(nodes[0]);
                            alert(data.msg);
                        }
                    }
                })
                
                
                return false;
            });
        };
        //隐藏增加按钮
        function removeHoverDom(treeId, treeNode) {
            $("#addBtn_"+treeNode.tId).unbind().remove();
        };
        //节点点击
        function zTreeOnClick(event, treeId, treeNode) {
            //调用父类页面
            window.parent.fuzhi(treeNode.name);
            //alert(treeNode.tId + ", " + treeNode.name);
        };
        //初始化
        $(document).ready(function(){        
            $.fn.zTree.init($("#treeDemo"), setting,zNodes);
        });
    </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}
    </style>
</head>

<body>
    <div class="zTreeDemoBackground left">
        <ul id="treeDemo" class="ztree"></ul>
    </div>
</body>
</html>

controller:

package com.junal.back.controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.junal.back.domain.TreeNode;
import com.junal.back.domain.TreeNode01;
import com.junal.back.service.MenuService;

/**
 * ztree menu
 * @author aL-Jun
 *
 */
@Controller
@RequestMapping("ztree")
public class MenuController {

    //依赖注入
    @Autowired
    private MenuService<TreeNode> menuService;
    
    /**
     * 默认一级菜单0
     * @param id
     * @return
     */
    @RequestMapping("/get")
    @ResponseBody
    public List<Map<String, Object>> getTreeDate(@RequestParam(defaultValue="0")Long  id){
        //查询同级菜单
        List<TreeNode> list=menuService.getMenuList(id);        
        List< Map<String, Object> > listMap=new ArrayList<Map<String, Object>>();
        //组装
        for(int i=0;i<list.size();i++){
            Map<String, Object> map=new HashMap<String, Object>();
            map.put("id", ((TreeNode) list.get(i)).getId());
            map.put("pId", ((TreeNode) list.get(i)).getParent_id());
            map.put("name", ((TreeNode) list.get(i)).getText());
            //节点展开与关闭
            //if((TreeNode)list.get(i).g)    
            map.put("isParent", "true");            
            listMap.add(map);            
        }
        
        System.out.println(list.toString());
        return listMap;
    } 
    
    /**
     * 删除菜单节点
     * @param ids
     * @return
     */
    @RequestMapping("/deleteByIds")
    public String deleteNodeByIds(Long [] ids){
        
        System.out.println("准备删除节点。。。");
        return "";
    }
    
    /**
     * 添加节点
     * @return
     */
    @RequestMapping("/addNode")
    public String addNode(Long id,String nodeName){
        System.out.println("add...");
        
        return "";
    }
    
    
    
    /**
     * 修改版节点
     * @return
     */
    @RequestMapping("/editNodeName")
    public String editNodeName(Long id,String name,Long pId){
        System.out.println("修改...");
        
        return "";
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值