| 
					
				 | 
			
			
				@@ -458,6 +458,8 @@ const projTreeObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             canCopy == true?$("#copy-to-confirm").removeClass("disabled"):$("#copy-to-confirm").addClass("disabled"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return;//如果是复制到表,不用做后面的操作 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else if(sheet.name() == "replaceSheet"){//如果是替换文件,不用做后面的操作 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.tree.selected = node; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         shareSeleted = node; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -502,6 +504,11 @@ const projTreeObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $("#mr_from").val(projTreeObj.setting.header[args.col].dataCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $("#project_name").text(projTreeObj.tree.selected.data.name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $('#m_replace_file').modal('show'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else if(args.sheet.name() == "replaceSheet"){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let cellType = args.sheet.getCellType(args.row, args.col); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(cellType instanceof GC.Spread.Sheets.CellTypes.CheckBox){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                projTreeObj.onReplaceNodeCheck(sender,args); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     onDragDropBlock : function (sender,args) {//拖动移动项目位置 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -978,7 +985,7 @@ const projTreeObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for(let j = 0; j < headers.length; j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     sheet.getRange(-1, j, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign[headers[j]['hAlign']]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     sheet.getRange(-1, j, -1, 1).vAlign(GC.Spread.Sheets.VerticalAlign[headers[j]['vAlign']]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(headers[j].cellType == "checkBox"){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(headers[j].cellType == "checkBox" && nodes[i].data.canSelect === true){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         sheet.setCellType(i, j,new GC.Spread.Sheets.CellTypes.CheckBox(),GC.Spread.Sheets.SheetArea.viewport); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         sheet.getCell(i, j).hAlign(GC.Spread.Sheets.HorizontalAlign.center); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1084,7 +1091,6 @@ const projTreeObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let data ={"project_id":node.data.ID,"rootProjectID":node.data.property.rootProjectID}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let result = await ajaxPost("/glj/get-project-info",data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.getFileListWithPath(result.other); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        console.log(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //数据结构不一样,这里做一下转换 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let t_result = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             currentProject:{ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1094,12 +1100,8 @@ const projTreeObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             others:result.other 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return t_result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     getFileListWithPath:function (list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for(let n of list){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let node = projTreeObj.tree.findNode(n.ID); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1172,15 +1174,73 @@ const projTreeObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sheet.options.isProtected = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sheet.name('replaceSheet'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let datas = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for(let i of me.tree.items){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            datas.push(i.data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for(let i of me.tree.items){//要挑出同个建设项目的节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(me.isReplaceNode(i) == true){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let tem = _.cloneDeep(i.data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(tem.projType == "Tender") tem.canSelect = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(i == me.tree.selected) tem.selected = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                datas.push(tem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.replaceTree  = pmTree.createNew(projTreeObj.setting, datas); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.showTreeData(me.replaceTree.items, me.replaceSetting, sheet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    isReplaceNode:function (node) {//只加载本建设项目的节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let isReplaceNode = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let selected = this.tree.selected; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let rootProjectID = selected.data.property.rootProjectID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let rootNode = this.tree.findNode(rootProjectID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(rootNode){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let IDMap = this.getAllParentNodeID(selected); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            isReplaceNode = IDMap[node.data.ID]!==undefined ||node.data.ID == rootProjectID ||  node.data.ParentID == rootProjectID || (node.data.property &&node.data.property.rootProjectID == rootProjectID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return isReplaceNode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getAllParentNodeID:function (node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       let IDMap = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       getPID(node,IDMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       return IDMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        function getPID(node,map) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(node.parent && node.data.ParentID != -1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                map[node.data.ParentID] = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                getPID(node.parent,map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onReplaceNodeCheck:function(sender,args){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let checkboxValue = args.sheet.getCell(args.row, args.col).value(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let newval = checkboxValue?0:1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let node = projTreeObj.replaceTree.items[args.row]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(node.data.ID  === projTreeObj.tree.selected.data.ID) return; //如果是项目管理界面选中的节点,不给取消 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        projTreeObj.setReplaceSelection(node,newval,args.row,args.col,args.sheet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    setReplaceSelection:function (node,value,row,col,sheet) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sheet.getCell(row, col).value(value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        node.data.selected = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    selectSameTypeProject:function (value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let node = this.tree.selected; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let engineering_id = node.data.property.engineering_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for(let i=0 ;i< this.replaceTree.items.length ; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let tnode = this.replaceTree.items[i]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(tnode.data.ID == node.data.ID) continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(tnode && tnode.data.property && tnode.data.property.engineering_id == engineering_id){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.setReplaceSelection(tnode,value,i,1,this.replaceWorkBook.getActiveSheet()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    confirmFileChange : function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let selectProjects =[]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for(let i of this.replaceTree.items){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(i.data.selected === 1) selectProjects.push(i) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(selectProjects); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(selectProjects.length > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     insert: function (data, parent, next) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let preNode = this.tree.items[this.preSelection.row]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let node = this.tree.addNodeData(data, parent, next); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1741,6 +1801,15 @@ $(document).ready(function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $('#selectSameTypeProject').click(function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let value = $(this).prop('checked') == true?1:0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            projTreeObj.selectSameTypeProject(value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $('#changeFileConfirm').click(function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        projTreeObj.confirmFileChange(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     function changeEngineering(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $('#engineering-info').hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         initFeeStandardSel(); 
			 |