|
@@ -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;
|
|
|
+ }
|