Light12306/Web12306/js/ui/index.js

180 lines
5.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

define(function (require) {
var param = require("../data.js");
var widget = require("./widget.js");
var sessMgr = require("../account/sessionMgr.js");
var mp = require("./widget_message_popup.js");
var datebar = require("./widget_datebar.js");
var parser = require("../platform/parser.js");
var media = require("../platform/media.js");
//会话管理器事件
sessMgr.on("notValidPassengerFound", function () {
mp.showMessagePopup("warn", "您的账户中有未经验证的联系人,将不可为他们订票。");
});
//初始化日期
require("./widget_datedropdown.js").init("input.ui-date");
//地区选择
var citySelector = require("./widget_cityselector.js");
citySelector.init("input.ui-cityselector");
//验证码
require("./widget_verifycode.js").init();
//登录
var ui_login = require("./ui-login.js");
ui_login.init();
//结果列表
var ui_result = require("./ui-trainlist.js");
ui_result.init();
//自动刷新呢
var autorefresh = require("./ui-autorefresh.js");
autorefresh.init();
autorefresh.on("requestQueryTicket", function () {
ui_result.load();
});
//提交订单
var uiOrderProcess = require("./ui-order-submit-process.js");
uiOrderProcess.init();
//查询参数
var uiAutoSubmitForm = require("./ui-autosubmitform.js");
uiAutoSubmitForm.init();
//模式管理
var uiThemeManager = require("./ui-theme-manager.js");
uiThemeManager.init();
//用户配置和选项的加载以及保存
require("../platform/profileBinder.js");
require("../platform/optionBinder.js");
//订票列表交互
(function () {
ui_result.on("requireSubmitOrder", function (e, d) {
autorefresh.stop();
uiOrderProcess.start(d.train, d.seat, sessMgr.currentProfile, null);
});
autorefresh.on("requireSubmitOrder", function (e, d) {
uiOrderProcess.start(d.data, d.seat, sessMgr.currentProfile, d.passengers);
});
})();
//界面交互初始化
(function () {
$(".order-tips").html("今日可预定:" + parser.formatDate(param.minDate, "MM月dd日") + "" + parser.formatDate(param.maxDate, "MM月dd日") + "的火车票");
//自动加速关闭
$(".net-tips, .reset-btn").hide();
var resetInterfaceByProfile = function () {
var user = sessMgr.current;
if (!user) {
return;
}
var showMoreOpt = user.options.showMoreOpt !== undefined ? user.options.showMoreOpt : param.moreOptDefault;
var div = $("div.options-param");
if (showMoreOpt ^ div.is(":visible"))
!user.options.showMoreOpt ? (div.hide(), $(".search-more-option").html("显示更多选项")) : (div.show(), $(".search-more-option").html("隐藏更多选项"));
var p = user.currentProfile;
$("#from_city").val(p.fromText).attr("data-code", p.fromCode);
$("#to_city").val(p.toText).attr("data-code", p.toCode);
document.querySelector("input[name='ticket_type'][value='" + (p.studentTicket ? "1" : "0") + "']").checked = true;
//当前日期
if (p.depDate) {
var d = parser.addDays(parser.toDate(p.depDate), 0);
var today = parser.addDays(new Date(), 0);
d = d < today ? today : d;
var datestr = parser.formatDate(d, "yyyy-MM-dd");
datebar.go(d, d);
$("#dep_date").val(datestr);
}
};
$("#index-tip-body").click(function () {
$(this).next().fadeIn();
});
$("section.search-tips-container i.fa-times").click(function () {
$(this).closest("section.search-tips-container").fadeOut();
});
//登录失效
sessMgr.on("userForcedOut", function () {
mp.showMessagePopup("error", "您的登录出现了问题,请重新登录");
});
$(".search-more-option").click(function () {
var div = $("div.options-param");
div.is(":visible") ? (div.hide(), $(this).html("显示更多选项")) : (div.show(), $(this).html("隐藏更多选项"));
sessMgr.current.options.showMoreOpt = div.is(":visible");
sessMgr.save();
});
$("#from_city").change(function () {
var u = sessMgr.current;
var p = u.currentProfile;
p.fromText = this.value;
p.fromCode = this.dataset.code;
sessMgr.save();
});
$("#to_city").change(function () {
var u = sessMgr.current;
var p = u.currentProfile;
p.toText = this.value;
p.toCode = this.dataset.code;
sessMgr.save();
});
$("input[name='ticket_type']").click(function () {
sessMgr.currentProfile.studentTicket = this.value === "1";
sessMgr.save();
});
$("div.transfer-city-btn").click(function () {
var f = document.getElementById("from_city");
var t = document.getElementById("to_city");
var txt = f.value;
var code = f.dataset.code;
f.value = t.value;
f.dataset.code = t.dataset.code;
t.value = txt;
t.dataset.code = code;
$("#from_city, #to_city").change();
});
$("#btnQuery").click(function () {
autorefresh.stop();
media.stop();
if (!sessMgr.currentProfile.fromCode || !sessMgr.currentProfile.toCode || !sessMgr.currentProfile.depDate) {
mp.showMessagePopup("error", "亲,还没有设置查询的条件哦。");
return;
}
citySelector.cityui.addCityToRecent(sessMgr.currentProfile.fromCode);
citySelector.cityui.addCityToRecent(sessMgr.currentProfile.toCode);
ui_result.load();
});
sessMgr.on("sessionChanged", resetInterfaceByProfile);
sessMgr.on("currentProfileChanged", resetInterfaceByProfile);
//初始化状态
resetInterfaceByProfile();
})();
//系统级别错误捕捉
(function () {
document.addEventListener("networkOrCertificationError", function () {
//TODO UI
alert("无法访问12306可能是网络错误或证书错误请直接访问12306试试如果正常的话请回来刷新本页");
});
})();
//初始化
$("#J-search-form").submit(function () {
return false;
});
});