Index: ssts-web/src/main/webapp/disinfectsystem/qualitymonitoring/qualitymonitoringInstanceForm.js =================================================================== diff -u -r34014 -r34076 --- ssts-web/src/main/webapp/disinfectsystem/qualitymonitoring/qualitymonitoringInstanceForm.js (.../qualitymonitoringInstanceForm.js) (revision 34014) +++ ssts-web/src/main/webapp/disinfectsystem/qualitymonitoring/qualitymonitoringInstanceForm.js (.../qualitymonitoringInstanceForm.js) (revision 34076) @@ -3675,16 +3675,25 @@ UserTableManager.getUserByBarcode(barcode,function(responseText){ if(!isUndefinedOrNullOrEmpty(responseText)){ var result = Ext.decode(responseText); - if(!result.success){ - showResultQM("请输入正确的人员条码!"); - return; - } - Ext.getCmp(domId).setValue(result.fullName); if(domId == 'responsiblePerson'){ + if(!result.success){ + showResultQM("请输入正确的人员条码!"); + return; + } if((result.fullName || '') !== ''){ Ext.getCmp('responsiblePerson').disable(); } + }else { + if(!result.success){ + if(result.isNotSameOrgUnit){ + showResultQM("登记人需为当前科室用户!"); + }else { + showResultQM("请输入正确的人员条码!"); + } + return; + } } + Ext.getCmp(domId).setValue(result.fullName); }else{ showResultQM('找不到该条码所对应的人员信息'); } @@ -4188,6 +4197,33 @@ }); } +//测试是否为有效的条码,9到11位 +function isValidBarcode(text){ + var re = /^([0-9]{9,11})$/; + if(re.test(text)){ + return true; + } + else{ + return false; + } +} + +// 测试是否为工号,长度大于1位,小于等于6位,并且仅允许数字和字母 +function isValidStaffNumber(text){ + if (text.length < 1 || text.length > 6){ + return false; + } + var letterNumber = /^[0-9a-zA-Z]+$/; + var atLeastOneNumber = /.*[0-9].*/; + if(text.match(letterNumber) && text.match(atLeastOneNumber)){ + return true; + } + else + { + return false; + } +} + /** * 创建质量监测实例的表单. * @param id 质量监测实例id @@ -4312,8 +4348,26 @@ listeners:{ specialkey : function(field,e){ if(e.getKey() == 13){ - var createUserName = Ext.getCmp('createUserName').getValue(); - loadResponPersonByBarcode(createUserName,'createUserName') + var createUserNameBox = Ext.getCmp('createUserName'); + var text = createUserNameBox.getValue(); + if (isValidBarcode(text)) { + loadResponPersonByBarcode(text, 'createUserName'); + } else if (isValidStaffNumber(text)) { + UserTableManager.getUserByLoginName(text, function (responseText) { + if(!isUndefinedOrNullOrEmpty(responseText)){ + var result = Ext.decode(responseText); + if(result.isBelongsToCurrentLoginUserOrgs == false){ + showResultQM("登记人需为当前科室用户!"); + return + } + Ext.getCmp('createUserName').setValue(result.fullName); + }else{ + showResultQM('找不到该工号对应的人员信息'); + } + }); + }else { + showResult('该工号或条码不存在!'); + } } } }