shr.defineClass("shr.customer.gtiit.FillSignCardEditEx",shr.ats.FillSignCardEdit,{ // initalizeDOM:function(){ shr.customer.gtiit.FillSignCardEditEx.superClass.initalizeDOM.call(this); }, setFSCEntry: function (rst) { var _self = this; if ( rst.records != null && rst.records > 0 && rst.rows != null && rst.rows.length > 0 ) { var id, attendDate, type, fillCardTimeStr, remark, reason_id, reason_name; var billId = $("#id").val(); var ramarkMap; _self.remoteCall({ method: "getToremarks", param: {billId: billId}, async: false, success: function(data) { ramarkMap = data; }, error : function(){ } }); for (var i = 0; i < rst.rows.length; i++) { var row = rst.rows[i]; (id = shr.xssFilter(row["id"])), (attendDate = shr.xssFilter(row["attendDate"])), (type_key = shr.xssFilter(row["type.key"])), (type_value = shr.xssFilter(row["type.value"])), (fillCardTimeStr = shr.xssFilter(row["fillCardTimeStr"])), (reason_id = shr.xssFilter(row["reason.id"])), (reason_name = shr.xssFilter(row["reason.name"])), (remark = ramarkMap[row["id"]]); var row_fields_work = ""; if ( _self.getOperateState() == "ADDNEW" || _self.getOperateState() == "EDIT" ) { row_fields_work = '
' + '
' + '' + '' + "
" + '
' + '
' + '
' + // + '' '
'; if (i == 0) { row_fields_work += '
+
'; } else { row_fields_work += '
+x
'; } row_fields_work += "
"; $("#fillSignCardEntryInfo").append(row_fields_work); $(".fillCardTime").on("input", function (e) { var target = e.target; var val = $(target).val() || ""; var hasSignal = val.indexOf(":") !== -1 || val.indexOf(":") !== -1; if ( val.length === 4 && /^\d+$/.test(val) && !hasSignal ) { var hour = val.slice(0, 2); val = hour + ":" + val.slice(2); if (hour < 24) { $(target).val(val); } return; } if ( val.length >= 5 && /^(\d{2}[:|:]\d{2,})+$/.test(val) ) { var hour = val.slice(0, 2); val = val.slice(0, 5); if (hour < 24) { $(target).val(val); } return; } }); var remarkObj = { l1: "", l2: "", l3: "" }; remarkObj.l1 = correctValue(shr.xssFilter(row["remark_l1"])); remarkObj.l2 = correctValue(shr.xssFilter(row["remark_l2"])); remarkObj.l3 = correctValue(shr.xssFilter(row["remark_l3"])); _self.addRowFieldString( false, i, reason_id, reason_name, type_key, type_value, remarkObj ); } else if (_self.getOperateState() == "VIEW") { row_fields_work = '
' + '
' + '' + '' + ' ' + '' + correctValue(attendDate) + "" + "
" + '
' + correctValue(type_key) + "
" + '
' + correctValue(reason_name) + "
" + '
' + correctValue(fillCardTimeStr) + "
" + '
' + correctValue(remark) + "
" + "
"; $("#fillSignCardEntryInfo").append(row_fields_work); } atsMlUtile.setTransDateValue("attendDate" + i, attendDate); _self.initAtsBillExplain(); } } //添加事件处理 //新增 $("#fillSignCardEntryInfo a.rowAdd").die("click"); $("#fillSignCardEntryInfo a.rowAdd").live("click", function () { var vali = $( "#fillSignCardEntryInfo .row_field:last input[name^=attendDate]" ).attr("name"); if (vali != null && vali != "") { var idx = new String(vali).substr(10); var idxA = new Number(idx) + 1; _self.addRowFieldString( true, idxA, null, null, null, null, null ); } }); //删除 $("#fillSignCardEntryInfo a.rowDel").die("click"); $("#fillSignCardEntryInfo a.rowDel").live("click", function () { var entryId = $( $(this).closest("div.row_field").children()[0] ).children()[0].value; if (entryId != "" && entryId != null && entryId != undefined) { deletedList += entryId + ","; } $(this).closest("div.row_field").remove(); }); }, addRowFieldString: function ( flag, i, reason_id, reason_name, type_key, type_value, remark ) { if (flag) { var row_fields_work = '
' + '
' + '
' + '
' + '
' + '
' + '
+x
' + "
"; $("#fillSignCardEntryInfo").append(row_fields_work); $(".fillCardTime").on("input", function (e) { var v = $(e.target).val() || ""; if (/[0-5][0-9][0-5][0-9]/.test(v) && v.length == 4) { v = $(e.target).val().substring(0, 2) + ":" + $(e.target).val().substring(2, 4); } if ( (/[0-2][0-9]:[0-5][0-9]/.test(v) && v.length == 5) || (/[0-2][0-9]:[0-5][0-9]/.test(v) && v.length == 5) ) { var h = new Number(v.substr(0, 2)); if (h < 24) { v = $(e.target).val().substring(0, 2) + ":" + $(e.target).val().substring(3, 5); $(e.target).val(v); } } }); } $('input[name="fillCardTimeStr' + i + '"]').attr( "validate", "{required:true,myTmVldt:true}" ); $('input[name="attendDate' + i + '"]').attr( "validate", "{required:true,myTmVldt1:true}" ); //将【考勤日期】 【补签卡类型】【补签卡原因】封装成F7 //备注改成多语言 /*$('input[name="remark' + i + '"]') .attr("id", "remark" + i) .shrMultiLangBox({ readonly: "", value: remark, validate: "{maxlength:128}", trimAll: false, onChange: null });*/ //针对从【考勤看板--我要补卡】中进入 if ( this.strdate != null && this.strdate != undefined && this.strdate != "" ) { $('input[name="attendDate' + i + '"]').shrDateTimePicker( "setValue", this.strdate ); } //【补签卡类型】 var that = this; var select_json = { id: "type" + i, readonly: "", value: "0", onChange: null, validate: "{required:true}", filter: "" }; select_json.data = [ { value: 1, alias: jsBizMultLan.atsManager_fillSignCardEdit_i18n_1 } ]; $('input[name="type' + i + '"]').shrSelect(select_json); if (!flag) { $('input[name="type' + i + '"]').val(type_key); $('input[name="type' + i + '_el"]').val(type_value); } else { //如果是新增,默认的就是补卡 $('input[name="type' + i + '"]').val( jsBizMultLan.atsManager_fillSignCardEdit_i18n_1 ); $('input[name="type' + i + '_el"]').val(1); } //【考勤日期】 var attendDate = atsMlUtile.getFieldOriginalValue("attendDate" + i); $('input[id="attendDate' + i + '"]').shrDateTimePicker({ id: "attendDate" + i, tagClass: "block-father input-height", readonly: "", yearRange: "", ctrlType: "Date", value: attendDate, isAutoTimeZoneTrans: false, validate: "{dateISO:true,required:true}", onChange: function () { if (0 == i) { that.initAtsBillExplain(); } }, isNewDateCtrl: true }); //【补签卡原因】 var grid_f7_json = { id: "reason" + i, name: "reason" + i }; grid_f7_json.subWidgetName = "shrPromptGrid"; var object = $('input[name="reason' + i + '"]'); grid_f7_json.subWidgetOptions = { title: jsBizMultLan.atsManager_fillSignCardEdit_i18n_4, uipk: "com.kingdee.eas.hr.ats.app.FillSignReason.AvailableList.F7", query: "" }; grid_f7_json.subWidgetOptions.isHRBaseItem = true; grid_f7_json.subWidgetOptions.filterConfig = [ { name: "isComUse", value: true, alias: jsBizMultLan.atsManager_fillSignCardEdit_i18n_20, widgetType: "checkbox" } ]; grid_f7_json.subWidgetOptions.bizFilterFields = "hrOrgUnit"; grid_f7_json.subWidgetOptions.f7ReKeyValue = "BaseInfo.id:BaseInfo.name"; grid_f7_json.subWidgetName = "specialPromptGrid"; grid_f7_json.validate = "{required:true}"; object.shrPromptBox(grid_f7_json); if (!flag) { object.val(correctValue(reason_name)); //利用F7de特性来设置值 $("#reason" + i + "_el").val(correctValue(reason_id)); } else { //新增行时,补签卡原因取自上一行 var preRow = i - 1; $("#reason" + i + "_el").val( correctValue($("#reason" + preRow + "_el").val()) ); $("#reason" + i).val(correctValue($("#reason" + preRow).val())); } }, assembleEntriesData: function () { var entries = []; var lengthArray = []; var personDateStr = ""; if (_self.getOperateState().toUpperCase() != "VIEW") { $("#fillSignCardEntryInfo input[name^=attendDate]").each(function ( i, domEle ) { var length = $(domEle) .attr("name") .substring("attendDate".length); lengthArray.push(parseInt(length)); }); //将数组由小到大排列 if (lengthArray.length > 0) { lengthArray.sort(sortNumber); } for (var i = 0; i < lengthArray.length; i++) { var entrie = { id: correctValue( $( '#fillSignCardEntryInfo input[name="id' + lengthArray[i] + '"]' ).val() ), attendDate: atsMlUtile.getFieldOriginalValue( 'fillSignCardEntryInfo input[name="attendDate' + lengthArray[i] + '"]' ), type: new Number( $( '#fillSignCardEntryInfo input[type=hidden][id="type' + lengthArray[i] + '_el"]' ).val() ), reason: { id: correctValue( $( '#fillSignCardEntryInfo input[type=hidden][id="reason' + lengthArray[i] + '_el"]' ).val() ), name: correctValue( $( '#fillSignCardEntryInfo input[name="reason' + lengthArray[i] + '"]' ).val() ) }, fillCardTimeStr: correctValue( $( '#fillSignCardEntryInfo input[name="fillCardTimeStr' + lengthArray[i] + '"]' ).val() ), toremarks: document.querySelector('#fillSignCardEntryInfo input[name="toremarks'+lengthArray[i]+'"]').value, person: { id: $("#entries_person").shrPromptBox("getValue").id } }; var date = entrie.attendDate; var personId = entrie.person.id; if (date && personId) { if (i > 0) { personDateStr += ","; } personDateStr += personId + "_" + date.substring(0, 10); } entries.push(entrie); } } else { $("#fillSignCardEntryInfo span[name^=attendDate]").each(function ( i, domEle ) { var length = $(domEle) .attr("name") .substring("attendDate".length); lengthArray.push(parseInt(length)); }); //将数组由小到大排列 if (lengthArray.length > 0) { lengthArray.sort(sortNumber); } for (var i = 0; i < lengthArray.length; i++) { var entrie = { id: correctValue( $( '#fillSignCardEntryInfo input[name="id' + lengthArray[i] + '"]' ).val() ), attendDate: atsMlUtile.getFieldOriginalValue( '#fillSignCardEntryInfo span[name="attendDate' + lengthArray[i] + '"]' ), type: new Number( $( '#fillSignCardEntryInfo input[type=hidden][id="type' + lengthArray[i] + '_el"]' ).val() ), reason: { id: correctValue( $( '#fillSignCardEntryInfo input[type=hidden][id="reason' + lengthArray[i] + '_el"]' ).val() ), name: correctValue( $( '#fillSignCardEntryInfo span[name="reason' + lengthArray[i] + '"]' ).text() ) }, fillCardTimeStr: correctValue( $( '#fillSignCardEntryInfo span[name="fillCardTimeStr' + lengthArray[i] + '"]' ).text() ), toremarks: document.querySelector('#fillSignCardEntryInfo input[name="toremarks'+lengthArray[i]+'"]').value, person: { id: $("#entries_person").val() } }; var date = entrie.attendDate; var personId = entrie.person.id; if (date && personId) { if (i > 0) { personDateStr += ","; } personDateStr += personId + "_" + date.substring(0, 10); } entries.push(entrie); } } if (personDateStr) { _self.remoteCall({ type: "post", method: "getPersonAdminOrgUnit", param: { personDateStr: personDateStr }, async: false, success: function (res) { var info = res; var personAtsInfo = {}; for (var i = 0; i < entries.length; i++) { var date = entries[i].attendDate; var personId = entries[i].person.id; if (date && personId) { var person_date = personId + "_" + date.substring(0, 10); personAtsInfo = info[person_date]; if (personAtsInfo && personAtsInfo.adminOrgUnit) { entries[i]["adminOrgUnit"] = personAtsInfo.adminOrgUnit; entries[i]["position"] = personAtsInfo.position; } } } } }); } return entries; } });