微信小程序设计用户注册页面

Page({

  /**
   * 页面的初始数据
   */
  data: {
    text: '获取验证码', //按钮文字
    currentTime: 61, //倒计时
    disabled: false, //按钮是否禁用
    phone: '', //获取到的手机栏中的值
    VerificationCode: '',
    Code: '',
    NewChanges: '',
    NewChangesAgain: '',
    success: false,
    state: ''
  },
  /**
    * 获取验证码
    */
  return_home: function (e) {
    wx.navigateTo({
      url: '/pages/login/login',
    })

  },
  handleInputPhone: function (e) {
    this.setData({
      phone: e.detail.value
    })
  },
  handleVerificationCode: function (e) {
    console.log(e);
    this.setData({
      Code: e.detail.value
    })
  },
  handleNewChanges: function (e) {
    console.log(e);
    this.setData({
      NewChanges: e.detail.value
    })
  },
  handleNewChangesAgain: function (e) {
    console.log(e);
    this.setData({
      NewChangesAgain: e.detail.value
    })

  },
  doGetCode: function () {
    var that = this;
    that.setData({
      disabled: true, //只要点击了按钮就让按钮禁用 (避免正常情况下多次触发定时器事件)
      color: '#ccc',
    })

    var phone = that.data.phone;
    var currentTime = that.data.currentTime //把手机号跟倒计时值变例成js值
    var warn = null; //warn为当手机号为空或格式不正确时提示用户的文字,默认为空
    var phone = that.data.phone;
    var currentTime = that.data.currentTime //把手机号跟倒计时值变例成js值
    var warn = null; //warn为当手机号为空或格式不正确时提示用户的文字,默认为空
    wx.request({
      url: '', //后端判断是否已被注册, 已被注册返回1 ,未被注册返回0
      method: "GET",
      header: {
        'content-type': 'application/x-www-form-urlencoded'
      },
      success: function (res) {
        that.setData({
          state: res.data
        })
        if (phone == '') {
          warn = "号码不能为空";
        } else if (phone.trim().length != 11 || !/^1[3|4|5|6|7|8|9]\d{9}$/.test(phone)) {
          warn = "手机号格式不正确";
        } //手机号已被注册提示信息
         else if (that.data.state == 1) {  //判断是否被注册
           warn = "手机号已被注册";

         }
         else {
          wx.request({
            url: '', //填写发送验证码接口
            method: "POST",
            data: {
              coachid: that.data.phone
            },
            header: {
              'content-type': 'application/x-www-form-urlencoded'
            },
            success: function (res) {
              console.log(res.data)
              that.setData({
               VerificationCode: res.data.verifycode
              })
              

              //当手机号正确的时候提示用户短信验证码已经发送
              wx.showToast({
                title: '短信验证码已发送',
                icon: 'none',
                duration: 2000
              });
              //设置一分钟的倒计时
              var interval = setInterval(function () {
                currentTime--; //每执行一次让倒计时秒数减一
                that.setData({
                  text: currentTime + 's', //按钮文字变成倒计时对应秒数

                })
                //如果当秒数小于等于0时 停止计时器 且按钮文字变成重新发送 且按钮变成可用状态 倒计时的秒数也要恢复成默认秒数 即让获取验证码的按钮恢复到初始化状态只改变按钮文字
                if (currentTime <= 0) {
                  clearInterval(interval)
                  that.setData({
                    text: '重新发送',
                    currentTime: 61,
                    disabled: false,
                    color: '#33FF99'
                  })
                }
              }, 100);
            }
          })
        };
        //判断 当提示错误信息文字不为空 即手机号输入有问题时提示用户错误信息 并且提示完之后一定要让按钮为可用状态 因为点击按钮时设置了只要点击了按钮就让按钮禁用的情况
        if (warn != null) {
          wx.showModal({
            title: '提示',
            content: warn
          })
          that.setData({
            disabled: false,
            color: '#33FF99'
          })
          return;
        }
      }

    })

  },
  submit: function (e) {
    var that = this
    if (this.data.Code == '') {
      wx.showToast({
        title: '请输入验证码',
        image: '/images/error.png',
        duration: 2000
      })
      return
    } else if (this.data.Code != this.data.VerificationCode) {
      wx.showToast({
        title: '验证码错误',
        image: '/images/error.png',
        duration: 2000
      })
      return
    }
    else if (this.data.NewChanges == '') {
      wx.showToast({
        title: '请输入密码',
        image: '/images/error.png',
        duration: 2000
      })
      return
    } else if (this.data.NewChangesAgain != this.data.NewChanges) {
      wx.showToast({
        title: '两次密码不一致',
        image: '/images/error.png',
        duration: 2000
      })
      return
    } else {
      var that = this
      var phone = that.data.phone;
      wx.request({
        url: getApp().globalData.baseUrl + '/Coachs/insert' ,
        method: "POST",
        data: {
          coachid: phone,
          coachpassword: that.data.NewChanges
        },
        header: {
          "content-type": "application/x-www-form-urlencoded"
        },
        success: function (res) {
          wx.showToast({
            title: '提交成功~',
            icon: 'loading',
            duration: 2000
          })
          console.log(res)
          that.setData({
            success: true
          })
        }
      })
    }
  },
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})
 <view wx:if="{{!success}}">
 <view class='row'>
        <view class='info'>
               <input  class= 'info-input1' bindinput="handleInputPhone" placeholder="请输入你的手机号" />
         </view>
          <button class='button' bindtap='doGetCode' disabled='{{disabled}}' style="background-color:{{color}}" >{{text}}</button>
 </view>
 <view class='row'>
        <view class='info'>
               <input  class= 'info-input' bindinput="handleVerificationCode" placeholder="请输入你的验证码" />
         </view>

 </view>
  <view class='row'>
        <view class='info'>
               <input type='password' class= 'info-input' bindinput="handleNewChanges" placeholder="请输入你的密码" />
         </view>

 </view>
  <view class='row'>
        <view class='info'>
               <input  type='password' class= 'info-input' bindinput="handleNewChangesAgain" placeholder="请重新输入你的密码" />
         </view>

 </view>
 <button class='submit' bindtap='submit'>提交</button>
 </view>
 <view class = 'success' wx:if="{{success}}">
 <view class='cheer'><icon type="success" size="24"/> 恭喜您注册成功!</view>
 <button type = "default" class = 'return' bindtap='return_home'>返回首页</button>
 </view>
page{
   background: #F0F0F0 ;
}
.row{
  margin-top: 20rpx;
  overflow: hidden;
  line-height: 100rpx;
  border-bottom: 1rpx solid #ccc;
  margin-left: 20rpx;
  margin-right: 20rpx;
  color: #777;
  background: #fff;

}
.info-input{
  height: 100rpx;
  margin-left: 50rpx;
  color: #777;
    float: left;
}
.info-input1{
  height: 100rpx;
  margin-left: 50rpx;
  color: #777;
    float: left;
    width: 420rpx;
}
.button{
  width: 200rpx;
  height: 70rpx;
  line-height: 70rpx;
  font-size: 28rpx;
  background: #33FF99;
  float: left;
  margin-left: 10rpx;
  margin-top: 15rpx;
  color: #FFFFFF;
}
.submit{
  margin-top: 50rpx;
  margin-left: 20rpx;
  margin-right: 20rpx;
  background: #00CCFF;
   color: #FFFFFF;
}
.success{
  background: #ffffff;

}
.cheer{
  text-align: center;
  line-height: 400rpx;
  font-size: 60rpx;
  position: relative;
}
.return{
  margin: 20rpx;

}

页面显示结果

猜你喜欢

转载自blog.csdn.net/qq_41261758/article/details/80754967