整合系统原有的回调函数,然后统一调用同一个回调函数:
var ECSTM = {};
ECSTM.addFormValueChangeEvent = function(fnCallBack) {
var oldCheckinput2 = window.checkinput2;
var oldWfbrowvaluechange = window.wfbrowvaluechange;
var oldOnWorkFlowShowTime = window.onWorkFlowShowTime;
var _fieldId, _rowIndex, _value;
// 文本框、下拉选择
window.checkinput2 = function(eId, eSpanId, viewType) {
// eId: field5847_0, eSpanId: field5847_0span, viewType: 0
var fieldIdInfo = eId.split('_');
_fieldId = fieldIdInfo[0];
_rowIndex = fieldIdInfo[1];
_value = $('#' + eId).val();
fnCallBack(_fieldId, _rowIndex, _value);
oldCheckinput2(eId, eSpanId, viewType);
};
// 浏览按钮(人力资源、部门、日期)
window.wfbrowvaluechange = function(obj, fieldid, rowindex) {
// obj: [object HTMLInputElement], fieldid: 5832, rowindex:
_fieldId = 'field' + fieldid;
_rowIndex = rowindex;
_value = isNaN(parseInt(rowindex)) ? $('#' + _fieldId).val() : $('#' + _fieldId + '_' + rowindex).val();
fnCallBack(_fieldId, _rowIndex, _value);
oldWfbrowvaluechange(obj, fieldid, rowindex);
};
// 浏览按钮(时间)
window.onWorkFlowShowTime = function(spanname, inputname, ismand, callBackFn) {
oldOnWorkFlowShowTime(spanname, inputname, ismand, function(){
var fieldIdInfo = inputname.split('_');
_fieldId = fieldIdInfo[0];
_rowIndex = fieldIdInfo[1];
_value = $('#' + inputname).val();
fnCallBack(_fieldId, _rowIndex, _value);
callBackFn();
});
};
};
如何使用:
$(document).ready(function(){
ECSTM.workflowId = $('input[name=workflowid]').val();
ECSTM.nodeId = $('input[name=nodeid]').val();
// 获取加班时数需要的字段,申请人,日期,开始时间,结束时间,外出加班,扣除就餐时间
ECSTM.getHoursFields = ['field5943', 'field5946', 'field5947', 'field5948', 'field5952', 'field5953'];
// 表单字段值改变回调函数
ECSTM.addFormValueChangeEvent(function(_fieldId, _rowIndex, _value){
// 如果是“HR004-加班申请流程 > 创建”节点
if (ECSTM.nodeId == '207') {
if (ECSTM.getHoursFields.indexOf(_fieldId) >= 0) {
console.log('计算加班时间');
}
}
});
});