表格校验
# 表格校验
表格组件支持表单校验功能,包括必填校验、正则校验和自定义校验规则。同时提供了错误提示和错误状态管理。
# 基础用法
通过配置列的 required
属性来启用必填校验。支持布尔值和对象两种配置方式:
renderColumns: [
{
prop: "name",
label: "姓名",
required: true // 简单配置
},
{
prop: "age",
label: "年龄",
required: { // 详细配置
message: "年龄不能为空",
trigger: "blur"
}
}
]
# 正则校验
通过配置列的 rules
属性来添加正则校验规则。支持内置正则模板和自定义正则对象:
renderColumns: [
{
prop: "phone",
label: "手机号",
rules: ["integer"] // 使用内置正则或预设规则
},
{
prop: "email",
label: "邮箱",
rules: [{ // 自定义正则
regular: /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/,
message: "请输入正确的邮箱格式"
}]
}
]
# 自定义校验
通过配置 rules
的 validator 函数来自定义校验规则。支持获取 scope
参数:
renderColumns: [
{
prop: "age",
label: "年龄",
rules: [{
validator: (rule, value, callback, scope) => {
if (value < 18) {
callback(new Error("年龄不能小于18岁"));
} else {
callback();
}
},
trigger: "change"
}]
},
{
prop: "age",
label: "年龄",
rules: (scope)=>[{
validator: (rule, value, callback) => {
if (value < 18) {
callback(new Error("年龄不能小于18岁"));
} else {
callback();
}
},
trigger: "change"
}]
}
]
# 树级校验
# 联动校验
通过方法 validateField
函数来精确控制每个校验单元格。
# 全量校验
validateAll
:对表格所有数据(本地分页、虚拟滚动等场景)进行全量校验
参数:
mode
:校验模式,all(默认,收集所有错误并弹窗)或 first(遇到第一个错误即中断,且提示报错)
maxShow
:弹窗中最多显示的错误条数,超出后用“……”省略
# API
# Column 配置
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
required | 是否必填 | boolean/object | false |
rules | 校验规则 | string/array/function(scope) | - |
# rules 配置
属性名 | 类型 | 说明 |
---|---|---|
validator | Function | 自定义验证函数 |
message | String | 错误提示信息 |
trigger | String | 触发方式 |
# Methods
方法名 | 说明 | 参数 | 返回值 |
---|---|---|---|
validate | 校验整个表格 | callback(可选) | Promise |
validateField | 校验指定行 | options: {index/id/row, prop} | Promise |
clearValidate | 清除校验 | - | - |
validateAll | 校验所有数据(含树级) | options: {mode, maxShow} | Promise |
# validateField 方法options参数
参数 | 说明 | 类型 |
---|---|---|
index | 行索引 | number |
id | 行ID | string/number |
row | 行数据对象 | object |
prop | 校验的字段名 | string |