JEPaaS 社区

 找回密码
 立即注册
JEPaaS低代码平台-官网
查看: 799|回复: 0

APP中事件代码案例

[复制链接]

44

主题

130

帖子

575

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
575
发表于 2022-4-1 16:11:08 | 显示全部楼层 |阅读模式
通过平台的APP功能规划中的javascript脚本在表单刚加载时给字段赋默认值

  1. APP.listeners = {
  2.     form: {
  3.         //表单激活
  4.        activate:function(formCtrl){
  5.             var TM_WORK_INFO_ID=formCtrl.getFields('TM_WORK_INFO_ID').getValue();
  6.             //判断是否为空,则是新增界面
  7.             if(TM_WORK_INFO_ID =="" || TM_WORK_INFO_ID==null || TM_WORK_INFO_ID==undefined){
  8.                 //获取当前登录用户的直属领导,给组长字段赋值
  9.                 var zsldname = JE.getCurrentUser().zsldName;//直属领导名称
  10.                 var zsldID = JE.getCurrentUser().zsldId;//直属领导ID
  11.                 //给组长字段赋值
  12.                 formCtrl.getFields('INFO_ZC').setValue(zsldname);
  13.                 //根据直属领导ID 去查询这个领导的下属人员
  14.                 JE.ajax({
  15.                     url:"/je/rbac/user/load",
  16.                     params:{
  17.                         tableCode:'JE_CORE_ENDUSER',
  18.                         j_query:JE.encode([{code:'ZSLDID',value:zsldID,type:'=',cn:'and'}])
  19.                     }
  20.                 }).then(function(info){
  21.                     if(info.success){
  22.                         //影响人员总数
  23.                         formCtrl.getFields('INFO_YXRS').setValue(info.totalCount);
  24.                         var xx = "";
  25.                         JE.each(info.rows,function(rec){
  26.                             xx +=rec.USERNAME+',';
  27.                         });
  28.                         //赋值时去掉最后一位的逗号
  29.                         formCtrl.getFields('INFO_YXRY').setValue(xx.substring(0,xx.lastIndexOf(',')));
  30.                     }else{
  31.                         JE.alert('查询组员信息失败');
  32.                     }
  33.                 })
  34.             }else{
  35.                 return false;
  36.             }
  37.         }
  38.     }
  39. }
复制代码
表单提交之后调运后台方法更新数据
  1. APP.listeners = {
  2.     form: {
  3.         //表单提交之后调运后台方法更新主功能字段数据
  4.         submit: function (formCtrl, data) {
  5.             var INFO_GDBH= formCtrl.getFields("INFO_GDBH").getValue();
  6.             JE.ajax({
  7.                 url:'/je/demo/test/updateWork',
  8.                 params:{INFO_GDBH:INFO_GDBH}
  9.             }).then(function(info){
  10.                 //console.log(info)
  11.                 if(info.success){
  12.                     //formCtrl.getParent().form.getFields('WORK_GDZGS').setValue(info.obj);
  13.                 }else{
  14.                     JE.alert('数据更新失败');
  15.                 }
  16.             });
  17.         }
  18.     }
  19. }
复制代码
app表单时间字段修改,计算其他字段值并赋值(表单字段值改变事件)
  1. APP.listeners = {
  2.     INFO_YCJSSJ: {
  3.         change: function (field, news, old) {
  4.             var form = field.getThisForm();
  5.             var INFO_YCKSSJ = form.getFields('INFO_YCKSSJ').getValue();
  6.             var INFO_YCJSSJ = form.getFields('INFO_YCJSSJ').getValue();
  7.             var INFO_YXRS = form.getFields('INFO_YXRS').getValue();
  8.             if(INFO_YCKSSJ=="" || INFO_YCJSSJ==""){
  9.                 return false;
  10.             }else{
  11.                 var  ksDate= new Date(INFO_YCKSSJ.replaceAll("-", "/"));
  12.                 var  jsDate = new Date(INFO_YCJSSJ.replaceAll("-", "/"));
  13.                 //相减的毫秒数
  14.                 var  jgDate = jsDate.getTime()-ksDate.getTime();  
  15.                 //如果开始时间大于结束时间给提示
  16.                 if(ksDate>jsDate){
  17.                     JE.alert("开始时间不能大于结束时间")
  18.                 }else{
  19.                     var days = parseInt(jgDate/(24*3600*1000))  //计算相差天数
  20.                     var leave1=jgDate%(24*3600*1000);    //计算天数后剩余的毫秒数
  21.                     var hours=parseInt(leave1/(3600*1000));
  22.                     //计算相差分钟数
  23.                     var leave2=leave1%(3600*1000);        //计算小时数后剩余的毫秒数
  24.                     var minutes=parseInt(leave2/(60*1000));
  25.                     //如果天数大于等于1,天转分钟
  26.                     if(days>=1){
  27.                             form.getFields('INFO_YCSJ').setValue((days*24*60)+(hours*60)+minutes);
  28.                             form.getFields("INFO_YXZGS").setValue(((days*24*60)+(hours*60)+minutes)*INFO_YXRS)
  29.                             return false;
  30.                         }
  31.                         //如果小时大于等于1,小时转分钟
  32.                         if(hours>=1){
  33.                             form.getFields('INFO_YCSJ').setValue((hours*60)+minutes);
  34.                             form.getFields("INFO_YXZGS").setValue(((hours*60)+minutes)*INFO_YXRS)
  35.                             return false;
  36.                         }
  37.                         if(days==0 && hours==0){
  38.                             form.getFields('INFO_YCSJ').setValue(minutes);
  39.                             form.getFields("INFO_YXZGS").setValue(minutes*INFO_YXRS)
  40.                             return false;
  41.                         }
  42.                     }
  43.                 }
  44.             }
  45.     }
  46. }
复制代码
APP列表数据删除时,更新主功能数据,调运后台接口
  1. APP.listeners = {
  2.     //删除
  3.     gridRemoveBtn:{
  4.         //单击后事件
  5.         afterclick(btnCtrl,data) {
  6.             JE.each(data,function(rec){
  7.                 JE.ajax({
  8.                     url:'/je/demo/test/updateWork',
  9.                     params:{INFO_GDBH:rec.INFO_GDBH}
复制代码
后台接口
  1. @RequestMapping(value = "/updateWork", method = RequestMethod.POST, produces = "application/json; charset=utf-8")
  2.     @ResponseBody
  3.     public BaseRespResult updateWork(MethodArgument param){
  4.         try {
  5.             String INFO_GDBH = param.getRequest().getParameter("INFO_GDBH");
  6.             //根据编号查询所有子表数据
  7.             List<DynaBean> info = metaService.select("TM_WORK_INFO", ConditionsWrapper.builder().eq("INFO_GDBH", INFO_GDBH));
  8.             //主表信息
  9.             DynaBean work = metaService.selectOne("TM_WORK", ConditionsWrapper.builder().eq("WORK_GDBH", INFO_GDBH));
  10.             int  zwork=0;
  11.             //循环计算子表总工时数据
  12.             for(DynaBean infodata :info) {
  13.                 zwork += infodata.getInt("INFO_YXZGS");
  14.             }
  15.             work.setInt("WORK_GDZGS",zwork);
  16.             metaService.update(work);
  17.             return BaseRespResult.successResult(zwork,"更新主表数据成功");
  18.         } catch (PlatformException e) {
  19.             throw e;
  20.         } catch (Exception e) {
  21.             throw new PlatformException("数据保存失败!", PlatformExceptionEnum.UNKOWN_ERROR, e);
  22.         }
  23.     }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|JEPaaS 低代码平台社区 ( 京ICP备18023569号-1 )

GMT+8, 2022-8-11 08:01 , Processed in 0.057174 second(s), 21 queries .

Powered by 北京凯特伟业科技有限公司

Copyright © 2001-2021, JEPaaS.COM

快速回复 返回顶部 返回列表