From 77f61130139a9be2ddcdfd6ef6d8196eff6ba909 Mon Sep 17 00:00:00 2001 From: LiuJiaNan <15703339975@163.com> Date: Fri, 24 Apr 2026 16:20:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(form):=20formList=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=B3=9B=E5=9E=8B=E6=8E=A8=E5=AF=BCname?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FormBuilder/FormItemsRenderer.d.ts | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) 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 组件属性 */