Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationLoadingForm.js =================================================================== diff -u -r16842 -r16853 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationLoadingForm.js (.../sterilizationLoadingForm.js) (revision 16842) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationLoadingForm.js (.../sterilizationLoadingForm.js) (revision 16853) @@ -6,13 +6,38 @@ var waitSterileLoadingTousseStore;//待灭菌装载的器械包 var waitSterileLoadingTousseGrid;//待灭菌装载的器械包 +//扫描模式为单个条码时,扫描包实例(唯一条码)成功(点的载入也算)后,开始计时,如果空闲时间超过5秒(可以设置).就准备开始刷新入筐物品统计的数据源 +var timeMilliSecondBegin;//计时开始的毫秒数 + //判断是否ie和ie7 var isIE6OrIE7 = top.Ext4.isIE6 || top.Ext4.isIE7; //遮罩层对象 var objMask = { 'processMask' : null }; +var mask; +//开启进度条 +function beginMask(){ + if (!isIE6OrIE7){ + createMask.call(objMask,'processMask','请求正在处理中,请稍候...',Ext.getBody(),true); + objMask.processMask.show(); + } + else{ + mask = new Ext.LoadMask(Ext.getBody(), { msg: '正在处理批量打印请求,请稍候...'}); + mask.show(); + } +} +//结束进度条 +function hiddenMask(){ + if (!isIE6OrIE7){ + objMask.processMask.hide(); + } + else { + mask.hide(); + } +} + var barcodeLable = '条码扫描'; //灭菌装载是否启用首尾条码机制(只有为true时才启用,未配置或配置其它值时则不启用) var enableBeginEndBarcodeScan = false; @@ -356,6 +381,8 @@ Ext.getCmp('barcode').focus(); }); }else if(returnType == "tousseInstanceSuccess"){//扫描的是包 + //如果扫描的是器械包,则给计数的赋值 + timeMilliSecondBegin = new Date().getTime(); if(Ext.getCmp('basketBarcode').getValue() == '') { showResult('请先录入篮筐'); return; @@ -427,12 +454,12 @@ } } - //刷新后台速度太慢 - if(!reviewedPanelRefreshing){ + //刷新后台速度太慢(改为直接js操作控件的数据或者计算空间操作时间到达时刷新) + /*if(!reviewedPanelRefreshing){ reviewedPanelRefreshing = true; reviewedPanel.loader.load(reviewedPanel.root,function(){ reviewedPanel.expandAll(); - /*reviewedPanel.root.eachChild( function(childNode){ + reviewedPanel.root.eachChild( function(childNode){ if(childNode.attributes.objBarcode == basketBarcode){ childNode.eachChild(function(node){ var tousseInstance = new tousseInstanceRecord({ @@ -441,10 +468,10 @@ }); }); } - });*/ + }); reviewedPanelRefreshing = false; }); - } + }*/ //改为由js操作来控制 //console.log('barcode6='+barcode+','+new Date().format('y-m-d H:i:s') + '.' + new Date().getMilliseconds()); @@ -579,18 +606,8 @@ } } - var mask; - - if (!isIE6OrIE7){ - createMask.call(objMask,'processMask','请求正在处理中,请稍候...',Ext.getBody(),true); - objMask.processMask.show(); - } - else{ - mask = new Ext.LoadMask(Ext.getBody(), { msg: '正在处理批量打印请求,请稍候...'}); - mask.show(); - } - - + beginMask();//开启进度条 + Ext.Ajax.request({ sync : true, url : WWWROOT + '/disinfectSystem/tousseInstanceAction!batchAddToBasket.do', @@ -642,12 +659,7 @@ showResult(result.msg); } - if (!isIE6OrIE7){ - objMask.processMask.hide(); - } - else { - mask.hide(); - } + hiddenMask();//进度条结束 }, failure : function(response, options) { var result = Ext.decode(response.responseText); @@ -669,8 +681,28 @@ }); } +//扫描条码间隔时间(即两次扫描间隔超过这个时间后,将刷新),单位:秒 +var freeRefreshIntervalSecond = 5; + +/** + * 空闲扫描计时 + */ +function freeScanTimer(){ + if(timeMilliSecondBegin){ + var currentTimeMilliSecond = new Date().getTime(); + var freeSecond = parseInt((currentTimeMilliSecond - timeMilliSecondBegin)/1000); + showResultWithoutSpeak("刷新倒计时:" + (freeRefreshIntervalSecond - freeSecond) , "提示" , 1); + if(freeSecond >= freeRefreshIntervalSecond){ + reviewedPanel.loader.load(reviewedPanel.root,function(){ + reviewedPanel.expandAll(); + }); + } + } +} Ext.onReady(function() { + window.setInterval('freeScanTimer()',1000); + /** * 篮筐物品统计grid的移除函数 */ @@ -1344,8 +1376,19 @@ reviewedPanel.root.on('load',function(node){ statisticsTousse(); }); + //加载前 + reviewedPanel.loader.on('beforeload',function(node){ + beginMask();//开启进度条 + statisticsTousse(); + timeMilliSecondBegin = null;//清空计算空闲时间的起始毫秒数 + showResult("准备开始刷新,请稍候再操作"); + }); + //完全加载后 reviewedPanel.loader.on('load',function(loader, node, response){ statisticsTousse(); + hiddenMask();//进度条结束 + timeMilliSecondBegin = null;//清空计算空闲时间的起始毫秒数 + showResult("刷新完成,可以继续操作了"); }); var viewport = new Ext.Viewport({