const app = getApp(); let timer = null as null | number; Page({ data: { popupShow: false, popupType: 'popup4', // 登录失败弹窗 popupParams: { close: true, } as any, showTel: false, mobile: '', code: '', codeText: '发送验证码', check1: false, }, onLoad() {}, 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=xd/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); }); }, handleCheck() { this.setData({ check1: !this.data.check1, }); }, handleDocRule() { const { check1 } = this.data; return new Promise((resolve) => { if (check1) { return resolve(true); } wx.showToast({ title: '请同意相关协议', icon: 'none', }); }); }, async handleSubmit() { await this.handleDocRule(); const { mobile, code } = this.data; if (!mobile) { wx.showToast({ title: '请输入手机号', icon: 'none', }); return; } if (!code) { wx.showToast({ title: '请输入验证码', icon: 'none', }); return; } wx.ajax({ method: 'POST', url: '?r=xd/login/reg-login', data: { mobile, code, }, showMsg: false, }) .then(() => { this.submitCallback(); }) .catch((err) => { if (err.data.code == 100) { this.handleShowPopup(); } else if (err.data.msg) { wx.showToast({ title: err.data.msg, icon: 'none', }); } }); }, handleWxSubmit(e: WechatMiniprogram.CustomEvent) { const { iv, encryptedData } = e.detail; if (iv && encryptedData) { wx.ajax({ method: 'POST', url: '?r=xd/login/wx-reg-login', data: { iv: encodeURIComponent(iv), encryptedData: encodeURIComponent(encryptedData), }, showMsg: false, }) .then(() => { this.submitCallback(); }) .catch((err) => { if (err.data.code == 100) { this.handleShowPopup(); } else if (err.data.msg) { wx.showToast({ title: err.data.msg, icon: 'none', }); } }); } }, submitCallback() { app.updateLoginInfo((res) => { if (res.isLogin == 1) { if (res.loginType == 2) { wx.reLaunch({ url: '/pages/home/index', }); } else { this.handleShowPopup(); } } else { this.handleShowPopup(); } }); }, handlePatient() { wx.reLaunch({ url: '/patient/pages/login/index', }); }, handleShowPopup() { this.setData({ popupShow: true, popupType: 'popup4', popupParams: { close: true, }, }); }, handleShowTel() { this.setData({ showTel: !this.data.showTel, }); }, handleLink() { wx.navigateTo({ url: '/doc/pages/doc1/index', }); }, handlePopupCancel() { this.setData({ popupShow: false, }); }, }); export {};