Light12306/Web12306/js/ui/ui-order-submit-process.js

104 lines
2.5 KiB
JavaScript

define(function (require, exports, module) {
var ps = require("./ui-passenger-selection.js");
var so = require("./ui-submit-order.js");
var param = require("../data.js");
var ui_login = require("./ui-login.js");
var sessMgr = require("../account/sessionMgr.js");
var mp = require("./widget_message_popup.js");
var op = require("../otn/orderprocess.js");
var port = require("../platform/extensionPort.js");
//标记位
//提交参数
var pTrain, pSeat, pStu, pPassengers, pProfile;
var init = function () {
ps.on("passengerSelected", function () {
pPassengers = ps.selectedPassenger;
exports.prepareOrder().done(function () { exports.showConfirmOrderUi(); });
});
so.on("requireResubmitOrder", function () {
exports.prepareOrder().done(function () { exports.showConfirmOrderUi(); });
});
};
exports.start = function (train, seat, profile, passengers) {
if (train) {
pTrain = train;
pSeat = seat;
pProfile = profile;
pStu = profile.studentTicket;
pPassengers = passengers;
}
if (!pTrain)
return;
if (!sessMgr.isLogined) {
ui_login.once("loginSuccess", resumeStart);
ui_login.showLoginDialog();
return;
}
if (!pPassengers || !pPassengers.length)
exports.showPassengerSelectUi();
else {
exports.prepareOrder().done(function () { exports.showConfirmOrderUi(); });
}
};
function resumeStart() {
if (!sessMgr.isPassengerLoaded) {
sessMgr.getPassengers(function() {
exports.start();
});
} else {
exports.start();
}
}
ui_login.on("closeLogin", function () {
ui_login.off("loginSuccess", resumeStart);
});
exports.showPassengerSelectUi = function () {
ps.show(pPassengers, pTrain, pSeat, pStu);
};
exports.showConfirmOrderUi = function () {
so.showOrderUi(pTrain, pProfile, pPassengers);
};
exports.prepareOrder = function () {
var tip = new mp.MessagePopup("loading", "正在准备提交订单,请稍等...");
tip.show();
var def = pProfile.resign ? op.prepareOrder(pTrain, pProfile) : op.fastPrepareOrder(pTrain, pProfile, pPassengers);
def.done(function () {
tip.close();
}).fail(function (data) {
tip.setState("error", data.msg);
tip.delayClose();
so.hide();
if (data.msg.indexOf("未登录") !== -1 || data.msg.indexOf("重新登录") !== -1) {
sessMgr.resetProfile();
//显示登录对话框
exports.start();
}
});
return def;
};
exports.showSuccessUi = function () {
};
exports.showFailedUi = function (msg) {
};
init();
});