var RunQuery = { init: function() { if($('#runquery_page').length == 0){ return false; } var maxDay = (new Date()).addDays(19); Public.formatString = 'M月d日'; Public.setDate(maxDay); Public.calendar.checkCallback = RunQuery.dateChangeCallback; RunQuery.getQueryData(); if(!RunQuery.curData){ window.location.href = 'query.html'; return false; } $('#filter_ok').on('click', function() { Public.hideInnerPage('filter'); $('#query_form [name=filters]').val($('#filter_form').serialize()); RunQuery.hisUpdata(); }); $('#check_left,#check_right').on('click', function() { RunQuery.hisUpdata(); }); $('#filter_cancel').on('click', function() { Public.hideInnerPage('filter'); var bak = $('#query_form [name=filters]').val(), querys = bak.split('&'); Query.setFilter(querys); }); RunQuery.checkLogin(); RunQuery.setFilter(); $('#filter_btn').on('click',function(){ Public.showInnerPage('filter'); }); $('#filter_cancel').on('click',function(){ Public.hideInnerPage(); }); RunQuery.queryTicket(); }, curData:null, getQueryData:function(){ if(!!Public.his.queryObjs[Public.his.querys[0][0]]){ RunQuery.curData = Public.his.queryObjs[Public.his.querys[0][0]]; } }, setFilter:function(){ Query.setFilter(RunQuery.curData['filters'].split('&')); $('.station_title strong').html(RunQuery.curData['startname'] +'→'+RunQuery.curData['endname']); $('#query_form [name=startname]').val(RunQuery.curData['startname']); $('#query_form [name=startcode]').val(RunQuery.curData['startcode']); $('#query_form [name=endname]').val(RunQuery.curData['endname']); $('#query_form [name=endcode]').val(RunQuery.curData['endcode']); $('#query_form [name=type]').val(RunQuery.curData['type']); $('#query_form [name=filters]').val(RunQuery.curData['filters']); var date = new Date(RunQuery.curData['start_date'].replace(/\-/g,'/')); $('#start_date').html(date.format('M月d日') + ' ' + date.day(3)); Public.calendar.setCurDate(date); }, isLogin:false, checkNum: 0, checkLogin: function() { RunQuery.checkNum++; cn12306.isUserLogined(RunQuery.hasLogin, RunQuery.noLogin, function() { RunQuery.noLogin(); // Public.toast("登录时网络错误"); if (RunQuery.checkNum < 2) { RunQuery.checkLogin(); } }); }, hasLogin: function() { RunQuery.isLogin = true; $('body').removeClass('nologin'); $('#login_tip').hide(); }, noLogin: function() { RunQuery.isLogin = false; $('body').addClass('nologin'); $('#login_tip').show(); }, queryTicket : function(){ // cn12306.get("leftTicket/query", setting, "json", function (text) { // var trains = htmlParser.analyzeTicketQueryData(text); // if (showDlg) { // if (!trains.length) { // dlg.setState("block", "未能查询到任何车次,请修改条件或稍后重试。"); // dlg.autoCloseDialog(); // } else { // dlg.closeDialog(); // } // } // callback.call(this, trains); // }, function (text) { // if (showDlg) // dlg.delayExecute(3, runquery, "操作出现网络错误"); // }, "", "leftTicket/init"); var loading = Public.showLoading('正在查票'); cn12306.ajax({ type:"GET", url: "leftTicket/query", data: { "leftTicketDTO.train_date": RunQuery.curData.start_date, "leftTicketDTO.from_station": RunQuery.curData.startcode, "leftTicketDTO.to_station": RunQuery.curData.endcode, "purpose_codes": RunQuery.curData.type == "2" ? "0X00" : "ADULT" }, refer: "leftTicket/init", success: function(json) { // console.log(JSON.stringify(json)); if(json["status"] == true && json["httpstatus"] == 200){ if(json['data'].length > 0){ RunQuery.formatJson(json); RunQuery.formatList(); } } Public.hideLoading(loading); }, error: function(xhr, type) { console.log(xhr,type); Public.hideLoading(loading); } }); }, formatList:function(){ var lists = RunQuery.trainData.trainMap, html = '', obj={}; for (var k in lists) { if(!lists[k]['available']){ continue; } obj = lists[k]; html += '
' + date.format('M月d日') + '不在预售期
预约提醒'); if (offset.left / window.innerWidth > 0.75) { $('#date_tip').attr('class', 'tip_small tip_right'); } else if (offset.left / window.innerWidth < 0.15) { $('#date_tip').attr('class', 'tip_small tip_left'); } else { $('#date_tip').attr('class', 'tip_small'); } } }, hisUpdata:function(){ Public.setHisQuery($('#startStationCode').val() + '-' + $('#endStationCode').val(), $('#query_form').serialize()); Public.setHis(); RunQuery.getQueryData(); RunQuery.queryTicket(); } } // var transferData = function (data, noProcess) { // var result = data; // if (!Array.isArray(result.data) || !result.data.length || !result.data[0].queryLeftNewDTO) { // exports.events.fireEvent("requestFailed"); // }; // var trainData = { raw: result, rawTrainMap: {}, trainMap: {}, auto: null, nextTime: null }; // _.each(result.data, function (t) { // var train = { // id: t.queryLeftNewDTO.train_no, // code: t.queryLeftNewDTO.station_train_code, // available: t.queryLeftNewDTO.canWebBuy === 'Y' ? 1 : 0, // start: { // code: t.queryLeftNewDTO.start_station_telecode, // name: t.queryLeftNewDTO.start_station_name, // }, // from: { // code: t.queryLeftNewDTO.from_station_telecode, // fromStationNo: t.queryLeftNewDTO.from_station_no, // name: t.queryLeftNewDTO.from_station_name, // endpoint: t.queryLeftNewDTO.from_station_telecode == t.queryLeftNewDTO.start_station_telecode, // time: t.queryLeftNewDTO.start_time // }, // to: { // code: t.queryLeftNewDTO.to_station_telecode, // toStationNo: t.queryLeftNewDTO.to_station_no, // name: t.queryLeftNewDTO.to_station_name, // endpoint: t.queryLeftNewDTO.end_station_telecode == t.queryLeftNewDTO.to_station_telecode, // time: t.queryLeftNewDTO.arrive_time // }, // elapsedTime: { // days: t.queryLeftNewDTO.day_difference, // total: t.queryLeftNewDTO.lishi // }, // end: { // code: t.queryLeftNewDTO.end_station_telecode, // name: t.queryLeftNewDTO.end_station_name, // }, // ypinfo: t.queryLeftNewDTO.yp_info, // ypinfo_ex: t.queryLeftNewDTO.yp_ex, // locationCode: t.queryLeftNewDTO.location_code, // controlDay: t.queryLeftNewDTO.control_day, // supportCard: t.queryLeftNewDTO.is_support_card, // saleTime: t.queryLeftNewDTO.sale_time, // secureStr: t.secretStr, // selltime: null, // date: t.queryLeftNewDTO.start_train_date.replace(/(\d{4})(\d{2})(\d{2})/, "$1-$2-$3"), // limitSellInfo: t.buttonTextInfo && t.buttonTextInfo.indexOf("暂售") != -1 ? t.buttonTextInfo.replace(/<[^>]+>/i, "") : null // }; // var kp = getTicketInfo(t.queryLeftNewDTO.yp_info); // train.tickets = kp; // train.ticketMap = _.mapObject(kp, function (e) { return e.code; }); // //起售时间 // var selltimem = /(0*(\d+)月0*(\d+)日)?(\d+)\s*点\s*((\d+)分)?\s*起售/i.exec(t.buttonTextInfo.replace(/<.*?>/g, '')); // if (selltimem) { // train.available = -1; // train.selltime = new Date(); // train.selltime.setHours(parseInt(selltimem[4])); // train.selltime.setMinutes(parseInt(selltimem[6] || "0", 10)); // train.selltime.setSeconds(0); // if (selltimem[1]) { // //带日期 // train.selltime.setMonth(parseInt(selltimem[2]) - 1); // train.selltime.setDate(parseInt(selltimem[3])); // if (train.selltime.getMonth() < new Date().getMonth()) { // train.selltime.setFullYear(train.selltime.getFullYear() + 1); // } // } // } // trainData.rawTrainMap[train.id] = t; // trainData.trainMap[train.id] = train; // }); // trainData.original = _.values(trainData.trainMap); // trainData.available = trainData.original; // trainData.trainCodes = _.pluck(trainData.original, "code"); // trainData.filtered = []; // trainData.include = trainData.available; // // if (!noProcess) { // // //执行车次预过滤。过滤内容:出发地,目标地,时间 // // exports.events.fireEvent("filterTrains", trainData); // // //处理车次 // // exports.events.fireEvent("processTrains", trainData); // // //过滤数据 // // if (trainData.filtered && trainData.filtered.length) { // // //从原始数据中删除 // // var orgMap = _.mapObject(result.data, function (e) { // // return e.queryLeftNewDTO.train_no; // // }); // // var filtered = _.map(trainData.filtered, function (t) { // // return orgMap[t.id]; // // }); // // trainData.rawDataFiltered = _.without.apply(null, [result.data].concat(filtered)); // // result.data = trainData.rawDataFiltered; // // } // // } // return trainData; // };