作者:管理员  历史版本:1  最后编辑:Eddy  更新时间:2024-10-24 16:08

适用版本:v3.3.5+;

1、进入表单设计器

登录系统,选择【表单管理】-【表单管理】,点击“添加/编辑”按钮,进入表单,如下图:

设置表单脚本

Object.assign(JForm,{
  //加载事件
  onLoad:function(form){
  if(form.$refs.dynamicForm.$refs.formItemlrcjmxb[0]&&form.$refs.dynamicForm.$refs.formItemlrcjmxb[0].dataModel ){
    //获取子表数据
    const data=JSON.parse(JSON.stringify(form.$refs.dynamicForm.$refs.formItemlrcjmxb[0].dataModel)) 
    //获取“成绩标志”为“优秀”且“成绩”大于“600”的数据
    const filterData= []
    //获取“成绩标志”不为“优秀”或者“成绩”小于等于“600”的数据
    const notFilterData= []
    data.forEach(ele=>{
      //数据显示“成绩标志”为“优秀”且“成绩”大于“600”
      const filter=ele.chengJiBiaoZhi==='优秀'&&ele.chengJi>600
      //数据显示“成绩标志”为“优秀”
      //const filter=ele.chengJiBiaoZhi==='优秀'
      if(filter){
        filterData.push(ele)
      }else{
        notFilterData.push(ele)
      }
    })
    //过滤的“成绩标志”为“优秀”且“成绩”大于“600”数据更新到视图中
    form.$refs.dynamicForm.$refs.formItemlrcjmxb[0].dataModel=filterData
    //将过滤的“成绩标志”不为“优秀”或者“成绩”小于等于“600”数据绑定到form.$refs.dynamicForm中
    form.$refs.dynamicForm.notFilterData=notFilterData
   }
  },
  //表单按钮前置事件
  beforeSubmit:function(form,action,postValue,callback){
    if(action==='save'){//判断按钮为保存按钮
    //获取“成绩标志”不为“优秀”或者“成绩”小于等于“600”数据
     const value=JSON.parse(JSON.stringify(form.$refs.dynamicForm.notFilterData))
     //获取子表的数据
     const models =JSON.parse(JSON.stringify(form.$refs.dynamicForm.$refs.formItemlrcjmxb[0].dataModel))
     //将子表的“成绩标志”不为“优秀”或者“成绩”小于等于“600”数据_subDataSaveSign字段设置为'del'
     value.map(ele=>{
       const notFilter=ele.chengJiBiaoZhi!=='优秀'||ele.chengJi<=600
       //const filter=ele.chengJiBiaoZhi!=='优秀'
       if(notFilter){
         ele._subDataSaveSign='del'
       }
       //将设置后的数据设置到子表的数据中
       models.push(ele)
       return ele
     })
     ///将设置后的子表的数据重新赋值到表单的子表中
    form.$refs.dynamicForm.models.lrcjmxb=models
    }
    callback(true) 
  }
});

2、进入数据模版管理

选择【表单管理】-【数据模版管理】,点击“添加/编辑”按钮,进入数据模版,如下图:

设置绑定表单

【预览】 -【编辑】