需求说明==>>
可以参考职工养老的补扣发做
这周有安排dxx做职工养老的按月补付养老金,页面、逻辑、写表都可以保持一致,机关的没有界面,可以问nyn要职工养老这个界面做参考,免得到时候两个险种有区别。然后扣发的话界面可以参考补发画,具体处理逻辑和写表参考广州的扣发功能(不过一定要注意深圳的扣是一次扣整个月的所有待遇(可以录入时间段的),而广州的是针对具体的某一个待遇项目)
机关的表ic13和ic14就相当于职工的ic09和ic10,其他的表和职工养老共用,用险种类别来区分
需求分析==>>
增加界面控制,录入扣发的时间段,对参保人所有待遇项进行扣发计算。
开发页面碰到几个问题,记录一下。
1)选择扣发方式时, 动态显示隐藏输入 计发扣发月数。隐藏后再次显示 计划扣发月数的输入框时,变成换行?
页面显示代码
<td id="jhkfys_val" style="display:none;"><cw:number property="jhkfys" id="jhkfys" allowNegative="false" allowDecimals="false" listeners="{'change':jhkfys_change}"></cw:number></td>
写了一个JS方法
//显示 计划扣发月数 function hiddenJhkfys(flag){ if (flag){ //隐藏 document.getElementById('jhkfys_zh').style.display="none"; document.getElementById('jhkfys_val').style.display="none"; } else { //document.getElementById('jhkfys_zh').style.display="block"; //document.getElementById('jhkfys_val').style.display="block";//按块显示,导致样式换行了。应按表格元素显示。 document.getElementById('jhkfys_zh').style.display="table-cell"; document.getElementById('jhkfys_val').style.display="table-cell"; } }
2) 事件监听方法。 select \change
listeners="{'change':jhkfys_change}"
listeners="{'select':kfqsny_select}"
3) 遍历json对象。
请求后台服务,返回的ac61List对象。进行遍历。
for(var i=0; i<ac61List.length; i++){
var newData = {
"aaa036":ac61List[i]["aaa036"], //项目代码
"monthkf":ac61List[i]["aae019"],//待遇金额
"aae041Date":"", //应扣发开始年月
"aae042Date":nowDate, //应扣发截止年月
"aae041":"", //应扣发开始年月str
"aae042":nowDate.format('yyyyMM'), //应扣发截止年月str
"bae069":"", //应扣发月数
"aae129":"", //应扣发总额
"aae041Date2":nextMonth, //计划扣发开始年月 默认下月开始扣发
"zhMonth":"", //计划扣发月数
"aaa078":"2", //补扣发标志
"aaa077":"24", //补扣发业务类型
"baz057":100000
};
data.push(newData);
}
//addNewToLastRow('inputGrid', newData, false);
loadGridData("inputGrid", data);//显示所有待遇项目,录入时间段进行扣减。 add by zyh
cleanGridData('deductDetailGrid');
框架方法,获取grid列表数据对象,如何逐行遍历。
//计划扣发月数 zyh20170831
function jhkfys_change(){
var kfys = Ext.getCmp("jhkfys").getValue();
var records = getGridRecords('inputGrid');
if(records.length<=0){//还没有待遇项目明细。
return false;
}
var data2 = [];
for(var i=0; i<records.length; i++){
var jhAae041 = records[i].get('aae041Date2');
var newData = {
"aaa036":records[i].get('aaa036'), //项目代码
"monthkf":records[i].get('monthkf'),//待遇金额
"aae041Date":records[i].get('aae041Date'), //应扣发开始年月
"aae042Date":records[i].get('aae042Date'), //应扣发截止年月
"aae041":records[i].get('aae041'), //应扣发开始年月str
"aae042":records[i].get('aae042'), //应扣发截止年月str
"bae069":records[i].get('bae069'), //应扣发月数
"aae129":records[i].get('aae129'), //应扣发总额
"aae041Date2":jhAae041, //计划扣发开始年月 默认下月开始扣发
"zhMonth":kfys, //计划扣发月数
"bac026":(Number(records[i].get('aae129')) / Number(kfys)).toFixed(2), // = 扣发总额/计划扣发月数
"jhAae041":jhAae041.format('yyyyMM'),
"aaa078":"2", //补扣发标志
"aaa077":"24", //补扣发业务类型
"baz057":100000
};
data2.push(newData);
}
//重新写入
//显示所有待遇项目,录入扣发时间段。默认开始年月为当月开始扣发。 zyh20170831
loadGridData("inputGrid", data2);//显示所有待遇项目,录入时间段进行扣减。 add by zyh
}