Dialog 对话框
基础用法
可以使用open方法来打开对话框
对话框宽度
可以在打开的时候使用width定义对话框宽度
对话框高度
可以在打开的时候使用height定义对话框高度;可以使用固定高度或者百分比高度,使用百分比高度时,推荐将dialog的align-center设置为true,百分比高度基于window.innerHeight来计算;高度包括 header和footer的高度
手动处理确定事件
通过confrim函数来手动处理确定事件,如果不传confrim,则点击确定按钮后默认关闭
手动处理取消事件
通过cancel函数来手动处理取消事件,如果不传cancel,则点击取消按钮后默认关闭
按钮文字
通过confirmBtnText和cancelBtnText来控制确定和取消按钮的文字
确定按钮的loading
通过confrim函数中的loading和stopLoading参数来控制确定按钮的加载状态
插槽
通过插槽自定义 header 和 footer
Dialog Attributes
| 名称 | 说明 | 类型 | 默认值 |
|---|---|---|---|
dialogProps | 透传给 ElDialog 的原生 props(会与全局 setDialogConfig 的 dialogProps 合并) | Partial<DialogProps> | {} |
getAsyncDataWhenEveryOpen | 配合弹窗内 ElhForm 使用时,是否每次 open 都调用 form.getAsyncData() | boolean | true |
Dialog Expose
ElhDialog 通过 defineExpose 暴露 DialogInstance:
| 名称 | 说明 | 类型 |
|---|---|---|
open | 打开弹窗,可传本次打开参数 | <T = any>(dialogOpenOptions?: DialogOpenOptions<T>) => void |
inject | 内部注入对象(主要用于表单实例注入) | DialogInject |
DialogOpenOptions
| 名称 | 说明 | 类型 | 默认值 |
|---|---|---|---|
title | 弹窗标题 | string | '' |
top | 弹窗顶部偏移(ElDialog 的 top) | string | 沿用 ElDialog 默认 |
width | 弹窗宽度 | string | number | '50%' |
height | 内容区高度(支持固定值或百分比;最终会扣除 header/footer 与 padding) | string | 'auto' |
confirmBtnText | 确认按钮文本 | string | '确定' |
cancelBtnText | 取消按钮文本 | string | '取消' |
validateForm | 存在注入表单时,点击确认是否先校验表单 | boolean | true |
setFormData | 打开后设置表单数据,可返回对象/Promise,并可通过回调拿到 form 实例做额外处理 | ((callback: (func: (form: FormInstance) => void) => void) => V) | null | null |
confirm | 点击确认回调 | (param: DialogConfirmParam<T>) => void | - |
cancel | 点击取消或关闭回调 | (param: DialogCloseParam) => void | - |
DialogConfirmParam
| 名称 | 说明 | 类型 |
|---|---|---|
close | 关闭弹窗 | () => void |
data | 表单数据(有表单时为表单数据;无表单时为 null) | T |
loading | 开启确认按钮 loading | () => void |
stopLoading | 关闭确认按钮 loading | () => void |
DialogCloseParam
| 名称 | 说明 | 类型 |
|---|---|---|
close | 关闭弹窗 | () => void |
DialogInject
| 名称 | 说明 | 类型 |
|---|---|---|
form | 注入的表单实例(弹窗中包含 ElhForm 时可用) | FormInstance |