微信小程序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("点击了取消");
        }
      }
    })
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的微信小程序 weui 实现单选投票的代码示例: 1. 在 app.json 文件中添加页面路径: ``` { "pages": [ "pages/index/index", "pages/vote/vote" ], "window": { "backgroundTextStyle": "light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "WeChat", "navigationBarTextStyle": "black" } } ``` 2. 在 index 页面中添加一个跳转到投票页面的按钮: ``` <view class="container"> <button class="weui-btn" bindtap="goToVote">去投票</button> </view> ``` 3. 在 index 页面的 js 文件中添加 goToVote 函数: ``` Page({ goToVote: function() { wx.navigateTo({ url: '/pages/vote/vote' }) } }) ``` 4. 在 vote 页面中添加一个 radio-group 和若干 radio 控件: ``` <view class="container"> <form bindsubmit="submitVote"> <view class="weui-cells weui-cells_radio"> <label class="weui-cell weui-check__label" for="option1"> <view class="weui-cell__bd">选项1</view> <view class="weui-cell__ft"> <radio class="weui-check" name="options" value="option1" checked="true"></radio> </view> </label> <label class="weui-cell weui-check__label" for="option2"> <view class="weui-cell__bd">选项2</view> <view class="weui-cell__ft"> <radio class="weui-check" name="options" value="option2"></radio> </view> </label> <label class="weui-cell weui-check__label" for="option3"> <view class="weui-cell__bd">选项3</view> <view class="weui-cell__ft"> <radio class="weui-check" name="options" value="option3"></radio> </view> </label> </view> <button class="weui-btn weui-btn_primary" form-type="submit">投票</button> </form> </view> ``` 5. 在 vote 页面的 js 文件中添加 submitVote 函数: ``` Page({ submitVote: function(e) { var option = e.detail.value.options; wx.showModal({ title: '投票结果', content: '您选择了' + option, showCancel: false }) } }) ``` 这样就完成了一个简单的单选投票的微信小程序 weui 实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值