Modal 对话框
概述
模态对话框,在浮层中显示,引导用户进行相关操作。
使用指南
在.vue中引入组件
<script>
import iModal from 'iview-mpvue/dist/components/modal/modal'
export default {
'i-modal': iModal
}
</script>
在main.js中引入样式文件
import 'iview-mpvue/dist/components/modal/style/css'
示例
<div style="margin-top: 100px;">
<i-button @click="handleOpen1">普通对话框</i-button>
<i-button @click="handleOpen2">无标题对话框</i-button>
<i-button @click="handleOpen3">自定义按钮对话框</i-button>
<i-button @click="handleOpen4">纵向按钮,自定义颜色及图标</i-button>
<i-button @click="handleOpen5">异步操作</i-button>
</div>
<i-modal title="标题" :visible="visible1" @ok="handleClose1" @cancel="handleClose1">
<div>一些文本</div>
<div>一些文本</div>
<div>一些文本</div>
<div>一些文本</div>
<div>一些文本</div>
<div>一些文本</div>
<div>一些文本</div>
<div>一些文本</div>
<div>一些文本</div>
</i-modal>
<i-modal :visible="visible2" @ok="handleClose2" @cancel="handleClose2">
<div>这是一个无标题的对话框</div>
</i-modal>
<i-modal title="支付" :visible="visible3" :actions="actions3" @click="handleClick3">
<div>请选择支付方式</div>
</i-modal>
<i-modal title="纵向排列的按钮" :visible="visible4" :actions="actions4" action-mode="vertical" @click="handleClick4"></i-modal>
<i-modal title="删除确认" :visible="visible5" :actions="actions5" @click="handleClick5">
<div>删除后无法恢复哦</div>
</i-modal>
<i-message ref="message" />
<script>
import { $Message } from 'iview-mpvue/dist/components/base/index'
export default {
...
data() {
return {
visible1: false,
visible2: false,
visible3: false,
visible4: false,
visible5: false,
actions3: [
{
name: '现金支付',
color: '#2d8cf0',
},
{
name: '微信支付',
color: '#19be6b'
},
{
name: '取消'
}
],
actions4: [
{
name: '按钮1'
},
{
name: '按钮2',
color: '#ff9900'
},
{
name: '按钮3',
icon: 'search'
}
],
actions5: [
{
name: '取消'
},
{
name: '删除',
color: '#ed3f14',
loading: false
}
]
}
},
methods: {
handleOpen1() {
this.visible1 = true
},
handleClose1() {
this.visible1 = false
},
handleOpen2() {
this.visible2 = true
},
handleClose2() {
this.visible2 = false
},
handleOpen3() {
this.visible3 = true
},
handleClick3(evt) {
const index = evt.index
if (index === 0) {
$Message(this, {
content: '点击了现金支付'
})
}
else if (index === 1) {
$Message(this, {
content: '点击了微信支付'
})
}
this.visible3 = false
},
handleOpen4() {
this.visible4 = true
},
handleClick4(evt) {
this.visible4 = false
},
handleOpen5() {
this.visible5 = true
},
handleClick5(evt) {
const index = evt.index
if (index === 0) {
this.visible5 = false
}
else {
const action = [...this.actions5]
action[1].loading = true
this.actions5 = action
setTimeout(() => {
action[1].loading = false
this.visible5 = false
this.actions5 = action
$Message(this, {
content: '删除成功',
type: 'success'
})
}, 2000)
}
}
}
}
</script>
API
Modal properties
属性
说明
类型
默认值
visible
是否显示组件
Boolean
false
title
标题
String
-
show-ok
是否显示确定按钮
Boolean
true
show- cancel
是否显示取消按钮
Boolean
true
ok-text
确定按钮的文案
String
确定
cancel-text
取消按钮的文案
String
取消
actions
按钮组,具体项参照后面的表格,设置此值后,则默认的确定和取消按钮不予显示
Array
[]
action-mode
按钮的排列方向,可选值为 horizontal 或 vertical
String
horizontal
Modal events
事件名
说明
返回值
v-on:click
点击某个按钮时触发,返回按钮所在 actions 中的索引
{ index }
v-on:ok
点击确定按钮时触发
-
v-on:cancel
点击取消按钮时触发
-
Modal actions
属性
说明
类型
默认值
name
按钮文案
String
-
icon
按钮图标
String
-
color
按钮文字的颜色
String
-
loading
按钮是否显示为加载中
Boolean
false
Last updated
Was this helpful?