Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/sterilizer/sterilizerForm.js =================================================================== diff -u -r41394 -r41408 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/sterilizer/sterilizerForm.js (.../sterilizerForm.js) (revision 41394) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/sterilizer/sterilizerForm.js (.../sterilizerForm.js) (revision 41408) @@ -33,6 +33,19 @@ top.Ext.getCmp('sterilisationID').setValue(sterilisationIds); } +/** + * 判断当前数组中是否包含指定元素。日期类型和炉次相同视为相同 + * @param reminds + * @param remind + */ +function arrContainsFrequencyRemind(reminds, remind) { + for (var i = 0; i < reminds.length; i++){ + if (reminds[i].frequency === remind.frequency && reminds[i].dateType === remind.dateType) { + return true; + } + } + return false; +} //按炉次提醒的灭菌程序 function setSterilizationFrequecyReminds() { var store = top.Ext.getCmp('configGrid1').getStore(); @@ -42,7 +55,7 @@ var data = store.getAt(i).data; if (data.frequency == '' || data.sterilisation_id == '') { msg = '【按炉次提醒的灭菌程序】炉次号和灭菌程序都不能为空'; - continue; + break; } else { arr[i] = { dateType: data.dateType, @@ -52,6 +65,17 @@ } } } + if(!msg && arr.length > 0){ + var un_arr = [] + for(var i = 0; i < arr.length; i++){ + if(arrContainsFrequencyRemind(un_arr, arr[i])){ + msg = '【按炉次提醒的灭菌程序】不能添加相同日期和炉次的重复记录'; + break; + }else{ + un_arr.push(arr[i]); + } + } + } if (msg == '') { top.Ext.getCmp('sterilizationFrequecyReminds').setValue(JSON.stringify(arr)); return true; @@ -2096,7 +2120,14 @@ top.Ext.getCmp('biologicalMonitoringDisplay').setValue(biologicalMonitoringDisplay); } - +function arrContainsMonitoringPackageRule(rules, rule) { + for (var i = 0; i < rules.length; i++) { + if (rules[i].trigger === rule.trigger && rules[i].frequency === rule.frequency) { + return true; + } + } + return false; +} function setMonitortousseDisplay() { var store = top.Ext.getCmp('monitoringPackageGrid').getStore(); var arr = []; @@ -2114,6 +2145,17 @@ } } } + if(!msg && arr.length > 0){ + var un_rules = []; + for(var i = 0; i < arr.length; i++){ + if(arrContainsMonitoringPackageRule(un_rules, arr[i])){ + msg = '【监测包扫描提示默认值】请勿添加相同触发条件和炉次的重复记录'; + break; + }else{ + un_rules.push(arr[i]); + } + } + } if (!msg) { top.Ext.getCmp('monitorTousseDisplay').setValue(JSON.stringify(arr)); return true; @@ -2139,7 +2181,12 @@ return false; } setBiologicalMonitoringDisplay(); - setMonitortousseDisplay(); + if(!setMonitortousseDisplay()){ + // 没有地方调用disable().随波逐流,先加上吧 + top.Ext.getCmp('saveBtn').enable(); + top.Ext.getCmp('saveAndPrint').enable(); + return false; + } if (sstsConfig.enableSterilizerSafetyCheckBeforeRunAndSterilizerRunLogSheetRegistrationFunction) { //灭菌器运行前安全检查 体现内容