案例效果

通过平台的APP功能规划中的javascript脚本在表单刚加载时给字段赋默认值

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{
                var  ksDate= new Date(INFO_YCKSSJ.replaceAll("-", "/"));
                var  jsDate = new Date(INFO_YCJSSJ.replaceAll("-", "/"));
                //相减的毫秒数
                var  jgDate = 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}
                }).then(function(info){
                    if(info.success){
                        btnCtrl.getParent().form.getFields('WORK_GDZGS').setValue(info.obj);
                    }else{
                        JE.alert('数据更新失败');
                    } 
                });
            });
        }
    }
}

后台接口

    @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));
            int  zwork=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);
        }
    }
最后编辑: 呼丽华  文档更新时间: 2024-08-21 10:58   作者:呼丽华