Newer
Older
EMS-WEB-3.0 / src / main / webapp / s / app / org / tree.js
wxn on 9 Aug 2016 4 KB first commit
/**
 * Created by lenovo on 2016/5/20.
 */
var tree = {
    zTree: '',
    pNode: '',

    init: {
        initEvent: {
            initRMenu: function () {
                $("#rMenu").hover(function () {//设置进入右键菜单事件
//                    tree.bindClick($("#r_addFolder"),function(){
//                        tree.addFolder();
//                    });

                    tree.bindClick($("#r_addNode"), function () {
                        tree.addNode();
                    });

                    tree.bindClick($("#r_updateNode"), function () {
                        tree.updateNode();
                    });

                    tree.bindClick($("#r_deleteNode"), function () {
                        tree.deleteNode();
                    });
                }, function () {//设置离开右键菜单事件
                    tree.hideItem();
                });
            }
        }
    },
    showRightMenu: function (postionJson) {
        $("#rMenu").css({//设置右键菜单的位置
            top: postionJson.y - 10 + "px",
            left: postionJson.x - 10 + "px",
            display: "block"
        });

        tree.showItem(["#r_addNode", "#r_updateNode", "#r_deleteNode"]);
        tree.init.initEvent.initRMenu();//加载菜单选项的事件
    },
    showItem: function (itemArray) {//显示某些域
        for (var i = 0; i < itemArray.length; i++) {
            $(itemArray[i]).show();
        }
    },
    hideItem: function (itemArray) {//隐藏某些域
        if (itemArray == undefined) {//如果为传入值,则禁用缺省的域
            tree.hideItem(["#rMenu", "#r_addNode", "#r_updateNode", "#r_deleteNode"]);
        }
        for (var i = 0; i < itemArray.length; i++) {
            $(itemArray[i]).hide();
        }
    },

    addNode: function () {//添加节点,将id作为隐藏信息,放到模态框
        $("#treeParentId").text(tree.pNode["id"]);
        //清空之前的值
        $("#featureName").val("");
        $("#memo").val("");
        $("#treeNodeId").val("");
        $("#parentName").children().remove();
        $("#parentName").append("<div>当前节点为:"+tree.pNode["name"]+"</div>");
        $('#newFeature').modal('show');
    },
    updateNode: function () {//更新节点-修改节点名称
        $.ajax({
            type: "POST",
            url: $('#context').val() + "/feature/getFeatureById.do",
            data: {"id": tree.pNode["id"]},
            dataType: "json",
            success: function (r) {
                //获取面的列表,将下拉列表初始化
                if (r.data) {
                    $("#treeNodeId").text(tree.pNode["id"]);
                    $("#treeParentId").text(r.data.parentId);
                    $("#featureName").val(r.data.featureName);
                    $("#memo").val(r.data.memo);
                    $('#newFeature').modal('show');
                }
            },
            error: function (request) {
                //提示错误信息
                alert(r.message);
            }
        });


    },
    deleteNode: function () {//删除节点
            if (window.confirm("如果有子节点则不能删除,请确认!")) {
//                var parentNode = tree.zTree.getNodeByParam("id", tree.pNode.pid);//获取父节点对象
//                tree.zTree.removeNode(tree.pNode);//移除节点
//                parentNode.isParent = true;//设置父节点为文件夹节点
//                tree.zTree.refresh();
                $.ajax({
                    type: "POST",
                    url: $('#context').val() + "/feature/delete.do",
                    dataType: "json",
                    data: {"id": tree.pNode.id},
                    success: function (data) {
                        var jData = eval(data);
                        if (jData.success == true) {
                            alert("删除成功");
                            //刷新页面
                            location.href = $('#context').val() + "/content/org/org.jsp";
                        }
                        alert(jData.message);
                    },
                    error: function (request) {

                        alert("删除失败");

                    }
                });

            }
    },
    createNodeId: function () {//动态生成节点id。生成策略:在父节点id后追加递增数字
        var nodes = tree.zTree.getNodesByParam("pid", tree.pNode.id);
        if (nodes.length == 0) {//生成id的算法
            return tree.pNode.id + "1";
        } else {
            return nodes[nodes.length - 1].id + 1;
        }
    },
    bindClick: function (obj, fn) {//绑定click事件
        obj.unbind("click");
        obj.bind("click", fn);
    }
};