解决方案 »

  1.   

    附上代码
    /**授权按钮响应事件*/
    var usermanager_shouquan =function(){
    var source=$('#yiyouziyuan');
    var target=$('#weiyouziyuan');
    var checked = target.tree('getChecked');
    if (checked.length == 0) {
    $.messager.alert('提示','请选择权限!','info');
    return false;
    }
    for ( var i = checked.length - 1; i >= 0; i--) {
    if (target.tree('isLeaf', checked[i].target)) {//只针对叶子节点,父节点会自动通过getParent方法获取后自动建立
    moveNode( target,source, checked[i]);
    }
    }
    //移除节点
    for ( var i = checked.length - 1; i >= 0; i--){
    target.tree('remove', checked[i].target);
    }
    }
    /**取消按钮响应事件*/
    var usermanager_quxiao = function(){
    var source=$('#yiyouziyuan');
    var target=$('#weiyouziyuan');
    var checked = source.tree('getChecked');
    if (checked.length == 0) {
    $.messager.alert('提示','请选择权限!','info');
    return false;
    }
    for ( var i = checked.length - 1; i >= 0; i--) {
    if (source.tree('isLeaf', checked[i].target)) {//只针对叶子节点,父节点会自动通过getParent方法获取后自动建立
    moveNode(source, target, checked[i]);
    }
    }
    //移除节点
    for ( var i = checked.length - 1; i >= 0; i--){
    source.tree('remove', checked[i].target);
    }
    }/**授权或取消权限调用的建立节点方法*/
    function moveNode(source, target, node) { //建立节点的路径
    var pNode, pNodeData = [], pid;
    pNode = source.tree('getParent', node.target); //收集父节点
    pid = pNode.id;
    do {
    if (pNodeData.length > 0)
    pNodeData[pNodeData.length - 1].pid = pNode.id; //更新上一个父节点的父节点id
    pNodeData.push({
    id : pNode.id,
    text : pNode.text
    });
    } while (pNode = source.tree('getParent', pNode.target));
    //从根节点建立路劲
    for ( var i = pNodeData.length - 1; i >= 0; i--) {
    if (!target.tree('find', pNodeData[i].id))
    target.tree('append', {
    parent : pNodeData[i].pid ? target.tree('find', pNodeData[i].pid).target : null,
    data : {
    id : pNodeData[i].id,
    text : pNodeData[i].text
    }
    });
    }
    target.tree('append', {
    parent : target.tree('find', pid).target,
    data : {
    id : node.id,
    text : node.text
    }
    });
    }
      

  2.   

    我们做法是每次点按钮都当右为空。全新从左边读取已经选择的数据组成json生成右边的数。