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.
131 lines
2.7 KiB
131 lines
2.7 KiB
const app = getApp<IAppOption>(); |
|
let timer = 0; |
|
|
|
Page({ |
|
data: { |
|
menuButtonInfo: {}, |
|
mobile: "", |
|
code: "", |
|
protool: false, |
|
codeText: "发送验证码", |
|
}, |
|
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=takeda/login/send-verify-code", |
|
data: { |
|
mobile, |
|
}, |
|
}).then(() => { |
|
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, protool } = this.data; |
|
if (!protool) { |
|
wx.showToast({ |
|
title: "请先勾选协议", |
|
icon: "none", |
|
}); |
|
return; |
|
} |
|
if (!mobile) { |
|
wx.showToast({ |
|
title: "请输入手机号", |
|
icon: "none", |
|
}); |
|
return; |
|
} |
|
if (!code) { |
|
wx.showToast({ |
|
title: "请输入验证码", |
|
icon: "none", |
|
}); |
|
return; |
|
} |
|
wx.ajax({ |
|
method: "POST", |
|
url: "?r=takeda/login/reg-login", |
|
data: { |
|
mobile, |
|
code, |
|
}, |
|
}).then((_res) => { |
|
this.submitCallback(); |
|
}); |
|
}, |
|
handleWxSubmit(e: any) { |
|
const { protool } = this.data; |
|
const { iv, encryptedData } = e.detail; |
|
if (!protool) { |
|
wx.showToast({ |
|
title: "请先勾选协议", |
|
icon: "none", |
|
}); |
|
return; |
|
} |
|
if (iv && encryptedData) { |
|
wx.ajax({ |
|
method: "POST", |
|
url: "?r=takeda/login/wx-reg-login", |
|
data: { |
|
iv: encodeURIComponent(iv), |
|
encryptedData: encodeURIComponent(encryptedData), |
|
}, |
|
}).then((_res) => { |
|
this.submitCallback(); |
|
}); |
|
} |
|
}, |
|
submitCallback() { |
|
app.globalData.isLogin = 1; |
|
app.waitLogin().then(() => { |
|
wx.reLaunch({ url: "/module1/pages/index/index" }); |
|
}); |
|
}, |
|
handleProtool() { |
|
this.setData({ |
|
protool: !this.data.protool, |
|
}); |
|
}, |
|
handleNavProtool() { |
|
wx.navigateTo({ url: "/module1/pages/loginProtool/index" }); |
|
}, |
|
}); |
|
|
|
export {};
|
|
|