对话框 Modal
在当前页面打开一个与用户对话、交互的弹框。
基础用法
基础的弹框使用方式
<template>
<bp-button @click="handleOpen">Open modal</bp-button>
<bp-modal v-model="show" title="Title">
<p>Modal content.</p>
</bp-modal>
</template>
<script setup lang="ts">
import { ref } from "vue";
const show = ref(false);
const handleOpen = () => {
show.value = true;
};
</script>
自定义底部
通过底部插槽 footer
自定义内容
<template>
<bp-button @click="handleOpen">Custom footer</bp-button>
<bp-modal v-model="show" title="Title">
<p>Modal content.</p>
<template #footer>
<bp-space justify="flex-end">
<bp-button type="plain" @click="show = false">Cancle</bp-button>
<bp-button type="primary" status="danger" @click="show = false">Confirm delete</bp-button>
</bp-space>
</template>
</bp-modal>
</template>
<script setup lang="ts">
import { ref } from "vue";
const show = ref(false);
const handleOpen = () => {
show.value = true;
};
</script>
Modal 属性
v-model | 对话框显示状态 | Boolean | false |
title | 对话框标题 | String | 标题 |
title-align | 标题对齐方式 | Enum | left |
width | 对话框宽度 | String | 600px |
top | 对话框距离顶部高度 | String | 20vh |
hide-footer | 是否隐藏底部区域 | Boolean | false |
hide-close | 是否隐藏关闭图标 | Boolean | false |
border | 是否展示边框 | Boolean | false |
mask-closable | 点击遮罩是否关闭 | Boolean | false |
ok-loading | 确认按钮是否处于加载状态 | Boolean | false |
ok-text | 确定按钮内容 | String | 确认 |
cancle-text | 取消按钮内容 | String | 取消 |
on-before-ok | 触发确定前的回调,返回 false 则中断 | Function | () => true |
Modal 事件
cancle | 对话框取消按钮触发 | - |
ok | 对话框确定按钮触发 | - |