/** * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC * */ import { IsEmailOptions } from 'validator/es/lib/isEmail'; import { IsURLOptions } from 'validator/es/lib/isURL'; import type { TNode, FormResetEvent, FormSubmitEvent } from '../common'; export interface TdFormProps { /** * 是否在表单标签字段右侧显示冒号 * @default false */ colon?: boolean; /** * 表单内容对齐方式:左对齐、右对齐 * @default left */ contentAlign?: 'left' | 'right'; /** * 是否禁用整个表单 */ disabled?: boolean; /** * 表单错误信息配置,示例:`{ idcard: '请输入正确的身份证号码', max: '字符长度不能超过 ${max}' }` */ errorMessage?: FormErrorMessage; /** * 经 `Form.useForm()` 创建的 form 控制实例 */ form?: FormInstanceFunctions; /** * 表单原生的id属性,支持用于配合非表单内的按钮通过form属性来触发表单事件 */ id?: string; /** * 表单初始数据,重置时所需初始数据,优先级小于 FormItem 设置的 initialData */ initialData?: object; /** * 表单字段标签对齐方式:左对齐、右对齐、顶部对齐 * @default right */ labelAlign?: 'left' | 'right' | 'top'; /** * 可以整体设置label标签宽度,默认为81px * @default '81px' */ labelWidth?: string | number; /** * 是否阻止表单提交默认事件(表单提交默认事件会刷新页面),设置为 `true` 可以避免刷新 * @default true */ preventSubmitDefault?: boolean; /** * 是否整个表单只读 */ readonly?: boolean; /** * 是否显示必填符号(*),默认显示 */ requiredMark?: boolean; /** * 表单必填符号(*)显示位置 */ requiredMarkPosition?: 'left' | 'right'; /** * 重置表单的方式,值为 empty 表示重置表单为空,值为 initial 表示重置表单数据为初始值 * @default empty */ resetType?: 'empty' | 'initial'; /** * 表单字段校验规则 */ rules?: FormRules; /** * 表单校验不通过时,是否自动滚动到第一个校验不通过的字段,平滑滚动或是瞬间直达。值为空则表示不滚动 */ scrollToFirstError?: '' | 'smooth' | 'auto'; /** * 校验不通过时,是否显示错误提示信息,统一控制全部表单项。如果希望控制单个表单项,请给 FormItem 设置该属性 * @default true */ showErrorMessage?: boolean; /** * 【讨论中】当校验结果只有告警信息时,是否触发 `submit` 提交事件 * @default false */ submitWithWarningMessage?: boolean; /** * 表单重置时触发 */ onReset?: (context: { e?: FormResetEvent; }) => void; /** * 表单提交时触发。其中 `context.validateResult` 表示校验结果,`context.firstError` 表示校验不通过的第一个规则提醒。`context.validateResult` 值为 `true` 表示校验通过;如果校验不通过,`context.validateResult` 值为校验结果列表。
【注意】⚠️ 默认情况,输入框按下 Enter 键会自动触发提交事件,如果希望禁用这个默认行为,可以给输入框添加 enter 事件,并在事件中设置 `e.preventDefault()` */ onSubmit?: (context: SubmitContext) => void; /** * 校验结束后触发,result 值为 true 表示校验通过;如果校验不通过,result 值为校验结果列表 */ onValidate?: (result: ValidateResultContext) => void; /** * 字段值更新时触发的回调事件 */ onValuesChange?: (changedValues: Record, allValues: Record) => void; } /** 组件实例方法 */ export interface FormInstanceFunctions { /** * 清空校验结果。可使用 fields 指定清除部分字段的校验结果,fields 值为空则表示清除所有字段校验结果。清除邮箱校验结果示例:`clearValidate(['email'])` */ clearValidate: (fields?: Array) => void; /** * 获取 form dom 元素 */ currentElement?: () => HTMLFormElement; /** * 获取 form dom 元素 */ getCurrentElement?: () => HTMLFormElement; /** * 获取单个字段值 */ getFieldValue: (field: NamePath) => unknown; /** * 获取一组字段名对应的值,当调用 getFieldsValue(true) 时返回所有表单数据 */ getFieldsValue: (nameList: string[] | boolean) => getFieldsValue; /** * 获取校验结果,当调用 getValidateMessage() 时返回所有校验结果 */ getValidateMessage: (fields?: Array) => Array | void; /** * 重置表单,表单里面没有重置按钮`