Dialog 对话框

在保留当前页面状态的情况下,告知用户并承载相关操作。

示例

<template>
  <el-button text @click="dialogVisible = true"> 点击打开弹窗</el-button>
  <cvue-dialog title="新增" v-model="dialogVisible" @confirm="handleConfirm">
    <div>item1</div>
    <div>item2</div>
    <div>item3</div>
    <div>item4</div>
    <div>item5</div>
  </cvue-dialog>
</template>

<script lang="ts" setup>
  import { ref } from 'vue'

  const dialogVisible = ref(false)
  const handleConfirm = ({ startLoading, stopLoading, done }) => {
    startLoading()
    setTimeout(() => {
      stopLoading()
      done()
    }, 2000)
  }
</script>

属性

属性名说明类型默认值可选值
model-value / v-model是否显示 Dialogboolean--
titleDialog 对话框 Dialog 的标题, 也可通过具名 slot (见下表)传入string--
widthDialog 的宽度string / number50%-
fullscreen是否为全屏 Dialogbooleanfalse-
topDialog CSS 中的 margin-top 值string15vh-
modal是否需要遮罩层booleantrue-
append-to-bodyDialog 自身是否插入至 body 元素上。 嵌套的 Dialog 必须指定该属性并赋值为 truebooleanfalse-
lock-scroll是否在 Dialog 出现时将 body 滚动锁定booleantrue-
custom-classdeprecatedDialog 的自定义类名string--
open-delayDialog 打开的延时时间,单位毫秒number0-
close-delayDialog 关闭的延时时间,单位毫秒number0-
close-on-click-modal是否可以通过点击 modal 关闭 Dialogbooleantrue-
close-on-press-escape是否可以通过按下 ESC 关闭 Dialogbooleantrue-
show-close是否显示关闭按钮booleantrue-
before-close关闭前的回调,会暂停 Dialog 的关闭. 回调函数内执行 done 参数方法的时候才是真正关闭对话框的时候.Function(done) (done 用来关闭 Dialog)--
draggable为 Dialog 启用可拖拽功能booleanfalse-
center是否让 Dialog 的 header 和 footer 部分居中排列booleanfalse-
align-center是否水平垂直对齐对话框booleanfalse-
destroy-on-close当关闭 Dialog 时,销毁其中的元素booleanfalse-

事件

事件名说明参数
openDialog 打开的回调-
openedDialog 打开动画结束时的回调-
closeDialog 关闭的回调-
closedDialog 关闭动画结束时的回调-
open-auto-focus输入焦点聚焦在 Dialog 内容时的回调-
close-auto-focus输入焦点从 Dialog 内容失焦时的回调-

插槽

插槽名说明slotProps
defaultDialog 的内容-
header对话框标题的内容;会替换标题部分,但不会移除关闭按钮。-
titledeprecated与 header 作用相同 请使用 header-
footerDialog 按钮操作区的内容-
上次更新:
贡献者: wishzhang