Appearance
Dialog 弹窗
MoDialog 用于需要用户确认、填写信息或查看关键内容的弹层场景。通过 v-model 控制显示状态,支持标题、页脚、尺寸、关闭行为和明暗主题。
基础用法
Light
Dark
vue
<script setup lang="ts">
import { ref } from "vue";
const visible = ref(false);
</script>
<template>
<MoButton type="primary" @click="visible = true">打开弹窗</MoButton>
<MoDialog v-model="visible" title="创建任务">
弹窗内容
</MoDialog>
</template>底部操作
Light
Dark
vue
<MoDialog v-model="visible" title="发布确认">
<p>发布后,当前配置会立即同步到生产环境。</p>
<template #footer>
<MoButton type="ghost" @click="visible = false">取消</MoButton>
<MoButton type="primary" @click="visible = false">确认发布</MoButton>
</template>
</MoDialog>自定义标题和关闭按钮
Light
Dark
vue
<MoDialog v-model="visible" :width="560">
<template #title>模型参数</template>
<template #close>×</template>
自定义内容
</MoDialog>尺寸和间距
Light
Dark
vue
<MoDialog v-model="visible" title="批量导入" width="720px" :padding="30">
内容
</MoDialog>关闭行为
Light
Dark
vue
<MoDialog
v-model="visible"
title="敏感操作"
:close-on-overlay="false"
:show-close="false"
>
内容
</MoDialog>无头部弹窗
Light
Dark
vue
<MoDialog v-model="visible" :show-header="false">
自定义内容
</MoDialog>API
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
v-model | 是否显示弹窗 | boolean | false |
title | 标题文本 | string | "" |
theme | 主题 | light | dark | light |
width | 弹窗宽度 | number | string | 520 |
padding | 内容内边距 | number | string | 24 |
showHeader | 是否渲染头部区域 .mo-dialog__header | boolean | true |
showClose | 是否显示关闭按钮 | boolean | true |
closeOnOverlay | 点击遮罩或按 Esc 时是否关闭 | boolean | true |
lockScroll | 弹窗打开时是否锁定页面滚动 | boolean | false |
zIndex | 弹窗层级 | number | 1000 |
Events
| 事件 | 说明 | 回调参数 |
|---|---|---|
open | 打开动画结束后触发 | - |
close | 调用关闭逻辑时触发 | - |
update:modelValue | 显示状态变化时触发 | boolean |
Slots
| 插槽 | 说明 |
|---|---|
default | 弹窗主体内容 |
title | 自定义标题内容 |
footer | 自定义底部操作区 |
close | 自定义关闭按钮内容 |