Light12306/Web12306/js/ui/widget_verifycode.js

63 lines
2.0 KiB
JavaScript

define(function (require, exports, module) {
var ajax = require("../platform/webRequest.js");
exports.data = {
login: {
url: "passcodeNew/getPassCodeNew?module=login&rand=sjrand",
refer: "login/init"
},
order: {
url: "passcodeNew/getPassCodeNew?module=passenger&rand=randp&_=" + Math.random(),
refer: "confirmPassenger/initDc"
}
};
exports.autoLoad = function (target) {
if (target.is(".verify-code"))
exports.load(target);
else {
target.find(".verify-code").each(function () { exports.load($(this)); });
}
};
exports.load = function (target) {
var type = target.attr("data-target");
var config = exports.data[type];
var imageEle = target.find("span");
imageEle.css({ "background-image": "url(/images/loading.gif)", "background-size": "auto" });
ajax.loadImage(config.url, config.refer, function (e) {
if (this.url.indexOf("base64,eyJ2YWxpZGF0ZU1lc3") !== -1) {
//网络繁忙
//重试
setTimeout(function() {
exports.load(target);
}, 1000);
} else {
imageEle.css({ "background-image": "url(" + this.url + ")", "background-size": "100% 100%" });
(target.is(".verify-code") ? target.closest("div, p, td") : target).find(":text").val("").each(function () { this.focus(); });
}
}, function () {
imageEle.css({ "background-image": "url(/images/loading.gif)", "background-size": "auto" });
document.dispatchEvent(new CustomEvent("verifyCodeLoadFailed"));
});
};
exports.refresh = function (target, delay) {
function reloadCode() {
if (target.is(".verify-code"))
exports.load(target);
else {
target.find(".verify-code").each(function () { exports.load($(this)); });
}
}
if (delay) {
target.find("span").css({ "background-image": "url(/images/loading.gif)", "background-size": "auto" });
setTimeout(reloadCode, 2000);
} else {
reloadCode();
}
};
exports.init = function () {
$(document).on("click", ".verify-code span, .verify-code .refresh-vc", function () {
exports.load($(this).closest(".verify-code"));
});
};
});