1.5.1 • Published 1 year ago

@wines/dialog v1.5.1

Weekly downloads
-
License
-
Repository
-
Last release
1 year ago

@wines/dialog

Dialog 对话框

模态对话框,在浮层中显示,引导用户进行相关操作。

使用指南

在 page.json 中引入组件

{
  "navigationBarTitleText": "Dialog",
  "usingComponents": {
    "wux-button": "@wines/button",
    "wux-dialog": "@wines/dialog"
  }
}

示例

该组件主要依靠 JavaScript 主动调用,所以一般只需在 wxml 中添加一个组件,并设置 id 为 #wux-dialog 或其他,之后在 page.js 中调用 $wuxDialog(this, id) 获取匹配到的第一个组件实例对象。

<wux-dialog id="wux-dialog" />
<wux-dialog id="wux-dialog--alert" />
<view class="page">
	<view class="page__hd">
		<view class="page__title">Dialog</view>
		<view class="page__desc">对话框</view>
	</view>
	<view class="page__bd page__bd_spacing">
		<wux-button block type="light" bind:click="open">Default Dialog</wux-button>
		<wux-button block type="light" bind:click="confirm">Confirm Dialog</wux-button>
		<wux-button block type="light" bind:click="alert">Alert Dialog</wux-button>
		<wux-button block type="light" bind:click="prompt">Prompt Dialog</wux-button>
		<wux-button block type="light" bind:click="custom">Custom Dialog</wux-button>
		<wux-button block type="light" bind:click="vertical">Vertical Buttons Dialog</wux-button>
		<wux-button block type="light" bind:click="openType">OpenType Dialog</wux-button>
	</view>
</view>
import './index.less';
import { $wuxDialog } from '@wines/dialog';
import { PageCustom, PageData } from '@wines/core';

Page<PageData, PageCustom>({
  data: {},
  onLoad() {
    /** */
  },
  open() {
    if (this.timeout) clearTimeout(this.timeout);
    const hideDialog = $wuxDialog().open({
      resetOnClose: true,
      title: '三秒后自动关闭',
      content: '弹窗内容,告知当前状态、信息和解决方法,描述文字尽量控制在三行内',
      buttons: [
        {
          text: '取消',
        },
        {
          text: '确定',
          type: 'primary',
          onTap(e) {
            console.log(e);
          },
        },
      ],
    });

    this.timeout = setTimeout(() => {
      hideDialog();
    }, 3000);
  },
  confirm() {
    $wuxDialog().confirm({
      resetOnClose: true,
      closable: true,
      title: '定制冰激凌',
      content: '你确定要吃我的冰淇淋吗?',
      onConfirm() {
        console.log('凭什么吃我的冰淇淋!');
      },
      onCancel() {
        console.log('谢谢你不吃之恩!');
      },
    });
  },
  alert() {
    $wuxDialog().alert({
      resetOnClose: true,
      title: '不要吃果冻',
      content: '它们可能是用旧的皮鞋帮做的!',
      onConfirm() {
        console.log('感谢上帝,你没吃鞋帮!');
      },
    });
  },
  prompt() {
    const alert = (content) => {
      $wuxDialog('#wux-dialog--alert').alert({
        resetOnClose: true,
        title: '提示',
        content: content,
      });
    };

    $wuxDialog().prompt({
      resetOnClose: true,
      title: '提示',
      content: '密码为8位数字',
      fieldtype: 'number',
      password: true,
      defaultText: '',
      placeholder: '请输入Wi-Fi密码',
      maxlength: 8,
      onConfirm(_e, response: string) {
        const content = response.length === 8 ? `Wi-Fi密码到手了: ${response}` : '请输入正确的Wi-Fi密码';
        alert(content);
      },
    });
  },
  custom() {
    const alert = (content) => {
      $wuxDialog('#wux-dialog--alert').alert({
        resetOnClose: true,
        title: '提示',
        content: content,
      });
    };

    $wuxDialog().open({
      resetOnClose: true,
      title: '我是标题',
      content: '我是自定义的对话框!',
      buttons: [
        {
          text: '现金支付',
          type: 'primary',
          onTap() {
            alert('你选择了现金支付!');
          },
        },
        {
          text: '微信支付',
          type: 'primary',
          onTap() {
            alert('你选择了微信支付!');
          },
        },
        {
          text: '取消',
        },
      ],
    });
  },
  vertical() {
    $wuxDialog().open({
      resetOnClose: true,
      title: '请问需要反馈什么问题?',
      content: '你也可以在个人页的反馈帮助中心里找到这个功能',
      verticalButtons: !0,
      buttons: [
        {
          text: '遇到问题',
          bold: !0,
        },
        {
          text: '意见建议',
          bold: !0,
        },
        {
          text: '没啥事',
          bold: !0,
        },
      ],
    });
  },
  openType() {
    $wuxDialog().open({
      resetOnClose: true,
      title: '提示',
      content: '获取用户信息',
      buttons: [
        {
          text: '取消',
        },
        {
          text: '确定',
          type: 'primary',
          openType: 'getUserInfo',
          onGetUserInfo(e) {
            console.log(e);
          },
        },
      ],
    });
  },
});

API

Dialog.open

参数类型描述默认值
optionsobject配置项-
options.prefixClsstring自定义类名前缀wux-dialog
options.titlestring提示标题-
options.contentstring提示文本-
options.verticalButtonsboolean是否显示垂直按钮布局false
options.resetOnCloseboolean组件关闭时重置其内部数据false
options.closableboolean是否显示关闭按钮false
options.maskboolean是否显示蒙层true
options.maskClosableboolean点击蒙层是否允许关闭true
options.zIndexnumber设置蒙层的 z-index1000
options.buttonsarray按钮[]
options.buttons[].textstring按钮的文本-
options.buttons[].typestring按钮的类型,可选值为 default、primary-
options.buttons[].boldboolean是否加粗按钮的文字-
options.buttons[].disabledboolean是否禁用false
options.buttons[].openTypestring微信开放能力,可选值为 contact、share、getUserInfo、getPhoneNumber、launchApp、openSetting、feedback-
options.buttons[].hoverClassstring指定按下去的样式类。当 hover-class="none" 时,没有点击态效果default
options.buttons[].hoverStopPropagationboolean指定是否阻止本节点的祖先节点出现点击态false
options.buttons[].hoverStartTimenumber按住后多久出现点击态,单位毫秒20
options.buttons[].hoverStayTimenumber手指松开后点击态保留时间,单位毫秒70
options.buttons[].langstring指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。en
options.buttons[].sessionFromstring会话来源-
options.buttons[].sendMessageTitlestring会话内消息卡片标题当前标题
options.buttons[].sendMessagePathstring会话内消息卡片点击跳转小程序路径当前分享路径
options.buttons[].sendMessageImgstring会话内消息卡片图片截图
options.buttons[].showMessageCardboolean显示会话内消息卡片false
options.buttons[].appParameterstring打开 APP 时,向 APP 传递的参数-
options.buttons[].onTapfunction按钮的点击事件-
options.buttons[].onGetUserInfofunction用户点击该按钮时,会返回获取到的用户信息,回调的detail数据与wx.getUserInfo返回的一致-
options.buttons[].onContactfunction客服消息回调-
options.buttons[].onGotPhoneNumberfunction获取用户手机号回调-
options.buttons[].onErrorfunction当使用开放能力时,发生错误的回调-
options.buttons[].onOpenSettingfunction在打开授权设置页后回调-

Dialog.alert

参数类型描述默认值
optionsobject配置项-
options.prefixClsstring自定义类名前缀wux-dialog
options.titlestring提示标题-
options.contentstring提示文本-
options.confirmTextstring确定按钮的文字确定
options.confirmTypestring确定按钮的类型primary
options.onConfirmfunction确定按钮的点击事件-

Dialog.confirm

参数类型描述默认值
optionsobject配置项-
options.prefixClsstring自定义类名前缀wux-dialog
options.titlestring提示标题-
options.contentstring提示文本-
options.confirmTextstring确定按钮的文字确定
options.confirmTypestring确定按钮的类型primary
options.onConfirmfunction确定按钮的点击事件-
options.cancelTextstring取消按钮的文字取消
options.cancelTypestring取消按钮的类型default
options.onCancelfunction取消按钮的点击事件-

Dialog.prompt

参数类型描述默认值
optionsobject配置项-
options.prefixClsstring自定义类名前缀wux-dialog
options.titlestring提示标题-
options.contentstring提示文本-
options.fieldtypestringinput 的类型,可选值为 text、number、idcard、digittext
options.passwordboolean是否是密码类型false
options.defaultTextstring默认值-
options.placeholderstring输入框为空时占位符-
options.maxlengthnumber最大输入长度,设置为 -1 的时候不限制最大长度-1
options.confirmTextstring确定按钮的文字确定
options.confirmTypestring确定按钮的类型primary
options.onConfirmfunction确定按钮的点击事件-
options.cancelTextstring取消按钮的文字取消
options.cancelTypestring取消按钮的类型default
options.onCancelfunction取消按钮的点击事件-

以上函数调用后,会返回一个引用,可以通过该引用手动关闭对话框

API

Dialog.open

参数类型描述默认值
optionsobject配置项-
options.prefixClsstring自定义类名前缀wux-dialog
options.titlestring提示标题-
options.contentstring提示文本-
options.verticalButtonsboolean是否显示垂直按钮布局false
options.resetOnCloseboolean组件关闭时重置其内部数据false
options.closableboolean是否显示关闭按钮false
options.maskboolean是否显示蒙层true
options.maskClosableboolean点击蒙层是否允许关闭true
options.zIndexnumber设置蒙层的 z-index1000
options.buttonsarray按钮[]
options.buttons[].textstring按钮的文本-
options.buttons[].typestring按钮的类型,可选值为 default、primary-
options.buttons[].boldboolean是否加粗按钮的文字-
options.buttons[].disabledboolean是否禁用false
options.buttons[].openTypestring微信开放能力,可选值为 contact、share、getUserInfo、getPhoneNumber、launchApp、openSetting、feedback-
options.buttons[].hoverClassstring指定按下去的样式类。当 hover-class="none" 时,没有点击态效果default
options.buttons[].hoverStopPropagationboolean指定是否阻止本节点的祖先节点出现点击态false
options.buttons[].hoverStartTimenumber按住后多久出现点击态,单位毫秒20
options.buttons[].hoverStayTimenumber手指松开后点击态保留时间,单位毫秒70
options.buttons[].langstring指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。en
options.buttons[].sessionFromstring会话来源-
options.buttons[].sendMessageTitlestring会话内消息卡片标题当前标题
options.buttons[].sendMessagePathstring会话内消息卡片点击跳转小程序路径当前分享路径
options.buttons[].sendMessageImgstring会话内消息卡片图片截图
options.buttons[].showMessageCardboolean显示会话内消息卡片false
options.buttons[].appParameterstring打开 APP 时,向 APP 传递的参数-
options.buttons[].onTapfunction按钮的点击事件-
options.buttons[].onGetUserInfofunction用户点击该按钮时,会返回获取到的用户信息,回调的detail数据与wx.getUserInfo返回的一致-
options.buttons[].onContactfunction客服消息回调-
options.buttons[].onGotPhoneNumberfunction获取用户手机号回调-
options.buttons[].onErrorfunction当使用开放能力时,发生错误的回调-
options.buttons[].onOpenSettingfunction在打开授权设置页后回调-

Dialog.alert

参数类型描述默认值
optionsobject配置项-
options.prefixClsstring自定义类名前缀wux-dialog
options.titlestring提示标题-
options.contentstring提示文本-
options.confirmTextstring确定按钮的文字确定
options.confirmTypestring确定按钮的类型primary
options.onConfirmfunction确定按钮的点击事件-

Dialog.confirm

参数类型描述默认值
optionsobject配置项-
options.prefixClsstring自定义类名前缀wux-dialog
options.titlestring提示标题-
options.contentstring提示文本-
options.confirmTextstring确定按钮的文字确定
options.confirmTypestring确定按钮的类型primary
options.onConfirmfunction确定按钮的点击事件-
options.cancelTextstring取消按钮的文字取消
options.cancelTypestring取消按钮的类型default
options.onCancelfunction取消按钮的点击事件-

Dialog.prompt

参数类型描述默认值
optionsobject配置项-
options.prefixClsstring自定义类名前缀wux-dialog
options.titlestring提示标题-
options.contentstring提示文本-
options.fieldtypestringinput 的类型,可选值为 text、number、idcard、digittext
options.passwordboolean是否是密码类型false
options.defaultTextstring默认值-
options.placeholderstring输入框为空时占位符-
options.maxlengthnumber最大输入长度,设置为 -1 的时候不限制最大长度-1
options.confirmTextstring确定按钮的文字确定
options.confirmTypestring确定按钮的类型primary
options.onConfirmfunction确定按钮的点击事件-
options.cancelTextstring取消按钮的文字取消
options.cancelTypestring取消按钮的类型default
options.onCancelfunction取消按钮的点击事件-

以上函数调用后,会返回一个引用,可以通过该引用手动关闭对话框

1.5.1

1 year ago

1.5.0

1 year ago

1.3.5

2 years ago

1.4.0

2 years ago

1.3.4

3 years ago

1.3.2

3 years ago

1.3.1

3 years ago

1.3.0

3 years ago