作者:管理员 历史版本: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、预览效果
上述弄完后,此范例数据是在“耗材管理”点击“添加”按钮,约束“耗材名称+耗材规格+生产厂家组合填写的信息不允许重复
”,如下图所示: