表格校验

# 表格校验

表格组件支持表单校验功能,包括必填校验、正则校验和自定义校验规则。同时提供了错误提示和错误状态管理。

# 基础用法

通过配置列的 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