const app = getApp(); let timer = null as null | number; Page({ data: { mobile: '', code: '', check1: false, check2: false, codeText: '发送验证码', page: '', }, onLoad(options: any) { this.setData({ page: options.page, }); app.zdWaitLogin({ isReg: false, loginPage: true }).then(() => { app.zdMpBehavior({ PageName: 'PG_PATIENTLOGIN' }); }); }, 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() { app.zdMpBehavior({ PageName: 'BTN_PATIENTLOGIN' }); const { mobile, code } = this.data; const { registrationSource, registChannel, regBusinessId } = app.globalData; wx.ajax({ method: 'POST', url: '?r=zd/login/reg-login', data: { mobile, code, registrationSource, registChannel, regBusinessId, }, }).then((_res) => { this.submitCallback(); }); }, handleWxSubmit(e: WechatMiniprogram.CustomEvent) { app.zdMpBehavior({ PageName: 'BTN_PATIENTQUICKPATIENTLOGIN' }); const { iv, encryptedData } = e.detail; const { registrationSource, registChannel, regBusinessId } = app.globalData; if (iv && encryptedData) { wx.ajax({ method: 'POST', url: '?r=zd/login/wx-reg-login', data: { iv: encodeURIComponent(iv), encryptedData: encodeURIComponent(encryptedData), registrationSource, registChannel, regBusinessId, }, }).then((_res) => { this.submitCallback(); }); } }, handleWxCheck() { wx.showToast({ icon: 'none', title: '请先同意隐私政策', }); }, submitCallback() { app.globalData.loginType = 1; app.globalData.isLogin = 1; app.updateLoginInfo((res) => { const { loginType, isNewReg, isLogin } = res; const backPage = app.globalData.backPage; let url = backPage || '/patient/pages/index/index'; if (isNewReg === 0) { url = '/patient/pages/enterInfo/index'; wx.navigateTo({ url, }); return; } wx.reLaunch({ url, }); }); }, handleVisitors() { app.zdMpBehavior({ PageName: 'BTN_PATIENTLOOKAROUND' }); app.globalData.anyWhere = true; app.globalData.first = true; app.globalData.loginType = 1; wx.reLaunch({ url: '/patient/pages/index/index', }); }, handleDoctor() { wx.reLaunch({ url: '/pages/login/index', }); }, handleLink(e: any) { const { url } = e.currentTarget.dataset; wx.navigateTo({ url, }); }, handleCheck(e: any) { const { key } = e.currentTarget.dataset; this.setData({ [key]: !this.data[key], }); }, }); export {};