Skip to content

ProFormDialog 弹窗表单 ​

ProFormDialog 弹窗表单 的基础用法、公开 API 与示例。

基础示例 ​

在弹窗中使用 ProForm。

示例使用本地演示数据;上传、校验和提交不会连接业务后端。

提交表单 ​

展示弹窗表单的默认值和提交回调。

示例使用本地演示数据;上传、校验和提交不会连接业务后端。

引入方式 ​

ts
import { ProFormDialog } from "@/components/pro/form-dialog";

Props ​

参数说明类型默认值必填
dialogProDialog 的 PropsProDialogProps & Partial<DialogProps>{}否
formProForm 的 PropsProFormNamespace.Props & ProFormNamespace.OnEmits{}否
modelValue组件双向绑定值。Recordable() => reactive({})否
visible控制组件显示或隐藏。unknownfalse否

Events ​

事件名说明回调参数
change表单值改变事件value: unknown, model: Recordable, column: FormItemColumnProps, oldValue: unknown
confirm确认按钮点击事件model: Recordable
cancel取消按钮点击事件-
update:modelValue双向绑定值更新时触发。value: Recordable
update:visible显示状态更新时触发。value: unknown

Slots ​

插槽名说明参数
dialog-footerdialog-footer 内容插槽。-

Expose ​

名称说明类型
proFormInstance暴露 proFormInstance 给外部调用。-
handleConfirm执行确认操作。-
handleCancel执行取消操作。-
open打开组件。-
close关闭组件。-

Module API ​

名称说明类型
ProFormDialog导出 ProFormDialog 供业务侧复用。useInstall(index)

Types ​

ProFormDialogProps ​

导出 ProFormDialogProps 供业务侧复用。

字段说明类型默认值必填
dialogProDialog 的 PropsProDialogProps & Partial<DialogProps>-否
formProForm 的 PropsProFormNamespace.Props & ProFormNamespace.OnEmits-否

ProDialogProps ​

导出 ProDialogProps 供业务侧复用。

字段说明类型默认值必填
title顶部标题string''否
fullscreen是否默认全屏booleanfalse否
fullscreenIcon是否显示渲染全屏图标booleantrue否
height内容高度string | number400否
maxHeight内容最大高度string | number-否
heightOffsetInFullscreen全屏时内容高度偏移量number0否
showFooter是否渲染底部booleantrue否
footerAlign底部对齐方式"left" | "right" | "center"'right'否
confirmLoading确认按钮 loadingbooleanfalse否
confirmText确认按钮文字string'确认'否
cancelText关闭按钮文字string'关闭'否
render自定义内容渲染() => RenderTypes-否
renderHeader自定义头部渲染(scope: unknown) => RenderTypes-否
footerTopRender自定义底部上方渲染() => RenderTypes-否
renderFooterBefore自定义底部前方渲染(scope: DialogRenderParams) => RenderTypes-否
renderFooter自定义底部渲染(scope: DialogRenderParams) => RenderTypes-否
renderFooterAfter自定义底部前方渲染(scope: DialogRenderParams) => RenderTypes-否
onConfirm确认按钮点击事件(closeDialog: () => void) => unknown-否
onCancel关闭按钮点击事件(closeDialog: () => void) => unknown-否
onFullscreen全屏切换事件(isFullscreen: boolean) => void-否

ProFormDialogEmits ​

导出 ProFormDialogEmits 供业务侧复用。

字段说明类型默认值必填
change表单值改变事件[value: unknown, model: Recordable, column: FormItemColumnProps, oldValue: unknown]-是
confirm确认按钮点击事件[model: Recordable]-是
cancel取消按钮点击事件[]-是

FormItemColumnProps ​

ProFormItem 的 props

字段说明类型默认值必填
propElFormItem 的 prop 属性,当表单数据 model 为对象时,prop 也是 model 的 keystring-否
label标签,ElFormItem 的 label 属性MaybeRef<string | number> | BivariantCallback<[model: T], string | number>-否
showLabel是否显示 labelMaybeRefOrGetter<boolean>true否
width表单组件宽度MaybeRefOrGetter<string | number>-否
el使用的表单组件名MaybeRefOrGetter<FormElType>'ElInput'否
elProps表单组件的 Props,即会透传到表单组件MaybeRefOrGetter<FormElProps> | BivariantCallback<[model: T], FormElProps>-否
elSlots表单组件的插槽{<br> [slotName: string]: BivariantCallback<[data: FormItemRenderParams<T> & Recordable], RenderTypes>;<br> }-否
options字典枚举数据| string[]<br> | MaybeRef<ElOption[] | object[]><br> | Promise<ElOption[] | object[]><br> | BivariantCallback<<br> [optionsParams: OptionsParams<T>],<br> | ElOption[]<br> | object[]<br> | Record<string, ElOption[] | object[]><br> | Promise<ElOption[] | object[] | Record<string, ElOption[] | object[]>><br> >-否
optionField字典指定 label && value && children 的 key 值ElOptionField'{ label: "label", value: "value", children: "children", disabled: "disabled" }'否
formItemPropsElFormItem propsMaybeRefOrGetter<ElFormItemProps>-否
clearable是否显示清除按钮booleantrue否
tooltipLabel 右侧 ElToolTip 提示| MaybeRefOrGetter<string><br> | ({<br> icon?: Component; // ElTooTip 绑定的元素图标<br> render?: () => RenderTypes; // 自定义 ElTooTip 绑定的元素,将会覆盖图标,传入 ElTooTip 的 default 插槽里<br> contentRender?: () => RenderTypes; // 自定义 ElTooTip 的内容,传入 ElTooTip 的 content 插槽里<br> } & Partial<ElTooltipProps>)-否
valueFormat表单绑定的值格式,场景:select 下拉 value 为 "1",而 value 值是 1 导致无法匹配,可以设置为 valueFormat: "string" 解决"string" | "number" | "boolean" | ((value: unknown) => unknown)-否
returnFullPath对于 el-tree-select 组件,是否返回完整路径 当设置为 true 时,选择子节点会返回从根节点到选中节点的完整路径数组 例如:选择 "马来一期" 会返回 ["马来项目", "马来一期"]booleanfalse否
editable是否为编辑态MaybeRefOrGetter<boolean>true否
renderLabel自定义 label 标题BivariantCallback<[scope: FormItemRenderParams<T>], RenderTypes>-否
renderLabelHTML自定义 Label 内容渲染(返回 HTML),优先级低于 render,高于插槽BivariantCallback<[scope: FormItemRenderParams<T>], string>-否
render自定义渲染 el-form-item 下的表单组件BivariantCallback<[scope: FormItemRenderParams<T>], RenderTypes>-否
parse解析 model 中的值为组件需要的格式(在读取时调用) 使用场景:后端返回逗号分隔的字符串 "1,2,3",需要解析为数组 ['1','2','3'] 供 el-select 多选使用 示例:parse: (value) => typeof value === 'string' ? value.split(',') : value(value: unknown) => unknown-否
format格式化最终表单提交的值(在设置到 model 之前调用) 使用场景:el-select 多选返回数组 ['1','2','3'],需要格式化为逗号分隔的字符串 "1,2,3" 提交给后端 示例:format: (value) => Array.isArray(value) ? value.join(',') : value 注意:parse 和 format 通常配对使用,形成双向转换(value: unknown) => unknown-否

API 根据当前组件源码生成;同步版本与验证记录见维护说明。