| 
					
				 | 
			
			
				@@ -1,9 +1,20 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Created by Mai on 2017/2/24. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 项目管理相关js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @author CaiAoLin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @date 2017/8/22 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @version 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var Tree = null, movetoZTree = null, copytoZTree = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var ProjTreeSetting = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let Tree = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let movetoZTree = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let copytoZTree = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let projectType = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    folder: 'Folder', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    tender: 'Tender', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    project: 'Project', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    engineering: 'Engineering' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let ProjTreeSetting = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     tree: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         id: 'ID', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         pid: 'ParentID', 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -24,23 +35,39 @@ var ProjTreeSetting = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             width: '78%', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             event: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 getText: function (html, node, text) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    html.push((node && node.data && node.data.projType === 'Folder') ? ' ' : ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let className = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    switch (node.data.projType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        case projectType.folder: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            className = "fa fa-folder-open-o"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        case projectType.tender: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            className = "fa fa-sticky-note-o"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        case projectType.project: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            className = "fa fa-cubes"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        case projectType.engineering: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            className = "fa fa-cube"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let icon = '<i class ="tree-icon '+ className +'"></i>'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    html.push((node && node.data && node.data.projType === projectType.folder) ? ' ' : ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     html.push('<a '); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (node && node.data && node.data.projType === 'Tender') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (node && node.data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         //html.push('href="/main?project=', node.id(), '"'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         html.push('href="javacript:void(0);"'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    html.push('>', text, '<a>'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    html.push('>', icon, ' ', text, '<a>'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 getIcon: function (html, node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (node.data.projType === 'Folder') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        html.push('<i class ="tree-icon fa fa-folder-open-o"></i>'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        html.push('<span class="poj-icon">└</span>'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // html.push('<i class ="tree-icon '+ className +'"></i>'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // if (node.data.projType === 'Tender') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //     html.push('<span class="poj-icon">└</span>'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 tdBindEvent: function (td, node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (node.data.projType === 'Tender') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (node.data.projType === projectType.tender) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         $('a:eq(1)', td).bind('click', function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             BeforeOpenProject(node.id(), {'fullFolder': GetFullFolder(node.parent)}, function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 window.location.href = '/main?project=' + node.id(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -57,7 +84,9 @@ var ProjTreeSetting = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             width: '10%', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             event: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 getText: function (html, node, text) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    html.push(text ? new Date(text).Format('yyyy-MM-dd') : ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (node.data.projType === projectType.tender) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        html.push(text ? new Date(text).Format('yyyy-MM-dd') : ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -67,7 +96,9 @@ var ProjTreeSetting = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             width: '10%', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             event: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 getText: function (html, node, text) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    html.push(text ? new Date(text).Format('yyyy-MM-dd') : ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (node.data.projType === projectType.tender) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        html.push(text ? new Date(text).Format('yyyy-MM-dd') : ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -80,7 +111,7 @@ var ProjTreeSetting = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         onSelectNode: function (node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 新建文件夹 是否可见 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (node.data.projType === 'Tender') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (node.data.projType === projectType.tender) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $('#addFolderBtn').hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $('#addFolderBtn').show(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -90,7 +121,7 @@ var ProjTreeSetting = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 删除可见 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $('#delBtn').show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 移动到、复制到、共享、协同 是否可见 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (node.data.projType === 'Tender') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (node.data.projType === projectType.tender) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $('#movetoBtn').show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $('#copytoBtn').show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $('#shareBtn').show(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -104,522 +135,225 @@ var ProjTreeSetting = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $('td:eq(0)', node.row).append($('<i class="fa fa-sort" data-toggle="tooltip" data-placement="top" title="长安拖动"></i>')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 从服务器拉取数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var LoadProjTree = function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var table = $('#ProjTree'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $('thead', table).remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $('tbody', table).remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    GetAllProjectData(function (data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Tree = $.fn.treeTable.init(table, ProjTreeSetting, data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var GetNeedUpdatePreNode = function (parent, next) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (next) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return next.preSibling(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else if (parent) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return parent.firstChild(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    /*if (parent && parent.id() !== -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (next && next.preSibling()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return next.preSibling(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return parent.lastChild(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$(document).ready(function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 新增建设项目点击 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $('#addProjBtn').click(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (Tree) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $('#add-add-project-dialog').modal('show'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var GetPreNodeUpdateData = function (pre, nid) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var data = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    data['updateType'] = 'update'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    data['updateData'] = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    data.updateData[Tree.setting.tree.id] = pre.id(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    data.updateData[Tree.setting.tree.id] = nid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 获取新建项目数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var GetAddProjUpdateData = function (parent, next, name, newId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var datas = [], updateData, pre; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateType'] = 'new'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData'] = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData'][Tree.setting.tree.id] = newId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData'][Tree.setting.tree.pid] = parent ? parent.id() : -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData'][Tree.setting.tree.nid] = next ? next.id() : -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData']['name'] = name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData']['projType'] = 'Tender'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    datas.push(updateData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return datas; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var GetAddFolderProjUpdateData = function (parent, next, folderName1, folderName2, name, newId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var datas = [], updateData, folderData1, folderData2, pre; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var addUpdateData = function (parentId, nextId, name, projType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        var data = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data['updateType'] = 'new'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data['updateData'] = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data['updateData'][Tree.setting.tree.id] = newId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data['updateData'][Tree.setting.tree.pid] = parentId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data['updateData'][Tree.setting.tree.nid] = nextId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data['updateData']['name'] = name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data['updateData']['projType'] = projType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        newId += 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        datas.push(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    folderData1 = addUpdateData(parent.id(), next ? next.id() : -1, folderName1, 'Folder'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    folderData2 = addUpdateData(folderData1.updateData[Tree.setting.tree.id], -1, folderName2, 'Folder'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    addUpdateData(folderData2.updateData[Tree.setting.tree.id], -1, name, 'Tender'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return datas; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 获取新建文件夹数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var GetAddForlderUpdateData = function (parent, next, folderName, newId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var datas = [], updateData, pre; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateType'] = 'new'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData'] = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData'][Tree.setting.tree.id] = newId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData'][Tree.setting.tree.pid] = parent ? parent.id() : -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData'][Tree.setting.tree.nid] = next ? next.id() : -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData']['name'] = folderName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData']['projType'] = 'Folder'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    datas.push(updateData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    pre = GetNeedUpdatePreNode(parent, next); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (pre) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        datas.push(GetPreNodeUpdateData(pre, newId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return datas; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 新增建设项目操作 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $('#addProjOk').click(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AddProject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var GetNextChangeUpdateData = function (datas, node, next) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var data = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (node && node.id() !== -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data['updateType'] = 'update'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data['updateData'] = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data['updateData'][Tree.setting.tree.id] = node.id(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data['updateData'][Tree.setting.tree.nid] = next ? next.id() : -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        datas.push(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var GetFullFolder = function (node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var fullFolder = [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        cur = node; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    while (cur && cur.data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        fullFolder.unshift(cur.data.name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        cur = cur.parent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return fullFolder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var GetDeleteUpdateData = function (node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var datas = [], updateData, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        pre = node.preSibling(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        deleteNodeData = function (node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var data = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            data['updateType'] = 'delete'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            data['updateData'] = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            data['updateData'][Tree.setting.tree.id] = node.id(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (node.data.projType === 'Tender') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                data['updateData']['FullFolder'] = GetFullFolder(node.parent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 新增单项项目点击 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $("#add-engineering-btn").click(function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let selectedItem = Tree.selected(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (selectedItem === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw '请选择要添加到的项目工程'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        addDeleteChildren = function (children) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            children.forEach(function(child){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                datas.push(deleteNodeData(child)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                addDeleteChildren(child.children); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (pre && pre.id() !== -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        updateData = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        updateData['updateType'] = 'update'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        updateData['updateData'] = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        updateData['updateData'][Tree.setting.tree.id] = pre.id(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        updateData['updateData'][Tree.setting.tree.nid] = node ? node.nid() : -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        datas.push(updateData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    datas.push(deleteNodeData(node)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    addDeleteChildren(node.children); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return datas; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var GetMoveUpdateData = function (node, parent, next) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var datas = [], updateData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData = GetNextChangeUpdateData(datas, node.preSibling(), node.nextSibling); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (next) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        updateData = GetNextChangeUpdateData(datas, next.preSibling(), node); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateType'] = 'update'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData'] = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData'][Tree.setting.tree.id] = node.id(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData'][Tree.setting.tree.pid] = parent ? parent.id() : -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData'][Tree.setting.tree.nid] = next ? next.id() : -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    datas.push(updateData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return datas; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var GetCopyUpdateData = function (node, parent, next, newId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var datas = [], updateData, pre; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateType'] = 'copy'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['srcProjectId'] = node.id(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData'] = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData'][Tree.setting.tree.id] = newId + 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData'][Tree.setting.tree.pid] = parent ? parent.id() : -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData'][Tree.setting.tree.nid] = next ? next.id() : -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData']['name'] = node.data.name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateData['updateData']['projType'] = node.data.projType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    datas.push(updateData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    pre = GetNeedUpdatePreNode(parent, next); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (pre) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        updateData = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        updateData['updateType'] = 'update'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        updateData['updateData'] = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        updateData['updateData'][Tree.setting.tree.id] = pre.id(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        updateData['updateData'][Tree.setting.tree.nid] = node.tree.maxNodeId() + 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        datas.push(updateData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return datas; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var ConvertTreeToZtree = function (Tree, zTreeObj, filterNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var setting = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            data: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                simpleData: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    enable:true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    idKey: "id", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    pIdKey: "pId", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    rootPId: "-1" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        zTreeData = [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        exportNodesData = function (nodes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            nodes.forEach(function (node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (node !== filterNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    var data = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    data['id'] = node.data[Tree.setting.tree.id]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    data['pId'] = node.pid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    data['name'] = node.data['name']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    data['isParent'] = node.data.projType === 'Folder';//(node.data.projType === 'Folder' && node.children.length === 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    data['open'] = node.data.projType === 'Folder';//node.children.length !== 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    zTreeData.push(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    exportNodesData(node.children); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    exportNodesData(Tree._root.children); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return $.fn.zTree.init(zTreeObj, setting, zTreeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var GetTargetTreeNode = function (zTreeObj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var ztree_selected; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (zTreeObj && Tree) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ztree_selected = zTreeObj.getSelectedNodes().length === 0 ? null : zTreeObj.getSelectedNodes()[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return ztree_selected ? Tree.findNode(ztree_selected.id) : null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var AddFolderChildValid = function (node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (node.data.projType === 'Folder') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (node.children.length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return (node.firstChild().data.projType === 'Folder'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var AddTenderChildValid = function (node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (node.data.projType === 'Folder') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (node.children.length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return (node.firstChild().data.projType === 'Tender'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let selectedType = selectedItem.data !== undefined ? selectedItem.data.projType : ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (selectedType !== projectType.project) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw '单项项目只能添加到建设项目中'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $("#add-engineering-dialog").modal("show"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            alert(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-LoadProjTree(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#movetoBtn').hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#copytoBtn').hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#shareBtn').hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#cooperateBtn').hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 新增单项工程操作 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $("#add-engineering-confirm").click(function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AddEngineering(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 新建文件夹 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#addFolderBtn').click(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (Tree) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('#addFolder').modal('show'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#addFolderOk').click(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var form = $('#addFolder'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var name = $('#folder-name-input').val(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var parent, next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (Tree.selected()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (Tree.selected().children.length === 0 || Tree.selected().firstChild().data.projType === 'Folder') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                parent = Tree.selected(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                next = Tree.selected().firstChild(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                parent = Tree.selected().parent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                next = Tree.selected().nextSibling; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 新增单位工程点击 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $("#add-tender-btn").click(function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let selectedItem = Tree.selected(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (selectedItem === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw '请选择要添加到的单项工程'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let selectedType = selectedItem.data !== undefined ? selectedItem.data.projType : ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (selectedType !== projectType.engineering) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw '单项项目只能添加到单项工程中'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            parent = Tree._root; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            next = Tree.firstNode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $("#add-tender-dialog").modal("show"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            alert(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 新增单位工程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $("#add-tender-confirm").click(function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AddTender(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CommonAjax.post('/pm/api/getNewProjectID', {count: 1}, function (IDs) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var updateData = GetAddForlderUpdateData(parent, next, name, IDs.lowID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Tree.maxNodeId(IDs.lowID - 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            UpdateProjectData(updateData, function(datas){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                datas.forEach(function (data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (data.updateType === 'new') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        Tree.addNodeData(data.updateData, parent, next); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                form.modal('hide'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 新建工程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var AddProj = function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var name = $('#tenderName').val(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (name !== '') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // if (Tree.selected()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     if (Tree.selected().data.projType === 'Tender') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //         parent = Tree.selected().parent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //         next = Tree.selected().next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //         if (Tree.selected().firstNode.data.projType === 'Tender') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //             parent = Tree.selected(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //             next = Tree.selected().firstNode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //             return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     parent = Tree._root(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     next = Tree.firstNode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CommonAjax.post('/pm/api/getNewProjectID', {count: 1}, function (IDs) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var updateData = GetAddProjUpdateData(Tree._root, Tree.firstNode(), name, IDs.lowID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Tree.maxNodeId(IDs.lowID - 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            UpdateProjectData(updateData, function (datas) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                datas.forEach(function (data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    var parent, next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (data.updateType === 'new') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        parent = data.updateData.parentId === -1 ?  Tree._root : Tree.findNode(data.updateData.parentId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        next = data.updateData.nextId === -1 ? null : Tree.findNode(data.updateData.nextId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        Tree.addNodeData(data.updateData, parent, next); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $('#addProj').modal('hide'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 初始化数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @return {void} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function init() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let table = $('#ProjTree'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $('thead', table).remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $('tbody', table).remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GetAllProjectData(function (data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Tree = $.fn.treeTable.init(table, ProjTreeSetting, data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 新增建设项目 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @return {boolean} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function AddProject() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let name = $('#project-name').val(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (name === '') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        alert('请填写工程'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GetNewProjectId(function(IDs) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let typeInfo = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            updateType: 'new', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            projectType: projectType.project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let updateData = GetUpdateData(Tree._root, Tree.firstNode(), name, IDs.lowID, typeInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Tree.maxNodeId(IDs.lowID - 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        UpdateProjectData(updateData, function (datas) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            datas.forEach(function (data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let parent = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let next = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (data.updateType === 'new') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    parent = data.updateData.parentId === -1 ?  Tree._root : Tree.findNode(data.updateData.parentId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    next = data.updateData.nextId === -1 ? null : Tree.findNode(data.updateData.nextId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Tree.addNodeData(data.updateData, parent, next); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $('#add-project-dialog').modal('hide'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var AddFolderProj = function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var nameB = $('#buildName').val(), nameX = $('#xiangName').val(), name = $('#tenderName').val(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (nameB !== '' && nameX !== '' && name !== '') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CommonAjax.post('/pm/api/getNewProjectID', {count: 3}, function (IDs) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var updateData = GetAddFolderProjUpdateData(Tree._root, Tree.firstNode(), nameB, nameX, name, IDs.lowID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Tree.maxNodeId(IDs.lowID - 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            UpdateProjectData(updateData, function (datas) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                datas.forEach(function (data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    var parent, next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (data.updateType === 'new') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        parent = data.updateData[Tree.setting.tree.pid] === -1 ?  Tree._root : Tree.findNode(data.updateData[Tree.setting.tree.pid]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        next = data.updateData[Tree.setting.tree.nid] === -1 ? null : Tree.findNode(data.updateData[Tree.setting.tree.nid]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        Tree.addNodeData(data.updateData, parent, next); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $('#addProj').modal('hide'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 新增同级元素 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @param {String} name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @param {String} type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @param {function} callback 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @return {void} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function AddSiblingsItem(name, type, callback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let parent = Tree.selected(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let next = Tree.selected().firstChild(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GetNewProjectId(function(IDs) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let typeInfo = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            updateType: 'new', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            projectType: type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let updateData = GetUpdateData(parent, next, name, IDs.lowID, typeInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Tree.maxNodeId(IDs.lowID - 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        UpdateProjectData(updateData, function(datas){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            datas.forEach(function (data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (data.updateType === 'new') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Tree.addNodeData(data.updateData, parent, next); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            callback(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#addProjBtn').click(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (Tree) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('#addProj').modal('show'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#addProjOk').click(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var hasFolder = $('#isAddFolder>input').is(':checked'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (hasFolder) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        AddFolderProj(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        AddProj(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#isAddFolder').change(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ($('input',this).is(':checked')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('#moreinfo').collapse('show'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('#moreinfo').collapse('hide'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 重命名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#renameBtn').click(function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (Tree && Tree.selected()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('#rename').modal('show'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#rename').on('show.bs.modal', function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $('#newName').attr('placeholder', Tree.selected().data.name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#renameOk').click(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var select = Tree.selected(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        newName = $('#newName').val(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        form = $('#rename'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (select && newName !== select.data.name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        RenameProject(select.id(), newName, function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            form.modal('hide'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            select.data.name = newName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Tree.refreshNodesDom([select]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        form.modal('hide'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 新增单项工程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @return {boolean} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function AddEngineering() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let name = $('#engineering-name').val(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (name === '') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        alert('请填写单项工程名称'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    AddSiblingsItem(name, projectType.engineering, function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $("#add-engineering-dialog").modal("hide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#delBtn').click(function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (Tree && Tree.selected()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('#del').modal('show'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#del').on('show.bs.modal', function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var hasTenderChild = function (children) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        var i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (i = 0; i < children.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (children[i].children.length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (children[i].data.projType === 'Tender') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else if (hasTenderChild(children[i].children)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 新增单位工程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @return {boolean} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function AddTender() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let name = $('#tender-name').val(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (name === '') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        alert('请填写单位工程名称'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (Tree.selected().children.length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('#tenderHint').show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('#tenderHint').text('删除 "' + Tree.selected().data.name +'" ?'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('#folderHint').hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('#tenderHint').hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('#folderHint').show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('#folderHint').text('删除 "'+ Tree.selected().data.name +'" 以及它包含的子项?'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (hasTenderChild([Tree.selected()])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('#restoreHint').show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('#restoreHint').hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#deleteProjOk').click(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var updateData, form = $('#del'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (Tree) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        updateData = GetDeleteUpdateData(Tree.selected()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        UpdateProjectData(updateData, function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            form.modal('hide'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Tree.removeNode(Tree.selected()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    AddSiblingsItem(name, projectType.tender, function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $("#add-tender-dialog").modal("hide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 移动至 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#movetoBtn').click(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (Tree && Tree.selected()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('#moveto').modal('show'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#moveto').on('show.bs.modal', function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    movetoZTree = ConvertTreeToZtree(Tree, $('#treeDemo'), Tree.selected()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#movetoOk').click(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var updateData, form = $('#moveto'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        target = GetTargetTreeNode($.fn.zTree.getZTreeObj('treeDemo')), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        parent, next, cur = Tree.selected(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (target) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (target.data.projType === 'Tender') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            parent = target.parent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            next = target.nextSibling; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            parent = target; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            next = target.firstChild(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (parent !== cur.parent || (next !== cur && next !== cur.nextSibling)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            updateData = GetMoveUpdateData(Tree.selected(), parent, next); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            UpdateProjectData(updateData, function (data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                form.modal('hide'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Tree.move(Tree.selected(), parent, next); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            form.modal('hide'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 组织更新数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @param {Object} parent 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @param {Object} next 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @param {String} name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @param {Object} type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @return {Object} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function GetUpdateData(parent, next, name, newId, type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let data = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let updateData = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    updateData['updateType'] = type.updateType === undefined ? 'new' : type.updateType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    updateData['updateData'] = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    updateData['updateData'][Tree.setting.tree.id] = newId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    updateData['updateData'][Tree.setting.tree.pid] = parent ? parent.id() : -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    updateData['updateData'][Tree.setting.tree.nid] = next ? next.id() : -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    updateData['updateData']['name'] = name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    updateData['updateData']['projType'] = type.projectType !== undefined ? type.projectType : 'Tender'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    data.push(updateData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 获取需要更新的前节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @param {Object} parent 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @param {Object} next 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @return {Object} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function GetNeedUpdatePreNode(parent, next) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (next) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return next.preSibling(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else if (parent) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return parent.firstChild(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        form.modal('hide'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 复制到 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#copytoBtn').click(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (Tree && Tree.selected()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('#copyto').modal('show'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#copyto').on('show.bs.modal', function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    copytoZTree = ConvertTreeToZtree(Tree, $('#treeDemo2')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$('#copytoOk').click(function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var form = $('#copyto'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        target = GetTargetTreeNode($.fn.zTree.getZTreeObj('treeDemo2')), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        parent, next, cur = Tree.selected(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (target && (target.data.projType === 'Tender' || target.children.length === 0 || target.firstChild().data.projType === 'Tender')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (target.data.projType === 'Tender') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            parent = target.parent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            next = target.nextSibling; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            parent = target; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            next = target.firstChild(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (parent !== cur.parent || (next !== cur && next !== cur.nextSibling)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            CommonAjax.post('/pm/api/getNewProjectID', {count: 1}, function (IDs) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                var updateData = GetCopyUpdateData(cur, parent, next, IDs.lowID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Tree.maxNodeId(IDs.lowID - 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                CommonAjax.post('/pm/api/copyProjects', {updateData: updateData}, function (data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    form.modal('hide'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    data.forEach(function (nodeData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (nodeData.updateType === 'copy') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            Tree.addNodeData(nodeData.updateData, parent, next); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }, function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    form.modal('hide'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            form.modal('hide'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        form.modal('hide'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 获取最新id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @param {function} callback 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @return {void} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function GetNewProjectId(callback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CommonAjax.post('/pm/api/getNewProjectID', {count: 1}, function(data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        callback(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |