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.
105 lines
2.2 KiB
105 lines
2.2 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() { |
|
const { mobile, code } = this.data |
|
if (!mobile) { |
|
wx.showToast({ |
|
title: '请输入手机号', |
|
icon: 'none', |
|
}) |
|
return |
|
} |
|
if (!code) { |
|
wx.showToast({ |
|
icon: 'none', |
|
title: '请输入验证码', |
|
}) |
|
return |
|
} |
|
wx.showModal({ |
|
title: '确定修改此手机号?', |
|
confirmColor: '#F64A3A', |
|
success: (res) => { |
|
if (!res.confirm) return |
|
const { registrationSource, registChannel, regBusinessId } = app.globalData |
|
wx.ajax({ |
|
method: 'POST', |
|
url: '?r=psvt/user/update-telephone', |
|
data: { |
|
mobile, |
|
code, |
|
registrationSource, |
|
registChannel, |
|
regBusinessId, |
|
}, |
|
}).then((_res) => { |
|
wx.navigateBack() |
|
}) |
|
}, |
|
}) |
|
}, |
|
handleBack() { |
|
wx.navigateBack() |
|
}, |
|
})
|
|
|