基于 vue2 + vuetify 的消息弹框组件
npm i vuetify-message-box
import Vue from 'vue' import Vuetify from 'vuetify' import VuetifyMessageBox from 'vuetify-message-box' const vuetify = new Vuetify({}) Vue.use(Vuetify) Vue.use(VuetifyMessageBox, { vuetify })
<script> export default { methods: { msgbox (mode = '默认') { if (mode === '默认') { // 只传入消息内容 this.$msgbox('hello world') } else if (mode === '带选项1') { // 传入消息内容, 选项 this.$msgbox('hello world', { center: true }) } else if (mode === '带选项2') { // 只传入选项, 消息内容在选项中 this.$msgbox({ message: 'hello world', center: true }) } else if (mode === '按类型') { // success error warning info this.$msgbox.success({ message: 'hello world', center: true }) } else if (mode === '使用VNode') { this.$msgbox({ content: this.$createElement('div', { style: { color: 'red' } }, 'hello world') }) } else if (mode === '关闭最后一个') { this.$msgbox('消息1', { name: 'msg1' }) this.$msgbox('消息2', { name: 'msg2' }) setTimeout(() => { this.$msgbox.close() }, 3e3) } else if (mode === '关闭指定name') { this.$msgbox('消息1', { name: 'msg1' }) this.$msgbox('消息2', { name: 'msg2' }) setTimeout(() => { this.$msgbox.close('msg1') }, 3e3) } } } } </script>
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| title | string | '消息提示' | 标题 |
| width | string, number | 400 | 组件宽度 |
| center | boolean | true | 是否居中显示 |
| dark | boolean | false | 是否使用暗色主题 |
| type | string | '' | 消息类型 'success', 'error', 'warning', 'info' |
| icon | boolean, string | - | 消息图标, 默认根据type显示, false则不显示 |
| closeIcon | string | '' | 关闭按钮图标 |
| contentClass | string | '' | 消息内容类名 |
| message | string | '' | 消息文本, 与content属性互斥, 优先级高 |
| content | vnode | null | 消息内容节点 |
| prepend | vnode | null | 按钮前置内容 |
| append | vnode | null | 按钮后置内容 |
| showConfirmButton | boolean | true | 是否显示确认按钮 |
| confirmButtonText | string | '确定' | 确认按钮文本 |
| confirmButtonClass | string | '' | 确认按钮类名 |
| showCancelButton | boolean | true | 是否显示取消按钮 |
| cancelButtonText | string | '取消' | 取消按钮文本 |
| cancelButtonClass | string | '' | 确认按钮类名 |
| closeOnClickModal | boolean | true | 点击遮罩是否关闭 |
| silence | boolean | false | 是否关闭reject提示, 为true时, 最好在同一eventLoop周期内调用then/catch, 不然原有回调的参数会被丢弃 |