yuanzhi_kuang 1 week ago
parent
commit
2d938704b7
1 changed files with 222 additions and 14 deletions
  1. 222 14
      js/customer/compensation/web/js/timepieceSchemeBillEx.js

+ 222 - 14
js/customer/compensation/web/js/timepieceSchemeBillEx.js

@@ -1,21 +1,217 @@
+var cellColor = '#90EE90' ; // 浅绿色 
+// var checkField = 'S83'; // 点检率字段
+// var booleanField = 'S93'; // 布尔字段
+
+var COMRATE = 'MQ005'; 	// 点检率编码
+var JOBTYPE = "MQ004"; 	// 岗位类型
+var SKILLLEVEL = "MQ003"; // 技能等级 SKILLLEVEL
+var ONSITE = "MQ007";	 // 是否现场作业
+var TEAMAPP = "MQ012";   // 是否片长
+var SALARYSEQ = "MQ015"; //MQ运维工资序列
+var booleanNum = 'boolean01'; // 布尔编码
+// 使用方括号表示法动态设置fieldMap的key
+var fieldMap = {
+    [booleanNum]: "",
+    [COMRATE]: "",
+    [JOBTYPE]: "",
+    [SKILLLEVEL]: "",
+    [ONSITE]: "",
+    [TEAMAPP]: "",
+    [SALARYSEQ]: ""
+};	// 字段映射   
+ 
+
+//数组
+var fieldArr = [booleanNum,COMRATE,JOBTYPE,SKILLLEVEL,ONSITE,TEAMAPP,SALARYSEQ];
+
 shr.defineClass("shr.compensation.TimepieceSchemeBillEx", shr.compensation.TimepieceSchemeBill, {
 	initalizeDOM: function() {
 		var _self = this;
 		shr.compensation.TimepieceSchemeBillEx.superClass.initalizeDOM.call(this);
+
+		_self.remoteCall({
+			method:"getFieldRemark",
+			param:  {fieldArr:fieldArr.toString()}, 
+			async: false,
+			success:function( data ){
+				if(data ){
+					//循环data,如果key等于fieldMap的key,则将data的value赋值给fieldMap的value
+					for(var key in data){
+						if(fieldMap.hasOwnProperty(key)){
+							fieldMap[key] = data[key];
+						}
+					}
+				}
+			},
+			error:function(){ 
+			},
+		});
 		 
 	},
-    /**
-     * 选择条件
-     */
-    selectWhereAction : function(){
-        var _self = this;
-        shr.compensation.TimepieceSchemeBillEx.superClass.selectWhereAction.call(this);
-        var date = new Date();
-        var beginDate = (new Date(date.getFullYear(),date.getMonth(),1)).format('yyyy-MM-dd');
-        var endDate = (new Date(date.getFullYear(),date.getMonth()+1,0)).format('yyyy-MM-dd');
-        $('#beginDate').shrDateTimePicker("setValue",beginDate);
-        $('#endDate').shrDateTimePicker("setValue",endDate);
-    },
+
+
+	afterRenderGrid: function() {
+		var _self = this;
+		_self.setCellStyle();
+	},
+
+
+
+
+
+
+  setCellStyle: function() {
+	var $entry = $('#entry');
+    // 使用jqGrid的方法获取所有行id
+    var rowIds = $entry.jqGrid('getDataIDs');
+	  var  bFeild = fieldMap[booleanNum];
+	  var  comFeild = fieldMap[COMRATE];
+    for (var i = 0; i < rowIds.length; i++) {
+        var rowId = rowIds[i];
+        // 获取行数据
+        var rowData = $entry.jqGrid('getRowData', rowId);
+        // 注意:列名大小写是否匹配?这里假设列名是'S93'
+		//如果cellname存在fieldArr中,并且不等于booleanNum,则进行点检率校验	
+		var booleanField =  fieldMap[booleanNum];
+		//如果rowData[booleanField]不为空
+			//循环fieldMap,如果rowData[booleanField]的数据值中,(包含对应列名fieldMap[key]),则对对应字段列(fieldMap[key])进行背景色改变
+		if (booleanField) {
+			var  boolVal = rowData[booleanField];
+			for (var key in fieldMap) {
+				// 确保key是fieldMap自身的属性,且不是booleanNum
+				if (fieldMap.hasOwnProperty(key) && key !== booleanNum) {
+					var checkField = fieldMap[key];
+					// 确保checkField存在且rowData中有该字段
+					if (checkField && rowData[checkField] !== undefined && boolVal.indexOf(checkField)!== -1 ) {
+						$entry.jqGrid('setCell', rowId, checkField, rowData[checkField], {
+							'background-color': cellColor
+						});
+					}
+				}
+			}
+		}
+   }
+		$entry.jqGrid('hideCol', bFeild); // 隐藏列
+  },
+
+
+ /**
+	 * 编辑表格姓名F7新增点击事件
+	 */
+	setGridNameEvent: function() {
+		var _self = this;
+		$entry = $('#entry');
+		$entry.jqGrid("option",{"afterEditCell":function(rowid, colName, value,iRow, iCol,rowData){
+			if(colName === "person"){
+				var id = "#"+iRow + "_person"; 
+				var option = $(id).shrPromptBox("option");
+				var subWidgetOptions = option.subWidgetOptions
+				subWidgetOptions.multiselect = true;
+				subWidgetOptions.filter = " hrOrgUnit.id = '" + $("#hrOrgUnit").shrPromptBox("getValue").id + "'";
+				subWidgetOptions.otherParams = {adminOrgId:$("#adminOrg").shrPromptBox("getValue").id,hrOrgUnitId:$("#hrOrgUnit").shrPromptBox("getValue").id};
+				$(id).shrPromptBox("option",{
+					"subWidgetOptions":subWidgetOptions,
+					"onchange":function(e, val) {
+						var personData = val.current;
+						var prevPersonData = val.previous;
+						var length = personData.length;
+						var newRowData = [];
+						for(var i =0; i<length; i++){
+							var item = personData[i];
+							var updateItem = {};
+							var oldData = $entry.wafGrid("getRowData",rowid);
+							if (oldData.hasOwnProperty('entrycalstatus')&&item['person.id']!==oldData['person']['id']){
+								oldData.entrycalstatus ='0';
+							}
+							if(i==0){
+								if(!prevPersonData || prevPersonData.id !== item["person.id"]){
+									updateItem = {
+										"number": item["person.number"],
+										"adminOrgUnit":{id : item["adminOrg.id"], name : item["adminOrg.name"]},
+										"position":{id : item["position.id"], name : item["position.name"]},
+										"cmpEmpORelation":{id : item.id,name : item.id},
+										"person":{id : item["person.id"],name :  item["person.name"]},
+										"submitElement":oldData.submitElement,
+										"id":oldData.id,
+										"tempId":oldData.tempId,
+										"effectDate":oldData.effectDate,
+										"entrycalstatus":oldData.entrycalstatus,
+										"currency":oldData.currency,
+										"dealStatus":oldData.dealStatus
+									}
+									var newData = _self.updateRow(updateItem,oldData);
+									$entry.wafGrid("setRowData",rowid,newData);
+								}else{
+									$entry.wafGrid("setRowData",rowid,oldData);
+								}
+							}else{
+								var newData = _self.createNewEntryModel();
+								newData.number = item["person.number"];
+								newData.person = {id : item["person.id"],name :  item["person.name"]};
+								newData.adminOrgUnit = {id : item["adminOrg.id"], name : item["adminOrg.name"]};
+								newData.position = {id : item["position.id"], name : item["position.name"]};
+								newData.cmpEmpORelation = {id : item.id,name : item.id};
+								newRowData.push(newData);
+							}
+						}
+						if(newRowData.length){
+							$entry.jqGrid('addBlockData','id',newRowData);
+							$("#entry").jqGrid('setGridHeight', 300);
+						}
+						setTimeout(function(){
+							var frozenScrollTop = $(".frozen-bdiv").scrollTop();
+							$("#entry").parents(".ui-jqgrid-bdiv").scrollTop(frozenScrollTop);
+						})
+					}
+				})
+			}
+		}})
+		$entry.delegate('input', 'focus', function() {
+			_self.setCellLength();
+		});
+		$entry.wafGrid("option", {
+			afterSaveCell : function (rowid, cellname, value, iRow, iCol) {
+                if ($("#entry").jqGrid('getCellObject', rowid, 'entrycalstatus')[0]){
+					$("#entry").jqGrid('setCell', rowid,"entrycalstatus", '0');
+				}
+				//如果cellname存在fieldMap的值中,并且不等于booleanNum,则进行点检率校验
+				var booleanField =  fieldMap[booleanNum];
+				if (isValueInFieldMap(cellname) && cellname != booleanField) {
+					var boolVal = $("#entry").jqGrid('getCell', rowid, booleanField );
+					//如果boolVal不为空,则将boolVal的值赋值给booleanField字段
+					if(boolVal && "" != boolVal){
+						//判断boolVal中是否包含cellname,如包含则不处理,否则使用","将cellname与boolVal拼接成新的boolVal
+						var boolValStr = boolVal.toString();
+						if(boolValStr.indexOf(cellname) == -1){
+							boolValStr = boolValStr + "," + cellname;
+						}
+						// 4. 更新 boolVal
+						boolVal = boolValStr;
+					} else{
+						boolVal = cellname;
+					}
+					$("#entry").jqGrid('setCell', rowid, booleanField , boolVal);
+					 
+					//并更新点检率单元格背景色为绿色	
+					  $("#entry").jqGrid('setCell', rowid, cellname, value, {
+            			'background-color': cellColor // 浅绿色
+        			});
+				}
+				else if(colName === "person"){
+					//去除当前行所有的颜色
+					var rowData = $entry.jqGrid('getRowData', rowid);
+					for(var key in rowData){
+						$("#entry").jqGrid('setCell', rowid, key, rowData[key], {
+							'background-color': '' // 白色
+						});
+					}
+				}
+			},
+		});
+	},
+ 
+	 
+ 
 
 	saveAction: function(event) {
 		var _self = this;
@@ -135,7 +331,7 @@ shr.defineClass("shr.compensation.TimepieceSchemeBillEx", shr.compensation.Timep
 							shrDataManager.pageNavigationStore.pop();
 					if( 0 != assignedRowsCount && null != assignedRowsCount){
 						shr.showInfo({
-        					message: "保存成功,存入"+assignedRowsCount+"条MES系统数据."
+        					message: "保存成功,已填入了"+assignedRowsCount+"条点检率数据."
         				});
 						//3秒后再执行其他操作
 						setTimeout(function(){
@@ -150,4 +346,16 @@ shr.defineClass("shr.compensation.TimepieceSchemeBillEx", shr.compensation.Timep
 	},
 
 	
-});
+});
+
+
+
+	// 检查cellname是否存在于fieldMap的值(value)中
+	function isValueInFieldMap(cellname) {
+		for (var key in fieldMap) {
+			if (fieldMap.hasOwnProperty(key) && fieldMap[key] === cellname) {
+				return true;
+			}
+		}
+		return false;
+	}