import type { FormItemControlArgs, FormItemControlOptions } from "./form-item-control"; import type { FormItemOptions } from "./form-item"; import { FormItem } from "./form-item"; import { FormItemControlType } from "./types"; import { FormValidator } from "./validator"; export declare class FormHelper { protected static readonly defaultFormHelperOptions: FormHelperOptions; constructor(options?: Partial); preset: Partial>; fields: Array; data: Record; rawData: Record; validator: FormValidator; /** * 表单项控件值变化后的回调函数. */ onFormItemControlChange: (name: string, value: any) => void; onValidateError: (error: any) => void; addFields(...fields: Array>): void; removeFields(...names: Array): void; /** * 设置表单数据对象. 该方法会将表单数据对象中的值赋值到表单项控件中. * @param data */ setRawData(data: Record): void; /** * 设置表单项集合. * @param fields 表单项的集合, 用于描述表单的结构. */ setFields(fields: Array>): void; /** * 根据 `initialValue` 重置表单项的值 */ reset(): void; /** * 设置表单项控件的值. 该方法会将表单项控件的值赋值到表单数据对象中, 并更新界面. * @param name * @param value */ setField(name: string, value: any): void; /** * 获取与 `name` 对应的表单项控件对象. * @param name */ getField(name: string): FormItem | undefined; /** * 重置表单项控件值为初始值. */ protected resetFields(): void; /** * 校验传入的表单项集合是否合法. * @protected * @param fields */ protected validateOptions(fields: Array>): void; /** * 根据传入的表单项集合, 创建表单项对象. * @protected * @param fields */ protected transformFieldOption(fields: Array>): InnerFormHelperOptions["fields"]; /** * 合并预设值 * @param presets * @protected */ protected mergePresets(presets: FormHelperOptions["presets"]): Partial>; /** * 初始化完成后执行的方法. * @protected */ protected postInitial(): void; /** * 创建表单项对象 * @param options * @param control * @protected */ protected buildFormItem(options: Pick & Partial>, control: FormItemControlArgs): FormItem; /** * 提取表单项的属性, 用于创建表单项, 以及表单项的控件. * @param field */ protected extractProps(field: FormModelFieldArgs): { formItemOptions: Pick & Partial; formItemControlArgs: FormItemControlArgs; }; } export interface InnerFormHelperOptions { fields: Array; data: Record; } export interface FormHelperOptions { /** * 表单数据对象 */ data: Record; /** * 表单项的预设值, 用于设置控件的默认属性. */ presets: Array>>; /** * 表单验证器 */ validator: FormValidator; } /** * 表单项的集合, 用于描述表单的结构. 接受两种类型的参数: FormModelField 和 [FormModelField, ...args]. * @example FormModelField * { * name: "username", * label: "用户名", * type: "input", * initialValue: "admin" * } * @example [FormModelField, ...args] * [ * { * name: "username", * label: "用户名", * type: "input", * initialValue: "admin" * }, * { * maxlength: 11 * } * ] */ export declare type FormModelFieldArgs = FormModelField | [FormModelField, ...Array]; export declare type FormModelField = Pick & Partial & FormItemControlOptions>;