| 
					
				 | 
			
			
				@@ -15,8 +15,23 @@ const 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     NODE_LEVEL_COMPILATION_NEW = 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     NODE_LEVEL_USER = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 工程类型枚举值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const valuationSelectorMap = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    valuationSelector_NA: 'N/A', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    valuationSelector_suggestion: '建议估算', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    valuationSelector_feasibility: '可行性估算', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    valuationSelector_rough: '概算', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    valuationSelector_bill: '预算', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    valuationSelector_three_bill_budget: '三级清单预算', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    valuationSelector_ration: '清单预算', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    valuationSelector_changeBudget: '变更预算', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    valuationSelector_settlement: '结算' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let rptTplObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    iniPage: function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    iniPage: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         zTreeOprObj.getCompilationList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         rpt_tpl_cfg_helper.getReportTplCfg(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         selectableFiledTreeOprObj.iniTree(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -33,23 +48,23 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     moveSrcTopNode: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     dupTplIds: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     hasRefreshedDupRefIds: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    getCompilationList: function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getCompilationList: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = zTreeOprObj, params = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CommonAjax.postEx("report_tpl_api/getCompilationList", params, 20000, true, function(result){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //console.log(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                for (let item of result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // if (item.is_release) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        $("#compilations").append("<option value='" + item._id + "'>" + item.name + "</option>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // me.getReportTemplateTree($("#compilations").get(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                me.getReportTemplateTreeEx($("#compilations").get(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }, null, null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CommonAjax.postEx("report_tpl_api/getCompilationList", params, 20000, true, function (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //console.log(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (let item of result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // if (item.is_release) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $("#compilations").append("<option value='" + item._id + "'>" + item.name + "</option>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // me.getReportTemplateTree($("#compilations").get(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            me.getReportTemplateTreeEx($("#compilations").get(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, null, null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    refreshNodes: function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    refreshNodes: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let private_setupIsParent = function(node){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let private_setupIsParent = function (node) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // if (node.nodeType === RT.NodeType.NODE || node.level === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (node.nodeType === RT.NodeType.NODE || node.level <= NODE_LEVEL_COMPILATION_NEW) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 node.isParent = true; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -68,7 +83,7 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.treeObj.refresh(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    removeTreeRootNode: function(rawNode, isAsync, callback, failCallback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    removeTreeRootNode: function (rawNode, isAsync, callback, failCallback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let params = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         params.compilationId = rawNode.compilationId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         params.engineerId = rawNode.engineerId; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -76,13 +91,13 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         params.isPhysically = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         CommonAjax.postEx("report_tpl_api/removeTreeRootNode", params, 5000, isAsync, callback, failCallback, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    copyReportTemplate: function(orgID, newID, isAsync, callback, failCallback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    copyReportTemplate: function (orgID, newID, isAsync, callback, failCallback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let params = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         params.orgRptTplId = orgID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         params.newRptTplId = newID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         CommonAjax.postEx("report_tpl_api/copyRptTpl", params, 5000, isAsync, callback, failCallback, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    updateTreeRootNode: function(rawNode, isAsync, callback, failCallback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    updateTreeRootNode: function (rawNode, isAsync, callback, failCallback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let params = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         params.doc = rawNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         CommonAjax.postEx("report_tpl_api/updateTreeRootNode", params, 5000, isAsync, callback, failCallback, null); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -103,7 +118,7 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         params.subNode = subNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         CommonAjax.postEx("report_tpl_api/updateSubLevelOneNode", params, 5000, isAsync, callback, failCallback, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    createIniNode: function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    createIniNode: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             nodeType: RT.NodeType.TEMPLATE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             refId: -1, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -112,7 +127,7 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             items: null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    buildRootNodeDoc: function(topNode, excludeNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    buildRootNodeDoc: function (topNode, excludeNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = this, rst = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (topNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             rst = { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -128,7 +143,7 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    buildSubRootNodeDoc: function(subNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    buildSubRootNodeDoc: function (subNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = this, rst = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (subNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let isReleased = false; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -177,18 +192,18 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return itemRst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    addHoverDom: function(treeId, treeNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addHoverDom: function (treeId, treeNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = zTreeOprObj, sObj = $("#" + treeNode.tId + "_span"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length > 0 || treeNode.nodeType === RT.NodeType.TEMPLATE) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (treeNode.editNameFlag || $("#addBtn_" + treeNode.tId).length > 0 || treeNode.nodeType === RT.NodeType.TEMPLATE) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (treeNode.level === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let addStr = "<span class='button star' id='addBtn_" + treeNode.tId + "' title='新增编办类型' onfocus='this.blur();'></span>"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sObj.after(addStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let btn = $("#addBtn_"+treeNode.tId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (btn) btn.bind("click", function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let btn = $("#addBtn_" + treeNode.tId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (btn) btn.bind("click", function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let rawNode = me.createIniComilationNode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (!me.chkIfDupCompilationNode(rawNode, treeNode)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     rawNode.userId = treeNode.userId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    me.addNewNodeEx(rawNode, function(rst){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    me.addNewNodeEx(rawNode, function (rst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (rst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             let newNodes = [], isSilent = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             rawNode.isParent = true; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -218,8 +233,8 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增子目录' onfocus='this.blur();'></span>"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sObj.after(addStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let btn = $("#addBtn_"+treeNode.tId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (btn) btn.bind("click", function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let btn = $("#addBtn_" + treeNode.tId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (btn) btn.bind("click", function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 me.getNewNodeID(1, function (newNodeID) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     let rawNode = me.createIniNode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     rawNode.nodeType = RT.NodeType.NODE; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -242,7 +257,7 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         me.treeObj.addNodes(treeNode, insertIdx, newNodes, isSilent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         let tn = me.getParentNodeByNodeLevel(treeNode, NODE_LEVEL_COMPILATION_NEW); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         let newTopNode = me.buildRootNodeDoc(tn); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        me.updateTreeRootNode(newTopNode, true, function(rst){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        me.updateTreeRootNode(newTopNode, true, function (rst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (!(rst)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 alert("新增节点失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -253,8 +268,8 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             addStr = "<span class='button blue_core' id='addBtn2_" + treeNode.tId + "' title='新增报表模板' onfocus='this.blur();'></span>"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sObj.after(addStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            btn = $("#addBtn2_"+treeNode.tId + ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (btn) btn.bind("click", function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            btn = $("#addBtn2_" + treeNode.tId + ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (btn) btn.bind("click", function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // let me = zTreeOprObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (treeNode.nodeType === RT.NodeType.NODE || treeNode.level === NODE_LEVEL_COMPILATION_NEW) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     me.getNewNodeID(1, function (newNodeID) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -268,7 +283,7 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         me.treeObj.addNodes(treeNode, -1, newNodes, isSilent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         let tn = me.getParentNodeByNodeLevel(treeNode, NODE_LEVEL_COMPILATION_NEW); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         let topNode = me.buildRootNodeDoc(tn); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        me.updateTreeRootNode(topNode, true, function(rst){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        me.updateTreeRootNode(topNode, true, function (rst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (!(rst)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 alert("新增空白模板失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -279,11 +294,11 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    removeHoverDom: function(treeId, treeNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $("#addBtn_"+treeNode.tId).unbind().remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $("#addBtn2_"+treeNode.tId).unbind().remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    removeHoverDom: function (treeId, treeNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $("#addBtn_" + treeNode.tId).unbind().remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $("#addBtn2_" + treeNode.tId).unbind().remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    addNewNodeEx: function(rawNode, callback, failCallback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addNewNodeEx: function (rawNode, callback, failCallback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let params = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         params.doc = rawNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         CommonAjax.postEx("report_tpl_api/createTreeRootNode", params, 5000, true, callback, failCallback, null); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -292,7 +307,7 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = zTreeOprObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let topPNode = me.getParentNodeByNodeLevel(treeNode, NODE_LEVEL_COMPILATION_NEW); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let newTopNode = me.buildRootNodeDoc(topPNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        me.updateTreeRootNode(newTopNode, true, function(rst){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.updateTreeRootNode(newTopNode, true, function (rst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (!(rst)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 alert("修改发布状态失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -363,7 +378,7 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 treeNodes[0].ID = newNodeID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (confirm("是否引用相同的报表模板?")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     newTopNode = me.buildRootNodeDoc(targetTopNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    me.updateTreeRootNode(newTopNode, false, function(goodRst){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    me.updateTreeRootNode(newTopNode, false, function (goodRst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         canContinue = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (treeNodes[0].rptTpl) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             treeNodes[0].rptTpl.ID = newNodeID; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -372,7 +387,7 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         me.chkAndSetDupRefTplIds(me.treeObj.getNodes(), null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         me.treeObj.refresh(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         me.chkAndRreshRefTpl(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }, function(badRst){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }, function (badRst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         displayMessage("更新模板节点失败!", "red", 2000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         // console.log(badRst.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         console.log(badRst); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -381,8 +396,8 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     treeNodes[0].refId = newNodeID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // targetNode.refId = newNodeID; //targetNode可以是父节点也可以是兄弟节点,没必要引用相同的tplID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     newTopNode = me.buildRootNodeDoc(targetTopNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    me.copyReportTemplate(orgID, newNodeID, true, function(goodResult){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        me.updateTreeRootNode(newTopNode, true, function(goodRst){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    me.copyReportTemplate(orgID, newNodeID, true, function (goodResult) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        me.updateTreeRootNode(newTopNode, true, function (goodRst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             canContinue = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             // treeObj.updateNode(nodes[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             zTreeOprObj.treeObj.updateNode(treeNodes[0]); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -393,12 +408,12 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             me.chkAndSetDupRefTplIds(me.treeObj.getNodes(), null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             me.treeObj.refresh(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             me.chkAndRreshRefTpl(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }, function(badRst){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }, function (badRst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             displayMessage("更新模板节点失败!", "red", 2000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             // console.log(badRst.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             console.log(badRst); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }, function(badResult){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }, function (badResult) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         displayMessage("Copy请求失败!", "red", 2000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         // console.log(badResult.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         console.log(badResult); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -410,19 +425,19 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             newTopNode = me.buildRootNodeDoc(targetTopNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            me.updateTreeRootNode(newTopNode, false, function(rst){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            me.updateTreeRootNode(newTopNode, false, function (rst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 canContinue = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 me.currentNode = treeNodes[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }, function(badResult){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, function (badResult) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 displayMessage("移动请求失败!", "red", 2000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 console.log(badResult.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 canContinue = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (canContinue && !isCopy && me.moveSrcTopNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let newSrcTopNode = me.buildRootNodeDoc(me.moveSrcTopNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                me.updateTreeRootNode(newSrcTopNode, true, function(rst){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.updateTreeRootNode(newSrcTopNode, true, function (rst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // canContinue = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }, function(badResult){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, function (badResult) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     displayMessage("移动请求失败!", "red", 2000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     canContinue = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -430,7 +445,7 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             me.moveSrcTopNode = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    addReportTemplate: function(newUsers) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addReportTemplate: function (newUsers) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = zTreeOprObj, params = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         params.compilationId = $("#compilations").get(0).value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         params.userId = []; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -444,11 +459,11 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             allEngIds.push(item.value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         params.engineerId = allEngIds; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CommonAjax.postEx("report_tpl_api/getRptTplTree", params, 20000, true, function(result){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result.sort(function(item1, item2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CommonAjax.postEx("report_tpl_api/getRptTplTree", params, 20000, true, function (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result.sort(function (item1, item2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let rst = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (item1.userId === item2.userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    rst = (item1.engineerId > item2.engineerId)?1:((item1.engineerId < item2.engineerId)?-1:0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    rst = (item1.engineerId > item2.engineerId) ? 1 : ((item1.engineerId < item2.engineerId) ? -1 : 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (item1.userId === "-100") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         rst = 1 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -462,7 +477,7 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (idx1 >= 0 && idx2 >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            rst = (idx1 > idx2)?1:((idx1 < idx2)?-1:0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            rst = (idx1 > idx2) ? 1 : ((idx1 < idx2) ? -1 : 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -472,7 +487,7 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let allTopTplNodes = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (let user of newUsers) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 allTopUserIdNodes.push(user.userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                allTopTplNodes.push({userId: user.userId, name: user.real_name, items: [], isParent: true}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                allTopTplNodes.push({ userId: user.userId, name: user.real_name, items: [], isParent: true }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (let item of result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let uidx = allTopUserIdNodes.indexOf(item.userId); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -568,8 +583,8 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     getReportTemplateTreeEx: function (compilationSelect) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = zTreeOprObj, params = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         params.compilationId = compilationSelect.value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CommonAjax.postEx("report_tpl_api/getTplTreeByCompilation", params, 20000, true, function(result){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result.sort(function(item1, item2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CommonAjax.postEx("report_tpl_api/getTplTreeByCompilation", params, 20000, true, function (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result.sort(function (item1, item2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let rst = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (item1.userId === "-100") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     rst = -1; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -580,7 +595,7 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // me.chkAndSetDupRefTplIds(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // console.log(dupRefIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let allTopTplNodes = [{userId: "-100", name: "公共模板", items:[], isParent: true, refId: ""}]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let allTopTplNodes = [{ userId: "-100", name: "公共模板", items: [], isParent: true, refId: "" }]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (result.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (!result[0].hasOwnProperty("refId")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     result[0].refId = ""; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -600,7 +615,7 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     for (let itemIdx = 1; itemIdx < result.length; itemIdx++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         let item = result[itemIdx]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (item.userId === user._id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            allTopTplNodes.push({userId: user.userId, name: user.real_name, items: [], isParent: true, refId: ""}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            allTopTplNodes.push({ userId: user.userId, name: user.real_name, items: [], isParent: true, refId: "" }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             allTopTplNodes[allTopTplNodes.length - 1].items.push(result[itemIdx]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -653,11 +668,11 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    createIniComilationNode: function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    createIniComilationNode: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //在新的需求下,无需工程id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let rst = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             compilationId: $("#compilations").get(0).selectedOptions[0].value, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            userId: (userAccount ===  'admin')?("-100"):userID, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            userId: (userAccount === 'admin') ? ("-100") : userID, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             properties: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             released: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             isDeleted: false, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -666,7 +681,7 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    onBeforeRemove: function(treeId, treeNode){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onBeforeRemove: function (treeId, treeNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let canRemove = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (treeNode.level > NODE_LEVEL_USER) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (!(treeNode.items) || treeNode.items.length < 1) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -679,19 +694,19 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return canRemove; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    onRemove: function(e, treeId, treeNode){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onRemove: function (e, treeId, treeNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (treeNode.level > NODE_LEVEL_USER) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let me = zTreeOprObj, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 topPNode = me.getParentNodeByNodeLevel(treeNode, NODE_LEVEL_COMPILATION_NEW); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let rawNode = me.buildRootNodeDoc(topPNode, treeNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (treeNode.level === NODE_LEVEL_COMPILATION_NEW) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                me.removeTreeRootNode(rawNode, true, function(rst){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.removeTreeRootNode(rawNode, true, function (rst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (!(rst)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         alert("删除请求失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                me.updateTreeRootNode(rawNode, true, function(rst){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.updateTreeRootNode(rawNode, true, function (rst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (!(rst)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         alert("删除请求失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -702,12 +717,12 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     beforeEditName: function (treeId, treeNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (treeNode.level > NODE_LEVEL_COMPILATION_NEW) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            setTimeout(function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            setTimeout(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let ip = $("#" + treeNode.tId + IDMark_Input); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (ip.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     ip[0].className = "individualRename"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    setTimeout(function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    setTimeout(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         let ip = $("#" + treeNode.tId + IDMark_Input); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (ip.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             ip[0].className = "individualRename"; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -722,13 +737,13 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    beforeRename: function(treeId, treeNode, newName, isCancel) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    beforeRename: function (treeId, treeNode, newName, isCancel) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (newName.length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    onRename : function(e, treeId, treeNode, isCancel) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onRename: function (e, treeId, treeNode, isCancel) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!isCancel) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let me = zTreeOprObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (treeNode.level === 0) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -737,7 +752,7 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let subTopNode = me.getParentNodeByNodeLevel(treeNode, NODE_LEVEL_COMPILATION_NEW + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let topPNode = subTopNode.getParentNode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let rawNode = me.buildSubRootNodeDoc(subTopNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                me.updateSubNode(topPNode, rawNode, true, function(rst){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.updateSubNode(topPNode, rawNode, true, function (rst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (!(rst)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         alert('修改名称请求失败!'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -745,17 +760,17 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    onChangeFlag: function(flagProp, flagDom){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onChangeFlag: function (flagProp, flagDom) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = zTreeOprObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (me.currentNode && me.currentNode.nodeType === RT.NodeType.TEMPLATE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (!me.currentNode.hasOwnProperty("flags")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 me.currentNode.flags = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            me.currentNode.flags[flagProp] = (flagDom.selectedOptions[0].value === 'NA')?null:flagDom.selectedOptions[0].value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            me.currentNode.flags[flagProp] = (flagDom.selectedOptions[0].value === 'NA') ? null : flagDom.selectedOptions[0].value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let subTopNode = me.getParentNodeByNodeLevel(me.currentNode, NODE_LEVEL_COMPILATION_NEW + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let topPNode = subTopNode.getParentNode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let rawNode = me.buildSubRootNodeDoc(subTopNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            me.updateSubNode(topPNode, rawNode, true, function(rst){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            me.updateSubNode(topPNode, rawNode, true, function (rst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (!(rst)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     alert('修改标记:[' + flagProp + '] 失败!'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -763,6 +778,23 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onMutiChangeFlag: function (flagProp, flagDom) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let me = zTreeOprObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (me.currentNode && me.currentNode.nodeType === RT.NodeType.TEMPLATE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!me.currentNode.hasOwnProperty("flags")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.currentNode.flags = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            me.currentNode.flags[flagProp] = flagDom[0].value.split(','); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let subTopNode = me.getParentNodeByNodeLevel(me.currentNode, NODE_LEVEL_COMPILATION_NEW + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let topPNode = subTopNode.getParentNode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let rawNode = me.buildSubRootNodeDoc(subTopNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            me.updateSubNode(topPNode, rawNode, true, function (rst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!(rst)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    alert('修改标记:[' + flagProp + '] 失败!'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     createNewTpl: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = zTreeOprObj, params = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (me.currentNode && me.currentNode.nodeType === RT.NodeType.TEMPLATE) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -781,14 +813,14 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             params.engineerId = topPNode.engineerId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             params.userId = topPNode.userId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             params.subNode = rawNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            CommonAjax.postEx("report_tpl_api/createDftRptTpl", params, 10000, true, function(result){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        me.currentNode.rptTpl = result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        me.chkAndRreshRefTpl(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        alert('update error!'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }, null, null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            CommonAjax.postEx("report_tpl_api/createDftRptTpl", params, 10000, true, function (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    me.currentNode.rptTpl = result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    me.chkAndRreshRefTpl(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    alert('update error!'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, null, null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -805,7 +837,7 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    onClick: function(event,treeId,treeNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onClick: function (event, treeId, treeNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = zTreeOprObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.currentNode = treeNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         bandTreeOprObj.currentNode = null; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -859,77 +891,107 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    chkAndRreshRefTpl: function(forceRefresh) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    chkAndRreshRefTpl: function (forceRefresh) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = zTreeOprObj, params = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const valuationTypes = ['suggestion', 'feasibility', 'rough', 'bill', 'three_bill_budget', 'ration', 'changeBudget', 'settlement']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (me.currentNode && me.currentNode.nodeType === RT.NodeType.TEMPLATE && me.currentNode.refId > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (forceRefresh || !(me.currentNode.rptTpl)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 params.rptTplId = me.currentNode.refId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                CommonAjax.postEx("report_tpl_api/getRefRptTpl", params, 20000, true, function(result){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        me.currentNode.rptTpl = result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        me.currentNode.rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MAIN_INFO_RPT_NAME] = me.currentNode.name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (me.currentNode.rptTpl["GROUP_KEY"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            let grp_keys = me.currentNode.rptTpl["GROUP_KEY"].split('_'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (grp_keys.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                grp_keys[1] = me.currentNode.name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            me.currentNode.rptTpl["GROUP_KEY"] = grp_keys.join("_"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                CommonAjax.postEx("report_tpl_api/getRefRptTpl", params, 20000, true, function (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    me.currentNode.rptTpl = result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    me.currentNode.rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MAIN_INFO_RPT_NAME] = me.currentNode.name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (me.currentNode.rptTpl["GROUP_KEY"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        let grp_keys = me.currentNode.rptTpl["GROUP_KEY"].split('_'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (grp_keys.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            grp_keys[1] = me.currentNode.name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        tplHelper.refreshTplView(me.currentNode.rptTpl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (me.currentNode.hasOwnProperty('flags')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (me.currentNode.flags.hasOwnProperty('taxType')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                let val = parseInt(me.currentNode.flags['taxType']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                $("#element_flags_select")[0].selectedIndex = val; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                $("#element_flags_select")[0].selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (me.currentNode.flags.hasOwnProperty('valuationType')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                let vType = me.currentNode.flags['valuationType']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                let vtIdx = valuationTypes.indexOf(vType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                $("#element_prjFlags_select")[0].selectedIndex = vtIdx + 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                $("#element_prjFlags_select")[0].selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (me.currentNode.flags.hasOwnProperty('reportType')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                let rType = me.currentNode.flags['reportType']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                if (rType === 'billSummary') $("#element_rptFlags_select")[0].selectedIndex = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                else if (rType === 'gljSummary') $("#element_rptFlags_select")[0].selectedIndex = 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                else $("#element_rptFlags_select")[0].selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                $("#element_rptFlags_select")[0].selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (me.currentNode.flags.hasOwnProperty('sumLevelType')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                let sumLvType = me.currentNode.flags['sumLevelType']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                if (sumLvType === 'construct') $("#element_sumLv_flags")[0].selectedIndex = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                else if (sumLvType === 'Single') $("#element_sumLv_flags")[0].selectedIndex = 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                else if (sumLvType === 'custom') $("#element_sumLv_flags")[0].selectedIndex = 3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                else $("#element_sumLv_flags")[0].selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                $("#element_sumLv_flags")[0].selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        me.currentNode.rptTpl["GROUP_KEY"] = grp_keys.join("_"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    tplHelper.refreshTplView(me.currentNode.rptTpl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (me.currentNode.hasOwnProperty('flags')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (me.currentNode.flags.hasOwnProperty('taxType')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            let val = parseInt(me.currentNode.flags['taxType']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $("#element_flags_select")[0].selectedIndex = val; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $("#element_flags_select")[0].selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $("#valuationSelector").hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (me.currentNode.flags.hasOwnProperty('valuationType')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $(".mutiSelector").find('li').removeClass('checked'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            let valuationTypeStr = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            let valuationTypeStrList = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            let vType = me.currentNode.flags['valuationType']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // let vtIdx = valuationTypes.indexOf(vType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // $("#element_prjFlags_select")[0].selectedIndex = vtIdx + 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (vType instanceof Array) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                for (let i = 0; i < vType.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    $("#valuationSelector_" + vType[i]).addClass('checked'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    valuationTypeStrList.push(valuationSelectorMap["valuationSelector_" + vType[i]]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                valuationTypeStr = valuationTypeStrList.join(','); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } else if (vType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                $("#valuationSelector_" + vType).addClass('checked'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                valuationTypeStr = valuationSelectorMap["valuationSelector_" + vType]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $("#element_prjFlags_select")[0].value = vType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $("#element_prjFlags_selectStr")[0].value = valuationTypeStr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $("#element_prjFlags_select")[0].value = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $("#element_prjFlags_selectStr")[0].value = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $('#valuationSelector .mutiSelector li').removeClass('checked'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (me.currentNode.flags.hasOwnProperty('reportType')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            let rType = me.currentNode.flags['reportType']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (rType === 'billSummary') $("#element_rptFlags_select")[0].selectedIndex = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            else if (rType === 'gljSummary') $("#element_rptFlags_select")[0].selectedIndex = 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            else $("#element_rptFlags_select")[0].selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $("#element_rptFlags_select")[0].selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (me.currentNode.flags.hasOwnProperty('sumLevelType')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            let sumLvType = me.currentNode.flags['sumLevelType']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (sumLvType === 'construct') $("#element_sumLv_flags")[0].selectedIndex = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            else if (sumLvType === 'Single') $("#element_sumLv_flags")[0].selectedIndex = 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            else if (sumLvType === 'custom') $("#element_sumLv_flags")[0].selectedIndex = 3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            else $("#element_sumLv_flags")[0].selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            $("#element_flags_select")[0].selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            $("#element_prjFlags_select")[0].selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             $("#element_sumLv_flags")[0].selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if ($("#rpt_tpl_visual_tab")[0].className === "nav-link p-1 active") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            setTimeout(function(){visualJumbo.iniSpreadJs(); visualJumbo.setupTpl()}, 50) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (me.currentNode.flags.hasOwnProperty('contrastType')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            let contrastType = me.currentNode.flags['contrastType']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (contrastType === 'chapter') $("#element_contrastType_select")[0].selectedIndex = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            else if (contrastType === 'bill') $("#element_contrastType_select")[0].selectedIndex = 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            else if (contrastType === 'quantities') $("#element_contrastType_select")[0].selectedIndex = 3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            else $("#element_sumLv_flags")[0].selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }, null, null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $("#element_flags_select")[0].selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $("#element_prjFlags_select")[0].selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $("#element_sumLv_flags")[0].selectedIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        // 清空工程类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $("#valuationSelector").hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $("#element_prjFlags_select")[0].value = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $("#element_prjFlags_selectStr")[0].value = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $('#valuationSelector .mutiSelector li').removeClass('checked'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if ($("#rpt_tpl_visual_tab")[0].className === "nav-link p-1 active") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        setTimeout(function () { visualJumbo.iniSpreadJs(); visualJumbo.setupTpl() }, 50) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, null, null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 me.currentNode.rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MAIN_INFO_RPT_NAME] = me.currentNode.name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 tplHelper.refreshTplView(me.currentNode.rptTpl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ($("#rpt_tpl_visual_tab")[0].className === "nav-link p-1 active") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    setTimeout(function(){visualJumbo.iniSpreadJs(); visualJumbo.setupTpl()}, 50) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    setTimeout(function () { visualJumbo.iniSpreadJs(); visualJumbo.setupTpl() }, 50) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    getRefTpl: function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getRefTpl: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = zTreeOprObj, rst = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (me.currentNode && me.currentNode.nodeType === RT.NodeType.TEMPLATE && me.currentNode.refId > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             rst = me.currentNode.rptTpl 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -978,11 +1040,11 @@ let zTreeOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let userListObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     foundedUserList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     UserIdList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    pushUser: function(user, newUsers) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pushUser: function (user, newUsers) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = userListObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (me.UserIdList.indexOf(user._id) < 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             me.UserIdList.push(user._id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let newUser = {userId: user._id, real_name: user.real_name, username: user.username, mobile: user.mobile}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let newUser = { userId: user._id, real_name: user.real_name, username: user.username, mobile: user.mobile }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             me.foundedUserList.push(newUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (newUsers) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 newUsers.push(newUser); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -993,11 +1055,11 @@ let userListObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let key = $("#rpt_user_input1").get(0).value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let newUsers = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $.ajax({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            type:"GET", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            type: "GET", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             url: "user/search?keyword=" + key, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             cache: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             timeout: 5000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            success: function(result){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            success: function (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (result.data && result.data.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     for (let user of result.data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         userListObj.pushUser(user, newUsers); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1007,21 +1069,21 @@ let userListObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            error: function(jqXHR, textStatus, errorThrown){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            error: function (jqXHR, textStatus, errorThrown) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     findUsersByIds: function (userIds, cb) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let params = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         params.userIds = userIds; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CommonAjax.postEx("user/getUserList", params, 20000, true, function(result){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                for (let user of result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    userListObj.pushUser(user, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (cb) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    cb(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }, null, null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CommonAjax.postEx("user/getUserList", params, 20000, true, function (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (let user of result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                userListObj.pushUser(user, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (cb) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                cb(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, null, null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1031,7 +1093,40 @@ function displayMessage(message, color, disappearTime, id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (!domId) domId = "id_after_saved_lbl"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $("#" + domId)[0].style.color = color; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $("#" + domId)[0].innerHTML = message; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    setTimeout(function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    setTimeout(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $("#" + domId)[0].innerHTML = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, disappearTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$("#element_prjFlags_selectStr").on('click', function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ($('#valuationSelector').visible) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $('#valuationSelector').hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $('#valuationSelector').show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$('#rpttplinfo').on('click', function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $('#valuationSelector').hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$('.mutiSelector').find('li').on('click', function (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const hasChecked = $(this).hasClass('checked'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (hasChecked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $(this).removeClass('checked'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $(this).addClass('checked'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const resultIDList = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const resultList = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $('.mutiSelector .checked').each(function (index, value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultList.push(valuationSelectorMap[$(value).attr('id')]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultIDList.push($(value).attr('value')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const result = resultList.join(','); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $('#element_prjFlags_selectStr').val(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $('#element_prjFlags_select').val(resultIDList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    zTreeOprObj.onMutiChangeFlag('valuationType', $('#element_prjFlags_select')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 |