app-xiangsonghua/app-saas-src/script/user/findPassWord.js
2024-12-26 17:00:06 +08:00

184 lines
7.0 KiB
JavaScript

apiready = function() {
var ctrl = {
init: {},
bind: {},
phoneEmpty: {}, //验证手机号是否为空以及格式是否正确
getCode: {}, //获取验证码
refreshCode: {}, //验证码倒计时
toast: {}, //弹出框提示
checkIn: {}, //提交信息重置密码
isCountdowning: false //是否正在进行倒计时
};
ctrl.init = function() {
// 适配安卓状态栏
CommonModel.fitInStatusBar();
ctrl.bind();
}
ctrl.toast = function(msg) {
api.toast({
msg: msg,
duration: 3000,
locaiton: 'top'
});
}
ctrl.phoneEmpty = function() {
ctrl.phoneNumber = $api.trim($api.val($api.dom('#phone')));
//var code = $api.trim($api.val($api.dom('#confirm-code')));
if (ctrl.phoneNumber == '') {
$api.text($api.dom('#phone-tip'), '请输入手机号');
} else {
var reg = /^1[0-9]{10}$/;
if (!reg.test(ctrl.phoneNumber)) {
$api.text($api.dom('#phone-tip'), '手机号格式不正确');
} else {
$api.text($api.dom('#phone-tip'), '');
return true;
}
}
}
ctrl.bind = function() {
$api.addEvt($api.dom("#back"), "touchend", function() {
api.closeWin();
})
// //点击确认按钮 验证手机号及验证码是否正确
$api.addEvt($api.dom('#submit'), 'touchend', function() {
ctrl.checkIn();
})
//点击获取验证码按钮获取验证码
$api.addEvt($api.dom('#get-code'), 'touchend', function() {
$api.attr($api.dom('#get-code'), "disabled", true);
if (ctrl.phoneEmpty()) {
//手机号正确并且正在进行倒计时
if (ctrl.isCountdowning) {
return;
} else {
//手机号正确并且倒计时结束
$api.removeAttr($api.dom('#get-code'), "disabled");
ctrl.getCode();
}
}
})
//手机号选框失去焦点时
$api.addEvt($api.dom('#phone'), 'blur', function() {
if (ctrl.phoneEmpty()) {
//手机号正确并且此时没有进行验证码倒计时
if (!ctrl.isCountdowning) {
$api.removeAttr($api.dom('#get-code'), "disabled");
}
} else {
$api.attr($api.dom('#get-code'), "disabled", true);
}
})
$api.addEvt($api.dom('#code'), 'keyup', function() {
var phoneNumber = $api.trim($api.val($api.dom('#phone')));;
var code = $api.trim($api.val($api.dom('#code')));
if (phoneNumber != '' && code != '' && phoneNumber != null && code != null) {
$api.css($api.dom('#submit'), 'background:#E9BE2B');
} else {
$api.css($api.dom('#submit'), 'background:#d9d9d9');
}
})
}
//获取验证码
ctrl.getCode = function() {
var url = "/admin/rest/user/get/sms";
var data = {
"userName": ctrl.phoneNumber
};
$api.post(url, data, function(res, err) {
if (err) {
ctrl.toast("网络请求失败");
} else {
if (res.code == 200) {
//验证手机号码正确进行倒计时
ctrl.refreshCode();
} else {
//$api.attr($api.dom('#get-code'), "disabled", true);
$api.text($api.dom('#phone-tip'), '手机号不正确');
}
}
});
}
//提交信息进行重置密码
ctrl.checkIn = function() {
var phoneNumber = $api.trim($api.val($api.dom('#phone')));;
var code = $api.trim($api.val($api.dom('#code')));
if (phoneNumber == '' || phoneNumber == null) {
$api.text($api.dom('#phone-tip'), '请输入手机号');
} else {
$api.text($api.dom('#phone-tip'), '');
}
if (code == '' || code == null) {
$api.text($api.dom('#code-tip'), '请输入验证码');
} else {
$api.text($api.dom('#code-tip'), '');
}
if (phoneNumber != '' && code != '' && phoneNumber != null && code != null) {
$api.css($api.dom('#submit'), 'background:#E9BE2B');
var url = "/admin/rest/user/sms/validate";
var data = {
"userName": phoneNumber,
"code": code
}
$api.post(url, data, function(res, err) {
if (err) {
ctrl.toast("网络请求失败");
} else {
if (res.code != 200) {
//验证码错误
$api.text($api.dom('#code-tip'), '验证码不正确');
} else {
//验证码正确跳转到重置密码页
$api.text($api.dom('#code-tip'), '');
api.openWin({
name: 'resetPassword',
url: '../../html/user/resetPassword.html',
pageParam: {
id: res.body //userId
}
});
// api.closeWin({});
window.setTimeout(function() {
api.closeWin();
}, 500)
}
}
});
}
}
//验证码倒计时
ctrl.refreshCode = function() {
//如果正在倒计时则不执行
if (ctrl.isCountdowning) {
return;
}
ctrl.isCountdowning = true;
$api.val($api.dom('#get-code'), '短信已发送');
var i = 60;
$api.attr($api.dom('#get-code'), "disabled", true);
if (ctrl.timer) {
window.clearInterval(ctrl.timer);
}
ctrl.timer = window.setInterval(function() {
i--;
$api.val($api.dom('#get-code'), i + '秒之后重试');
//倒计时为0时可以重新获取验证码
if (i == 0) {
ctrl.isCountdowning = false;
window.clearInterval(ctrl.timer);
$api.val($api.dom('#get-code'), '获取验证码');
$api.removeAttr($api.dom('#get-code'), "disabled");
}
}, 1000)
}
ctrl.init();
}