案例效果
通过平台的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 作者:呼丽华