Dialog Form

CuiDialogForm 弹层表单组件

CuiDialogForm

CuiDialogFormCuiDialogCuiForm 组合成统一的弹层表单模型,适合新增、编辑和轻量审批。

弹层表单

演示在对话框内承载表单字段、提交和关闭动作

Live Demo

Preview

Code

先看效果,再决定是否展开代码细节。

<script setup lang="ts">
import DialogFormBasicDemo from "~/app/components/demo/DialogFormBasicDemo.vue";
</script>

<template>
    <DialogFormBasicDemo />
</template>

核心 Props

弹层表单常用配置

属性类型说明
visibleboolean是否打开
modelValueRecord<string, any>表单数据
fieldsCuiFormField[]字段配置
confirmTextstring确认按钮文案
loadingboolean是否展示提交加载状态

完整 Props

属性类型默认值说明
visibleboolean是否显示,支持 v-model:visible(必填)
modelValueT表单数据,支持 v-model(必填)
fieldsCuiFormField<T>[]字段配置数组(必填)
titlestring'表单对话框'对话框标题
widthstring | number'50%'对话框宽度
showClosebooleantrue是否显示关闭按钮
closeOnClickModalbooleanfalse点击遮罩是否关闭
labelWidthstring | number'100px'表单标签宽度
inlinebooleanfalse是否行内布局
disabledbooleanfalse是否禁用表单
labelPosition'left' | 'right' | 'top''right'标签对齐方式
confirmTextstring'确认'确认按钮文案
cancelTextstring'取消'取消按钮文案
confirmDisabledbooleanfalse是否禁用确认按钮
loadingbooleanfalse是否显示加载状态

Emits

事件名参数说明
update:visible(value: boolean)显示状态更新(注意:用 update:visible 而非 update:modelValue
update:modelValue(value: T)表单数据更新
submit(value: T)验证通过后提交
cancel()点击取消
open()对话框打开
close()对话框关闭

Slots

插槽名Scope说明
default表单上方的自定义内容区
field-{prop}(动态名){ field, value, updateValue }自定义字段渲染,配合 field.slot 使用
footer-center底部按钮中间自定义内容

Expose(ref 方法)

方法说明
resetForm()重置表单数据
setFormData(data)设置表单数据