# 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
第二种: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
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
自定义按钮

通过 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
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

# 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

# Events

事件名 类型 说明 回调参数
@onclick (event: FuiDialogButtonsParam) => void 点击对话框按钮时触发 FuiDialogButtonsParam
@close () => void 点击遮罩层(maskClosable=true)时触发 -
@update:visible (event: boolean) => void 点击遮罩层且maskClosable设为true时触发,用于双向绑定 boolean:是否显示

# FuiDialogButtonsParam

同上。

示例预览

# 示例代码地址

FirstUIDialog 对话框
Last Updated: 2/2/2024, 11:49:34 PM