| 
					
				 | 
			
			
				@@ -29,7 +29,7 @@ var gljContextMenu = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     callback: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        getGLJData('replace'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        getGLJData('replace', null, true, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     visible: function(key, opt){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         return subSpread.getActiveSheet().name()=='ration_glj'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -56,7 +56,7 @@ var gljContextMenu = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     callback:function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        getGLJData('add'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        getGLJData('add', null, true, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     visible: function(key, opt){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         return subSpread.getActiveSheet().name()=='ration_glj'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -108,7 +108,7 @@ var gljContextMenu = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     callback: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        getGLJData('m_replace'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        getGLJData('m_replace', null, true, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     visible: function(key, opt){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         return subSpread.getActiveSheet().name()=='ration_glj'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -145,7 +145,7 @@ var gljContextMenu = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         projectGljObject.selectedProjectGLJ = t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         projectGljObject.subList = t.subList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      getGLJData('addMix'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      getGLJData('addMix', null, true, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   visible: function(key, opt){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       return subSpread.getActiveSheet().name()=='ration_glj'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -432,10 +432,64 @@ var gljContextMenu = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //controller.setTreeSelected(controller.tree.items[target.row]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return target.hitTestType === GC.Spread.Sheets.SheetArea.viewport || target.hitTestType === GC.Spread.Sheets.SheetArea.rowHeader; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initGLJSelectView: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (gljOprObj.gljLibSpresd == undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.gljLibSpresd = sheetCommonObj.buildSheet($('#gljLibSheet')[0], gljOprObj.gljLibSheetSetting, gljOprObj.stdGLJ.length + gljOprObj.complementaryGLJs.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sheetCommonObj.spreadDefaultStyle(gljOprObj.gljLibSpresd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.gljLibSpresd.bind(GC.Spread.Sheets.Events.ButtonClicked, gljOprObj.onButtonClick); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.gljLibSheet = gljOprObj.gljLibSpresd.getSheet(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.gljLibSheet.bind(GC.Spread.Sheets.Events.SelectionChanged, gljOprObj.onSelectionChanged); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.gljLibSheet.bind(GC.Spread.Sheets.Events.TopRowChanged, _.debounce(gljOprObj.onTopRowChanged, 100)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.gljLibSheet.setColumnWidth(0, 20, GC.Spread.Sheets.SheetArea.rowHeader); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.gljLibSheet.options.isProtected = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.gljLibSheet.name('glj_lib'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sheetCommonObj.setSheetBySetting(gljOprObj.gljLibSheet, gljOprObj.gljLibSheetSetting); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let gljClass = 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            selected, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            connect_key; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const actionType = $('#actionType').val(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const addActions = ['add', 'insert', 'addMix','unitPriceAddMix']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const replaceActions = ['m_replace', 'replace']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (addActions.includes(actionType)) {//插入,添加,添加组成物(项目人材机页面) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.GLJSelection = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else if(replaceActions.includes(actionType)){//替换、批量替换 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            selected = gljOprObj.sheetData[gljContextMenu.selectedRow]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            connect_key = gljOprObj.getIndex(selected, gljKeyArray); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.GLJSelection = [connect_key]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 找到定位的分类树 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const locatedItem = gljOprObj.AllRecode.find(item => gljOprObj.getIndex(item, gljLibKeyArray) === connect_key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (locatedItem) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                gljClass = locatedItem.gljClass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                locatedItem.select = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //替换,焦点定位至当前选中人材机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (replaceActions.includes(actionType)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.locateZTree(gljClass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sheetCommonObj.appendData(gljOprObj.gljLibSheet, 0, 0, gljOprObj.gljLibSheetSetting, gljOprObj.AllRecode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const index = gljOprObj.AllRecode.findIndex(item => gljOprObj.getIndex(item, gljLibKeyArray) === connect_key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.gljLibSheet.showRow(index, GC.Spread.Sheets.VerticalPosition.center); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.gljLibSheet.setActiveCell(index, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.initSelection({row: index}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.gljLibSpresd.focus(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else if (actionType === 'add' || actionType === 'addMix'|| actionType === 'unitPriceAddMix') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.locateZTree(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sheetCommonObj.appendData(gljOprObj.gljLibSheet, 0, 0, gljOprObj.gljLibSheetSetting, gljOprObj.AllRecode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.gljLibSheet.showRow(0, GC.Spread.Sheets.VerticalPosition.top); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.gljLibSheet.setActiveCell(0, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.initSelection({row: 0}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.showLibGLJSheetData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function getGLJData(actionType,getLibFunc) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function getGLJData(actionType,getLibFunc, initLibs, gljLibID) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (actionType === 'change') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        actionType = $('#actionType').val(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $('#actionType').val(actionType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 清除选中人材机缓存数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     gljOprObj.GLJSelection = []; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -448,28 +502,40 @@ function getGLJData(actionType,getLibFunc) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const init = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const reset = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const condition = gljOprObj.getPagingCondition(init, reset, location, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    console.time('getGLJData'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const condition = gljOprObj.getPagingCondition(init, reset, location, 0, initLibs, gljLibID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if(!getLibFunc)getLibFunc = projectObj.project.ration_glj.getGLJDataPaging; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    getLibFunc(condition, function (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        gljOprObj.initClassTree('std', gljOprObj.treeData.std); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('#modalCon').width($(window).width()*0.5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $("input[name='glj']").get(0).checked=true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $.bootstrapLoading.end(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(actionType == "m_replace"){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $('#glj_selected_conf').hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $('#replace_next_btn').show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getLibFunc(condition, function (gljData, result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (gljOprObj.treeData.std.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.initClassTree(gljOprObj.treeData.std); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else if (gljOprObj.treeData.comple.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljOprObj.initClassTree(gljOprObj.treeData.comple); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (initLibs) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            initLibOptions(result.libData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $('#modalCon').width($(window).width()*0.5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(actionType == "m_replace"){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $('#glj_selected_conf').hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $('#replace_next_btn').show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $('#glj_selected_conf').show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $('#replace_next_btn').hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $("#glj_tree_div").modal({show:true}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            setTimeout(function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                gljOprObj.gljLibSpresd ? gljOprObj.gljLibSpresd.refresh() : ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 200); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $('#glj_selected_conf').show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $('#replace_next_btn').hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljContextMenu.initGLJSelectView(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $("#glj_tree_div").modal({show:true}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        setTimeout(function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            gljOprObj.gljLibSpresd ? gljOprObj.gljLibSpresd.refresh() : ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }, 200); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $.bootstrapLoading.end(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function initLibOptions(libData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const html = libData.reduce((acc, lib) => acc += `<option ${lib.isDefault ? 'selected="selected"' : ''} value="${lib.gljLibId}">${lib.name}</option>`, ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $('#glj-lib-select').html(html); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function showGLJClassTree(record) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     let engineerID = projectObj.project.projectInfo.property.engineering_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     CommonAjax.post('/rationGlj/getGLJClass/'+engineerID,record, function (data) { 
			 |