diff --git a/src/components/FormBuilder/FormItemsRenderer.d.ts b/src/components/FormBuilder/FormItemsRenderer.d.ts index 1b1cb1a..7dffad6 100644 --- a/src/components/FormBuilder/FormItemsRenderer.d.ts +++ b/src/components/FormBuilder/FormItemsRenderer.d.ts @@ -58,7 +58,7 @@ export interface FormListUniqueProps { /** 删除按钮的文本,默认 '删除' */ removeButtonText?: string; /** 表单配置项 */ - options: (field: FormListFieldData, fieldIndex: number, operations: FormListOperations) => FormOption[]; + options: (field: FormListFieldData, fieldIndex: number, operations: FormListOperations) => FormListOption[]; /** 点击新增按钮时的默认值 */ addDefaultValue?: Store; /** 点击新增按钮时插入的索引位置 */ @@ -78,11 +78,11 @@ type FormOptionProperty { +export interface FormOptionBase> { /** React 需要的 key,如果传递了唯一的 name,则不需要 */ key?: string; /** 表单项字段名 */ - name?: NamePath; + name?: Name; /** 表单项标签 */ label?: ReactNode; /** 占据栅格列数,默认 12 */ @@ -110,7 +110,7 @@ export interface FormOptionBase boolean)>; /** 依赖字段(用于表单联动) */ - dependencies?: FormOptionProperty[]>; + dependencies?: FormOptionProperty; /** 是否仅用于保存标签,不渲染到页面上,只在表单中保存数据,默认 false */ onlyForLabel?: IsOnlyForLabel; } @@ -118,7 +118,7 @@ export interface FormOptionBase = FormOptionBase & { +export type FormOptionByRender> = FormOptionBase & { /** 渲染类型(写字面量时 componentProps 会按该类型推导) */ render: RenderType; /** 传递给表单控件的属性,类型由 render 决定 */ @@ -136,7 +136,7 @@ export type FormOptionByRender = FormOptionBase & { +export type FormOptionDefault> = FormOptionBase & { /** 渲染类型,默认 input */ render?: "input" | undefined; /** 传递给 Input 的属性 */ @@ -154,7 +154,7 @@ export type FormOptionDefault = FormOptionBase & { +export type FormOptionCustomRender> = FormOptionBase & { /** 渲染类型,默认 ReactNode */ render: ReactNode; /** 传递给表单控件的属性,自定义渲染时不需要 */ @@ -170,7 +170,7 @@ export type FormOptionCustomRender = | FormOptionDefault @@ -183,6 +183,20 @@ export type FormOption | FormOptionCustomRender | FormOptionCustomRender; +/** + * Form.List 子项表单配置项(使用 [number, NamePath] 作为 name 类型) + */ +export type FormListOption + = | FormOptionDefault]> + | FormOptionDefault]> + | FormOptionDefault]> + | { [K in keyof FORM_ITEM_RENDER_TYPE_MAP]: FormOptionByRender]> }[keyof FORM_ITEM_RENDER_TYPE_MAP] + | { [K in keyof FORM_ITEM_RENDER_TYPE_MAP]: FormOptionByRender]> }[keyof FORM_ITEM_RENDER_TYPE_MAP] + | { [K in keyof FORM_ITEM_RENDER_TYPE_MAP]: FormOptionByRender]> }[keyof FORM_ITEM_RENDER_TYPE_MAP] + | FormOptionCustomRender]> + | FormOptionCustomRender]> + | FormOptionCustomRender]>; + /** * FormItemsRenderer 组件属性 */