Dialog 模态框
基于
Popup
进一步封装
import { DuDialog } from 'dangoui'
示例
<template>
<PreviewBlock title="基础">
<DuButton type="secondary" @click="visible = true">打开弹窗</DuButton>
</PreviewBlock>
<DuDialog
v-model:visible="visible"
title="基础"
@confirm="handleConfirm"
@cancel="handleCancel"
/>
<PreviewBlock title="按钮纵向排列">
<DuButton type="secondary" @click="commonVisible = true">打开弹窗</DuButton>
</PreviewBlock>
<DuDialog
v-model:visible="commonVisible"
@close="close"
@confirm="handleConfirm"
title="按钮纵向排列"
actionLayout="vertical"
></DuDialog>
<PreviewBlock title="默认插槽">
<DuButton type="secondary" @click="commonVisible = true">打开弹窗</DuButton>
</PreviewBlock>
<DuDialog
v-model:visible="commonVisible"
@close="close"
@confirm="handleConfirm"
title="按钮纵向排列"
actionLayout="vertical"
>
我是内容
</DuDialog>
<PreviewBlock title="API 模式调用">
<DuButton type="secondary" @click="handleOpenDialog">打开弹窗</DuButton>
</PreviewBlock>
<DuDialog title="按钮纵向排列" ref="dialogRef" actionLayout="vertical">
<template #footer>
<DuButton type="outline" @click="handleCancel" full size="large">
取消
</DuButton>
<DuButton type="primary" @click="handleConfirm" full size="large">
确认
</DuButton>
</template>
</DuDialog>
</template>
<script setup lang="ts">
import { DuDialog, DuButton } from 'dangoui'
const visible = ref(false)
const verticalVisible = ref(false)
const controlledVisible = ref(false)
const commonVisible = ref(false)
const actionVisible = ref(false)
const dialogRef = ref(null)
function handleCancel() {
console.log('取消')
}
function handleConfirm() {
commonVisible.value = false
console.log('确认')
}
function close() {
console.log('关闭触发')
}
function handleOpenDialog() {
dialogRef.value.open({
title: 'API 模式调用',
content: '这是一个 API 模式调用的弹窗',
})
}
</script>
0
API
属性
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
ext-class | string | string[] | Record<string, boolean> | "" | extClass |
ext-style | string | { [x: string]: string | number; } | "" | extStyle |
visible | boolean | - | 是否展示弹窗 |
title | string | "" | 弹窗标题 |
header-visible | boolean | true | 是否展示内置的头部栏 |
closable | boolean | false | 是否展示关闭按钮(当内置头部栏展示时有效) |
mask-class | string | string[] | Record<string, boolean> | "" | maskClass |
mask-style | string | { [x: string]: string | number; } | "" | maskStyle |
disable-portal | boolean | false | 禁止将 Popup 渲染到根节点 |
action-layout | "horizontal" | "vertical" | "horizontal" | 按钮排列方式:水平或者垂直 |
ok-text | string | "\u786E\u5B9A" | okText,确定按钮的文字 |
cancel-text | string | "\u53D6\u6D88" | cancelText,取消按钮的文字 |
title-align | "default" | "center" | - | 标题对齐方式,default 为左对齐 |
mask-click | boolean | - | 点击遮罩层是否关闭 |
插槽
名称 |
---|
default |
footer |
事件
名称 | 类型 |
---|---|
confirm | (event: "confirm", ...args: any[]): void |
close | (event: "close", ...args: any[]): void |
update:visible | (event: "update:visible", ...args: any[]): void |
cancel | (event: "cancel", ...args: any[]): void |