const app = getApp() 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() }, })