Form 组件
表单组件,组件内置很多方法以及参数,比如联动,接口请求以及时间的处理等等。
基础用法
loading
API
Form Props
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
AntdV From | AntdV From 组件的属性 | FormProps | { labelAlign: 'right', layout: 'horizontal', colon: false } |
initialValues | 预置字段默认值 | Object | {} |
labelWidth | 标签宽度 固定宽度 | [Number, String] | 100 |
FormSchema | 表单配置规则 | FormSchema[] | [] |
mergeDynamicData | 默认数据,合并进 formData | Object | null |
baseRowStyle | 默认 row style | CSSProperties | null |
rowProps | 栅栏Row配置 | RowProps | null |
baseColProps | 默认 col style | Partial<ColEx> | { span: 6 } |
autoSubmitOnEnter | 在INPUT组件上单击回车时,是否自动提交 | Boolean | true |
disabled | 禁用表单 | Boolean | false |
emptySpan | 表单结束后空 span 占位符 | Number | 0 |
fieldMapToTime | 处理时间段字段 | Object | null |
transformDateFunc | 转化时间字段 | Function | (date: any) => { return date?.format?.('YYYY-MM-DD HH:mm:ss') ?? date; } |
rulesMessageJoinLabel | 是否把 label 添加进校验信息 | Boolean | true |
autoAdvancedLine | 超过 1 行自动折叠 | Number | 1 |
alwaysShowLines | 不受折叠影响的行数 | Number | 1 |
showActionButtonGroup | 是否显示操作按钮 | Boolean | true |
actionColOptions | 操作列Col配置 | Partial<ColEx> | null |
showResetButton | 显示重置按钮 | Boolean | true |
resetButtonOptions | 重置按钮配置 | 同确认按钮 | null |
showSubmitButton | 显示确认按钮 | Boolean | true |
submitButtonOptions | 确认按钮配置 | Partial<ButtonProps> & { text?: string; class?: string } | null |
showAdvancedButton | 是否显示收起展开按钮 | Boolean | false |
resetFunc | resetFunc | Function | null |
submitFunc | 自定义提交函数 | Function | null |
showAdvancedButtonBadge | 是否显示更多后的 徽标数 | Boolean | false |
advancedBadgeCount | 徽标数数字 | Number | 0 |
useMaxLengthRule | 是否使用默认的长度校验 | Boolean | true |
formKey | formKey | Number、String | formKey |
scrollToError | 是否滑动到错误项 | Boolean | false |
FormSchema 参数
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
field | 字段名 | string | - |
changeEvent | 字段值改变触发方法 | string | change |
label | 标签名 | string | - |
helpMessage | 帮助信息 | string | - |
helpComponentProps | 帮助信息组件配置 | Partial<TooltipProps> | - |
labelWidth | 标签宽度 | string | - |
componentProps | 组件属性配置 | Partial<ComponentProps> | (opt: RenderCallbackParams<T>): ComponentProps | - |
componentSlots | 组件插槽 | (opt: RenderCallbackParams<T>) => Recordable<CustomRenderFn<T>> | Recordable<CustomRenderFn<T>> | - |
required | 是否必填 | boolean | ((renderCallbackParams: RenderCallbackParams<T>) => boolean) | false |
rules | 校验规则 | Rule[] | - |
rulesMessageJoinLabel | 是否把 label 添加进校验信息 | boolean | true |
loading | 是否加载中 | boolean | false |
formItemProps | Form.Item 属性 | Partial<FormItemProps> | - |
colProps | Col 属性 | Partial<ColProps> | - |
order | 排序 | number | - |
defaultValue | 默认值 | any | - |
isAdvanced | 是否显示展开收起按钮 | boolean | true |
labelFullWidth | 标签是否占满整行 | boolean | false |
span | 栅格占位格数 | number | - |
vShow | 是否显示(作用同v-show) | boolean | ((renderCallbackParams: RenderCallbackParams<T>) => boolean) | - |
VIf | 是否显示(作用同v-if) | boolean | ((renderCallbackParams: RenderCallbackParams<T>) => boolean) | - |
renderColContent | 自定义渲染 col 内容 | CustomRenderFn<T> | - |
noFormItemMarginBottom | 是否去掉 FormItem 的 margin-bottom | boolean | false |
noLabelTip | 是否去掉 label 的 tooltip | boolean | false |
slot | 自定义渲染slot, 如 slot为 name, 在form的template标签中加入插槽 name ,就可以显示为这项的内容 | string | - |
colSlot | 自定义渲染col slot | string | - |
noLabel | 是否不显示label | boolean | false |
dynamicDisabled | 动态禁用 | boolean | ((renderCallbackParams: RenderCallbackParams<T>) => boolean) | - |
useMaxLengthRule | 是否使用默认的长度校验(input 100 字符, textarea 200 字符) | boolean | true |
dynamicRules | 动态校验规则 | Rule[] | ((renderCallbackParams: RenderCallbackParams<T>) => RuleItem[]) | - |
FormProps
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
AntV 表单项的属性 | 都支持 | - | - |
request | 组件异步请求数据 | RequestConfig | - |
requestResult | 请求结果 | any | - |
style | 组件样式 | CSSProperties | - |
vModelKey | 手动指定v-model绑定的key | string | - |
ts
// RequestConfig 类型
/** 组件异步请求配置 */
type RequestConfig =
| PromiseFn<RenderCallbackParams, any>
| {
/** 指定监听的字段名, 当该字段值发生变化时会调用 callback */
watchFields: string[];
callback: PromiseFn<RenderCallbackParams, any>;
options?: WatchOptions;
/** debounce 请求防抖 */
wait?: number;
};
Events
事件名 | 说明 | 回调参数 |
---|---|---|
register | 组件注册触发 | - |
reset | 重置触发 | 表单的值 |
submit | 提交触发 | 表单的值 |
advancedChange | 展开收起变化触发 | - |
formModelChange | 值发生改变触发 | 表单的值 |
Methods
方法名 | 说明 | 参数 | 返回值 |
---|---|---|---|
setFormModel | 设置某个字段的值 | key 字段, value 值 | - |
setFormModels | 设置formModel的值 | values 表单数据 | - |
replaceFormModels | 替换formModel的值 | values 表单数据 | - |
getFormModelByField | 获取某个字段的值 | key 字段 | value |
delFormModel | 删除某个字段的值 | key 字段 | boolean |
setFormProps | 设置表单配置 | Partial<FormProps> | - |
handleFormValues | 处理表单数据 | values 表单数据 | values 表单数据 |
handleRangeTimeValue | 处理时间范围 | values 表单数据 | values 表单数据 |
getFormValues | 获取表单数据 | - | values 表单数据 |
setFieldsValue | 设置字段的值 | values 表单数据 | - |
resetSchema | 重置表单 | values 表单数据 | - |
removeAllSchema | 删除所有的 Schema | {string、string[]} fields 排除的字段 | - |
appendSchemaByField | 插入到指定 filed 后面,如果没传指定 field,则插入到最后,当 first = true 时插入到第一个位置 | schemaItem, prefixField ,first | - |
removeSchemaByFiled | 根据 field 删除 Schema | {string、string[]} fields, isInclude 是否是field包含的字符串 默认false | boolean |
getSchemaByFiled | 根据 field 查找 Schema | {string、string[]} fields | - |
updateSchema | 更新formItemSchema | {Partial<FormSchema> ,Partial<FormSchema>[]} data | - |
resetForm | 重置表单 | - | - |
scrollToField | 滚动到指定表单项 | name 表单项的name , options 滚动配置 | - |
validateFields | 校验表单 | nameList 校验指定的表单项 | - |
validate | 校验整个表单 | - | values 表单数据 |
clearValidate | 清除校验 | nameList 校验指定的表单项 | - |
handleSubmit | 提交表单 | - | Promise |
handleEnterPress | 监听键盘事件 | e 事件 KeyboardEvent | - |
插槽
支持自定义渲染的插槽
名称 | 说明 |
---|---|
formHeader | 表头 |
formFooter | 表尾 |
default | 传入之后以传入的为主 |
advanceBefore | 展开图标之前 |
resetBefore | 重置按钮之前 |
submitBefore | 提交按钮之前 |
submitAfter | 提交按钮之后 |