@zhangqingcq/plug-r-qw
Version:
A JS lib base on Vue and View-design, you can achieve some complex functions with simple code after install this lib.
72 lines (52 loc) • 2.43 kB
Markdown
## messageBox
对话框,支持确认按钮回调,支持按钮配置,支持宽高定制,挂在 vue 原型上,组件内使用 this 调用
### 唯一参数,对象类型,支持属性如下
- title 字符串,对话框的 title,可不传
- content 字符串/Function,提示框内容,可不传,1.string,直接将文字插入对应位置;2.function,如:(h)=>h('div',{class:'my-class'},'123')
- onOk Function,确定按钮被点击时的回调,可不传
- onCancel Function,取消按钮被点击时的回调,可不传
- onClose Function,关闭按钮(右上角的叉)被点击时的回调,可不传
- height 正整数,弹框高度,默认值:`130`
- width 正整数,弹框宽度,默认值:`416`
- okText 字符串,ok 按钮文字,可不传
- cancelText 字符串,取消按钮文字,可不传
- noWarnIcon 布尔对象,是否隐藏图标,可不传,为`true`时隐藏图标
- footerAlign 字符串,底部对齐方式,可不传,支持`'left','right','center'`默认值:`'center'`
- cancelBt 布尔对象,是否展示取消按钮,可不传,为`false`时隐藏,默认值:`true`
### 注意
- 如果想嵌套使用该方法,从第二层弹框开始都需放在定时器里执行,例如:
```
this.messageBox({
content: '第一层',
onOk: () => {
this.setTimeout(() => {
this.messageBox({
content: '第二层',
onOk: () => {
this.setTimeout(() => {
this.messageBox({
content: '第三层'
})
}, 1000)
}
})
}, 1000)
}
})
ps:this.setTimeout也是该库内方法,可以自动销毁,使用方法和window.setTimeout一样
```
* onOk 高级用法:返回 Promise,在 Promise `resolve` 或 `reject` 之前,弹框所有按钮不可点击,弹框不可关闭,‘确定’按钮为 loading 状态,其他按钮为 disabled 状态;`resolve`或`reject`后,弹框自动关闭。
```
messageBox({
content: 'content',
onOk() {
return new Promise((r) => {
console.log('ok 按钮被点击,模拟请求开始')
setTimeout(() => {
console.log('模拟请求完成')
r()
}, 3000)
})
}
})
```