| 
					
				 | 
			
			
				@@ -7,29 +7,94 @@ let gljComponentOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     processDecimal: -6, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     setting: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         owner: "gljComponent", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        header:[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            {headerName:"编码",headerWidth:80,dataCode:"code", dataType: "String", formatter: "@", hAlign: "left", vAlign: "center"}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            {headerName:"名称",headerWidth:90,dataCode:"name", dataType: "String", hAlign: "left", vAlign: "center"}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            {headerName:"单位",headerWidth:45,dataCode:"unit", dataType: "String", hAlign: "center", vAlign: "center"}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            {headerName:"单价",headerWidth:60,dataCode:"basePrice", dataType: "Number", formatter: "0.00", hAlign: "right", vAlign: "center"}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            {headerName:"消耗量",headerWidth:70,dataCode:"consumeAmt", dataType: "Number", formatter: "0.000", hAlign: "right", vAlign: "center"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        header: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { headerName: "编码", headerWidth: 80, dataCode: "code", dataType: "String", formatter: "@", hAlign: "left", vAlign: "center" }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { headerName: "名称", headerWidth: 90, dataCode: "name", dataType: "String", hAlign: "left", vAlign: "center" }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { headerName: "单位", headerWidth: 45, dataCode: "unit", dataType: "String", hAlign: "center", vAlign: "center" }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { headerName: "单价", headerWidth: 60, dataCode: "basePrice", dataType: "Number", formatter: "0.00", hAlign: "right", vAlign: "center" }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { headerName: "消耗量", headerWidth: 70, dataCode: "consumeAmt", dataType: "Number", formatter: "0.000", hAlign: "right", vAlign: "center" } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         view: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            lockedCols:[0, 1, 2, 3] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lockedCols: [0, 1, 2, 3] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //生成列头(多单价)(多消耗量) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initHeaders: function (priceProperties, consumeAmtProperties) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let headers = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { headerName: "编码", headerWidth: 80, dataCode: "code", dataType: "String", formatter: "@", hAlign: "left", vAlign: "center" }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { headerName: "名称", headerWidth: 90, dataCode: "name", dataType: "String", formatter: "@", hAlign: "left", vAlign: "center" }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { headerName: "单位", headerWidth: 45, dataCode: "unit", dataType: "String", hAlign: "center", vAlign: "center" }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //生成消耗量列 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!consumeAmtProperties || consumeAmtProperties.length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            headers.push({ headerName: "消耗量", headerWidth: 70, dataCode: "consumeAmt", dataType: "Number", formatter: "0.000", hAlign: "right", vAlign: "center" }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (let consumeAmtProp of consumeAmtProperties) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let colData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    headerName: consumeAmtProp.consumeAmt.dataName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    headerWidth: 60, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    dataCode: consumeAmtProp.consumeAmt.dataCode, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    dataType: 'Number', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    formatter: '0.000', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    hAlign: 'right', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vAlign: 'center' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                headers.push(colData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //生成单价列 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!priceProperties || priceProperties.length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            headers.push({ headerName: "定额价", headerWidth: 80, dataCode: "basePrice", dataType: "Number", formatter: "0.00", hAlign: "right", vAlign: "center" }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (let priceProp of priceProperties) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let colData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    headerName: priceProp.price.dataName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    headerWidth: 100, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    dataCode: priceProp.price.dataCode, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    dataType: 'Number', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    formatter: '0.00', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    hAlign: 'right', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vAlign: 'center' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                headers.push(colData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return headers; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    setFrozen: function (sheet) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const fixedHeadersLen = 3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let frozenCol = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (consumeAmtProperties && consumeAmtProperties.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            frozenCol = fixedHeadersLen + consumeAmtProperties.length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else if (priceProperties && priceProperties.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            frozenCol = fixedHeadersLen + 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (frozenCol > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sheet.frozenColumnCount(frozenCol); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     buildHeader: function (sheet, header) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sheet.setRowCount(2, GC.Spread.Sheets.SheetArea.colHeader); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (let i = 0; i < header.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sheet.setValue(1, i, header[i].headerName, GC.Spread.Sheets.SheetArea.colHeader); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sheet.setColumnWidth(i, header[i].headerWidth? header[i].headerWidth:100); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sheet.setColumnWidth(i, header[i].headerWidth ? header[i].headerWidth : 100); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sheet.setValue(0, 0, '组成物信息', GC.Spread.Sheets.SheetArea.colHeader); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sheet.addSpan(0, 0, 1, header.length, GC.Spread.Sheets.SheetArea.colHeader); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    buildSheet: function(container) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    buildSheet: function (container) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = gljComponentOprObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //生成人材机组成物表格列头 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.setting.header = me.initHeaders(priceProperties, consumeAmtProperties); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //生成人材机组成物列映射 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sheetCommonObj.initColMapping(me, me.setting.header); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        repositoryGljObj.initPriceCols.call(me, priceProperties, me.colMapping); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.initConsumeAmtCols(consumeAmtProperties, me.colMapping); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.workBook = sheetOpr.buildSheet(container, me.setting, 30, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.setFrozen(me.workBook.getSheet(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.buildHeader(me.workBook.getSheet(0), me.setting.header); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sheetCommonObj.spreadDefaultStyle(me.workBook); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.workBook.getSheet(0).setColumnWidth(0, 20, GC.Spread.Sheets.SheetArea.rowHeader); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -45,15 +110,24 @@ let gljComponentOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     getRowData: function (sheet, row, setting) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let rst = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for(let i = 0; i < setting.header.length; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            rst[setting.header[i].dataCode] = sheet.getValue(row, i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let rst = { priceProperty: {}, consumeAmtProperty: {} }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (let i = 0; i < setting.header.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let v = sheet.getValue(row, i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (this.pricePropertyCols.includes(i)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst.priceProperty[setting.header[i].dataCode] = v && v !== '' ? v : 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else if (this.consumeAmtPropertyCols.includes(i)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst.consumeAmtProperty[setting.header[i].dataCode] = v && v !== '' ? v : 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst[setting.header[i].dataCode] = v; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     getComponent: function (sheet, rowCount) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let component = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for(let row = 0; row < rowCount; row++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (let row = 0; row < rowCount; row++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let obj = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             obj.consumeAmt = sheet.getValue(row, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             obj.ID = sheet.getTag(row, 0); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -61,122 +135,194 @@ let gljComponentOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return component; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //根据消耗量字段设置组成物消耗量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    setConsumeAmt: function (component, field, value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const compareStr = 'consumeAmt'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (field.includes(compareStr)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (field === compareStr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                component[field] = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                component['consumeAmtProperty'][field] = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initConsumeAmtCols: function (consumeAmtProperties, colMapping) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let consumeAmtCols = [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            consumeAmtPropertyCols = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!consumeAmtProperties || consumeAmtProperties.length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            consumeAmtCols.push(colMapping.fieldToCol['consumeAmt']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (let consumeAmtProp of consumeAmtProperties) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            consumeAmtPropertyCols.push(colMapping.fieldToCol[consumeAmtProp.consumeAmt.dataCode]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            consumeAmtCols.push(colMapping.fieldToCol[consumeAmtProp.consumeAmt.dataCode]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.consumeAmtCols = consumeAmtCols; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.consumeAmtPropertyCols = consumeAmtPropertyCols; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //消耗量赋初值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initConsumeAmt: function (component) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!consumeAmtProperties || consumeAmtProperties.length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            component.consumeAmt = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let consumeAmtProperty = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (let consumeAmtProp of consumeAmtProperties) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                consumeAmtProperty[consumeAmtProp.consumeAmt.dataCode] = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            component.consumeAmtProperty = consumeAmtProperty; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    copyConsumeAmt: function (gljA, gljB) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!consumeAmtProperties || consumeAmtProperties.length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljA.consumeAmt = gljB.consumeAmt; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gljA.consumeAmtProperty = _.cloneDeep(gljB.consumeAmtProperty); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    consumeAmtChanged: function (component, consumeAmt, col) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!consumeAmtProperties || consumeAmtProperties.length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (consumeAmt !== component.consumeAmt) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (consumeAmt !== component.consumeAmtProperty[this.colMapping.colToField[col]]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    consumeAmtIsEqual: function (consumeAmtA, consumeAmtB) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!consumeAmtProperties || consumeAmtProperties.length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return consumeAmtA.consumeAmt === consumeAmtB.consumeAmt; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return _.isEqual(consumeAmtA.consumeAmtProperty, consumeAmtB.consumeAmtProperty); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     onContextmenuOpr: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = gljComponentOprObj, that = repositoryGljObj, co = componentOprObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $.contextMenu({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             selector: '#gljComponentSheet', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            build: function($triggerElement, e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            build: function ($triggerElement, e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //控制允许右键菜单在哪个位置出现 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let sheet = me.workBook.getSheet(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let offset = $("#gljComponentSheet").offset(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     x = e.pageX - offset.left, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     y = e.pageY - offset.top; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let target = sheet.hitTest(x, y); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(target.hitTestType === 3 && typeof target.row !== 'undefined' && typeof target.col !== 'undefined'){//在表格内 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (target.hitTestType === 3 && typeof target.row !== 'undefined' && typeof target.col !== 'undefined') {//在表格内 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     sheet.setActiveCell(target.row, target.col); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //getCurrentGlj 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     let thatRow = that.workBook.getSheet(0).getSelections()[0].row 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     that.currentGlj = thatRow < that.currentCache.length ? that.currentCache[thatRow] : null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    that.currentComponent = that.currentGlj ?  that.getCurrentComponent(that.currentGlj.component) : []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    that.currentComponent = that.currentGlj ? that.getCurrentComponent(that.currentGlj.component) : []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //控制按钮是否可用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     let insertDis = false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         delDis = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(!(that.currentGlj && allowComponent.includes(that.currentGlj.gljType)) || (that.currentGlj.gljType === 4 && that.isComponent(that.currentGlj.ID, that.stdGljList.concat(that.complementaryGljList)))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (!(that.currentGlj && allowComponent.includes(that.currentGlj.gljType)) || (that.currentGlj.gljType === 4 && that.isComponent(that.currentGlj.ID, that.stdGljList.concat(that.complementaryGljList)))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         insertDis = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(!that.currentGlj || typeof that.currentComponent === 'undefined' || (typeof that.currentComponent !== 'undefined' && target.row >= that.currentComponent.length)){//右键定位在有组成物的行,删除键才显示可用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (!that.currentGlj || typeof that.currentComponent === 'undefined' || (typeof that.currentComponent !== 'undefined' && target.row >= that.currentComponent.length)) {//右键定位在有组成物的行,删除键才显示可用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         delDis = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        callback: function(){}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        callback: function () { }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         items: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            "insert": {name: "插入", disabled: insertDis, icon: "fa-sign-in", callback: function (key, opt) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                let oprFunc = function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    //默认radio所有工料机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    co.initRadio(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    co.gljCurTypeId = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    //默认点击树根节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    co.initClassTree('std', gljClassTreeObj.treeData.std); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    //弹出窗口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    $('#component').modal('show'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                if (repositoryGljObj.pullCompleteData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    oprFunc(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    repositoryGljObj.getStdItems(pageOprObj.stdGljLibId, oprFunc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            "delete": {name: "删除", disabled: delDis, icon: "fa-remove", callback: function (key, opt) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                //删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                let deleteObj = that.currentComponent[target.row]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                let gljComponent = that.currentGlj.component; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                let updateArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                //更新当前工料机的组成物列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                for(let i = 0, len = gljComponent.length; i < len; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    if(gljComponent[i].ID === deleteObj.ID){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        gljComponent.splice(i, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            "insert": { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                name: "插入", disabled: insertDis, icon: "fa-sign-in", callback: function (key, opt) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    let oprFunc = function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        //默认radio所有工料机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        co.initRadio(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        co.gljCurTypeId = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        //默认点击树根节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        co.initClassTree('std', gljClassTreeObj.treeData.std); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        //弹出窗口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        $('#component').modal('show'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    if (repositoryGljObj.pullCompleteData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        oprFunc(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        repositoryGljObj.getStdItems(pageOprObj.stdGljLibId, oprFunc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                //重新计算工料机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                let gljBasePrc = me.reCalGljBasePrc(that.getCurrentComponent(gljComponent)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                if(gljBasePrc !== that.currentGlj.basePrice){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    that.currentGlj.basePrice = gljBasePrc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    that.reshowGljBasePrc(that.currentGlj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    //updateBasePrc.push({gljId: that.currentGlj.ID, gljType: that.currentGlj.gljType, basePrice: that.currentGlj.basePrice}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            "delete": { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                name: "删除", disabled: delDis, icon: "fa-remove", callback: function (key, opt) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    //删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    let deleteObj = that.currentComponent[target.row]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    let gljComponent = that.currentGlj.component; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    let updateArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    //更新当前工料机的组成物列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    for (let i = 0, len = gljComponent.length; i < len; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        if (gljComponent[i].ID === deleteObj.ID) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            gljComponent.splice(i, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    //重新计算工料机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    let gljBasePrc = me.reCalGljBasePrc(that.getCurrentComponent(gljComponent)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    if (that.isGljPriceChange(that.currentGlj, gljBasePrc)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        that.setPrice(that.currentGlj, gljBasePrc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        that.reshowGljBasePrc(that.currentGlj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        //updateBasePrc.push({gljId: that.currentGlj.ID, gljType: that.currentGlj.gljType, basePrice: that.currentGlj.basePrice}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    /* if (gljBasePrc !== that.currentGlj.basePrice) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        that.currentGlj.basePrice = gljBasePrc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        that.reshowGljBasePrc(that.currentGlj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        //updateBasePrc.push({gljId: that.currentGlj.ID, gljType: that.currentGlj.gljType, basePrice: that.currentGlj.basePrice}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    updateArr.push(that.currentGlj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    me.updateComponent(updateArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                updateArr.push(that.currentGlj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                me.updateComponent(updateArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     gljComponentDelOpr: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let me = gljComponentOprObj, that = repositoryGljObj, updateArr = [], removeArr = [], isUpdate = false, updateBasePrc= []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        me.workBook.commandManager().register('gljComponentDel', function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let me = gljComponentOprObj, that = repositoryGljObj, updateArr = [], removeArr = [], isUpdate = false, updateBasePrc = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* me.workBook.commandManager().register('gljComponentDel', function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let sels = me.workBook.getSheet(0).getSelections(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(sels.length > 0 && that.currentComponent.length > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (sels.length > 0 && that.currentComponent.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let component = that.currentGlj.component; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                for(let i = 0; i < sels.length > 0; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(sels[i].colCount === me.setting.header.length){//可删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        for(let j = 0; j < sels[i].rowCount; j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if(sels[i].row + j < that.currentComponent.length){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (let i = 0; i < sels.length > 0; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (sels[i].colCount === me.setting.header.length) {//可删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        for (let j = 0; j < sels[i].rowCount; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (sels[i].row + j < that.currentComponent.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 removeArr.push(that.currentComponent[sels[i].row + j].ID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    else if(sels[i].col === 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //编码不可为空 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            alert("编码不可为空!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    else if (sels[i].col === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //编码不可为空 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        alert("编码不可为空!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    else if(sels[i].col === 4){//消耗量修改为0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if(sels[i].row === -1){//全修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           for(let j = 0; j < that.currentComponent.length; j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               isUpdate = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               that.currentComponent[j].consumeAmt = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               for(let k = 0; k < component.length; k++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                   if(component[k].ID === that.currentComponent[j].ID){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                       component[k].consumeAmt = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                       break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    else if (sels[i].col === 4) {//消耗量修改为0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (sels[i].row === -1) {//全修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            for (let j = 0; j < that.currentComponent.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                isUpdate = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                that.currentComponent[j].consumeAmt = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                for (let k = 0; k < component.length; k++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    if (component[k].ID === that.currentComponent[j].ID) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        component[k].consumeAmt = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        else{//部分修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            for(let j = 0; j < sels[i].rowCount; j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                if(sels[i].row + j < that.currentComponent.length){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        else {//部分修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            for (let j = 0; j < sels[i].rowCount; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if (sels[i].row + j < that.currentComponent.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     isUpdate = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     that.currentComponent[sels[i].row + j].consumeAmt = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    for(let k = 0; k < component.length; k++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        if(component[k].ID === that.currentComponent[sels[i].row + j].ID){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    for (let k = 0; k < component.length; k++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        if (component[k].ID === that.currentComponent[sels[i].row + j].ID) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             component[k].consumeAmt = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -187,47 +333,48 @@ let gljComponentOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(removeArr.length > 0 || isUpdate){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    for(let i = 0; i < removeArr.length; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        for(let j = 0; j < that.currentComponent.length; j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if(that.currentComponent[j].ID === removeArr[i]){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (removeArr.length > 0 || isUpdate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    for (let i = 0; i < removeArr.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        for (let j = 0; j < that.currentComponent.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (that.currentComponent[j].ID === removeArr[i]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 that.currentComponent.splice(j--, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        for(let j = 0; j < component.length; j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if(component[j].ID === removeArr[i]){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        for (let j = 0; j < component.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (component[j].ID === removeArr[i]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 component.splice(j--, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //重新计算工料机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     let gljBasePrc = me.reCalGljBasePrc(that.currentComponent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(gljBasePrc !== that.currentGlj.basePrice){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (gljBasePrc !== that.currentGlj.basePrice) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         that.currentGlj.basePrice = gljBasePrc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         that.reshowGljBasePrc(that.currentGlj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        updateBasePrc.push({gljId: that.currentGlj.ID, gljType: that.currentGlj.gljType, basePrice: that.currentGlj.basePrice}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        updateBasePrc.push({ gljId: that.currentGlj.ID, gljType: that.currentGlj.gljType, basePrice: that.currentGlj.basePrice }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     updateArr.push(that.currentGlj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     me.updateComponent(updateArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(updateBasePrc.length > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (updateBasePrc.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         that.updateRationBasePrcRq(updateBasePrc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.workBook.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.del, false, false, false, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //me.workBook.commandManager().setShortcutKey('gljComponentDel', GC.Spread.Commands.Key.del, false, false, false, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    onCellEditStart: function(sender, args) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onCellEditStart: function (sender, args) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = gljComponentOprObj, that = repositoryGljObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let rObj = me.getRowData(args.sheet, args.row, me.setting); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.currentEditingComponent = rObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let thatRow = that.workBook.getSheet(0).getSelections()[0].row; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(thatRow < that.currentCache.length){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (thatRow < that.currentCache.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             that.currentGlj = that.currentCache[thatRow]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(me.setting.view.lockedCols.indexOf(args.col) !== -1 || !allowComponent.includes(that.currentGlj.gljType) || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                (that.currentGlj.gljType === 4 && that.isComponent(that.currentGlj.ID, that.stdGljList.concat(that.complementaryGljList))) || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                (args.col === 4 && (!that.currentComponent|| args.row >= that.currentComponent.length))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //消耗量可编辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!(me.colMapping.colToField[args.col].includes('consumeAmt')) || !allowComponent.includes(that.currentGlj.gljType) || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (that.currentGlj.gljType === 4 && that.isComponent(that.currentGlj.ID, that.gljList)) || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (args.col === 4 && (!that.currentComponent || args.row >= that.currentComponent.length))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 args.cancel = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -237,124 +384,44 @@ let gljComponentOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     onCellEditEnd: function (sender, args) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = gljComponentOprObj, that = repositoryGljObj, updateBasePrc = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let gljList = that.gljList, updateArr = [], materialComponent = [202, 203, 204], machineComponent = [302, 303]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // if(args.editingText !== me.currentEditingComponent.code){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //编码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      /*  if(args.col === 0 && args.editingText && args.editingText.trim().length > 0 &&args.editingText !== me.currentEditingComponent.code){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let component = that.currentGlj.component, hasCode = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for(let i = 0; i < gljList.length; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(gljList[i].code === args.editingText){//有效的组成物 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    hasCode = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if((materialComponent.indexOf(that.currentGlj.gljType) !== -1 && gljList[i].gljType === 201) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        || (that.currentGlj.gljType === 301 && machineComponent.indexOf(gljList[i].gljType) !== -1 )){//普通材料 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //是否与原有组成物不同 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        let isExist = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        for(let j = 0; j < component.length; j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if(component[j].ID === gljList[i].ID){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                isExist = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if(!isExist){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            let rObj = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            rObj.ID = gljList[i].ID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //rObj.basePrice = gljList[i].basePrice; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if(typeof that.currentComponent[args.row] !== 'undefined'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                rObj.consumeAmt = that.currentComponent[args.row].consumeAmt; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                let index; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                for(let j = 0; j < component.length; j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    if(component[j].ID === that.currentComponent[args.row].ID){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        index = j; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                component.splice(index, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                component.splice(index, 0, rObj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                //计算工料机单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                let gljBasePrc = me.reCalGljBasePrc(that.getCurrentComponent(component)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                if(gljBasePrc !== that.currentGlj.basePrice){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    that.currentGlj.basePrice = gljBasePrc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    that.reshowGljBasePrc(that.currentGlj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    //工料机单价改变,重算引用了该工料机的定额单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    updateBasePrc.push({gljId: that.currentGlj.ID, gljType: that.currentGlj.gljType, basePrice: that.currentGlj.basePrice}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                updateArr.push(that.currentGlj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                rObj.consumeAmt = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                component.push(rObj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                //计算工料机单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                let gljBasePrc = me.reCalGljBasePrc(that.getCurrentComponent(component)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                if(gljBasePrc !== that.currentGlj.basePrice){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    that.currentGlj.basePrice = gljBasePrc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    that.reshowGljBasePrc(that.currentGlj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    //工料机单价改变,重算引用了该工料机的定额单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    updateBasePrc.push({gljId: that.currentGlj.ID, gljType: that.currentGlj.gljType, basePrice: that.currentGlj.basePrice}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                updateArr.push(that.currentGlj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //已存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            alert("已存在!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            args.sheet.setValue(args.row, args.col, me.currentEditingComponent[me.setting.header[args.col].dataCode] ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                me.currentEditingComponent[me.setting.header[args.col].dataCode]: ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if(materialComponent.indexOf(that.currentGlj.gljType) === 1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            alert("该组成物只能是普通材料!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        else if(that.currentGlj.gljType === 301){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            alert("该组成物只能是机械组成物或机上人工!") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        args.sheet.setValue(args.row, args.col, me.currentEditingComponent[me.setting.header[args.col].dataCode] ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            me.currentEditingComponent[me.setting.header[args.col].dataCode]: ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //无效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(!hasCode){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                alert("不存在此工料机,请先添加!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                args.sheet.setValue(args.row, args.col, me.currentEditingComponent[me.setting.header[args.col].dataCode] ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    me.currentEditingComponent[me.setting.header[args.col].dataCode] : ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //不存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         if(args.col === 4 && me.currentEditingComponent.code && args.editingText && args.editingText.trim().length > 0){//消耗量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let updateArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let dataCode = me.colMapping.colToField[args.col]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (dataCode.includes('consumeAmt') && me.currentEditingComponent.code && args.editingText && args.editingText.trim().length > 0) {//消耗量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let consumeAmt = parseFloat(args.editingText); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(!isNaN(consumeAmt) && consumeAmt !== me.currentEditingComponent.consumeAmt){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!isNaN(consumeAmt) && me.consumeAmtChanged(me.currentEditingComponent, consumeAmt, args.col)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let roundCons = scMathUtil.roundTo(parseFloat(consumeAmt), -3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let component = that.currentGlj.component; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                for(let i = 0; i < component.length; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(component[i].ID === that.currentComponent[args.row].ID){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        component[i].consumeAmt = roundCons; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (let i = 0; i < component.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (component[i].ID === that.currentComponent[args.row].ID) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        me.setConsumeAmt(component[i], dataCode, roundCons); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //component[i].consumeAmt = roundCons; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                that.currentComponent[args.row].consumeAmt = roundCons; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //that.currentComponent[args.row].consumeAmt = roundCons; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.setConsumeAmt(that.currentComponent[args.row], dataCode, roundCons); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //计算工料机单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let gljBasePrc = me.reCalGljBasePrc(that.currentComponent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(gljBasePrc !== that.currentGlj.basePrice){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    that.currentGlj.basePrice = gljBasePrc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (that.isGljPriceChange(that.currentGlj, gljBasePrc)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    that.setPrice(that.currentGlj, gljBasePrc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     that.reshowGljBasePrc(that.currentGlj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //工料机单价改变,重算引用了该工料机的定额单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //updateBasePrc.push({gljId: that.currentGlj.ID, gljType: that.currentGlj.gljType, basePrice: that.currentGlj.basePrice}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 updateArr.push(that.currentGlj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //只能输入数值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                args.sheet.setValue(args.row, args.col, me.currentEditingComponent[me.setting.header[args.col].dataCode] ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    me.currentEditingComponent[me.setting.header[args.col].dataCode]: 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sheetOpr.showData(me, me.workBook.getSheet(0), me.setting, that.currentComponent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                /* args.sheet.setValue(args.row, args.col, me.currentEditingComponent[me.setting.header[args.col].dataCode] ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    me.currentEditingComponent[me.setting.header[args.col].dataCode] : 0); */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            args.sheet.setValue(args.row, args.col, me.currentEditingComponent.consumeAmt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //args.sheet.setValue(args.row, args.col, me.currentEditingComponent.consumeAmt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sheetOpr.showData(me, me.workBook.getSheet(0), me.setting, that.currentComponent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(updateArr.length > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (updateArr.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             me.updateComponent(updateArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             /*if(updateBasePrc.length > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 that.updateRationBasePrcRq(updateBasePrc) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -364,123 +431,86 @@ let gljComponentOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     onClipboardPasting: function (sender, info) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = gljComponentOprObj, that = repositoryGljObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let maxCol = info.cellRange.col + info.cellRange.colCount - 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /*  if (info.cellRange.col !== 4 && info.cellRange.colCount > 1 || (that.currentGlj.gljType === 4 && that.isComponent(that.currentGlj.ID, that.stdGljList.concat(that.complementaryGljList)))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             args.cancel = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         } */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //复制的列数超过正确的列数,不可复制 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(info.cellRange.col !== 4 && info.cellRange.colCount > 1 || (that.currentGlj.gljType === 4 && that.isComponent(that.currentGlj.ID, that.stdGljList.concat(that.complementaryGljList)))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            args.cancel = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (maxCol > me.setting.header.length - 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return info.cancel = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (that.currentGlj.gljType === 4 && that.isComponent(that.currentGlj.ID, that.stdGljList.concat(that.complementaryGljList))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return info.cancel = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //粘贴的字段只能是消耗量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (let i = 0; i < info.cellRange.colCount; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let col = info.cellRange.col + i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let dataCode = me.colMapping.colToField[col]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!dataCode.includes('consumeAmt')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return info.cancel = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     onClipboardPasted: function (sender, info) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let me = gljComponentOprObj, that = repositoryGljObj, updateArr = [] ,materialComponent = [202, 203, 204], machineComponent = [302, 303], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let me = gljComponentOprObj, that = repositoryGljObj, updateArr = [], materialComponent = [202, 203, 204], machineComponent = [302, 303], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             component = that.currentGlj.component, newComponent = [], concatComponent = [], isChange = false, updateBasePrc = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let items = sheetOpr.analyzePasteData(me.setting, info); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let gljCache = that.gljList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //编码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   /*     if(info.cellRange.col === 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for(let i = 0; i < items.length; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                for(let j = 0; j < gljCache.length; j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(items[i].code === gljCache[j].code){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if((materialComponent.indexOf(that.currentGlj.gljType) !== -1 && gljCache[j].gljType === 201) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            || (that.currentGlj.gljType === 301 && machineComponent.indexOf(gljCache[j].gljType) !== -1 )){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //是否与原有组成物不同 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            let isExist = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            for(let k = 0; k < component.length; k++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                if(component[k].ID === gljCache[j].ID){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    isExist = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    me.workBook.getSheet(0).setValue(info.cellRange.row + i, info.cellRange.col, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        typeof that.currentComponent[info.cellRange.row + i] !== 'undefined'? that.currentComponent[info.cellRange.row + i].code : ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //消耗量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (me.colMapping.colToField[info.cellRange.col].includes('consumeAmt')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let items = sheetCommonObj.analyzePasteData(me.setting, info); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let row = info.cellRange.row; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (let i = 0; i < items.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (row + i < that.currentComponent.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let currentObj = that.currentComponent[row + i]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (!me.consumeAmtIsEqual(items[i], currentObj)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        isChange = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (!consumeAmtProperties || consumeAmtProperties.length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            let roundCons = scMathUtil.roundTo(parseFloat(items[i].consumeAmt), -3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            currentObj.consumeAmt = roundCons; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            for (let j = 0; j < component.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if (component[j].ID === currentObj.ID) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    component[j].consumeAmt = currentObj.consumeAmt; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if(!isExist){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                isChange = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                let obj = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                obj.ID = gljCache[j].ID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                if(typeof that.currentComponent[info.cellRange.row + i] !== 'undefined'){//更新 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    obj.consumeAmt = that.currentComponent[info.cellRange.row + i].consumeAmt; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    let index; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    for(let k = 0; k < component.length; k++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        if(that.currentComponent[info.cellRange.row + i].ID === component[k].ID){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            index = k; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    component.splice(index, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    component.splice(index, 0, obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                else{//新增 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    obj.consumeAmt = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    component.push(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            for (let attr in items[i]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //是消耗量字段 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if (attr.includes('consumeAmt') && items[i][attr] && !isNaN(parseFloat(items[i][attr]))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    let roundCons = scMathUtil.roundTo(parseFloat(items[i][attr]), -3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    currentObj.consumeAmtProperty[attr] = roundCons; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            me.workBook.getSheet(0).setValue(info.cellRange.row + i, info.cellRange.col, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            typeof that.currentComponent[info.cellRange.row + i] !== 'undefined'? that.currentComponent[info.cellRange.row + i].code : ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        me.workBook.getSheet(0).setValue(info.cellRange.row + i, info.cellRange.col, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            typeof that.currentComponent[info.cellRange.row + i] !== 'undefined'? that.currentComponent[info.cellRange.row + i].code : ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(isChange){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //计算工料机单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let gljBasePrc = me.reCalGljBasePrc(that.getCurrentComponent(component)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(gljBasePrc !== that.currentGlj.basePrice){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    that.currentGlj.basePrice = gljBasePrc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    that.reshowGljBasePrc(that.currentGlj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    updateBasePrc.push({gljId: that.currentGlj.ID, gljType: that.currentGlj.gljType, basePrice: that.currentGlj.basePrice}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                updateArr.push(that.currentGlj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //消耗量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         if(info.cellRange.col === 4){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let items = sheetOpr.analyzePasteData(me.setting, info); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let row = info.cellRange.row; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for(let i = 0; i < items.length; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(row + i < that.currentComponent.length){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    let currentObj = that.currentComponent[row + i]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(items[i].consumeAmt.trim().length > 0 && items[i].consumeAmt !== currentObj.consumeAmt){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        let roundCons = scMathUtil.roundTo(parseFloat(items[i].consumeAmt), -3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        isChange = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        currentObj.consumeAmt = roundCons; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        for(let j = 0; j < component.length; j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if(component[j].ID === currentObj.ID){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                component[j].consumeAmt = currentObj.consumeAmt; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            for (let j = 0; j < component.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if (component[j].ID === currentObj.ID) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    component[j].consumeAmtProperty = currentObj.consumeAmtProperty; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        sheetOpr.showData(me, me.workBook.getSheet(0), me.setting, that.currentComponent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //me.workBook.getSheet(0).setValue(row + i, info.cellRange.col, currentObj.consumeAmt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        me.workBook.getSheet(0).setValue(row + i, info.cellRange.col, currentObj.consumeAmt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     me.workBook.getSheet(0).setValue(row + i, info.cellRange.col, ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(isChange){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (isChange) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //计算工料机单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let gljBasePrc = me.reCalGljBasePrc(that.currentComponent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(gljBasePrc !== that.currentGlj.basePrice){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    that.currentGlj.basePrice = gljBasePrc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (that.isGljPriceChange(that.currentGlj, gljBasePrc)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    that.setPrice(that.currentGlj, gljBasePrc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     that.reshowGljBasePrc(that.currentGlj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //updateBasePrc.push({gljId: that.currentGlj.ID, gljType: that.currentGlj.gljType, basePrice: that.currentGlj.basePrice}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 updateArr.push(that.currentGlj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(updateArr.length > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (updateArr.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             me.updateComponent(updateArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           /* if(updateBasePrc.length > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                that.updateRationBasePrcRq(updateBasePrc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            /* if(updateBasePrc.length > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 that.updateRationBasePrcRq(updateBasePrc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             }*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     updateComponent: function (updateArr) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -489,15 +519,15 @@ let gljComponentOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $.ajax({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             type: 'post', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             url: 'complementartGlj/api/updateComponent', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            data: {"userId": pageOprObj.userId, "updateArr": JSON.stringify(updateArr)}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            data: { "userId": pageOprObj.userId, "updateArr": JSON.stringify(updateArr) }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             dataType: 'json', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             success: function (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(!result.error){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        that.currentComponent =  that.getCurrentComponent(result.data[0].component); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        sheetOpr.cleanData(me.workBook.getSheet(0), me.setting, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        sheetOpr.showData(me.workBook.getSheet(0), me.setting, that.currentComponent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!result.error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    that.currentComponent = that.getCurrentComponent(result.data[0].component); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sheetOpr.cleanData(me.workBook.getSheet(0), me.setting, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sheetOpr.showData(me, me.workBook.getSheet(0), me.setting, that.currentComponent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     sheetOpr.cleanData(me.workBook.getSheet(0), me.setting, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $('#componentsCacnel').click(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -505,18 +535,44 @@ let gljComponentOprObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     round: function (v, e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let t=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for(;e>0;t*=10,e--); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for(;e<0;t/=10,e++); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return Math.round(v*t)/t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let t = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (; e > 0; t *= 10, e--); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (; e < 0; t /= 10, e++); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return Math.round(v * t) / t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    reCalGljBasePrc: function (component) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let me = gljComponentOprObj, gljBasePrc = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for(let i = 0; i < component.length; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let roundBasePrc = scMathUtil.roundTo(parseFloat(component[i].basePrice), -2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let roundConsumeAmt = scMathUtil.roundTo(parseFloat(component[i].consumeAmt), -3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            gljBasePrc = scMathUtil.roundTo(scMathUtil.roundTo(roundBasePrc * roundConsumeAmt, me.processDecimal) + gljBasePrc, me.processDecimal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    reCalGljBasePrc: function (components) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /*         let me = gljComponentOprObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let gljBasePrc = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for(let i = 0; i < component.length; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let roundBasePrc = scMathUtil.roundTo(parseFloat(component[i].basePrice), -2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let roundConsumeAmt = scMathUtil.roundTo(parseFloat(component[i].consumeAmt), -3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    gljBasePrc = scMathUtil.roundTo(scMathUtil.roundTo(roundBasePrc * roundConsumeAmt, me.processDecimal) + gljBasePrc, me.processDecimal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return gljBasePrc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let me = gljComponentOprObj, re = repositoryGljObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 只有一个单价的情况,只有一个单价则只有一个消耗量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!priceProperties || priceProperties.length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let gljBasePrc = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (let i = 0; i < components.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let roundBasePrc = scMathUtil.roundTo(parseFloat(components[i].basePrice), -2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let roundConsumeAmt = scMathUtil.roundTo(parseFloat(components[i].consumeAmt), -3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                gljBasePrc = scMathUtil.roundTo(scMathUtil.roundTo(roundBasePrc * roundConsumeAmt, me.processDecimal) + gljBasePrc, me.processDecimal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return scMathUtil.roundTo(gljBasePrc, -2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { // 多单价的情况 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let gljPriceProperty = re.getPriceProperty(priceProperties); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (let priceProp in gljPriceProperty) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let consumeAmtField = re.getConsumeAmtField(consumeAmtProperties, priceProp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (let component of components) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let roundBasePrc = scMathUtil.roundTo(parseFloat(component['priceProperty'][priceProp]), -2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let roundConsumeAmt = scMathUtil.roundTo(parseFloat(component['consumeAmtProperty'][consumeAmtField]), -3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    gljPriceProperty[priceProp] = scMathUtil.roundTo(scMathUtil.roundTo(roundBasePrc * roundConsumeAmt, me.processDecimal) + gljPriceProperty[priceProp], me.processDecimal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                scMathUtil.roundTo(gljPriceProperty[priceProp], -2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return gljPriceProperty; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return gljBasePrc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 |