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

根据业务输入信息验证值唯一性

简介:在输入表单信息时,某些特殊字段信息需要验证唯一性,由于该唯一性需要查询之前存储信息,目前实现方式由后端维护验证值唯一性的方法,然后提供给前端调用,从而实现约束值唯一性!
温馨提示:该验证唯一性的脚本方法仅在3.2.3版本以上支持;337版本以上此方法维护在ValidationScript.java类,因此脚本出现scriptImpl的bean名需改成validationScript!`

1、进入表单设计器

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

2、点击表单脚本按钮

在表单设计器,选择“表单属性”下面的“表单脚本”,如下图:

3、进入表单脚本编辑器

点击“表单脚本”按钮,进入表单脚本编辑器页面,先点击“插入默认脚本”,然后在此基础上输入相关信息,如下图:

温馨说明:

  • 验证唯一性代码范例,如下所示:
Object.assign(JForm,{  
 //表单提交校验
  onValidate:function(form,callback){   
    //获取表单数据查看信息
     const vars = {"data": form.getFormData()}
      this.$request({
      //此url请求地址是在后端单体部署,微服务需改成/business/v3/form/def/getScriptValue
         url:'/form/def/getScriptValue',
          method: 'post',
          data:  {
            'script': `import com.lc.ibps.base.framework.table.model.Table;
import com.lc.ibps.base.db.table.model.DefaultTable;
import com.lc.ibps.base.framework.table.model.Column;
import com.lc.ibps.base.db.table.model.DefaultColumn;
import java.util.List;
import java.util.ArrayList;

DefaultTable table = new DefaultTable("t_consumablesBasic", "耗材基本表");
Column pkProperty = new DefaultColumn("id", "id_", "主键");
Column[] uniqueProperties = new Column[3];
uniqueProperties[0] = new DefaultColumn("costName", "cost_name_", "耗材名称");
uniqueProperties[1] = new DefaultColumn("costSpecs", "cost_specs_", "耗材规格");
uniqueProperties[2] = new DefaultColumn("manufacturer", "manufacturer_", "生产厂家");

scriptImpl.validation(table, pkProperty, "t_consumablesbasic", "t_consumablesbasic", uniqueProperties, false, data);`,
            'varsStr': JSON.stringify(vars)
          }
      }).then(response => {
        callback(true)
      }).catch(error => {
         console.log(error)
        callback(false,error.cause)
      })
  }
});
  • 调用后端唯一性方法,如下所示:

    scriptImpl.validation(table, pkProperty, "t_consumablesbasic", "t_consumablesbasic", uniqueProperties, false, data);

    温馨提示:337版本以上此方法维护在ValidationScript.java类,因此上面scriptImpl的bean名需改成validationScript

  • 传参代码,如下所示:

import com.lc.ibps.base.framework.table.model.Table;
import com.lc.ibps.base.db.table.model.DefaultTable;
import com.lc.ibps.base.framework.table.model.Column;
import com.lc.ibps.base.db.table.model.DefaultColumn;
import java.util.List;
import java.util.ArrayList;

DefaultTable table = new DefaultTable("t_consumablesBasic", "耗材基本表");
Column pkProperty = new DefaultColumn("id", "id_", "主键");
Column[] uniqueProperties = new Column[3];
uniqueProperties[0] = new DefaultColumn("costName", "cost_name_", "耗材名称");
uniqueProperties[1] = new DefaultColumn("costSpecs", "cost_specs_", "耗材规格");
uniqueProperties[2] = new DefaultColumn("manufacturer", "manufacturer_", "生产厂家");

4、预览效果

上述弄完后,此范例数据是在“耗材管理”点击“添加”按钮,约束“耗材名称+耗材规格+生产厂家组合填写的信息不允许重复”,如下图所示: