| 
					
				 | 
			
			
				@@ -17,13 +17,13 @@ $(document).ready(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {name: '总消耗量', field: '', visible: true}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {name: '基价单价', field: "unit_price.base_price", visible: true}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {name: '调整基价', field: 'adjust_price', visible: true}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        {name: '市场单价', field: "unit_price.market_price", visible: true}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        {name: '是否暂估', field: 'is_evaluate', visible: true, cellType: new GC.Spread.Sheets.CellTypes.CheckBox()}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '市场单价', field: "unit_price.market_price", visible: true, validator: 'number'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '是否暂估', field: 'is_evaluate', visible: true, cellType: new GC.Spread.Sheets.CellTypes.CheckBox(),  validator: 'boolean'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {name: '供货方式', field: 'supply', visible: true}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {name: '甲供数量', field: 'supply_quantity', visible: true}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {name: '交货方式', field: 'delivery', visible: true}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {name: '送达地点', field: 'delivery_address', visible: true}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        {name: '不调价', field: 'is_adjust_price', visible: true, cellType: new GC.Spread.Sheets.CellTypes.CheckBox()}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '不调价', field: 'is_adjust_price', visible: true, cellType: new GC.Spread.Sheets.CellTypes.CheckBox(),  validator: 'boolean'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {name: 'UID', field: 'unit_price.id', visible: false}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 数据转换格式 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -47,22 +47,22 @@ $(document).ready(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 居中样式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     let centerStyleSetting = {hAlign: 1}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    sheet.setStyle(-1, 11, getStyle(centerStyleSetting), GC.Spread.Sheets.SheetArea.viewport); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    sheet.setStyle(-1, 16, getStyle(centerStyleSetting), GC.Spread.Sheets.SheetArea.viewport); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sheet.setStyle(-1, 10, getStyle(centerStyleSetting), GC.Spread.Sheets.SheetArea.viewport); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sheet.setStyle(-1, 15, getStyle(centerStyleSetting), GC.Spread.Sheets.SheetArea.viewport); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     sheet.setStyle(-1, 3, getStyle(centerStyleSetting), GC.Spread.Sheets.SheetArea.viewport); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 向右对齐样式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     let rightStyleSetting = {hAlign: GC.Spread.Sheets.HorizontalAlign.right}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sheet.setStyle(-1, 6, getStyle(rightStyleSetting), GC.Spread.Sheets.SheetArea.viewport); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     sheet.setStyle(-1, 7, getStyle(rightStyleSetting), GC.Spread.Sheets.SheetArea.viewport); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     sheet.setStyle(-1, 8, getStyle(rightStyleSetting), GC.Spread.Sheets.SheetArea.viewport); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     sheet.setStyle(-1, 9, getStyle(rightStyleSetting), GC.Spread.Sheets.SheetArea.viewport); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    sheet.setStyle(-1, 10, getStyle(rightStyleSetting), GC.Spread.Sheets.SheetArea.viewport); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 设置可编辑列 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sheet.getRange(-1, 9, -1, 1).locked(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     sheet.getRange(-1, 10, -1, 1).locked(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    sheet.getRange(-1, 11, -1, 1).locked(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    sheet.getRange(-1, 16, -1, 1).locked(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sheet.getRange(-1, 15, -1, 1).locked(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 设置json数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     let rowCounter = 0; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -91,6 +91,12 @@ $(document).ready(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 sheet.getRange(rowCounter, columnCounter, 1, 1).locked(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 如果类型为混凝土、砂浆、配合比、机械,则市场单价不能修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (columnInfo.field === 'unit_price.market_price' && canNotChangeTypeId.indexOf(data.unit_price.type + '') >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 锁定该单元格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sheet.getRange(rowCounter, columnCounter, 1, 1).locked(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sheet.setValue(rowCounter, columnCounter, cellData, GC.Spread.Sheets.SheetArea.viewport); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             columnCounter++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -157,6 +163,14 @@ $(document).ready(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (isChanging) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 校验数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let validator = header[column].validator !== undefined ? header[column].validator : null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let value = info.newValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (validator && !checkData(validator, value)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            alert('数据格式错误,请重新输入!'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sheet.setValue(row, column, info.oldValue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 获取id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let idColumn = getFieldColumn(header, idString); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -165,10 +179,11 @@ $(document).ready(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let id = sheet.getValue(row, idColumn); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $.ajax({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             url: '/glj/update', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             type: 'post', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            data: {id: id, field: field, value: info.newValue, model: model}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            data: {id: id, field: field, value: value, model: model}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             dataType: 'json', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             error: function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 alert('数据传输有误!'); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -216,6 +231,11 @@ $(document).ready(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 绑定双击事件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sheet.bind(GC.Spread.Sheets.Events.CellDoubleClick, function (element, info) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(info); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -251,4 +271,27 @@ function getFieldColumn(data, field) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 校验数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @param {string} validator 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @param {string} value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @return {boolean} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function checkData(validator, value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let result = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    switch (validator) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        case 'number': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let regular = /^\d+(\.\d+)?$/; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result = regular.test(value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        case 'boolean': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let booleanValue = [true, false]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result = booleanValue.indexOf(value) >= 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |