2014-06-20 20:55:14 +08:00
|
|
|
|
define(function (require) {
|
2014-05-05 19:34:47 +08:00
|
|
|
|
var param = require("../data.js");
|
|
|
|
|
var widget = require("./widget.js");
|
2014-05-29 19:41:38 +08:00
|
|
|
|
var sessMgr = require("../account/sessionMgr.js");
|
2014-06-12 21:36:05 +08:00
|
|
|
|
var mp = require("./widget_message_popup.js");
|
2014-07-04 20:57:57 +08:00
|
|
|
|
var datebar = require("./widget_datebar.js");
|
|
|
|
|
var parser = require("../platform/parser.js");
|
2014-07-23 17:32:50 +08:00
|
|
|
|
var media = require("../platform/media.js");
|
2014-07-31 21:30:48 +08:00
|
|
|
|
var mp = require("./widget_message_popup.js");
|
2014-05-05 19:34:47 +08:00
|
|
|
|
|
2014-06-26 22:24:54 +08:00
|
|
|
|
//会话管理器事件
|
|
|
|
|
sessMgr.on("notValidPassengerFound", function () {
|
|
|
|
|
mp.showMessagePopup("warn", "您的账户中有未经验证的联系人,将不可为他们订票。");
|
|
|
|
|
});
|
|
|
|
|
|
2014-05-05 19:34:47 +08:00
|
|
|
|
//初始化日期
|
|
|
|
|
require("./widget_datedropdown.js").init("input.ui-date");
|
2014-06-26 22:24:54 +08:00
|
|
|
|
//地区选择
|
2014-07-08 20:11:31 +08:00
|
|
|
|
var citySelector = require("./widget_cityselector.js");
|
|
|
|
|
citySelector.init("input.ui-cityselector");
|
2014-06-26 22:24:54 +08:00
|
|
|
|
//验证码
|
2014-06-12 21:36:05 +08:00
|
|
|
|
require("./widget_verifycode.js").init();
|
2014-05-05 19:34:47 +08:00
|
|
|
|
|
2014-06-26 22:24:54 +08:00
|
|
|
|
//登录
|
2014-05-16 20:10:45 +08:00
|
|
|
|
var ui_login = require("./ui-login.js");
|
2014-06-26 22:24:54 +08:00
|
|
|
|
ui_login.init();
|
|
|
|
|
//结果列表
|
|
|
|
|
var ui_result = require("./ui-trainlist.js");
|
|
|
|
|
ui_result.init();
|
|
|
|
|
|
2014-07-11 18:34:59 +08:00
|
|
|
|
//自动刷新呢
|
|
|
|
|
var autorefresh = require("./ui-autorefresh.js");
|
|
|
|
|
autorefresh.init();
|
2014-07-23 17:32:50 +08:00
|
|
|
|
autorefresh.on("requestQueryTicket", function () {
|
2014-07-11 18:34:59 +08:00
|
|
|
|
ui_result.load();
|
|
|
|
|
});
|
|
|
|
|
|
2014-06-26 22:24:54 +08:00
|
|
|
|
//提交订单
|
|
|
|
|
var uiOrderProcess = require("./ui-order-submit-process.js");
|
|
|
|
|
uiOrderProcess.init();
|
|
|
|
|
|
2014-07-08 20:11:31 +08:00
|
|
|
|
//查询参数
|
|
|
|
|
var uiAutoSubmitForm = require("./ui-autosubmitform.js");
|
|
|
|
|
uiAutoSubmitForm.init();
|
|
|
|
|
|
2014-07-04 20:57:57 +08:00
|
|
|
|
//模式管理
|
|
|
|
|
var uiThemeManager = require("./ui-theme-manager.js");
|
|
|
|
|
uiThemeManager.init();
|
|
|
|
|
|
2014-07-11 18:34:59 +08:00
|
|
|
|
//用户配置和选项的加载以及保存
|
|
|
|
|
require("../platform/profileBinder.js");
|
|
|
|
|
require("../platform/optionBinder.js");
|
2014-06-26 22:24:54 +08:00
|
|
|
|
|
|
|
|
|
//订票列表交互
|
2014-07-29 21:19:06 +08:00
|
|
|
|
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);
|
|
|
|
|
});
|
2014-06-26 22:24:54 +08:00
|
|
|
|
|
2014-05-16 20:10:45 +08:00
|
|
|
|
|
2014-06-12 21:36:05 +08:00
|
|
|
|
//界面交互初始化
|
2014-06-20 20:55:14 +08:00
|
|
|
|
(function () {
|
2014-07-23 17:32:50 +08:00
|
|
|
|
$(".order-tips").html("今日可预定:" + parser.formatDate(param.minDate, "MM月dd日") + "-" + parser.formatDate(param.maxDate, "MM月dd日") + "的火车票");
|
|
|
|
|
|
|
|
|
|
//自动加速关闭
|
|
|
|
|
$(".net-tips, .reset-btn").hide();
|
|
|
|
|
|
2014-06-20 20:55:14 +08:00
|
|
|
|
var resetInterfaceByProfile = function () {
|
|
|
|
|
var user = sessMgr.current;
|
2014-06-26 22:24:54 +08:00
|
|
|
|
if (!user) {
|
2014-06-20 20:55:14 +08:00
|
|
|
|
return;
|
2014-06-26 22:24:54 +08:00
|
|
|
|
}
|
|
|
|
|
|
2014-07-23 17:32:50 +08:00
|
|
|
|
var showMoreOpt = user.options.showMoreOpt !== undefined ? user.options.showMoreOpt : param.moreOptDefault;
|
|
|
|
|
var div = $("div.options-param");
|
2014-07-25 22:28:51 +08:00
|
|
|
|
!showMoreOpt ? (div.hide(), $(".search-more-option").html("显示更多选项")) : (div.show(), $(".search-more-option").html("隐藏更多选项"));
|
2014-06-20 20:55:14 +08:00
|
|
|
|
|
|
|
|
|
var p = user.currentProfile;
|
|
|
|
|
$("#from_city").val(p.fromText).attr("data-code", p.fromCode);
|
|
|
|
|
$("#to_city").val(p.toText).attr("data-code", p.toCode);
|
2014-07-02 18:43:28 +08:00
|
|
|
|
document.querySelector("input[name='ticket_type'][value='" + (p.studentTicket ? "1" : "0") + "']").checked = true;
|
2014-06-20 20:55:14 +08:00
|
|
|
|
|
2014-07-29 21:19:06 +08:00
|
|
|
|
//车次类型
|
|
|
|
|
var ptt = p.trainTypes || [];
|
|
|
|
|
$("ul.search-traintypes :checkbox").each(function () {
|
|
|
|
|
this.checked = !ptt.length || _.indexOf(ptt, this.value) != -1;
|
|
|
|
|
});
|
2014-07-31 21:30:48 +08:00
|
|
|
|
$("ul.search-traintypes a").html($("ul.search-traintypes :checkbox:not(:checked)").length ? "全选" : "全不选");
|
2014-07-29 21:19:06 +08:00
|
|
|
|
|
2014-07-04 20:57:57 +08:00
|
|
|
|
//当前日期
|
|
|
|
|
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);
|
|
|
|
|
}
|
2014-06-20 20:55:14 +08:00
|
|
|
|
};
|
2014-07-29 21:19:06 +08:00
|
|
|
|
$("ul.search-traintypes :checkbox").change(function () {
|
|
|
|
|
sessMgr.currentProfile.trainTypes = $.makeArray($("ul.search-traintypes :checkbox:checked").map(function () {
|
|
|
|
|
return this.value;
|
|
|
|
|
}));
|
2014-07-31 21:30:48 +08:00
|
|
|
|
$("ul.search-traintypes a").html($("ul.search-traintypes :checkbox:not(:checked)").length ? "全选" : "全不选");
|
2014-07-29 21:19:06 +08:00
|
|
|
|
sessMgr.save();
|
|
|
|
|
});
|
2014-07-31 21:30:48 +08:00
|
|
|
|
$("ul.search-traintypes a").click(function () {
|
|
|
|
|
var checkbox = $("ul.search-traintypes :checkbox");
|
|
|
|
|
if (checkbox.filter(":not(:checked)").length) {
|
|
|
|
|
checkbox.prop("checked", true);
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
checkbox.prop("checked", false);
|
|
|
|
|
}
|
|
|
|
|
checkbox.eq(0).change();
|
|
|
|
|
});
|
2014-06-20 20:55:14 +08:00
|
|
|
|
$("#index-tip-body").click(function () {
|
2014-06-12 21:36:05 +08:00
|
|
|
|
$(this).next().fadeIn();
|
|
|
|
|
});
|
2014-06-20 20:55:14 +08:00
|
|
|
|
$("section.search-tips-container i.fa-times").click(function () {
|
2014-06-12 21:36:05 +08:00
|
|
|
|
$(this).closest("section.search-tips-container").fadeOut();
|
|
|
|
|
});
|
|
|
|
|
//登录失效
|
2014-06-20 20:55:14 +08:00
|
|
|
|
sessMgr.on("userForcedOut", function () {
|
2014-06-12 21:36:05 +08:00
|
|
|
|
mp.showMessagePopup("error", "您的登录出现了问题,请重新登录");
|
|
|
|
|
});
|
2014-06-20 20:55:14 +08:00
|
|
|
|
$(".search-more-option").click(function () {
|
2014-06-13 19:52:22 +08:00
|
|
|
|
var div = $("div.options-param");
|
|
|
|
|
div.is(":visible") ? (div.hide(), $(this).html("显示更多选项")) : (div.show(), $(this).html("隐藏更多选项"));
|
2014-06-20 20:55:14 +08:00
|
|
|
|
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();
|
2014-06-13 19:52:22 +08:00
|
|
|
|
});
|
2014-07-04 20:57:57 +08:00
|
|
|
|
$("input[name='ticket_type']").click(function () {
|
2014-07-02 18:43:28 +08:00
|
|
|
|
sessMgr.currentProfile.studentTicket = this.value === "1";
|
|
|
|
|
sessMgr.save();
|
|
|
|
|
});
|
2014-07-23 17:32:50 +08:00
|
|
|
|
$("div.transfer-city-btn").click(function () {
|
2014-07-11 18:34:59 +08:00
|
|
|
|
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();
|
2014-06-20 20:55:14 +08:00
|
|
|
|
});
|
|
|
|
|
$("#btnQuery").click(function () {
|
2014-07-11 18:34:59 +08:00
|
|
|
|
autorefresh.stop();
|
2014-07-23 17:32:50 +08:00
|
|
|
|
media.stop();
|
2014-07-11 18:34:59 +08:00
|
|
|
|
if (!sessMgr.currentProfile.fromCode || !sessMgr.currentProfile.toCode || !sessMgr.currentProfile.depDate) {
|
|
|
|
|
mp.showMessagePopup("error", "亲,还没有设置查询的条件哦。");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2014-07-08 20:11:31 +08:00
|
|
|
|
citySelector.cityui.addCityToRecent(sessMgr.currentProfile.fromCode);
|
|
|
|
|
citySelector.cityui.addCityToRecent(sessMgr.currentProfile.toCode);
|
2014-07-31 21:30:48 +08:00
|
|
|
|
|
|
|
|
|
//检查学生票是否对应
|
|
|
|
|
if (sessMgr.currentProfile.studentTicket && sessMgr.currentProfile.passengers && sessMgr.currentProfile.passengers.length) {
|
|
|
|
|
if (_.some(sessMgr.currentProfile.passengers, function(p) { return p.passenger_type != '3'; })) {
|
|
|
|
|
mp.confirm("确认", "您选择的是学生票,但是添加的联系人并不全是学生,将无法提交订单,确定继续查票吗?", ui_result.load);
|
|
|
|
|
} else {
|
|
|
|
|
ui_result.load();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
ui_result.load();
|
|
|
|
|
}
|
2014-06-20 20:55:14 +08:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sessMgr.on("sessionChanged", resetInterfaceByProfile);
|
2014-07-04 20:57:57 +08:00
|
|
|
|
sessMgr.on("currentProfileChanged", resetInterfaceByProfile);
|
2014-06-20 20:55:14 +08:00
|
|
|
|
//初始化状态
|
|
|
|
|
resetInterfaceByProfile();
|
2014-06-12 21:36:05 +08:00
|
|
|
|
})();
|
|
|
|
|
|
2014-07-01 20:07:44 +08:00
|
|
|
|
//系统级别错误捕捉
|
2014-07-02 18:43:28 +08:00
|
|
|
|
(function () {
|
2014-07-01 20:07:44 +08:00
|
|
|
|
document.addEventListener("networkOrCertificationError", function () {
|
|
|
|
|
//TODO UI
|
|
|
|
|
alert("无法访问12306,可能是网络错误或证书错误,请直接访问12306试试!如果正常的话请回来刷新本页!");
|
|
|
|
|
});
|
|
|
|
|
})();
|
|
|
|
|
|
2014-07-25 22:28:51 +08:00
|
|
|
|
//调试
|
|
|
|
|
if (self.location.hash == "#debug")
|
|
|
|
|
$("#chat").show();
|
2014-05-05 19:34:47 +08:00
|
|
|
|
});
|