|
版本: |
|
小版本号: |
|
|
|
数据库: |
|
服务器操作系统: |
|
应用服务器: |
|
客户端操作系统: |
|
浏览器: |
|
|
|
做一个考勤项目,在考勤汇总中有大量的运算,页面一直等待中,这需要有进度条显示,研究了很久终于实现我想要的效果,现将代码贴上来,给大家共享
Model.prototype.button1Click = function(event){
var pop = this.comp('popOver1');
var td=this.comp('tempData');
var od = this.comp('orgData');
var rq = td.val('fNY');
var con = this.getContext();
var iNow = 0;
var my = this;
//var og = this.comp('orgGrid');
// var olist = og.getCheckeds();
//刷 新员工列表
var fFName = od.val('fFName');
var ed = this.comp('empData');
ed.setFilter('filer0', "HR_EP_Employee.fFName like '" + fFName + "%'");
ed.refreshData();
if(ed.count() == 0){
justep.Util.hint('请选择员工!', {type: 'warning'});
return;
}
//设置进度条
//debugger;
ed.first();
var kp = this.comp('kqProgress');
kp.set({"valuemax" : ed.count()});
kp.set({'valuenow' : 0});
pop.show();
//定时调用ACTION
var intervalKey = setInterval(function(){
// do sth
var YGGH = ed.val('fCode'); //od.getRowByID(olist[iNow]).val('per_code');
// alert(rq);
// debugger;
var bizparam = new biz.Request.ActionParam();
bizparam.setDate('KQRQ',rq );
bizparam.setString('YGGH',YGGH);
bizparam.setString('fName',ed.val('fName'));
bizparam.setString('fFName',ed.val('fFName'));
//这是注意,是调用异步,
biz.Request.sendAsyncBizRequest({
'context' : con,
'action' : 'M_KQCLAction',
'parameters' : bizparam,
'callback' : function(callbackData) {
callbackData.ignoreError = false;
if (callbackData.state) {
kp.set({'valuenow' : iNow });
if (iNow >=ed.count()-1) {
justep.Util.hint('汇总完成!', {type: 'success'});
pop.hide();
my.refreshHZB();
pop.hide();
}
}else {
justep.Util.hint('汇总失败!', {type: 'warning'});
throw new Error('调用失败!|' + event.response.message);
}
}
});
//这段是重点,设置中断的条件,
iNow++; // 计数器+1
ed.next();
if (iNow >= ed.count()) { // // 200次终止
clearInterval(intervalKey);
intervalKey = null;
}
}, 3000);//这是定时调用的时间间隔
};
|
-
最终效果
|