|  | @@ -43,6 +43,8 @@ var zTreeOprObj = {
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      addRootNode: function() {
 | 
	
		
			
				|  |  | +        $('#addRootA').css("opacity", "0.2");
 | 
	
		
			
				|  |  | +        $('#addRootA').addClass("disabled");
 | 
	
		
			
				|  |  |          var me = zTreeOprObj, rawNode = {ParentID: -1, NextSiblingID: -1, name: "新增节点"}, lastNodeId = -1;
 | 
	
		
			
				|  |  |          if (me.treeObj) {
 | 
	
		
			
				|  |  |              var rootNodes = me.treeObj.getNodes();
 | 
	
	
		
			
				|  | @@ -52,13 +54,18 @@ var zTreeOprObj = {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          me.addNewNode(rawNode, lastNodeId, function(err, rst){
 | 
	
		
			
				|  |  |              if (!(err)) {
 | 
	
		
			
				|  |  | +                if(rootNodes.length > 0){
 | 
	
		
			
				|  |  | +                    rootNodes[rootNodes.length - 1].NextSiblingID = rst.data.ID;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |                  var newNodes = [], isSilent = false;
 | 
	
		
			
				|  |  | -                newNodes.push({ rationRepId: rst.data.rationRepId, ID: rst.data.ID, ParentID:-1, NextSiblingID:-1, name:"新增节点",isParent:false, items:[]});
 | 
	
		
			
				|  |  | +                newNodes.push({ rationRepId: rst.data.rationRepId, Previous_ID: lastNodeId, ID: rst.data.ID, ParentID:-1, NextSiblingID:-1, name:"新增节点",isParent:false, items:[]});
 | 
	
		
			
				|  |  |                  if (me.treeObj) {
 | 
	
		
			
				|  |  |                      me.treeObj.addNodes(null, -1, newNodes, isSilent);
 | 
	
		
			
				|  |  |                  } else {
 | 
	
		
			
				|  |  |                      me.treeObj = $.fn.zTree.init($("#rationChapterTree"), setting, newNodes);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | +                $('#addRootA').css("opacity", "");
 | 
	
		
			
				|  |  | +                $('#addRootA').removeClass("disabled");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |      },
 | 
	
	
		
			
				|  | @@ -132,7 +139,114 @@ var zTreeOprObj = {
 | 
	
		
			
				|  |  |              //me.treeObj.updateNode(pNode, false); //这方法有后遗症,多次操作后会造成节点新增子节点时,父节点icon显示不正确
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    updateNodes: function(nodes){
 | 
	
		
			
				|  |  | +    beforeDrop: function (treeId, treeNodes, targetNode, moveType) {
 | 
	
		
			
				|  |  | +        let me = zTreeOprObj;
 | 
	
		
			
				|  |  | +        if(moveType){
 | 
	
		
			
				|  |  | +             me.treeObj.setting.edit.enable = false;
 | 
	
		
			
				|  |  | +            let treeNode = treeNodes[0], updateNodes = [];
 | 
	
		
			
				|  |  | +            //升级
 | 
	
		
			
				|  |  | +            if(treeNode.level !== targetNode.level && moveType === 'prev'){
 | 
	
		
			
				|  |  | +                if(treeNode.Previous_ID !== -1){
 | 
	
		
			
				|  |  | +                    treeNode.getPreNode().NextSiblingID = treeNode.NextSiblingID;
 | 
	
		
			
				|  |  | +                    updateNodes.push(treeNode.getPreNode());
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(treeNode.NextSiblingID !== -1){
 | 
	
		
			
				|  |  | +                    treeNode.getNextNode().Previous_ID = treeNode.Previous_ID;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(targetNode.Previous_ID !== -1){
 | 
	
		
			
				|  |  | +                    targetNode.getPreNode().NextSiblingID = treeNode.ID;
 | 
	
		
			
				|  |  | +                    updateNodes.push(targetNode.getPreNode());
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                treeNode.ParentID = targetNode.getParentNode() ? targetNode.getParentNode().ID : -1;
 | 
	
		
			
				|  |  | +                treeNode.NextSiblingID = targetNode.ID;
 | 
	
		
			
				|  |  | +                treeNode.Previous_ID = targetNode.Previous_ID;
 | 
	
		
			
				|  |  | +                targetNode.Previous_ID = treeNode.ID;
 | 
	
		
			
				|  |  | +                updateNodes.push(treeNode);
 | 
	
		
			
				|  |  | +                //updateNodes.push(targetNode);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            //升级
 | 
	
		
			
				|  |  | +            else if(treeNode.level !== targetNode.level && moveType === 'next'){
 | 
	
		
			
				|  |  | +                if(treeNode.Previous_ID !== -1){
 | 
	
		
			
				|  |  | +                    treeNode.getPreNode().NextSiblingID = treeNode.NextSiblingID;
 | 
	
		
			
				|  |  | +                    updateNodes.push(treeNode.getPreNode());
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(treeNode.NextSiblingID !== -1){
 | 
	
		
			
				|  |  | +                    treeNode.getNextNode().Previous_ID = treeNode.Previous_ID;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(targetNode.NextSiblingID !== -1){
 | 
	
		
			
				|  |  | +                    targetNode.getNextNode().Previous_ID = treeNode.ID;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                treeNode.NextSiblingID = targetNode.NextSiblingID;
 | 
	
		
			
				|  |  | +                treeNode.Previous_ID = targetNode.ID;
 | 
	
		
			
				|  |  | +                treeNode.ParentID = targetNode.getParentNode() ? targetNode.getParentNode().ID : -1;
 | 
	
		
			
				|  |  | +                targetNode.NextSiblingID = treeNode.ID;
 | 
	
		
			
				|  |  | +                updateNodes.push(treeNode);
 | 
	
		
			
				|  |  | +                updateNodes.push(targetNode);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            //上移
 | 
	
		
			
				|  |  | +            else if(treeNode.level === targetNode.level && moveType === 'prev'){
 | 
	
		
			
				|  |  | +                    console.log(1);
 | 
	
		
			
				|  |  | +                    if(targetNode.Previous_ID !== -1){
 | 
	
		
			
				|  |  | +                        let targetPrev = me.treeObj.getNodeByParam('ID', targetNode.Previous_ID,  null);
 | 
	
		
			
				|  |  | +                        targetPrev.NextSiblingID = treeNode.ID;
 | 
	
		
			
				|  |  | +                        updateNodes.push(targetPrev);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    targetNode.NextSiblingID = treeNode.NextSiblingID;
 | 
	
		
			
				|  |  | +                    treeNode.NextSiblingID = targetNode.ID;
 | 
	
		
			
				|  |  | +                    treeNode.Previous_ID = targetNode.Previous_ID;
 | 
	
		
			
				|  |  | +                    targetNode.Previous_ID = treeNode.ID;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    updateNodes.push(treeNode);
 | 
	
		
			
				|  |  | +                    updateNodes.push(targetNode);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            //下移
 | 
	
		
			
				|  |  | +            else if(treeNode.level === targetNode.level && moveType === 'next'){
 | 
	
		
			
				|  |  | +                if(treeNode.Previous_ID !== -1){
 | 
	
		
			
				|  |  | +                    let treeNodePrev = me.treeObj.getNodeByParam('ID', treeNode.Previous_ID, null);
 | 
	
		
			
				|  |  | +                    treeNodePrev.NextSiblingID = targetNode.ID;
 | 
	
		
			
				|  |  | +                    updateNodes.push(treeNodePrev);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                treeNode.Previous_ID = targetNode.ID;
 | 
	
		
			
				|  |  | +                treeNode.NextSiblingID = targetNode.NextSiblingID;
 | 
	
		
			
				|  |  | +                targetNode.Previous_ID = treeNode.Previous_ID;
 | 
	
		
			
				|  |  | +                targetNode.NextSiblingID = treeNode.ID;
 | 
	
		
			
				|  |  | +                updateNodes.push(treeNode);
 | 
	
		
			
				|  |  | +                updateNodes.push(targetNode);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            //
 | 
	
		
			
				|  |  | +            else if(moveType === 'inner'){
 | 
	
		
			
				|  |  | +                if( treeNode.Previous_ID !== -1){
 | 
	
		
			
				|  |  | +                    treeNode.getPreNode().NextSiblingID = treeNode.NextSiblingID;
 | 
	
		
			
				|  |  | +                    updateNodes.push(treeNode.getPreNode());
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(treeNode.NextSiblingID !== -1){
 | 
	
		
			
				|  |  | +                    treeNode.getNextNode().Previous_ID = treeNode.Previous_ID;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(targetNode.items.length > 0){
 | 
	
		
			
				|  |  | +                    targetNode.items[targetNode.items.length -1].NextSiblingID = treeNode.ID;
 | 
	
		
			
				|  |  | +                    treeNode.Previous_ID = targetNode.items[targetNode.items.length -1].ID;
 | 
	
		
			
				|  |  | +                    updateNodes.push(targetNode.items[targetNode.items.length -1]);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                else{
 | 
	
		
			
				|  |  | +                    treeNode.Previous_ID = -1;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                treeNode.ParentID = targetNode.ID;
 | 
	
		
			
				|  |  | +                treeNode.NextSiblingID = -1;
 | 
	
		
			
				|  |  | +                updateNodes.push(treeNode);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if(updateNodes.length > 0){
 | 
	
		
			
				|  |  | +                me.updateNodes(updateNodes, function () {
 | 
	
		
			
				|  |  | +                    me.treeObj.setting.edit.enable= true;
 | 
	
		
			
				|  |  | +                });
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    onDrop: function (event, treeId, treeNodes, targetNode, moveType) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    updateNodes: function(nodes, callback){
 | 
	
		
			
				|  |  |          if (nodes && nodes.length > 0) {
 | 
	
		
			
				|  |  |              var reqData = []
 | 
	
		
			
				|  |  |              for (var i = 0; i < nodes.length; i++) {
 | 
	
	
		
			
				|  | @@ -146,6 +260,7 @@ var zTreeOprObj = {
 | 
	
		
			
				|  |  |                  else node.__v = 0;
 | 
	
		
			
				|  |  |                  reqData.push(node);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +            console.log(reqData);
 | 
	
		
			
				|  |  |              $.ajax({
 | 
	
		
			
				|  |  |                  type:"POST",
 | 
	
		
			
				|  |  |                  url:"api/updateNodes",
 | 
	
	
		
			
				|  | @@ -154,6 +269,9 @@ var zTreeOprObj = {
 | 
	
		
			
				|  |  |                  cache:false,
 | 
	
		
			
				|  |  |                  timeout:5000,
 | 
	
		
			
				|  |  |                  success:function(result,textStatus,status){
 | 
	
		
			
				|  |  | +                    if(callback){
 | 
	
		
			
				|  |  | +                        callback();
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |                      console.log(status + ' : ' + result);
 | 
	
		
			
				|  |  |                  },
 | 
	
		
			
				|  |  |                  error:function(){
 | 
	
	
		
			
				|  | @@ -185,8 +303,9 @@ var zTreeOprObj = {
 | 
	
		
			
				|  |  |                          if (lastNode) {
 | 
	
		
			
				|  |  |                              lastNode.NextSiblingID = rst.ID;
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  | -                        newNodes.push({ rationRepId: rst.data.rationRepId, ID: rst.data.ID, ParentID: rst.data.ParentID, NextSiblingID:-1, name:"新增子节点",isParent:false, items:[]});
 | 
	
		
			
				|  |  | +                        newNodes.push({ rationRepId: rst.data.rationRepId, ID: rst.data.ID, Previous_ID: lastNodeId, ParentID: rst.data.ParentID, NextSiblingID:-1, name:"新增子节点",isParent:false, items:[]});
 | 
	
		
			
				|  |  |                          treeNode.isParent = true;
 | 
	
		
			
				|  |  | +                        console.log(newNodes);
 | 
	
		
			
				|  |  |                          if (me.treeObj) {
 | 
	
		
			
				|  |  |                              me.treeObj.addNodes(treeNode, -1, newNodes, isSilent);
 | 
	
		
			
				|  |  |                          } else {
 | 
	
	
		
			
				|  | @@ -203,6 +322,8 @@ var zTreeOprObj = {
 | 
	
		
			
				|  |  |          $("#addBtn_"+treeNode.tId).unbind().remove();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      onClick: function(event,treeId,treeNode) {
 | 
	
		
			
				|  |  | +        console.log(`treeNode`);
 | 
	
		
			
				|  |  | +        console.log(treeNode);
 | 
	
		
			
				|  |  |          var sectionID = treeNode.ID;
 | 
	
		
			
				|  |  |          if (!(treeNode.items) || treeNode.items.length == 0) {
 | 
	
		
			
				|  |  |              rationOprObj.getRationItems(sectionID);
 |