凯特-呼丽华 发表于 2022-4-1 16:11:08

APP中事件代码案例

通过平台的APP功能规划中的javascript脚本在表单刚加载时给字段赋默认值https://doc.jepaas.com/uploads/je_doc_jepaas/images/m_94a3b74c1324c650aa74a7e46f78ca3d_r.png
APP.listeners = {
    form: {
      //表单激活
       activate:function(formCtrl){
            var TM_WORK_INFO_ID=formCtrl.getFields('TM_WORK_INFO_ID').getValue();
            //判断是否为空,则是新增界面
            if(TM_WORK_INFO_ID =="" || TM_WORK_INFO_ID==null || TM_WORK_INFO_ID==undefined){
                //获取当前登录用户的直属领导,给组长字段赋值
                var zsldname = JE.getCurrentUser().zsldName;//直属领导名称
                var zsldID = JE.getCurrentUser().zsldId;//直属领导ID
                //给组长字段赋值
                formCtrl.getFields('INFO_ZC').setValue(zsldname);
                //根据直属领导ID 去查询这个领导的下属人员
                JE.ajax({
                  url:"/je/rbac/user/load",
                  params:{
                        tableCode:'JE_CORE_ENDUSER',
                        j_query:JE.encode([{code:'ZSLDID',value:zsldID,type:'=',cn:'and'}])
                  }
                }).then(function(info){
                  if(info.success){
                        //影响人员总数
                        formCtrl.getFields('INFO_YXRS').setValue(info.totalCount);
                        var xx = "";
                        JE.each(info.rows,function(rec){
                            xx +=rec.USERNAME+',';
                        });
                        //赋值时去掉最后一位的逗号
                        formCtrl.getFields('INFO_YXRY').setValue(xx.substring(0,xx.lastIndexOf(',')));
                  }else{
                        JE.alert('查询组员信息失败');
                  }
                })
            }else{
                return false;
            }
      }
    }
}表单提交之后调运后台方法更新数据
APP.listeners = {
    form: {
      //表单提交之后调运后台方法更新主功能字段数据
      submit: function (formCtrl, data) {
            var INFO_GDBH= formCtrl.getFields("INFO_GDBH").getValue();
            JE.ajax({
                url:'/je/demo/test/updateWork',
                params:{INFO_GDBH:INFO_GDBH}
            }).then(function(info){
                //console.log(info)
                if(info.success){
                  //formCtrl.getParent().form.getFields('WORK_GDZGS').setValue(info.obj);
                }else{
                  JE.alert('数据更新失败');
                }
            });
      }
    }
}app表单时间字段修改,计算其他字段值并赋值(表单字段值改变事件)
APP.listeners = {
    INFO_YCJSSJ: {
      change: function (field, news, old) {
            var form = field.getThisForm();
            var INFO_YCKSSJ = form.getFields('INFO_YCKSSJ').getValue();
            var INFO_YCJSSJ = form.getFields('INFO_YCJSSJ').getValue();
            var INFO_YXRS = form.getFields('INFO_YXRS').getValue();
            if(INFO_YCKSSJ=="" || INFO_YCJSSJ==""){
                return false;
            }else{
                varksDate= new Date(INFO_YCKSSJ.replaceAll("-", "/"));
                varjsDate = new Date(INFO_YCJSSJ.replaceAll("-", "/"));
                //相减的毫秒数
                varjgDate = jsDate.getTime()-ksDate.getTime();
                //如果开始时间大于结束时间给提示
                if(ksDate>jsDate){
                  JE.alert("开始时间不能大于结束时间")
                }else{
                  var days = parseInt(jgDate/(24*3600*1000))//计算相差天数
                  var leave1=jgDate%(24*3600*1000);    //计算天数后剩余的毫秒数
                  var hours=parseInt(leave1/(3600*1000));
                  //计算相差分钟数
                  var leave2=leave1%(3600*1000);      //计算小时数后剩余的毫秒数
                  var minutes=parseInt(leave2/(60*1000));
                  //如果天数大于等于1,天转分钟
                  if(days>=1){
                            form.getFields('INFO_YCSJ').setValue((days*24*60)+(hours*60)+minutes);
                            form.getFields("INFO_YXZGS").setValue(((days*24*60)+(hours*60)+minutes)*INFO_YXRS)
                            return false;
                        }
                        //如果小时大于等于1,小时转分钟
                        if(hours>=1){
                            form.getFields('INFO_YCSJ').setValue((hours*60)+minutes);
                            form.getFields("INFO_YXZGS").setValue(((hours*60)+minutes)*INFO_YXRS)
                            return false;
                        }
                        if(days==0 && hours==0){
                            form.getFields('INFO_YCSJ').setValue(minutes);
                            form.getFields("INFO_YXZGS").setValue(minutes*INFO_YXRS)
                            return false;
                        }
                  }
                }
            }
    }
}APP列表数据删除时,更新主功能数据,调运后台接口
APP.listeners = {
    //删除
    gridRemoveBtn:{
      //单击后事件
      afterclick(btnCtrl,data) {
            JE.each(data,function(rec){
                JE.ajax({
                  url:'/je/demo/test/updateWork',
                  params:{INFO_GDBH:rec.INFO_GDBH}
后台接口
@RequestMapping(value = "/updateWork", method = RequestMethod.POST, produces = "application/json; charset=utf-8")
    @ResponseBody
    public BaseRespResult updateWork(MethodArgument param){
      try {
            String INFO_GDBH = param.getRequest().getParameter("INFO_GDBH");
            //根据编号查询所有子表数据
            List<DynaBean> info = metaService.select("TM_WORK_INFO", ConditionsWrapper.builder().eq("INFO_GDBH", INFO_GDBH));
            //主表信息
            DynaBean work = metaService.selectOne("TM_WORK", ConditionsWrapper.builder().eq("WORK_GDBH", INFO_GDBH));
            intzwork=0;
            //循环计算子表总工时数据
            for(DynaBean infodata :info) {
                zwork += infodata.getInt("INFO_YXZGS");
            }
            work.setInt("WORK_GDZGS",zwork);
            metaService.update(work);
            return BaseRespResult.successResult(zwork,"更新主表数据成功");
      } catch (PlatformException e) {
            throw e;
      } catch (Exception e) {
            throw new PlatformException("数据保存失败!", PlatformExceptionEnum.UNKOWN_ERROR, e);
      }
    }

页: [1]
查看完整版本: APP中事件代码案例