123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380 |
- var cellColor = '#90EE90' ; // 浅绿色
- var yellColor = '#FFFF46' ; // 黄色
- // 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(){
- },
- });
-
- },
- 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];
- var errorRow = "" ;
- 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];
- if(checkField && rowData[checkField] !== undefined && (rowData[checkField] == null || rowData[checkField] == "" ) ){
- //点检率为空,黄色
- $entry.jqGrid('setCell', rowId, checkField, rowData[checkField], {
- 'background-color': yellColor
- });
- if( key == COMRATE ){
- errorRow += (i+1)+"," ;
- }
- }
- // 确保checkField存在且rowData中有该字段 锁定的字段绿色
- if (checkField && rowData[checkField] !== undefined && boolVal && boolVal.indexOf(checkField)!== -1 ) {
- $entry.jqGrid('setCell', rowId, checkField, rowData[checkField], {
- 'background-color': cellColor
- });
- }
-
- }
- }
- }
- }
- if(errorRow != ""){
- //去除errorRow最后一个“,”
- errorRow = errorRow.substring(0,errorRow.length-1);
- var errorMsg = "第"+ errorRow+ "行,点检率数据为空,请检查";
- shr.showWarning({message: errorMsg, hideAfter: 6});
- }
- $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;
- if(_self.validate('save') && _self.verify()){// 需要先进行基本的校验
- _self.weakVerify(function() {
- // 修改这里:直接调用当前类的doSave方法
- _self.doSave(event, 'save'); // 关键修改点
- }, "save");
- }else{
- if(_self != top){// in iframe
- shr.setIframeHeight(window.name);
- }
- }
- },
- checkHeadData: function() {
- var flag = true;
- var hrOrgUnit = $('#hrOrgUnit').shrPromptBox('getValue');
- var adminOrg = $('#adminOrg').shrPromptBox('getValue');
- var submitScheme = $('#submitScheme').shrPromptBox('getValue');
-
- var emsg= '';
- if(null == hrOrgUnit || "" == hrOrgUnit.id){
- flag = false;
- emsg += "[业务组织]";
- }
- if(null == adminOrg || "" == adminOrg.id){
- flag = false;
- emsg += "[行政组织]";
- }
- if(null == submitScheme || "" == submitScheme.id){
- flag = false;
- emsg += "<[日薪方案]";
- }
- if(!flag){
- emsg += "字段不能为空,请完善信息再操作!"
-
- shr.showWarning({
- message: emsg,
- hideAfter: 5
- });
- }
- return flag;
- },
-
- validate: function(exeVal) {
- var _self = this;
- var workArea = this.getWorkarea();
- var $form = $("form", workArea);
- var flag = this.checkNoPermFields();
- if(!flag){
- return flag;
- }
- if(exeVal == 'save'){
- flag = _self.checkHeadData()
- }else{
- flag = $form.wafFormValidator("validateForm", true);
- }
- if(exeVal == 'save' && !flag){
- return flag;
- }
- //判断是否有必填的头像没有上传
- $("[ctrlrole='headUpload']").each(function(index, item){
- var rule = $.validator.attributeRules(item);
- var isRequired = rule && rule.required;
- if($(item).attr('src') == 'images/default_headsmall.png' && isRequired){
- flag = false;
- }
- })
- if (!flag) {
- this.handleErrorTip($form);
- return flag;
- }
- if (this.checkAttachment().length > 0) {
- flag = false;
- shr.showWarning({
- message: this.checkAttachment().join(',') + $.shrI18n.framework.tips.attachmentNeedUpload,
- hideAfter: 5
- });
- }
- return flag;
- },
- /**
- * 保存真正执行方法
- */
- doSave: function(event, action) {
- var _self = this;
- var data = _self.assembleSaveData(action);
-
- var target;
- if (event && event.currentTarget) {
- target = event.currentTarget;
- }
- shr.doAction({
- target: target,
- url: _self.dynamicPage_url,
- type: 'post',
- data: data,
- success : function(data) {
- var responseData = data.responseData
- if (_self.isFromF7()) {
- // 来自F7,关闭当前界面,并给F7设置
- var dataF7 = {
- id : responseData,
- name : $.parseJSON(data.model).name
- };
- dialogClose(dataF7);
- } else {
- var assignedRowsCount = data.assignedRowsCount;
- // 普通保存,去除最后一个面包屑,防止修改名字造成面包屑重复
- shrDataManager.pageNavigationStore.pop();
- if( 0 != assignedRowsCount && null != assignedRowsCount){
- shr.showInfo({
- message: "保存成功,已填入了"+assignedRowsCount+"条点检率数据."
- });
- //3秒后再执行其他操作
- setTimeout(function(){
- _self.viewAction(responseData);
- }, 1800);
- }else{
- _self.viewAction(responseData);
- }
- }
- }
- });
- },
-
- });
- // 检查cellname是否存在于fieldMap的值(value)中
- function isValueInFieldMap(cellname) {
- for (var key in fieldMap) {
- if (fieldMap.hasOwnProperty(key) && fieldMap[key] === cellname) {
- return true;
- }
- }
- return false;
- }
|