关于页面实现一键审批的功能思路

第一步:在dorado页面中,添加一个按钮,设置caption为“一键审批”

第二步:给按钮绑定点击事件,一个弹出框

弹出框模仿编辑栏写,弹出框的数据dataType绑定和新增页面的预加载dataType一致,这样,页面新增的时候加载就是一键审批修改过的默认值,也就是说实现了一键审批,当审批页面选中或填写过并保存的,新增界面再打开,默认就是填好的;不止第一个字段节点新增填好,其他页面也填好了,可以满足需求;

第三步:后台服务,弹出框的保存按钮添加action触发事件,当点即保存的时候,Axjsonaction向后台服务AutoSPService#saveDefaut交互,这样saveDefaut方法再接受到,传过来的数据,调用ibatis,映射对应的mapper文件,运行update语句,实现后台的默认值更新;

第四步:结果如果实现了的话,还要测试,当用户多次点击“一键审批”按钮并保存的时候,后台数据库中对应的默认值字段会有重复更新添加的内容,会不会出现异常现象:例如,复选框出现相同的等;

 

备注:

服务中的saveProductParams方法需要传入一个dataType对象,Collection<JjChanpincanshu>   回来的该参数中有一个参数为state,当state为NEW时 执行add添加操作,当state为MODIFIED时执行update操作,当state为DELETED时 执行delete操作,当state为NONE时执行save操作;

 

先捋下编辑的操作思路:

点击编辑按钮,调用onClick方法

var dialog = view.get("#productDialog");
dialog.set("cation","修改产品").show();

这个时候ID为productDialog的弹出框弹出,并且名称为"修改产品"

productDialog的onShow方法触发

var data = view.get("#dsProductParams.data:#current");
var bankCode = data.get("bankCode");
if(bankCode == "6586"){
  var value = data.get("autoApprovalFlag");
  var isReadOnly =!value || value == "0";
  view.get("^zyAutoApproval").set("readOnly",isReadOnly);
  var autoApprovalCategory = data.get("autoApprovalCategory");
  var cont=view.get("allowAutoApprovalCategory");
  var checkboxes = cont.get("children");
  checkboxes.each(function(box){
    var category = box.get("onValue");
    box.set("checked",autoApprovalCategory && autoApprovalCategory.indexOf(category)>-1);
    box.set("readOnly",isReadOnly);
  }    
}

从dsProductParams.data:#current获取数据 调用的服务为 ParameterSettingsPR类的pageBankProduct 列表查询获取数据

上面的JS主要是为了,当时中原银行的时候,允许自动审批为勾选状态,也就zyAuroApproval中的控件允许修改;不再是只读;

然后开始就是productDialog中的Children的产品信息,,,等,dataSet为dsProductParams,就是刚才查出来的pageBankProduct方法返回的值dtProductParameters类型的Collection;

zyOtherAutoForm默认的hideMode时display   dataSet类型为dsProductParams

再zyOtherAuroForm中有个一个dsCategoryList的DataSet指向的方法为udf.commonPR的makeDict方法   入参parameter为APQUE   dataType类型为[$dtDIctMember]

 然后就是productDialog的确定按钮的onClick事件

先获取data = view.get("#dsProductParams.data:#current")

然后根据Data获取银行号,看是否为6586银行

如果是的话分别获取auroApprovalFlag\autoApprovalMinLimit\autoApprovalMaxLimit\autoApprovalStartDate\autoApprovalEndDate进行校验

自动审批最大额度不能为空、自动审批最小额度泵大于自动审批最大额度、自动审批开始事件不能为空、自动审批开始时间只能大于当前时间、自动审批结束时间只能大于当前时间、自动审批结束时间必须大于自动审批开始时间

posted @ 2020-08-10 12:36  WinterC  阅读(504)  评论(0)    收藏  举报