# Dialog 对话框
概述
Dialog 对话框,在浮层中显示,引导用户进行相关操作。
温馨提示
- 使用该组件 需要 同时引入
fui-types
类型文件。 - 该组件内置了国际化配置,使用该组件,必须同时引入
fui-lang
所有文件。
# 支持平台
目前开发小程序与H5推荐使用 FirstUI nvue版本 (opens new window)。
安卓系统版本 | 安卓uni-app | 安卓uniapp-x | iOS系统版本 | iOS uniapp | iOS uniapp-x | 小程序 | H5/Web |
---|---|---|---|---|---|---|---|
5.0 | × | ✓ | 9.0 | × | × | × | ✓ |
# 引入
以下介绍两种常用的引入方式。
第一种:在页面中引用、注册
import fuiDialog from "@/components/firstui/fui-dialog/fui-dialog.uvue"
export default {
components:{
fuiDialog
}
}
1
2
3
4
5
6
2
3
4
5
6
第二种:easycom组件规范
传统vue组件,需要安装、引用、注册,三个步骤后才能使用组件。easycom将其精简为一步。
First UI easycom配置请查看 快速上手。
如果不了解easycom,可先查看 官网文档 (opens new window)。
# 代码演示
部分示例演示,完整使用请参考示例程序以及文档API。
基础使用
通过 v-model:visible
双向绑定控制是否显示对话框,content
属性设置对话框内容,maskClosable
属性设置是否可点击遮罩层关闭对话框。
<fui-button type="gray" btn-size="medium" text="基础使用" :bold="true" margin="24rpx"
@onclick="showDialog"></fui-button>
<fui-dialog v-model:visible="show" content="弹窗内容,告知当前状态、信息和解决方法,描述文字尽量控制在三行内" :maskClosable="true"
@onclick="onclick" @close="onClose"></fui-dialog>
1
2
3
4
2
3
4
import { FuiDialogButtonsParam } from '@/components/firstui/fui-types/index.uts'
export default {
data() {
return {
show: false
}
},
methods: {
showDialog() {
this.show = true
},
onclick(e : FuiDialogButtonsParam) {
console.log(e)
this.onClose()
},
//设置maskClosable为true时(点击遮罩可关闭),需要配合@close事件一起使用,通过控制show来达到关闭效果,否则需要使用v-model:visible
onClose() {
// this.show = false
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
自定义按钮
通过 show
属性控制是否显示对话框,title
属性设置标题信息,content
属性设置对话框内容,buttons
属性设置对话框按钮内容,@onclick
事件为对话框按钮点击事件。
<fui-button type="gray" btn-size="medium" text="自定义按钮" :bold="true" @onclick="showDialog">
</fui-button>
<fui-dialog :visible="visible" title="我是标题" content="我是自定义的对话框!" :buttons="buttons"
@onclick="onTap"></fui-dialog>
1
2
3
4
2
3
4
import { FuiDialogButtonsParam } from '@/components/firstui/fui-types/index.uts'
export default {
data() {
return {
visible: false,
buttons: [{
text: '确定',
color: '#FF2B2B'
}] as FuiDialogButtonsParam[]
}
},
methods: {
showDialog() {
this.visible = true
},
//设置maskClosable为true时(点击遮罩可关闭),需要配合@close事件一起使用,通过控制show来达到关闭效果,否则需要使用v-model:visible
onClose() {
this.show = false
},
onTap(e : FuiDialogButtonsParam) {
console.log(e)
this.visible = false
}
}
}
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Slots
插槽名称 | 说明 |
---|---|
default | 自定义对话框内容信息,替换 content 内容 |
# Props
属性名 | 类型 | 说明 | 默认值 | 平台差异说明 |
---|---|---|---|---|
visible | Boolean | 是否显示对话框 | false | - |
title | String | 对话框标题 | 提示 | - |
color | String | 对话框标题字体颜色 | #333 | - |
content | String | 对话框内容 | - | - |
contentColor | String | 对话框内容字体颜色 | #7F7F7F | - |
buttons | Array<FuiDialogButtonsParam> | 对话框按钮,属性说明详见下方 | [{text: '取消'}, {text: '确定',color: '#465CFF'}] | - |
background | String | 对话框背景色 | #fff | - |
radius | Number | 对话框圆角值,单位rpx | 24 | - |
maskBackground | String | 对话框遮罩背景色 | rgba(0,0,0,.6) | - |
maskClosable | Boolean | 点击遮罩是否可关闭对话框 | true | - |
zIndex | Number | 层级z-index值 | 996 | - |
# FuiDialogButtonsParam
/**
* fui-dialog 对话框 组件 buttons属性 参数类型
* @description 对话框组件 buttons属性 参数类型
* @param {string} text {string} 按钮文本
* @param {string} color {string} 按钮字体颜色,可选
* @param {boolean} primary {boolean} 按钮字体颜色是否显示为主色,color为空时有效,可选
* @param {string} param {string} 自定义参数,可选
* @param {number} index {number} 按钮索引值,点击按钮时内部返回,无需传值
*/
export type FuiDialogButtonsParam = {
text : string;
color ?: string;
primary ?: boolean;
param ?: string;
index ?: number;
}
/*页面引入*/
import { FuiDialogButtonsParam } from '@/components/firstui/fui-types/index.uts'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Events
事件名 | 类型 | 说明 | 回调参数 |
---|---|---|---|
@onclick | (event: FuiDialogButtonsParam) => void | 点击对话框按钮时触发 | FuiDialogButtonsParam |
@close | () => void | 点击遮罩层(maskClosable=true)时触发 | - |
@update:visible | (event: boolean) => void | 点击遮罩层且maskClosable设为true时触发,用于双向绑定 | boolean:是否显示 |
# FuiDialogButtonsParam
同上。