2014-07-01 20:07:44 +08:00
|
|
|
|
define(function (require, exports, module) {
|
2014-06-26 22:24:54 +08:00
|
|
|
|
var EventObject = require("../platform/EventObject.js");
|
|
|
|
|
var widget = require("./widget.js");
|
2014-06-27 22:25:42 +08:00
|
|
|
|
var vc_inited = false;
|
|
|
|
|
var mp = require("./widget_message_popup.js");
|
|
|
|
|
var op = require("../otn/orderprocess.js");
|
|
|
|
|
var vc = require("./widget_verifycode.js");
|
2014-07-02 18:43:28 +08:00
|
|
|
|
var param = require("../data.js");
|
2014-07-23 17:32:50 +08:00
|
|
|
|
var media = require("../platform/media.js");
|
|
|
|
|
var share = require("./ui_sns_share.js");
|
2014-08-13 00:14:00 +08:00
|
|
|
|
var port = require("../platform/extensionPort.js");
|
2014-06-27 22:25:42 +08:00
|
|
|
|
//提交参数
|
2014-07-01 20:07:44 +08:00
|
|
|
|
var pTrain, pStu, pPassengers, pProfile;
|
|
|
|
|
var submitDef;
|
2014-06-26 22:24:54 +08:00
|
|
|
|
|
2014-07-02 18:43:28 +08:00
|
|
|
|
//界面
|
|
|
|
|
var ticketPassengerContainer = $("table.ticket-passenger");
|
|
|
|
|
var ticketPassengerTpl = $("#ticket-passenger-template").doT();
|
|
|
|
|
|
2014-07-01 20:07:44 +08:00
|
|
|
|
var SubmitOrderUi = function () {
|
2014-06-26 22:24:54 +08:00
|
|
|
|
var that = this;
|
|
|
|
|
EventObject.apply(this);
|
2014-07-01 20:07:44 +08:00
|
|
|
|
var submitBtn = $("#ticket-submit-info .ticket-submit-info-vc button.button-primary");
|
|
|
|
|
var submitProgress = $("#ticket-submit-info .ticket-submit-status");
|
|
|
|
|
var resubmitBtn = $("#ticket-submit-info .ticket-submit-info-status-failed button.button-primary");
|
2014-06-26 22:24:54 +08:00
|
|
|
|
|
2014-08-13 00:14:00 +08:00
|
|
|
|
var init = function () {
|
2014-07-01 20:07:44 +08:00
|
|
|
|
$("#ticket-submit-info .ticket-submit-vc input:text").keyup(function () {
|
2014-06-27 22:25:42 +08:00
|
|
|
|
if (this.value.length === 4)
|
|
|
|
|
that.submitOrder();
|
|
|
|
|
});
|
2014-07-01 20:07:44 +08:00
|
|
|
|
submitBtn.click(that.submitOrder);
|
|
|
|
|
|
|
|
|
|
//重新提交
|
|
|
|
|
resubmitBtn.click(function () {
|
|
|
|
|
resubmitBtn[0].disabled = true;
|
|
|
|
|
that.fireEvent("requireResubmitOrder");
|
|
|
|
|
});
|
2014-06-26 22:24:54 +08:00
|
|
|
|
};
|
2014-07-01 20:07:44 +08:00
|
|
|
|
this.showOrderUi = function (train, profile, passengers) {
|
2014-06-27 22:25:42 +08:00
|
|
|
|
if (train) {
|
|
|
|
|
pTrain = train;
|
|
|
|
|
pProfile = profile;
|
|
|
|
|
pStu = profile.studentTicket;
|
|
|
|
|
pPassengers = passengers;
|
2014-07-02 18:43:28 +08:00
|
|
|
|
|
|
|
|
|
//显示乘客列表
|
|
|
|
|
ticketPassengerContainer.find("tr:gt(0)").remove().end().append(ticketPassengerTpl(pPassengers, {
|
|
|
|
|
param: param
|
|
|
|
|
}));
|
|
|
|
|
//车次信息
|
|
|
|
|
var ticketInfo = $("#ticket-info");
|
|
|
|
|
ticketInfo.find(".time-info").html(pTrain.date.replace(/(\d{4})-(\d{2})-(\d{2})/, "$1年$2月$3日") + " " + pTrain.from.time + "发车");
|
|
|
|
|
ticketInfo.find(".from-station").html(pTrain.from.name);
|
|
|
|
|
ticketInfo.find(".to-station").html(pTrain.to.name);
|
|
|
|
|
ticketInfo.find(".train-no").html(pTrain.code + "次");
|
2014-06-27 22:25:42 +08:00
|
|
|
|
}
|
|
|
|
|
if (!pTrain)
|
|
|
|
|
return;
|
|
|
|
|
|
2014-07-01 20:07:44 +08:00
|
|
|
|
if (!$("#ticket-submit-container:visible").length) {
|
|
|
|
|
widget.showFloatDialog($("#ticket-submit-container"));
|
|
|
|
|
}
|
|
|
|
|
$("#ticket-submit-info").find(">section").hide().first().show().find(":text").val("")[0].select();
|
|
|
|
|
submitProgress.hide();
|
2014-07-14 17:58:46 +08:00
|
|
|
|
|
|
|
|
|
$("#ticket-submit-info .ticket-submit-vc").attr("data-target", profile.resign ? "order" : "login");
|
2014-06-27 22:25:42 +08:00
|
|
|
|
if (!vc_inited) {
|
|
|
|
|
vc_inited = true;
|
|
|
|
|
vc.load($("#ticket-submit-info .ticket-submit-vc"));
|
|
|
|
|
} else {
|
2014-07-01 20:07:44 +08:00
|
|
|
|
$("#ticket-submit-info .ticket-submit-vc span").click();
|
2014-06-27 22:25:42 +08:00
|
|
|
|
}
|
|
|
|
|
};
|
2014-07-01 20:07:44 +08:00
|
|
|
|
this.hide = function () {
|
|
|
|
|
if ($("#ticket-submit-container:visible").length) {
|
|
|
|
|
widget.hideFloatDialog($("#ticket-submit-container"));
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
this.submitOrder = function () {
|
2014-07-23 17:32:50 +08:00
|
|
|
|
media.stop();
|
|
|
|
|
|
2014-07-01 20:07:44 +08:00
|
|
|
|
var randCode = $("#ticket-submit-info .ticket-submit-vc input:text").val();
|
|
|
|
|
if (randCode.length !== 4) {
|
|
|
|
|
mp.showMessagePopup("error", "请输入验证码...");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (submitBtn[0].disabled || submitDef)
|
|
|
|
|
return;
|
|
|
|
|
|
2014-08-08 20:46:37 +08:00
|
|
|
|
//track
|
|
|
|
|
port.track(param.trackTypes.SUBMIT_ORDER);
|
|
|
|
|
|
2014-07-01 20:07:44 +08:00
|
|
|
|
submitBtn[0].disabled = true;
|
|
|
|
|
submitProgress.removeClass().addClass("ticket-submit-status ticket-submit-status-loading").show().find("span").html("正在提交订单中...");
|
|
|
|
|
|
2014-07-14 17:58:46 +08:00
|
|
|
|
submitDef = pProfile.resign ? op.submitOrder(pTrain, pProfile, pPassengers, randCode) : op.fastSubmitOrder(pTrain, pProfile, pPassengers, randCode);
|
2014-07-01 20:07:44 +08:00
|
|
|
|
submitDef.done(function (data) {
|
|
|
|
|
that.fireEvent("orderSuccess", data);
|
|
|
|
|
var dom = $("#ticket-submit-info").find("section.ticket-submit-info-vc").hide().end().find("section.ticket-submit-info-status-ok").show();
|
|
|
|
|
dom.find("div>p:eq(0) span").html(data.orderId);
|
|
|
|
|
submitProgress.removeClass().addClass("ticket-submit-status ticket-submit-status-ok");
|
|
|
|
|
submitProgress.find("span").html("订票成功!订单号为 " + data.orderId);
|
2014-07-23 17:32:50 +08:00
|
|
|
|
share.makeWeiboShare(document.getElementById("lnkShareWb"), null, "我刚在#猎豹浏览器#上用#订票助手#抢到了" + pPassengers.length + "张车票!你的车票买到了吗?", null);
|
2014-07-01 20:07:44 +08:00
|
|
|
|
submitBtn[0].disabled = false;
|
2014-08-08 20:46:37 +08:00
|
|
|
|
|
|
|
|
|
//track
|
|
|
|
|
port.track(param.trackTypes.SUBMIT_ORDER_SUCCESS);
|
2014-07-01 20:07:44 +08:00
|
|
|
|
});
|
|
|
|
|
submitDef.fail(function (data) {
|
|
|
|
|
that.fireEvent("orderFailed", data);
|
|
|
|
|
submitProgress.removeClass().addClass("ticket-submit-status ticket-submit-status-error");
|
|
|
|
|
submitProgress.find("span").html("订票失败...错误信息:" + data.msg);
|
|
|
|
|
submitBtn[0].disabled = false;
|
2014-06-27 22:25:42 +08:00
|
|
|
|
|
2014-07-01 20:07:44 +08:00
|
|
|
|
if (data.msg.indexOf("验证码") === -1) {
|
|
|
|
|
//切换至错误页面
|
|
|
|
|
var dom = $("#ticket-submit-info").find("section.ticket-submit-info-vc").hide().end().find("section.ticket-submit-info-status-failed").show();
|
|
|
|
|
dom.find("div>p:eq(0) span").html(data.msg);
|
|
|
|
|
resubmitBtn[0].disabled = false;
|
|
|
|
|
} else {
|
|
|
|
|
$("#ticket-submit-info .ticket-submit-vc span").click();
|
|
|
|
|
}
|
2014-08-08 20:46:37 +08:00
|
|
|
|
|
|
|
|
|
//track
|
|
|
|
|
port.track(param.trackTypes.SUBMIT_ORDER_FAILED);
|
2014-07-01 20:07:44 +08:00
|
|
|
|
});
|
|
|
|
|
submitDef.progress(function (data) {
|
|
|
|
|
submitProgress.find("span").html(data.msg);
|
|
|
|
|
});
|
|
|
|
|
submitDef.always(function () {
|
|
|
|
|
submitDef = null;
|
|
|
|
|
});
|
2014-06-26 22:24:54 +08:00
|
|
|
|
};
|
2014-08-13 00:14:00 +08:00
|
|
|
|
init();
|
2014-06-26 22:24:54 +08:00
|
|
|
|
|
|
|
|
|
return this;
|
|
|
|
|
};
|
|
|
|
|
SubmitOrderUi.prototype = Object.create(EventObject);
|
|
|
|
|
SubmitOrderUi.constructor = SubmitOrderUi;
|
|
|
|
|
|
|
|
|
|
module.exports = new SubmitOrderUi();
|
|
|
|
|
});
|