微信小程序weui dialog封装,兼容wx.showModal

Posted 七年觐汐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序weui dialog封装,兼容wx.showModal相关的知识,希望对你有一定的参考价值。

最近项目业务升级,有些按钮防止误触还是要加wx.showModal的。但wx.showModal样式并不好看,在官方推荐的weui库上有一个Dialog弹窗组件可以实现和wx.showModal一样的效果并且样式要好看一点。
于是我打算直接用dialog组件,并且将之前的wx.showModal修改,封装一下让dialog组件使用方式和wx.showModal相同,这样只改个调用函数名字就可以了。

在 页面.json 中引入组件

"usingComponents": {
    "mp-dialog": "weui-miniprogram/dialog/dialog"
  }

wxml外层添加组件元素

<mp-dialog title="{{dialogTitle}}" show="{{dialogShow}}" bindbuttontap="tapDialogButton" buttons="{{dialogButtons}}">
    <view>{{dialogContent}}</view>
</mp-dialog>

在data对象中添加属性

    buttonConfig: null,
    dialogShow: false,
    dialogTitle: "提示",
    dialogContent: "",
    dialogButtons: [
      {text: \'取消\'},
      {text: \'确认\'}
    ]

声明showDialog方法,就是使用弹框的方法

showDialog(data) {
    this.setData({
      dialogTitle: data.title ? data.title : "提示",
      dialogContent: data.content ? data.content : "",
      buttonConfig: data.success ? data.success : ()=>{},
      dialogShow: true
    })
  },

点击确定时执行的方法

tapDialogButton(e) {
    this.setData({
      dialogShow:false
    })
    if(e.detail.index){
      this.data.buttonConfig({confirm:e.detail.index})
    }else{
      this.data.buttonConfig({confirm:0})
    }
  },

使用方式和wx.showModal相同

    this.showDialog({
      title: \'标题\',
      content:"内容",
      success:()=>{
        if (res.confirm) {
          console.log("点击了确定");
        }else{
          console.log("点击了取消");
        }
      }
    })

微信小程序从零开始开发步骤-引入框架WeUI

首先来看下WeUI的官方介绍:

WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。在微信小程序的开发过程中,涉及到的前端复杂的样式界面的问题,就需要使用个UI框架,这样可以省去以后很多麻烦。

WeUI作为一个开源的移动端UI框架,由于它是微信官方提供的对微信的兼容性没有太大问题,而且和各组件的样式和微信一样,能够很好地和微信融合在一起,给用户较好的体验。

使用步骤

1、在GitHub上https://github.com/weui/weui-wxss/下载程序代码,解压后可以看到如下目录:

 
技术图片
图片.png

2、我们只需要将weui-wxss-master\dist\style\weui.wxss文件导入到小程序项目的根目录下:

 
技术图片
图片.png

3、新建微信小程序项目,将weui.wxss文件导入到小程序项目的根目录下:


 
技术图片
图片.png
 
技术图片
图片.png

4、在项目中引用:在全局app.wxss中加入weui.wxss的引用- @import "weui.wxss";

 
技术图片
图片.png

5 根组件使用class=”page”

<view class="page"></view>

6 页面骨架

<view class="page">
<view class="page__hd"></view><!--页头-->
<view class="page__bd"></view><!--主体-->
<view></view><!--未设置页脚-->
</view>

7 除此之外都是按照weui-开头后接组件名称,例如class=”weui-footer”

<view class="weui-footer">我是页脚</view>

8 组件的子组件样式,例如view.weui-footer组件还有链接和版权信息。

<view class="weui-footer">
<view class="weui-footer__links">
    <navigator url="" class="weui-footer__link">上海物联网科技有限公司</navigator>
</view>
<view class="weui-footer__text">Copyright © 程序媛专用</view>
</view>

9、具体组件在小程序中新建个项目,地址指向weui-wxss-master\dist,就可以随时查找自己要的效果,剩下的就是复制粘贴了,或者导入从github上下载代码中的实例使用,在项目中使用weui的样式如下:


 
技术图片
图片.png

示例代码:

<view class="page">
    <view class="page__hd">
        <view class="page__title">Button</view>
        <view class="page__desc">按钮,WeUI采用小程序原生的按钮为主体,加入一些间距的样式。</view>
    </view>
    
    <view class="page__bd page__bd_spacing">
        <button class="weui-btn" type="primary">页面主操作 Normal</button>
        <button class="weui-btn" type="primary" disabled="true">页面主操作 Disabled</button>

        <button class="weui-btn" type="default">页面次要操作 Normal</button>
        <button class="weui-btn" type="default" disabled="true">页面次要操作 Disabled</button>

        <button class="weui-btn" type="warn">警告类操作 Normal</button>
        <button class="weui-btn" type="warn" disabled="true">警告类操作 Disabled</button>

        <view class="button-sp-area">
            <button class="weui-btn" type="primary" plain="true">按钮</button>
            <button class="weui-btn" type="primary" disabled="true" plain="true">按钮</button>

            <button class="weui-btn" type="default" plain="true">按钮</button>
            <button class="weui-btn" type="default" disabled="true" plain="true">按钮</button>

            <button class="weui-btn mini-btn" type="primary" size="mini">按钮</button>
            <button class="weui-btn mini-btn" type="default" size="mini">按钮</button>
            <button class="weui-btn mini-btn" type="warn" size="mini">按钮</button>
        </view>
    </view>
</view>

预览框架WeUI文件:


 
技术图片
图片.png

 

以上是关于微信小程序weui dialog封装,兼容wx.showModal的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序从零开始开发步骤-引入框架WeUI

微信 + weui 框架记录

微信小程序开发——使用WeUI组件库

微信小程序引入WeUI

微信weui 怎么做时间选择器 类似滴滴打车那种如下图

微信小程序weui的使用