const app = getApp() let timer = null as null | number Page({ data: { mobile: '', code: '', codeText: '发送验证码', back: false, showForm: false, check: false, }, onLoad(option) { if (option.back) { this.setData({ back: true, }) } }, getCode() { if (timer) return const mobile = this.data.mobile if (!mobile) { wx.showToast({ title: '手机号不能为空', icon: 'none', }) return } // 验证手机号 if (!/^1[3-9,]\d{9}$/.test(mobile)) { wx.showToast({ title: '手机号格式不正确', icon: 'none', }) return } wx.ajax({ method: 'POST', url: '?r=zd/login/send-verify-code', data: { mobile, }, }).then((_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() { if (!this.data.mobile) { wx.showToast({ icon: 'none', title: '请输入手机号', }) return } if (!this.data.code) { wx.showToast({ icon: 'none', title: '请输入验证码', }) return } if (!this.data.check) { wx.showToast({ icon: 'none', title: '请同意用户协议', }) return } wx.ajax({ method: 'POST', url: '?r=zd/doctor/login/reg-login', data: { mobile: this.data.mobile, code: this.data.code, }, }).then((_res) => { this.submitCallback() }) }, handleWxSubmit(e: WechatMiniprogram.CustomEvent) { if (!this.data.check) { wx.showToast({ icon: 'none', title: '请同意用户协议', }) return } wx.reLaunch({ url: '/ground/pages/home/index', }) return const { iv, encryptedData } = e.detail if (iv && encryptedData) { wx.ajax({ method: 'POST', url: '?r=zd/doctor/login/wx-reg-login', data: { iv: encodeURIComponent(iv), encryptedData: encodeURIComponent(encryptedData), }, }).then((_res) => { this.submitCallback() }) } }, submitCallback() { app.globalData.loginType = 2 app.globalData.isLogin = true wx.reLaunch({ url: '/doctor/pages/d_home/index', }) }, handlePatient() { wx.redirectTo({ url: '/pages/login/index', }) }, handleTelCode() { this.setData({ showForm: !this.data.showForm, }) }, handleLink() { wx.navigateTo({ url: '/doc/pages/doc1/index', }) }, handleCheck() { this.setData({ check: !this.data.check, }) }, handleBack() { wx.navigateBack() }, })