You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

91 lines
2.0 KiB

const app = getApp<IAppOption>()
let timer = null as null | number
Page({
data: {
mobile: '',
code: '',
codeText: '发送验证码',
},
onLoad() {},
onUnload() {
if (timer) {
clearInterval(timer as number)
timer = null
}
},
getCode() {
if (timer) return
const mobile = this.data.mobile
if (!mobile) {
wx.showToast({
title: '手机号不能为空',
icon: 'none',
})
return
}
// 验证手机号
if (!/^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/.test(mobile)) {
wx.showToast({
title: '手机号格式不正确',
icon: 'none',
})
return
}
wx.ajax({
method: 'POST',
url: '?r=psvt/login/send-verify-code',
data: {
mobile,
},
}).then((res) => {
console.log(res)
wx.showToast({
icon: 'none',
title: '验证码已发送~',
})
let time = 60
timer = setInterval(() => {
time--
this.setData({
codeText: time + 's后重新发送',
})
if (time <= 0) {
clearInterval(timer as number)
timer = null
this.setData({
codeText: '发送验证码',
})
}
}, 1000)
})
},
handleSubmit() {
wx.showModal({
title: '确定修改此手机号?',
confirmColor: '#F64A3A',
success: (res) => {
if (!res.confirm) return
const { mobile, code } = this.data
const { registrationSource, registChannel, regBusinessId } = app.globalData
wx.ajax({
method: 'POST',
url: '?r=psvt/account/update-telephone',
data: {
mobile,
code,
registrationSource,
registChannel,
regBusinessId,
},
}).then((_res) => {
wx.navigateBack()
})
},
})
},
handleBack() {
wx.navigateBack()
},
})