|
@@ -0,0 +1,330 @@
|
|
|
+// pages/login/phone_login/phone_login.js
|
|
|
+let log = require('../../../utils/log.js');
|
|
|
+Page({
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 页面的初始数据
|
|
|
+ */
|
|
|
+ data: {
|
|
|
+ phone: null,
|
|
|
+ vcode: null,
|
|
|
+ checkCode: false,
|
|
|
+ checkPhone: false,
|
|
|
+ vcodeFlag: true,
|
|
|
+ errorMsg: '',
|
|
|
+ varificatCodeFocus:false,
|
|
|
+ vcode_button_text: '获取验证码',
|
|
|
+ scene: "LOGIN",
|
|
|
+ vcodeTimeOut: 0,
|
|
|
+ vcodeTimeOutDefault: 0,
|
|
|
+ vcodeLen: 2,
|
|
|
+ servicetel: getApp().globalData.helpPhoneNum
|
|
|
+ },
|
|
|
+ onError(e) {
|
|
|
+ wx.showModal({
|
|
|
+ title: '温馨提示',
|
|
|
+ content: '当前网络环境较差,无法连接服务器,请稍后重试。有问题请联系客服电话4009608068,接听时段08:30-17:00。',
|
|
|
+ showCancel: false
|
|
|
+ });
|
|
|
+ },
|
|
|
+ inputPhone(e) {
|
|
|
+ this.setData({
|
|
|
+ phone: e.detail.value
|
|
|
+ });
|
|
|
+ this.checkAll();
|
|
|
+ },
|
|
|
+
|
|
|
+ inputVerificatrCode(e) {
|
|
|
+ this.setData({
|
|
|
+ vcode: e.detail.value
|
|
|
+ });
|
|
|
+ this.checkAll();
|
|
|
+ },
|
|
|
+
|
|
|
+ checkAll() {
|
|
|
+ if (!this.checkPhoneNumber()) {
|
|
|
+ this.setData({
|
|
|
+ errorMsg: '手机号输入有误,请重新输入',
|
|
|
+ checkPhone: false,
|
|
|
+ checkCode: false
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+ this.setData({
|
|
|
+ checkPhone: true,
|
|
|
+ errorMsg: ''
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!this.checkVcode()) {
|
|
|
+ this.setData({
|
|
|
+ errorMsg: '验证码格式不正确'
|
|
|
+ });
|
|
|
+ this.setData({
|
|
|
+ checkCode: false
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+ this.setData({
|
|
|
+ errorMsg: ''
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ if (this.data.phone && this.data.vcode) {
|
|
|
+ this.setData({
|
|
|
+ checkCode: true
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.setData({
|
|
|
+ checkCode: false
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ checkPhoneNumber() {
|
|
|
+ if (!(/^1[3456789]\d{9}$/.test(this.data.phone))) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ },
|
|
|
+
|
|
|
+ checkVcode() {
|
|
|
+ if (this.data.vcode==undefined || this.data.vcode=="") {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(this.data.vcode.length==this.data.vcodeLen){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ },
|
|
|
+
|
|
|
+ getVerificateCode(){
|
|
|
+ let vcodeFlag = this.data.vcodeFlag;
|
|
|
+ let checkPhone = this.data.checkPhone;
|
|
|
+ let phone = this.data.phone;
|
|
|
+ let that = this;
|
|
|
+
|
|
|
+ if (!vcodeFlag) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!checkPhone) {
|
|
|
+ that.setData({
|
|
|
+ errorMsg: '手机号输入有误,请重新输入',
|
|
|
+ checkCode: false
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+ that.setData({
|
|
|
+ errorMsg: ''
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ this.setData({
|
|
|
+ vcodeTimeOut:this.data.vcodeTimeOutDefault
|
|
|
+ })
|
|
|
+
|
|
|
+ wx.request({
|
|
|
+ url: getApp().globalData.postHeadAgreement + '/restapi/wechat/sendPhoneVcodeNoUnique',
|
|
|
+ data: {
|
|
|
+ scene: that.data.scene,
|
|
|
+ terminal: phone,
|
|
|
+ },
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+ console.info(res.data.code);
|
|
|
+ if (res.data.code == 1) {
|
|
|
+ wx.showModal({
|
|
|
+ title: '提示',
|
|
|
+ content:res.msg,
|
|
|
+ showCancel:false,
|
|
|
+ confirmColor:'#4359b5'
|
|
|
+ });
|
|
|
+ }else if (res.data.code == 2) {
|
|
|
+ // 跳转
|
|
|
+ wx.showModal({
|
|
|
+ title: '提示',
|
|
|
+ content: '手机号未绑定账户。若您已注册,请通过账号密码方式登录,登陆后根据系统提示绑定手机号或联系客服处理',
|
|
|
+ confirmText: '账号登录',
|
|
|
+ showCancel:true,
|
|
|
+ confirmColor:'#36a9a6',
|
|
|
+ success: function (res1) {
|
|
|
+ if (res1.confirm) {
|
|
|
+ let url = '/pages/login/username_login/username_login';
|
|
|
+ wx.redirectTo({
|
|
|
+ url
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }else if (res.data.code == 200) {
|
|
|
+ wx.showToast({
|
|
|
+ title: '验证码已发送',
|
|
|
+ icon: 'success',
|
|
|
+ duration: 1000 //持续的时间
|
|
|
+ })
|
|
|
+ let vcodeInterval = setInterval(function () {
|
|
|
+ if (that.data.vcodeTimeOut <= 0) {
|
|
|
+ that.setData({
|
|
|
+ vcodeFlag: true,
|
|
|
+ vcode_button_text: '获取验证码'
|
|
|
+ })
|
|
|
+ clearInterval(vcodeInterval);
|
|
|
+ }else{
|
|
|
+ let str = '获取验证码'+'(' + that.data.vcodeTimeOut + 's)'
|
|
|
+ that.setData({
|
|
|
+ vcodeTimeOut:that.data.vcodeTimeOut-1,
|
|
|
+ vcodeFlag: false,
|
|
|
+ vcode_button_text: str
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }, 1000);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ loginUser(e) {
|
|
|
+ let that = this;
|
|
|
+ let { phone, vcode } = this.data;
|
|
|
+ log.info('[登录]', '[登录]', '[请求]', { phone, vcode });
|
|
|
+ wx.request({
|
|
|
+ url: getApp().globalData.postHeadAgreement +'/restapi/wechat/phoneLogin',
|
|
|
+ data: {
|
|
|
+ phonenumber: phone,
|
|
|
+ vcode
|
|
|
+ },
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+ console.log(res);
|
|
|
+ log.info('[登录]', '[登录]', '[响应]', res.data);
|
|
|
+ if (res.data.code == 1) {
|
|
|
+ that.setData({
|
|
|
+ vcode: null,
|
|
|
+ passwordFocus:true//,
|
|
|
+ //errorMsg: res.data.msg
|
|
|
+ });
|
|
|
+ wx.showModal({
|
|
|
+ title: '提示',
|
|
|
+ content:res.data.msg,
|
|
|
+ showCancel:false,
|
|
|
+ confirmColor:'#4359b5'
|
|
|
+ });
|
|
|
+ log.info('[登录]', '[登录]', '[失败code==1]', res.data);
|
|
|
+ } else {
|
|
|
+ //返回该用户
|
|
|
+ //跳转到上一页
|
|
|
+ wx.setStorageSync("userInfo", res.data);
|
|
|
+ wx.setStorageSync("isBindPhone", res.data.bindingPhone);
|
|
|
+ wx.setStorageSync("isLogin", true);
|
|
|
+ //let url = `/pages/ucenter/index/index`;
|
|
|
+ log.info('[登录]', '[登录]', '[成功返回上一个界面]', res.data);
|
|
|
+ wx.navigateBack();
|
|
|
+ //wx.redirectTo({
|
|
|
+ // url
|
|
|
+ //});
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail(e){
|
|
|
+ getApp().showNetworkError();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ phoneCall(){
|
|
|
+ wx.makePhoneCall({
|
|
|
+ phoneNumber: this.data.servicetel
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ goToAccountLogin(e){
|
|
|
+ let url = '/pages/login/username_login/username_login';
|
|
|
+ wx.redirectTo({
|
|
|
+ url
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ goToRegister(e) {
|
|
|
+ let url = '/pages/register/register';
|
|
|
+ wx.redirectTo({
|
|
|
+ url
|
|
|
+ })
|
|
|
+ },
|
|
|
+ goToForget(e){
|
|
|
+ let url = '/pages/forget/forget';
|
|
|
+ wx.redirectTo({
|
|
|
+ url
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 生命周期函数--监听页面加载
|
|
|
+ */
|
|
|
+ onLoad: function (options) {
|
|
|
+ let scene = this.data.scene;
|
|
|
+ let that = this
|
|
|
+ wx.request({
|
|
|
+ url: getApp().globalData.postHeadAgreement + '/restapi/wechat/vcodeInfo',
|
|
|
+ data: {
|
|
|
+ scene,
|
|
|
+ },
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+ that.setData({
|
|
|
+ vcodeInfo:false,
|
|
|
+ vcodeTimeOut:res.data.result.expire,
|
|
|
+ vcodeTimeOutDefault:res.data.result.expire,
|
|
|
+ vcodeLen:res.data.result.len
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生命周期函数--监听页面初次渲染完成
|
|
|
+ */
|
|
|
+ onReady: function () {
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生命周期函数--监听页面显示
|
|
|
+ */
|
|
|
+ onShow: function () {
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生命周期函数--监听页面隐藏
|
|
|
+ */
|
|
|
+ onHide: function () {
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生命周期函数--监听页面卸载
|
|
|
+ */
|
|
|
+ onUnload: function () {
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 页面相关事件处理函数--监听用户下拉动作
|
|
|
+ */
|
|
|
+ onPullDownRefresh: function () {
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 页面上拉触底事件的处理函数
|
|
|
+ */
|
|
|
+ onReachBottom: function () {
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 用户点击右上角分享
|
|
|
+ */
|
|
|
+ onShareAppMessage: function () {
|
|
|
+
|
|
|
+ }
|
|
|
+})
|