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(); });