跳到主要內容

fancytree 兩個tree間,節點移動 新增 刪除

//功能樹--
$(function () {
    $("#funcTree").fancytree({
        icon: false,
        clickFolderMode: 1,
        checkbox: true,
        selectMode: 3,
        source: {
            url: $("#funcTree").attr("treesrc")
        },
        select: function (event, data) {
            var selNodes = data.tree.getSelectedNodes();
            var selKeys = $.map(selNodes, function (node) {
              
                //debugger;             
                //if ($("#funcModTree").fancytree("getTree"))getFirstChild() == null)    // error
                //{
                //    var functreeRoot = $("#funcTree").fancytree("getTree").getFirstChild();
                //    var functreeFirstNose = $("#funcTree").fancytree("getTree").getFirstChild().getFirstChild();
                //    var funmodetree = $("#funcModTree").fancytree("getTree");
                //    var funmodetree1 =  funmodetree.addChildren({
                //        title: functreeRoot.title,
                //        key: functreeRoot.key,
                //        folder: false
                //    });
                //    funmodetree1.addChildren({
                //        title: functreeFirstNose.title,
                //        key: functreeFirstNose.key,
                //        folder: false
                //    });
                //}
                //3  左方節點新增到右方樹
                var tree = $("#funcModTree").fancytree("getTree");
                if (tree.getNodeByKey(node.key)  == null)
                {
                    var nodeKey= new Array();
                    nodeKey = node.key.split("_");
                    var parentKey = nodeKey[0] + "_" + nodeKey[1] + "_" + nodeKey[2];
                    if (nodeKey.length == 3)       //add folder node
                    {                      
                        var treefind = $("#funcModTree").fancytree("getTree");
                        var nodefind = treefind.getNodeByKey(parentKey);
                        if (nodefind == null)
                        {
                            var treefind2 = $("#funcTree").fancytree("getTree");
                            var nodefind2 = treefind2.getNodeByKey(parentKey);
                            var rootNode3 = $("#funcModTree").fancytree("getTree").getFirstChild().getFirstChild();
                            var childNode3 = rootNode3.addChildren({
                                title: nodefind2.title,
                                key: nodefind2.key,
                                folder: true
                            });
                        }
                    }
                    else
                    {
                        var treefind4 = $("#funcModTree").fancytree("getTree");
                        var nodefind4 = treefind4.getNodeByKey(parentKey);
                        if (nodefind4 == null)
                        {
                                //add parent node                          
                                var treefind2 = $("#funcTree").fancytree("getTree");
                                var nodefind2 = treefind2.getNodeByKey(parentKey);
                                var rootNode3 = $("#funcModTree").fancytree("getTree").getFirstChild().getFirstChild();
                                var childNode3 = rootNode3.addChildren({
                                    title: nodefind2.title,
                                    key: nodefind2.key,
                                    folder: true
                                });
                                var childNode4 = childNode3.addChildren({
                                    title: node.title,
                                    key: node.key,
                                    folder: false
                                });
                        }
                        else
                        {
                                var childNode4 = nodefind4.addChildren({
                                title: node.title,
                                key: node.key,
                                folder: false
                            });
                        }
                    }                  
                }
                return node.key + "/" + node.title;
            });
            $("#clickTreeResult").text(selKeys.join(", "));
        },
        cookieId: "funcTree",
        idPrefix: "funcTree_"
    });
});

//功能異動樹
$(function () {
    $("#funcModTree").fancytree({
        extensions: ["table"],      
        table: {
            indentation: 20
        },      
        source: {
            url: $("#funcModTree").attr("treesrc")
        },      
        renderColumns: function (event, data) {  
            var node = data.node,
              $tdList = $(node.tr).find(">td");
            if (node.tr.rowIndex != 1 && node.tr.rowIndex != 2) {
                    $tdList.eq(1).html("<input  class='cnnFormButton'  type='button' name='btn1' value='還原' value1='" + node.key + "' > ");
            }
        }
    });    
    $("#funcModTree").delegate("input[name=btn1]", "click", function (e) {
           var node = $.ui.fancytree.getNode(e),
           $input = $(e.target);
           e.stopPropagation();
           //1  右方樹 把自己節點移除
           var tree = $("#funcModTree").fancytree("getTree");
           var node = tree.getNodeByKey($input.attr('value1'));
           node.remove();    //remove node
         
           var nodeKey = new Array();
           nodeKey = $input.attr('value1').split("_");
           var parentKey = nodeKey[0] + "_" + nodeKey[1] + "_" + nodeKey[2];
           if (nodeKey.length == 4)
           {
                  var parentNode = tree.getNodeByKey(parentKey);
                  if (parentNode.children == null)      //no children  0
                  {
                      parentNode.remove();
                  }
           }
               
          //2  將左方樹的該節點 取消選取
           var tree = $("#funcTree").fancytree("getTree");
           var node = tree.getNodeByKey($input.attr('value1'));
           node.setSelected(false);          //checked  false
           node.visit(function (childNode) {
               childNode.setSelected(false);
           });
     
           $("#clickTreeResult").text($input.attr('value1'));
    }); 
});

function getFuncModTree()
{
    var result;
    $("#funcModTree").fancytree("getTree").visit(function (node) {
        if (node != undefined)
        {
              result += node.key + "/" + node.title + ",";
        }
    });
    $("#clickTreeResult").text(result);
}


//生效日
$(function () {
    $("#effectDate").datepicker({
        dateFormat: "yy/mm/dd",
        dafaultDate: new Date(),
        minDate: new Date()
    });
});