CFormItem 是表单项容器组件,用于包装各种表单控件,提供表单项的标签、验证规则和错误状态管理。组件基于 async-validator 库实现表单验证功能。
import { CFormItem } from '@components/forms/form';
formRes
(Object,必填):表单资源对象,由 CForm 组件提供name
(String,必填):表单项字段键名,对应表单数据对象中的属性名label
(String,可选):表单项中文名,用于显示和错误提示required
(Boolean,可选):表单项是否必填rules
(Array,可选):表单项验证规则,基于 async-validator 的规则配置disabled
(Boolean,可选):表单项是否禁用<template>
<CForm :form="form">
<CFormItem name="username" label="用户名" required>
<CInput type="text" placeholder="请输入用户名" />
</CFormItem>
</CForm>
</template>
<script>
import { CForm, CFormItem } from '@components/forms/form';
import { CInput } from '@components/forms/input';
export default {
components: {
CForm,
CFormItem,
CInput
},
data() {
return {
form: {
username: ''
}
};
}
};
</script>
<CFormItem
name="email"
label="邮箱"
:rules="[
{ type: 'email', message: '请输入有效的邮箱地址' }
]"
>
<CInput type="text" placeholder="请输入邮箱" />
</CFormItem>
<CFormItem
name="password"
label="密码"
:rules="[
{ required: true, message: '请输入密码' },
{ type: 'string', min: 6, message: '密码长度不能少于6个字符' },
{ pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{6,20}$/, message: '密码必须包含大小写字母和数字' }
]"
>
<CInput type="password" placeholder="请输入密码" />
</CFormItem>
type
:类型验证,如 string、number、boolean、array、object、url、email 等len
:长度验证,string 类型为字符串长度,number 类型为确定数字,array 类型为数组长度max
:最大值验证,string 类型为最大长度,number 类型为最大值,array 类型为最大长度min
:最小值验证,string 类型为最小长度,number 类型为最小值,array 类型为最小长度pattern
:正则表达式匹配required
:是否为必填字段transform
:将字段值转换成目标值后进行校验message
:错误信息,不设置时会通过模板自动生成