Dialog 弹出框

Dialog 组件支持函数调用和组件调用两种形式

使用指南

在 app.json 或 index.json 中引入组件

  1. "usingComponents": {
  2. "van-dialog": "path/to/vant-weapp/dist/dialog/index"
  3. }

代码演示

消息提示

用于提示一些消息,只包含一个确认按钮

  1. <van-dialog id="van-dialog" />
  1. import Dialog from 'path/to/vant-weapp/dist/dialog/dialog';
  2. Dialog.alert({
  3. title: '标题',
  4. message: '弹窗内容'
  5. }).then(() => {
  6. // on close
  7. });
  8. Dialog.alert({
  9. message: '弹窗内容'
  10. }).then(() => {
  11. // on close
  12. });

消息确认

用于确认消息,包含取消和确认按钮

  1. Dialog.confirm({
  2. title: '标题',
  3. message: '弹窗内容'
  4. }).then(() => {
  5. // on confirm
  6. }).catch(() => {
  7. // on cancel
  8. });

组件调用

通过组件调用 Dialog 时,可以实现自定义弹窗内容、异步关闭、监听微信开放能力回调事件,具体可以参考下面的示例

  1. <van-dialog
  2. use-slot
  3. async-close
  4. show="{{ show }}"
  5. show-cancel-button
  6. confirm-button-open-type="getUserInfo"
  7. bind:close="onClose"
  8. bind:getuserinfo="getUserInfo"
  9. >
  10. <van-field
  11. value="{{ username }}"
  12. label="用户名"
  13. placeholder="请输入用户名"
  14. />
  15. <van-field
  16. value="{{ password }}"
  17. type="password"
  18. label="密码"
  19. :border="false"
  20. placeholder="请输入密码"
  21. />
  22. </van-dialog>
  1. Page({
  2. data: {
  3. show: true,
  4. username: '',
  5. password: ''
  6. },
  7. onClose(event) {
  8. if (event.detail === 'confirm') {
  9. // 异步关闭弹窗
  10. setTimeout(() => {
  11. this.setData({
  12. show: false
  13. });
  14. }, 1000);
  15. } else {
  16. this.setData({
  17. show: false
  18. });
  19. }
  20. }
  21. });

方法

方法名参数返回值介绍
DialogoptionsPromise展示弹窗
Dialog.alertoptionsPromise展示消息提示弹窗
Dialog.confirmoptionsPromise展示消息确认弹窗
Dialog.setDefaultOptionsoptionsvoid修改默认配置,对所有 Dialog 生效
Dialog.resetDefaultOptions-void重置默认配置,对所有 Dialog 生效
Dialog.close-void关闭弹窗
Dialog.stopLoading-void停止按钮的加载状态

Options

通过函数调用 Dialog 时,支持传入以下选项:

参数说明类型默认值生效时机
title标题String-
message内容String-
messageAlign内容对齐方式,可选值为left rightStringcenter
zIndexz-index 层级Number100
selector自定义选择器Stringvan-dialog
showConfirmButton是否展示确认按钮Booleantrue
showCancelButton是否展示取消按钮Booleanfalse
confirmButtonText确认按钮的文案String确认
cancelButtonText取消按钮的文案String取消
confirmButtonOpenType确认按钮的微信开放能力,具体支持可参考 微信官方文档String-
overlay是否展示蒙层Booleantrue
closeOnClickOverlay点击蒙层时是否关闭弹窗Booleanfalse
asyncClose是否异步关闭弹窗,开启后需要手动控制弹窗的关闭Booleanfalse
context选择器的选择范围,可以传入自定义组件的 this 作为上下文Object当前页面
transition动画名称,可选值为fadeStringscale
app-parameter打开 APP 时,向 APP 传递的参数String-confirmButtonOpenType="launchApp"
lang指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文StringenconfirmButtonOpenType="getUserInfo"
session-from会话来源String-confirmButtonOpenType="contact"
business-id客服消息子商户 idNumber-
send-message-title会话内消息卡片标题String当前标题confirmButtonOpenType="contact"
send-message-path会话内消息卡片点击跳转小程序路径String当前分享路径confirmButtonOpenType="contact"
send-message-imgsendMessageImgString截图confirmButtonOpenType="contact"
show-message-card显示会话内消息卡片StringfalseconfirmButtonOpenType="contact"

API

通过组件调用 Dialog 时,支持以下 API:

参数说明类型默认值生效时机
show是否显示弹窗Boolean-
title标题String-
message内容String-
message-align内容对齐方式,可选值为left rightStringcenter
z-indexz-index 层级Number100
show-confirm-button是否展示确认按钮Booleantrue
show-cancel-button是否展示取消按钮Booleanfalse
confirm-button-text确认按钮的文案String确认
cancel-button-text取消按钮的文案String取消
confirm-button-open-type确认按钮的微信开放能力,具体支持可参考 微信官方文档String-
overlay是否展示蒙层Booleantrue
close-on-click-overlay点击蒙层时是否关闭弹窗Booleanfalse
use-slot是否使用自定义内容的插槽Booleanfalse
async-close是否异步关闭弹窗,开启后需要手动控制弹窗的关闭Booleanfalse
transition动画名称,可选值为fadeStringscale
app-parameter打开 APP 时,向 APP 传递的参数String-confirm-button-open-type="launchApp"
lang指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文Stringenconfirm-button-open-type="getUserInfo"
session-from会话来源String-confirm-button-open-type="contact"
business-id客服消息子商户 idNumber-
send-message-title会话内消息卡片标题String当前标题confirm-button-open-type="contact"
send-message-path会话内消息卡片点击跳转小程序路径String当前分享路径confirm-button-open-type="contact"
send-message-imgsendMessageImgString截图confirm-button-open-type="contact"
show-message-card显示会话内消息卡片Stringfalseconfirm-button-open-type="contact"

Event

事件说明回调参数
bind:close弹窗关闭时触发event.detail: 触发关闭事件的来源,枚举为confirm,cancel,overlay
bind:confirm点击确认按钮时触发-
bind:cancel点击取消按钮时触发-
bind:getuserinfo点击确认按钮时,会返回获取到的用户信息,从返回参数的 detail 中获取到的值同 wx.getUserInfo-
bind:contact客服消息回调-
bind:getphonenumber获取用户手机号回调-
bind:error当使用开放能力时,发生错误的回调-
bind:opensetting在打开授权设置页后回调-

更新日志

版本类型内容
0.3.0feature新增组件
0.3.2improvement新增弹出动画
0.3.2feature新增 z-index 属性
0.3.3bugfix修复 Promise 状态错误的问题
0.3.4feature支持 open-type 回调事件

原文: https://youzan.github.io/vant-weapp/#/dialog