# Modal 模态框
# 介绍
弹出模态框,常用于消息提示、消息确认,或在当前页面内完成特定的交互操作。
模态框组件支持函数调用和组件调用两种方式。
# 单独引用
Modal 是一个函数,调用后会直接在页面中弹出相应的模态框。
import { Modal } from 'mind-ui-vue';
Vue.use(Modal);
# 全局方法
如果你完整引入了 Mind UI Vue,它会在 Vue.prototype 上添加全局方法 $modal。
# 示例
# 消息提示
this.$modal
.alert({
title: "标题",
content: "操作成功!",
})
.then(() => {
// on confirm
})
.catch(() => {
// on cancel
});
# 确认提示
this.$modal
.confirm({
title: "标题",
content: "操作成功!",
})
.then(() => {
// on confirm
})
.catch(() => {
// on cancel
});
# 异步关闭
this.$modal({
title: "标题",
content: "异步操作",
confirmTextColor: "red",
confirmButtonText: "删除",
asyncClose: true,
})
.then((instance) => {
setTimeout(() => {
// on confirm
instance.close();
}, 1200);
})
.catch((instance) => {
// on cancel
instance.close();
});
# 组件调用
如果需要在弹窗内嵌入组件或其他自定义内容,可以使用组件调用的方式。
# 自定义内容
自定义弹窗内容
<m-modal :visible.sync="visible" @confirm="handleClose">
<img
class="custom-content"
src="https://note-file.ixook.com/FkwInL0tWpqDeRNtYHMfmaHlioTq"
/>
</m-modal>
# 异步关闭
<m-button @click="visible = true">按钮</m-button>
<m-modal
title="删除确认"
:visible.sync="visible"
asyncClose
confirmColor="#F56C6C"
@confirm="handleClose"
confirmButtonText="删除"
>
异步操作
</m-modal>
export default {
name: "modal",
data() {
return {
visible: false,
};
},
methods: {
handleClose() {
this.visible = false;
}
}
}
# Api
# Methods
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
| Modal | options | promise | — |
| Modal.alert | options | promise | 消息提示 |
| Modal.confirm | options | promise | 消息确认 |
| Modal.close | - | - | 关闭弹窗 |
# Options
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| title | 标题 | String | — |
| content | 文本内容 | String | — |
| showConfirmButton | 是否显示确认按钮 | Boolean | true |
| showCancelButton | 是否显示取消按钮 | Boolean | true |
| confirmButtonText | 确认按钮文字 | String | — |
| cancelButtonText | 取消按钮文字 | String | — |
| confirmTextColor | 确认按钮文字颜色 | String | #409EFF |
| asyncClose | 是否开启异步关闭弹窗,开启后需要手动控制弹窗的关闭 | Boolean | false |
# Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| visible | 是否显示弹窗 | Boolean | — |
| title | 标题 | String | — |
| content | 文本内容 | String | — |
| show-confirm-button | 是否显示确认按钮 | Boolean | true |
| show-cancel-button | 是否显示取消按钮 | Boolean | true |
| confirm-button-text | 确认按钮文字 | String | — |
| cancel-button-text | 取消按钮文字 | String | — |
| confirm-text-color | 确认按钮文字颜色 | String | #409EFF |
| async-close | 是否开启异步关闭弹窗,开启后需要手动控制弹窗的关闭 | Boolean | false |
| loading | js 异步调用时会内部处理,组件形式异步调用时需手动设置 | Boolean | false |
# Events
| 事件 | 说明 | 回调 |
|---|---|---|
| confirm | 弹窗确认时触发 | — |
| cancel | 弹窗取消时触发 | — |
| close | 弹窗关闭时触发 | — |
# Slots
| 名称 | 说明 |
|---|---|
| — | 自定义显示内容,如果设置了 content 属性则不生效 |
← Spinner 加载中 Drawer 抽屉 →