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

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

1、进入表单设计器

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

2、点击表单脚本按钮

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

3、进入表单脚本编辑器

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

温馨说明:

  • 验证唯一性代码范例,如下所示:
Object.assign(JForm,{  
 //表单提交校验
  onValidate:function(form,callback){   
    //获取表单数据查看信息
     const vars = {"data": form.getFormData()}
      this.$request({
         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);
  • 传参代码,如下所示:

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、预览效果

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

文档更新时间: 2021-04-22 17:48   作者:黄春艳