| | |
| | | data: { |
| | | userInfo: {}, |
| | | defaultAvatarUrl: 'https://cdn-we-retail.ym.tencent.com/miniapp/usercenter/icon-user-center-avatar@2x.png', |
| | | visible: false |
| | | userInfoBox: false, |
| | | editType: '', |
| | | userInfoForm: { |
| | | phone: '', |
| | | email: '', |
| | | captcha: '', |
| | | code: '', |
| | | }, |
| | | phoneError: false, |
| | | emailError: false, |
| | | imgCode: '', |
| | | countDown: 0, |
| | | }, |
| | | |
| | | /** |
| | |
| | | } |
| | | }); |
| | | }, |
| | | //修改用户类型 |
| | | editUserInfo(e) { |
| | | console.log(e) |
| | | let { info } = e.currentTarget.dataset |
| | | if (!this.data.userInfoBox) { |
| | | this.setData({ |
| | | userInfoBox: true, |
| | | editType: info, |
| | | "userInfoForm.captcha": "", |
| | | "userInfoForm.code": "" |
| | | }); |
| | | } |
| | | this.getImgCapcha() |
| | | }, |
| | | onVisibleChange(e) { |
| | | this.setData({ |
| | | userInfoBox: e.detail.visible, |
| | | countDown: 0, |
| | | }); |
| | | }, |
| | | |
| | | //输入手机号 |
| | | onPhoneInput(e) { |
| | | console.log(e) |
| | | const { phoneError } = this.data; |
| | | const isPhoneNumber = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e.detail.value); |
| | | if (phoneError === isPhoneNumber) { |
| | | this.setData({ |
| | | phoneError: !isPhoneNumber, |
| | | "userInfoForm.phone": e.detail.value, |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | onEmailInput(e) { |
| | | const { emailError } = this.data; |
| | | const isPhoneNumber = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/.test(e.detail.value); |
| | | if (emailError === isPhoneNumber) { |
| | | this.setData({ |
| | | emailError: !isPhoneNumber, |
| | | "userInfoForm.email": e.detail.value, |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | getImgCapcha() { |
| | | app.MG.identity.getImgCode().then((res) => { |
| | | this.setData({ |
| | | imgCode: 'data:image/png;base64,' + res, |
| | | }); |
| | | }) |
| | | }, |
| | | //图形验证码 |
| | | onCaptchaInput(e) { |
| | | this.setData({ |
| | | "userInfoForm.captcha": e.detail.value, |
| | | }); |
| | | }, |
| | | |
| | | //短信邮箱验证码 |
| | | onCodeInput(e) { |
| | | this.setData({ |
| | | "userInfoForm.code": e.detail.value, |
| | | }); |
| | | }, |
| | | |
| | | getPhoneCode() { |
| | | if (this.data.userInfoForm.phone && this.data.userInfoForm.captcha) { |
| | | app.MG.identity |
| | | .getPhoneCode({ |
| | | phoneNumber: this.data.userInfoForm.phone, |
| | | imageCaptcha: this.data.userInfoForm.captcha, |
| | | appRefCode: app.config.appRefCode |
| | | }) |
| | | .then((res) => { |
| | | if (res == '验证码发送成功') { |
| | | wx.showToast({ |
| | | title: res, |
| | | icon: 'none', |
| | | duration: 1000 |
| | | }) |
| | | // 开启短信验证倒计时 |
| | | this.getSecond(60) |
| | | } else { |
| | | wx.showToast({ |
| | | title: res, |
| | | icon: 'none', |
| | | duration: 1000 |
| | | }) |
| | | this.getImgCapcha() |
| | | } |
| | | }) |
| | | } else { |
| | | wx.showToast({ |
| | | title: '请填写手机号或图形验证码', |
| | | icon: 'none', |
| | | duration: 1000 |
| | | }) |
| | | } |
| | | }, |
| | | getSecond(time) { |
| | | let timer = null |
| | | if (!timer) { |
| | | let countDown = time; |
| | | this.setData({ |
| | | countDown: time, |
| | | }); |
| | | timer = setInterval(() => { |
| | | countDown-- |
| | | this.setData({ |
| | | countDown: countDown, |
| | | }); |
| | | if (this.data.countDow == 0) { |
| | | clearInterval(timer) |
| | | timer = null |
| | | } |
| | | }, 1000) |
| | | } |
| | | }, |
| | | |
| | | getEmailCode() { |
| | | console.log(this.data.userInfoForm.email) |
| | | if (this.data.userInfoForm.email && this.data.userInfoForm.captcha) { |
| | | app.MG.identity |
| | | .getEmailCode({ |
| | | sendEmail: this.data.userInfoForm.email, |
| | | captcha: this.data.userInfoForm.captcha, |
| | | appRefCode: app.config.appRefCode |
| | | }) |
| | | .then((res) => { |
| | | if (res == true) { |
| | | wx.showToast({ |
| | | title: '验证码已发送', |
| | | icon: 'none', |
| | | duration: 1000 |
| | | }) |
| | | // 开启短信验证倒计时 |
| | | this.getSecond(60) |
| | | } else { |
| | | wx.showToast({ |
| | | title: '邮箱验证码发送失败', |
| | | icon: 'none', |
| | | duration: 1000 |
| | | }) |
| | | this.getImgCapcha() |
| | | } |
| | | }) |
| | | } else { |
| | | wx.showToast({ |
| | | title: '请填写邮箱或图形验证码', |
| | | icon: 'none', |
| | | duration: 1000 |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | confirmInfo() { |
| | | if (this.data.changeType == 'phone') { |
| | | let query = { |
| | | phoneNumber: this.data.userInfoForm.phone, |
| | | phoneCaptcha: this.data.userInfoForm.code |
| | | } |
| | | app.MG.identity.userSetPhoneNumber(query).then((res) => { |
| | | if (res == '验证码过期或错误') { |
| | | wx.showToast({ |
| | | title: res + ',请稍后重试', |
| | | icon: 'none', |
| | | duration: 1000 |
| | | }) |
| | | } else if (res == '此手机号码已被其它账号绑定') { |
| | | wx.showToast({ |
| | | title: res + ',请更换其他手机号。', |
| | | icon: 'none', |
| | | duration: 1000 |
| | | }) |
| | | } else { |
| | | wx.showToast({ |
| | | title: res, |
| | | icon: 'none', |
| | | duration: 1000 |
| | | }) |
| | | |
| | | this.setData({ |
| | | userInfoBox: false, |
| | | }); |
| | | this.getUserInfo() |
| | | } |
| | | }) |
| | | } else if (this.data.editType == 'email') { |
| | | let query = { |
| | | eMail: this.data.userInfoForm.email, |
| | | captcha: this.data.userInfoForm.code |
| | | } |
| | | |
| | | app.MG.identity.bindingEmail(query).then((res) => { |
| | | if (res == '验证码过期') { |
| | | wx.showToast({ |
| | | title: res + ',请稍后重试。', |
| | | icon: 'none', |
| | | duration: 1000 |
| | | }) |
| | | } else if (res == '此邮箱已被其它账号绑定') { |
| | | wx.showToast({ |
| | | title: res + ',请更换其他邮箱。', |
| | | icon: 'none', |
| | | duration: 1000 |
| | | }) |
| | | |
| | | } else if (res == '验证码无效') { |
| | | wx.showToast({ |
| | | title: res, |
| | | icon: 'none', |
| | | duration: 1000 |
| | | }) |
| | | } else { |
| | | wx.showToast({ |
| | | title: res, |
| | | icon: 'none', |
| | | duration: 1000 |
| | | }) |
| | | this.setData({ |
| | | userInfoBox: false, |
| | | }); |
| | | this.getUserInfo() |
| | | } |
| | | }) |
| | | } |
| | | |
| | | }, |
| | | /** |
| | | * 页面相关事件处理函数--监听用户下拉动作 |
| | | */ |