点我扫二维码,查看demo
# Dialog
# 介绍
弹窗的模态对话框组件
# 引入
通过一下方式来全局注册组件。更多注册方式敬请期待。
import Vue from 'vue';
import { Dialog } from '@dolphin-iot/ui';
Vue.use(Dialog);
1
2
3
4
2
3
4
# 代码演示
# 基础用法
通过 show
参数控制对话框是否显示。
<template>
<div>
<mx-cell title="基础用法" type="link" @click="showBasic = true"></mx-cell>
<mx-dialog :show="showBasic" title="文本" @button-click="showBasic=!showBasic" />
</div>
</template>
<script>
export default{
data(){
return {
showBasic:false
}
}
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 对话框类型
通过 type
参数控制对话框类型,对话框支持 confirm
alter
more
三种类型。默认为 confirm
类型。confirm
类型时对话框只显示一个 确认
按钮。alter
类型时,对话框显示 取消
确认
两个按钮。more
类型时,对话框显示 确定
更多
取消
三个按钮。如若需要对按钮文本进行定制化,请参考,自定义对话框按钮文本
。
<template>
<div class="demo-list">
<div class="panel">
<mx-cell title="alert" type="link" @click="showAlter= true"></mx-cell>
<mx-cell title="confirm" type="link" @click="showConfirm = true"></mx-cell>
<mx-cell title="more" type="link" @click="showMore = true"></mx-cell>
<div class="demo-panel">
<mx-dialog :show="showAlter" type="alter" title="文本" @button-click="showAlter=!showAlter" />
<mx-dialog :show="showConfirm" type="confirm" title="文本" @button-click="showConfirm=!showConfirm" />
<mx-dialog :show="showMore" type="more" title="文本" @button-click="showMore=!showMore" />
</div>
</div>
</div>
</template>
<script>
export default{
data(){
return {
showAlter:false,
showConfirm:false,
showMore:false
}
}
}
</script>
<style lang="scss" scoped>
.demo-list {
width: 100%;
height: 100%;
.panel{
padding-left: 10px;
padding-right:10px;
margin-bottom: 20px;
}
}
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 对话框主体内容
通过 content
参数控制对话框主体内容。
<template>
<div class="demo-list">
<div class="panel">
<mx-cell title="提示框内容" type="link" @click="showAlterContent = true"></mx-cell>
<mx-cell title="提示框内容2" type="link" @click="showCustomize = true"></mx-cell>
<div class="demo-panel">
<mx-dialog
:show="showAlterContent"
type="alter"
title="标题"
content="平台变得更大了,我们增加了大约100个新的产品应用。"
@button-click="showAlterContent = !showAlterContent"
></mx-dialog>
<mx-dialog :show="showCustomize" type="alter" title="家的名称" content="描述" @button-click="showCustomize = !showCustomize">
<div style="padding-top:20px">
<input type="text" placeholder="Password" />
</div>
</mx-dialog>
</div>
</div>
</div>
</template>
<script>
export default{
data(){
return {
showAlterContent:false,
showCustomize: false
}
}
}
</script>
<style lang="scss" scoped>
.demo-list {
width: 100%;
height: 100%;
.panel{
padding-left: 10px;
padding-right:10px;
margin-bottom: 20px;
}
}
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# 自定义对话框按钮文本
通过 buttons
参数控制对话框按钮显示的文本。
<template>
<div class="demo-list">
<div class="panel">
<mx-cell title="按钮文本" type="link" @click="showRename = true"></mx-cell>
<div class="demo-panel">
<mx-dialog
:show="showRename"
title="标题文字"
type="alter"
content="我们增加了大约100个新的产品应用"
:buttons="['取消', '更新']"
@button-click="showRename = !showRename"
></mx-dialog>
</div>
</div>
</div>
</template>
<script>
export default {
data(){
return {
showRename:false
}
}
}
</script>
<style lang="scss" scoped>
.demo-list {
width: 100%;
height: 100%;
.panel{
padding-left: 10px;
padding-right:10px;
margin-bottom: 20px;
}
}
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 函数调用(v0.2.2开始支持)
函数调用与组件使用的 props
是一致的,在 'btn-click' 事件对应配置对象的 onButtonClick
属性。另外函数式调用不支持自定义插槽。
<template>
<div class="demo-list">
<div class="panel">
<h4>函数调用</h4>
<mx-cell title="函数调用" type="link" @click="onInvokeComponent"></mx-cell>
</div>
</div>
</template>
<script>
export default {
methods:{
onInvokeComponent(){
this.$dialog({
title:"标题文字",
type:"alter",
content:"我们增加了大约100个新的产品应用",
buttons:['取消', '更新'],
onButtonClick:data=>{
this.$toast({
position:'bottom',
message: JSON.stringify(data)
})
}
})
}
}
}
</script>
<style lang="scss" scoped>
.demo-list {
width: 100%;
height: 100%;
.panel{
padding-left: 10px;
padding-right:10px;
margin-bottom: 20px;
}
}
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Api
# Props
参数 | 说明 | 类型 | 默认值 | 是否必须 |
---|---|---|---|---|
show | 是否显示弹出层 | boolean | false | - |
overlay | 是否显示遮罩层 | boolean | true | - |
z-index | 弹出层在z轴的序号 | number | 1030 | - |
lock-scroll | 是否锁定背景滚动 | boolean | true | - |
duration | 弹出层以及遮罩层动画时长(秒为单位) | number | 0.36 | - |
overlay-style | 遮罩层自定义样式 | object | - | - |
close-on-click-overlay | 是否在点击遮罩层后关闭 | boolean | true | - |
type | 对话框类型,可选值为 confirm alter more | string | confirm | - |
title | 标题 | string | - | - |
content | 内容 | string | - | - |
buttons | 按钮文本 | string[] | - | - |
primary | 默认按钮 | string | - | - |
# Events
事件名称 | 说明 | 回调参数 |
---|---|---|
close | 关闭时触发 | e: Event |
button-click | 按钮点击时触发 | e: {text,index} |
# Slots
名称 | 说明 |
---|---|
header | 自定义对话框头部 |
body | 自定义对话框中间部分 |
footer | 自定义对话框底部 |
default | 自定义对话框content下面部分 |