| 
					
				 | 
			
			
				@@ -1,3 +1,4 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * Created by Mai on 2017/4/1. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -542,10 +543,19 @@ var PROJECT = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        project.prototype.updateParentNode = function(node,parentID,addNodeDatas){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            addNodeDatas.push({type:node.sourceType,data:node.data,parentID:parentID}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for(let c of node.children){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.updateParentNode(c,node.getID(),addNodeDatas); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         project.prototype.updateNodesCache =function (datas) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let refreshNode = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let reclacQuantity = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let deleteNode=[],addNodeDatas=[]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let changeParentIDMap = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for(let d of datas){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let temObj = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if(d.type == ModuleNames.bills || d.type == ModuleNames.ration){//如果是树节点类型,直接取树节点更新 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -567,6 +577,12 @@ var PROJECT = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 temObj = temNode.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 if(gljUtil.isDef(d.data.quantity))reclacQuantity = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 refreshNode.push(temNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if(d.data.ParentID){//更新了父节点-相当于删了再添加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    changeParentIDMap[temNode.data.ParentID] = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                   deleteNode.push(temNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                   this.updateParentNode(temNode,d.data.ParentID,addNodeDatas); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                }  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -590,22 +606,38 @@ var PROJECT = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //对树节点的操作并删除、添加清单、删除添加定额、删除对应的定额工料机缓存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             TREE_SHEET_HELPER.massOperationSheet(projectObj.mainController.sheet, function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                deleteTreeNodes(deleteNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                addNewNodes(addNodeDatas,refreshNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let rationsDatas=[]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let billsDatas=[]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for(let a of addNodeDatas){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(a.type == ModuleNames.bills)  billsDatas.push(a); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(a.type == ModuleNames.ration)  rationsDatas.push(a); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                deleteTreeNodes(deleteNode);      
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                addNewNodes(billsDatas,refreshNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                addNewNodes(rationsDatas,refreshNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for(let pID in changeParentIDMap){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              let pnode =  this.mainTree.getNodeByID(pID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              getNextRefreshNode(pnode,refreshNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(reclacQuantity) this.projectGLJ.calcQuantity(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return refreshNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            function getNextRefreshNode(node,refreshNode){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(node.nextSibling){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    refreshNode.push(node.nextSibling) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    getNextRefreshNode(node.nextSibling,refreshNode) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             function deleteTreeNodes(deleteNodes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let controller = projectObj.mainController, project = projectObj.project; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let Bill = project.Bills, Ration = project.Ration; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for(let rd of deleteNodes){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    controller.sheet.deleteRows(rd.serialNo(),1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    controller.sheet.deleteRows(rd.serialNo(),rd.posterityCount + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     controller.tree.delete(rd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if(rd.sourceType == Bill.getSourceType()) Bill.tree.delete(rd.source); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -616,11 +648,12 @@ var PROJECT = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let newAddNode = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for(let nr of newDatas){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     let nextID = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let parentID = nr.parentID || (nr.data && nr.data.ParentID || -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     let preNode = projectObj.project.mainTree.getNodeByID(nr.preSiblingID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if(preNode) nextID = preNode.getNextSiblingID(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    let newNode = projectObj.project.mainTree.insert(nr.parentID, nextID, nr.data.ID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let newNode = projectObj.project.mainTree.insert(parentID, nextID, nr.data.ID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if(nr.type == ModuleNames.bills){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        let newSource = Bill.tree.insertByData(nr.data, nr.ParentID, nextID, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        let newSource = Bill.tree.insertByData(nr.data, parentID, nextID, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         newNode.source = newSource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         newNode.source = nr.data; 
			 |