define(function (require, exports, module) { var queryResult = null; var param = require("../data.js"); var tpl = $("#train_table").doT(); var sessMgr = require("../account/sessionMgr.js"); var ticketQuery = require("./../otn/queryticket.js"); var EventObject = require("../platform/EventObject.js"); var mp = require("./widget_message_popup.js"); var tsquery = require("./ui-train-stop.js"); var datebar = require("./widget_datebar.js"); var parser = require("../platform/parser.js"); var autorefresh = require("./ui-autorefresh.js"); //引入过滤 require("../otn/trainfilter.js").init(); var TrainListObj = function () { var __ = this; EventObject.apply(this); this.renderResultList = function (data) { data = data || queryResult; $("#result").html(tpl(data, { param: param, parser: parser })); }; this.load = function (ui, from, to, date, stu) { ui = ui === undefined ? true : ui; from = from || sessMgr.currentProfile.fromCode; to = to || sessMgr.currentProfile.toCode; date = date || sessMgr.currentProfile.depDate; stu = stu || sessMgr.currentProfile.studentTicket; var extArg = Array.prototype.slice.call(arguments); __.fireEvent("onload", extArg); datebar.go(date, date); var tip = null; if (ui) { tip = new mp.MessagePopup("loading", "正在查询中..."); tip.show(); } ticketQuery .queryTicket(from, to, date, stu) .done(function () { if (tip) { tip.setState("ok", "完成..."); tip.close(); } queryResult = this; __.renderResultList(); __.fireEvent("onloadsuccess", extArg); }).fail(function () { tip.setState("error", "查票失败..."); tip.delayClose(); __.fireEvent("onloadfailed", extArg); }); }; this.init = function () { tsquery.init(); datebar.init(); datebar.on("requireChangeDate", function (e, d) { autorefresh.stop(); //请求切换时间 $("#dep_date").val(d).change(); sessMgr.save(); __.load(); }); }; //监听订票请求 $(document).on("click", "a.ticket-block", function () { var id = this.dataset.traincode; var seatcode = this.dataset.seatcode; var train = _.findWhere(queryResult.original, { id: id }); if (!train) return; __.dispatchEvent("requireSubmitOrder", { train: train, seat: seatcode }); }); return this; }; TrainListObj.prototype = Object.create(EventObject); TrainListObj.constructor = TrainListObj; module.exports = new TrainListObj(); });