|  | @@ -62,6 +62,12 @@ let zTreeOprObj = {
 | 
	
		
			
				|  |  |          params.isPhysically = true;
 | 
	
		
			
				|  |  |          CommonAjax.postEx("report_tpl_api/removeTreeRootNode", params, 5000, isAsync, callback, failCallback, null);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | +    copyReportTemplate: function(rawNode, newID, isAsync, callback, failCallback) {
 | 
	
		
			
				|  |  | +        let params = {};
 | 
	
		
			
				|  |  | +        params.orgRptTplId = rawNode.ID;
 | 
	
		
			
				|  |  | +        params.newRptTplId = newID;
 | 
	
		
			
				|  |  | +        CommonAjax.postEx("report_tpl_api/copyRptTpl", params, 5000, isAsync, callback, failCallback, null);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      updateTreeRootNode: function(rawNode, isAsync, callback, failCallback) {
 | 
	
		
			
				|  |  |          let params = {};
 | 
	
		
			
				|  |  |          params.doc = rawNode;
 | 
	
	
		
			
				|  | @@ -303,33 +309,43 @@ let zTreeOprObj = {
 | 
	
		
			
				|  |  |      onDrop: function (event, treeId, treeNodes, targetNode, moveType, isCopy) {
 | 
	
		
			
				|  |  |          let me = zTreeOprObj;
 | 
	
		
			
				|  |  |          let targetTopNode = me.getTopNodeByCurrentNode(targetNode);
 | 
	
		
			
				|  |  | -        let newTopNode = me.buildRootNodeDoc(targetTopNode);
 | 
	
		
			
				|  |  | +        let newTopNode = null;
 | 
	
		
			
				|  |  |          let canContinue = false;
 | 
	
		
			
				|  |  | -        me.updateTreeRootNode(newTopNode, false, function(rst){
 | 
	
		
			
				|  |  | -            if (!(rst)) {
 | 
	
		
			
				|  |  | -                $("#id_after_saved_lbl")[0].style.color = "red";
 | 
	
		
			
				|  |  | -                $("#id_after_saved_lbl")[0].innerHTML = "移动请求失败!";
 | 
	
		
			
				|  |  | -                setTimeout(function(){
 | 
	
		
			
				|  |  | -                    $("#id_after_saved_lbl")[0].innerHTML = "";
 | 
	
		
			
				|  |  | -                }, 1000);
 | 
	
		
			
				|  |  | -            } else {
 | 
	
		
			
				|  |  | -                canContinue = true;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | -        if (canContinue && !isCopy && me.moveSrcTopNode) {
 | 
	
		
			
				|  |  | -            let newSrcTopNode = me.buildRootNodeDoc(me.moveSrcTopNode);
 | 
	
		
			
				|  |  | -            me.updateTreeRootNode(newSrcTopNode, true, function(rst){
 | 
	
		
			
				|  |  | +        if (isCopy) {
 | 
	
		
			
				|  |  | +            me.getNewNodeID(1, function (newNodeID) {
 | 
	
		
			
				|  |  | +                treeNodes[0].refId = newNodeID;
 | 
	
		
			
				|  |  | +                newTopNode = me.buildRootNodeDoc(targetTopNode);
 | 
	
		
			
				|  |  | +                me.copyReportTemplate(treeNodes[0], newNodeID, true, function(goodResult){
 | 
	
		
			
				|  |  | +                    me.updateTreeRootNode(newTopNode, false, function(rst){
 | 
	
		
			
				|  |  | +                        if (!(rst)) {
 | 
	
		
			
				|  |  | +                            displayMessage("移动请求失败!", "red", 1000);
 | 
	
		
			
				|  |  | +                        } else {
 | 
	
		
			
				|  |  | +                            canContinue = true;
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    });
 | 
	
		
			
				|  |  | +                }, function(badResult){
 | 
	
		
			
				|  |  | +                    displayMessage("Copy请求失败!", "red", 1000);
 | 
	
		
			
				|  |  | +                });
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            newTopNode = me.buildRootNodeDoc(targetTopNode);
 | 
	
		
			
				|  |  | +            me.updateTreeRootNode(newTopNode, false, function(rst){
 | 
	
		
			
				|  |  |                  if (!(rst)) {
 | 
	
		
			
				|  |  | -                    $("#id_after_saved_lbl")[0].style.color = "red";
 | 
	
		
			
				|  |  | -                    $("#id_after_saved_lbl")[0].innerHTML = "移动请求失败!";
 | 
	
		
			
				|  |  | -                    setTimeout(function(){
 | 
	
		
			
				|  |  | -                        $("#id_after_saved_lbl")[0].innerHTML = "";
 | 
	
		
			
				|  |  | -                    }, 1000);
 | 
	
		
			
				|  |  | +                    displayMessage("移动请求失败!", "red", 1000);
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    canContinue = true;
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              });
 | 
	
		
			
				|  |  | -            //
 | 
	
		
			
				|  |  | +            if (canContinue && !isCopy && me.moveSrcTopNode) {
 | 
	
		
			
				|  |  | +                let newSrcTopNode = me.buildRootNodeDoc(me.moveSrcTopNode);
 | 
	
		
			
				|  |  | +                me.updateTreeRootNode(newSrcTopNode, true, function(rst){
 | 
	
		
			
				|  |  | +                    if (!(rst)) {
 | 
	
		
			
				|  |  | +                        displayMessage("移动请求失败!", "red", 1000);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                });
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            me.moveSrcTopNode = null;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        me.moveSrcTopNode = null;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      changeUser: function (dom) {
 | 
	
		
			
				|  |  |          if (dom.id === "custRptOpt") {
 | 
	
	
		
			
				|  | @@ -657,4 +673,12 @@ let zTreeOprObj = {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return resultPNode;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -};
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +function displayMessage(message, color, disappearTime) {
 | 
	
		
			
				|  |  | +    $("#id_after_saved_lbl")[0].style.color = color;
 | 
	
		
			
				|  |  | +    $("#id_after_saved_lbl")[0].innerHTML = message;
 | 
	
		
			
				|  |  | +    setTimeout(function(){
 | 
	
		
			
				|  |  | +        $("#id_after_saved_lbl")[0].innerHTML = "";
 | 
	
		
			
				|  |  | +    }, disappearTime);
 | 
	
		
			
				|  |  | +}
 |