| 
					
				 | 
			
			
				@@ -100,17 +100,9 @@ var gljOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sheetCommonObj.initSheet(me.sheet, me.setting, 30); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sheet.name('ration_glj'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.bindSheetEvent(sheet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sheet.bind(GC.Spread.Sheets.Events.CellClick, me.onCellClick); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sheet.bind(GC.Spread.Sheets.Events.CellDoubleClick, me.onCellDoubleClick); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sheet.bind(GC.Spread.Sheets.Events.ClipboardChanged, me.onClipboardChanged); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         subSpread.bind(GC.Spread.Sheets.Events.ButtonClicked, me.onButtonClick); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sheet.bind(GC.Spread.Sheets.Events.EditStarting, function (sender, args) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (args.row>=me.sheetData.length){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                args.cancel = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }else if (me.sheetData[args.row].isMixRatio) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                args.cancel = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(!projectReadOnly){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             gljContextMenu.loadGLJSpreadContextMenu(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -125,15 +117,6 @@ var gljOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // me.detailSheet.selectionUnit(0);//0 cell,1 row,2 col; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sheet.name('quantity_detail'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.bindSheetEvent(sheet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sheet.bind(GC.Spread.Sheets.Events.EditStarting, function (sender, args) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(me.detailSheetReadonly()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                args.cancel = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(args.sheet.getValue(args.row,args.col)==null){//这里是为了解决当单元格里的值是null的时候,在单元格里输入数据,按键盘箭头移动光标的时候,会直接结束编辑,跳到另外的单元格。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    args.sheet.setValue(args.row,args.col,""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     detailSheetReadonly:function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let selected = projectObj.project.mainTree.selected; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -186,6 +169,19 @@ var gljOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(selected){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(me.isInstallationNode(selected)==true){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 args.cancel = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(args.sheetName == 'quantity_detail'){//工程量明细表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(me.detailSheetReadonly()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        args.cancel = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if(args.sheet.getValue(args.row,args.col)==null){//这里是为了解决当单元格里的值是null的时候,在单元格里输入数据,按键盘箭头移动光标的时候,会直接结束编辑,跳到另外的单元格。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            args.sheet.setValue(args.row,args.col,""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(args.sheetName == 'ration_glj'){//定额工料机表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(!me.rationGLJEditCheck(args)) args.cancel = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             args.cancel = true; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -284,14 +280,6 @@ var gljOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             installationFeeObj.onRationInstallValueChange(sender,args); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    onCellClick: function (sender, args) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        console.log('cellClick'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        var me = gljOprObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (args.row >= me.sheetData.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        me.editChecking(args); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     onCellDoubleClick:function (sender, args) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var me = gljOprObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var header = me.setting.header; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -317,39 +305,32 @@ var gljOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sheetCommonObj.copyTextToClipboard(cDatas); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    editChecking: function (args) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    rationGLJEditCheck:function (args) {//true 可以编辑,false 不能编辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var me = gljOprObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var header = me.setting.header; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        var disable = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (me.sheetData[args.row] != undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (me.sheetData[args.row].isMixRatio) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                disable = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (_.includes(me.setting.view.lockColumns, args.col))  return false;//如果是锁定的列,不能编辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(me.sheetData[args.row] != undefined){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(me.sheetData[args.row].isMixRatio){//对于组成物列 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               return header[args.col].dataCode == 'marketPrice'//允许修改组成物市单价,其它的不可以 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (header[args.col] && header[args.col].dataCode == 'marketPrice') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(me.marketPriceReadOnly({data:me.sheetData[args.row]})){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        disable = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        disable = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return !me.marketPriceReadOnly({data:me.sheetData[args.row]}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (header[args.col] && header[args.col].dataCode == 'basePrice') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     var isAdd = me.sheetData[args.row].isAdd; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if(isAdd==1){//是新增但没有组成物时允许修改定额价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if(me.marketPriceReadOnly({data:me.sheetData[args.row]})){//如果有组成物,不可修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            disable = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            disable = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        return !me.marketPriceReadOnly({data:me.sheetData[args.row]});//如果有组成物,不可修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        disable = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (disable != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            me.sheet.getCell(args.row, args.col, GC.Spread.Sheets.SheetArea.viewport).locked(disable); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     hasComposition:function (ration_glj,isRationType) {//判断是否有组成物,有则返回true   现在主材类型的工料机也有可能有组成物。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let type = isRationType==true? ration_glj.subType:ration_glj.type; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(notEditType.indexOf(type)!=-1||type==gljType.MAIN_MATERIAL){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -516,7 +497,7 @@ var gljOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.sheet.setSelection(selected[0].row,selected[0].col,selected[0].rowCount,selected[0].colCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    getUnitPriceCodeMap : function (sheetData) {//取单价文件中,编码前缀一样的映射表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getUnitPriceCodeMap : function () {//取单价文件中,编码前缀一样的映射表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let codeMap = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let priceMap = projectObj.project.projectGLJ.datas.unitPriceMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(priceMap){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -749,6 +730,10 @@ var gljOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var updateField = me.setting.header[args.col].dataCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var recode = me.sheetData[args.row]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var newval; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!me.rationGLJEditCheck(args)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            recode? me.sheet.getCell(args.row, args.col).value(recode[updateField]): me.sheet.getCell(args.row, args.col).value(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (updateField == 'marketPrice' || updateField == 'customQuantity' || updateField == 'basePrice') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (args.editingText == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 updateField == 'marketPrice' ? newval = 0 : newval = ""; 
			 |