Conflicts:
	Mobile12306New/js/init.js
This commit is contained in:
iFish 2014-08-21 18:33:05 +08:00
commit 37ad0c7717
11 changed files with 1062 additions and 15 deletions

View File

@ -21,6 +21,7 @@ a{color:#fa8c13;}
input[type=checkbox],
.icon_change,
.icon_edit,
.icon_left,
.icon_right,
.icon_back,
@ -36,7 +37,7 @@ input[type=radio]{-webkit-appearance:none;border-radius:50%; width:20px; height:
input[type=radio]:checked{border-color:#7fbc3a;}
input[type=radio]:checked:after{content:''; display:block; width:12px; height:12px; margin:3px; background:#7fbc3a; border-radius:50%;}
.mb{margin-bottom:15px;}
.wrap { width: 100%; overflow: hidden }
@ -73,6 +74,8 @@ input[type=radio]:checked:after{content:''; display:block; width:12px; height:12
.icon_user2{ display:inline-block; vertical-align:middle; width:24px; height:24px; background-position:0 -400px;}
.icon_user2{background-position:0 -350px;}
.icon_edit{ display:inline-block;width:19px; height:19px; background-position:0 -550px; vertical-align:middle; margin-top:-3px;}
.icon_sure{ width:24px; height:24px; display:inline-block; position:relative; vertical-align:middle;}
.icon_sure:before{content:''; position: absolute; width:20px; height:10px; border:#FFF solid; border-width:0 0 2px 2px; -webkit-transform:rotate(-45deg) translate3d(0,0,0); margin:2px 0 0 -11px;}
@ -281,16 +284,23 @@ input[type=radio]:checked:after{content:''; display:block; width:12px; height:12
/**/
.info{ margin:5px 0; background:#FFF;}
.info_title{padding:0 10px; font-size:0.9375rem; color:#FFF; background:#fa8c13; line-height:2.2em;}
.stations_info{padding:15px;}
.stations_info:after{ content:'';display:block; width:100%; height:0; overflow:hidden; clear:both;}
.station_info{float:left; width:50%; -webkit-box-sizing:border-box; box-sizing:border-box; text-align:center; font-size:0.9375rem; position:relative;}
.station_info:first-child{border-right:1px solid #ddd;}
.station_info:first-child:after{ position:absolute; content:''; width:10px; height:10px; top:50%; right:0; margin:-5px -6px 0 0; border:#ddd solid; border-width:0 1px 1px 0; background:#FFF; -webkit-transform:rotate(-45deg);}
.station_info strong{display:block; font-size:1.5625rem; color:#fa8c13; margin-bottom:8px;}
.passenger{border:#ddd solid; border-width:1px 0; padding:0 15px; background:#FFF; margin-bottom:15px;}
.passenger_list li{ border-bottom:#ddd solid 1px; padding:5px 0; font-size:0.75rem;}
.passenger_list li .pull_left{line-height:1.5em; color:#b7b7b7;}
.passenger_list li .pull_left strong{font-size:0.9375rem; margin-right:5px; color:#787878;}
.passenger_list li .pull_right{line-height:3em;}
.add_block{display:block; text-align:center; height:50px; line-height:50px;font-size:0.9375rem; color:#787878}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -161,10 +161,10 @@ var cn12306 = {
url:'login/checkUser',
refer:'login/init',
success:function(){
setTimeout(cn12306.checkeUser,5000);
setTimeout(cn12306.checkeUser,60000);
},
error:function(){
setTimeout(cn12306.checkeUser,5000);
setTimeout(cn12306.checkeUser,60000);
}
});
}

View File

@ -0,0 +1,217 @@
var CheckStaion = {
runing: false,
objs: {
"a": [],
"b": [],
"c": [],
"d": [],
"e": [],
"f": [],
"g": [],
"h": [],
"i": [],
"j": [],
"k": [],
"l": [],
"m": [],
"n": [],
"o": [],
"p": [],
"q": [],
"r": [],
"s": [],
"t": [],
"u": [],
"v": [],
"w": [],
"x": [],
"y": [],
"z": []
},
objsZh: {},
hotList: [],
callback: null,
init: function() {
if (CheckStaion.runing) {
return false;
}
CheckStaion.runing = true;
CheckStaion.formatStation();
CheckStaion.setHtml();
CheckStaion.bindEvent();
},
formatStation: function() {
CheckStaion.names = WIN["station_names"].substr(1);
CheckStaion.stationList = CheckStaion.names.split('@');
var sub = '',
arr = [];
for (var i = 0; i < CheckStaion.stationList.length; i++) {
sub = CheckStaion.stationList[i][0].toLowerCase();
if (!CheckStaion.objs[sub]) {
CheckStaion.objs[sub] = [];
}
arr = CheckStaion.stationList[i].split('|');
CheckStaion.objs[sub].push(arr);
sub = arr[1][0];
if (!CheckStaion.objsZh[sub]) {
CheckStaion.objsZh[sub] = [];
}
CheckStaion.objsZh[sub].push(arr);
};
CheckStaion.hotList = WIN["favorite_names"].substr(1).split('@');
},
setHtml: function() {
var html = '<div class="fixed_box" id="search_station"><header class="header"><div class="search_box"><a href="javascript:;" class="search_cancel" id="station_cancel">取消</a><div class="search_ipt"><input type="search" name="" placeholder="搜索车站" id="station_search" class="search_input" autocomplete="off"><i class="icon_remove_s"></i></div></div></header>';
// '<div class="box_insert">\
// <div class="form_title">最近查找</div>\
// <ul class="station_list">\
// <li><a href="javascript:;" title="北京" data-code="BJP">北京</a></li>\
// <li><a href="javascript:;" title="上海" data-code="SHH">上海</a></li>\
// <li><a href="javascript:;" title="天津" data-code="TJP">天津</a></li>\
// </ul></div>';
if (CheckStaion.hotList.length > 0) {
var arr = [];
html += '<div class="form_title">热门</div><div class="box"><ul class="station_list">';
for (var i = 0, len = CheckStaion.hotList.length; i < len; i++) {
arr = CheckStaion.hotList[i].split('|');
html += '<li><a href="javascript:;" title="' + arr[1] + '" data-code="' + arr[2] + '">' + arr[1] + '</a></li>';
};
html += '</ul></div><div class="suggest" id="station_suggest"><ul></ul></div></div>';
};
$('body').append(html);
},
show: function() {
$('#search_station').addClass('fixed_box_show');
},
hide: function() {
$('#search_station').removeClass('fixed_box_show');
},
bindEvent: function() {
//取消
$('#station_cancel').on('click', function() {
CheckStaion.hide();
if (CheckStaion.cancelCallback) {
CheckStaion.cancelCallback();
}
});
$('#station_search').on('input', function() {
var text = $(this).val(),
list;
if ($.trim(text)) {
CheckStaion.showSuggest(CheckStaion.searchKey($.trim(text).toLowerCase()));
}else{
$('#station_suggest ul').html('');
$('#station_suggest').hide();
}
});
$('#search_station [data-code]').live('click', function(events, handler) {
var name = $(this).attr('title'),
code = $(this).attr('data-code');
if (CheckStaion.callback) {
CheckStaion.callback(name, code);
}
$('#station_suggest ul').html('');
$('#station_suggest').hide();
$('#station_search').val('');
});
},
showSuggest: function(list) {
if (!list || list.length == 0) {
$('#station_suggest ul').html('');
$('#station_suggest').hide();
return;
}
var str = '';
// for (var i = 0, len = list.length>6?6:list.length; i < len; i++) {
for (var i = 0, len = list.length; i < len; i++) {
str += '<li><a href="javascript:;" title="' + list[i][1] + '" data-code="' + list[i][2] + '">' + list[i][1] + '</a></li>';
};
$('#station_suggest ul').html(str);
$('#station_suggest').show();
},
getSuggestList: function(text) {
if (!text) {
return [];
}
if (/^[\u4E00-\u9FA5]+$/.test(text[0])) {
return CheckStaion.searchKeyZh(text);
} else {
return CheckStaion.searchKey(text);
}
},
searchKey: function(text) {
if (!CheckStaion.objs[text[0]]) {
return [];
}
var list = CheckStaion.objs[text[0]],
arr = [],
arr1 = [],
arr2 = [],
arr3 = [];
if (text.length == 0) {
return list;
}
for (var i = 0, len = list.length; i < len; i++) {
if (list[i][4].indexOf(text) != -1) {
if (list[i][4] == text) {
arr1.unshift(list[i]);
} else {
arr1.push(list[i]);
}
} else if (list[i][3].indexOf(text) != -1) {
if (list[i][3] == text) {
arr2.unshift(list[i]);
} else {
arr2.push(list[i]);
}
} else if (list[i][0].indexOf(text) != -1) {
if (list[i][0] == text) {
arr3.unshift(list[i]);
} else {
arr3.push(list[i]);
}
}
};
arr = arr1.sort(CheckStaion.sort).concat(arr2.sort(CheckStaion.sort), arr3.sort(CheckStaion.sort));
return arr;
},
searchKeyZh: function(text) {
if (!CheckStaion.objsZh[text[0]]) {
return [];
}
var list = CheckStaion.objsZh[text[0]],
arr = [];
if (text.length == 1) {
return list;
}
for (var i = 0, len = list.length; i < len; i++) {
if (list[i][1].indexOf(text) != -1) {
arr.push(list[i]);
};
};
return arr.sort(CheckStaion.sort);
},
sort: function(st1, st2) {
return parseInt(st1[5]) > parseInt(st2[5]) ? 1 : -1;
}
}

View File

@ -0,0 +1 @@
var favorite_names ='@bji|北京|BJP|0@sha|上海|SHH|1@tji|天津|TJP|2@cqi|重庆|CQW|3@csh|长沙|CSQ|4@cch|长春|CCT|5@cdu|成都|CDW|6@fzh|福州|FZS|7@gzh|广州|GZQ|8@gya|贵阳|GIW|9@hht|呼和浩特|HHC|10@heb|哈尔滨|HBB|11@hfe|合肥|HFH|12@hzh|杭州|HZH|13@hko|海口|VUQ|14@jna|济南|JNK|15@kmi|昆明|KMM|16@lsa|拉萨|LSO|17@lzh|兰州|LZJ|18@nni|南宁|NNZ|19@nji|南京|NJH|20@nch|南昌|NCG|21@sya|沈阳|SYT|22@sjz|石家庄|SJP|23@tyu|太原|TYV|24@wlq|乌鲁木齐|WMR|25@wha|武汉|WHN|26@xnx|西宁西|XXO|27@xan|西安|XAY|28@ych|银川|YIJ|29@zzh|郑州|ZZF|30@szh|深圳|SZQ|shenzhen|sz|31@xme|厦门|XMS|xiamen|xm|32';

View File

@ -639,4 +639,5 @@ bootStrap.done(function () {
Login.init();
Query.init();
RunQuery.init();
Perfect.init();
});

View File

@ -123,7 +123,7 @@ c=cn12306.getFullUri(c||"loginAction.do?method=init");var e=new window.XMLHttpRe
e.setRequestHeader(f+"Referer",c);e.setRequestHeader(f+"User-Agent","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)");e.setRequestHeader(f+"Origin",/(https?:\/\/[^\/]+\/)/.exec(d)[1]);e.send(null)},getAjaxUrl:function(a){console.log(a);return isAndLiebao||isIos?cn12306.getFullUri(a):baseProxyUrl},getHeaders:function(a,b){a=cn12306.getFullUri(a);b=cn12306.getFullUri(b);var c={},d=isAndLiebao?"":"Fish-";c[d+"User-Agent"]="Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)";
c[d+"Origin"]=/(https?:\/\/[^\/]+\/)/.exec(a)[1];c[d+"RawUrl"]=a;c[d+"Referer"]=b;!isAndLiebao&&!isIos&&(c["Fish-RawUrl"]=a);return c},checkRandCode:function(a,b,c,d,e){var f=cn12306.getFullUri("passcodeNew/checkRandCodeAnsyn");e=cn12306.getFullUri(e);var g=cn12306.getHeaders(f,e);$.ajax({type:"POST",url:cn12306.getAjaxUrl(f),data:{randCode:b,rand:a},dataType:"json",refer:e,headers:g,success:function(a){"function"==typeof c&&c(a)},error:function(a,b){"function"==typeof d&&d(a,b)}})},isUserLogined:function(a,
b,c){cn12306.ajax({url:"login/checkUser",data:{_json_att:""},refer:"leftTicket/init",success:function(c){c&&c.data&&c.data.flag?(c.attributes&&(sessionStorage.useratts=c.attributes),cn12306.checking||cn12306.checkeUser(),"function"==typeof a&&a()):"function"==typeof b&&b()},error:function(a,b){"function"==typeof c&&c()}})},ajax:function(a){var b={type:"POST",dataType:"json"};$.extend(b,a||{});b.headers=cn12306.getHeaders(b.url,b.refer);"undefined"!=typeof b.url&&(b.url=cn12306.getAjaxUrl(cn12306.getFullUri(b.url)));
"undefined"!=typeof b.refer&&(b.refer=cn12306.getAjaxUrl(b.refer));$.ajax(b)},checking:!1,checkeUser:function(){cn12306.checking=!0;cn12306.ajax({url:"login/checkUser",refer:"login/init",success:function(){setTimeout(cn12306.checkeUser,5E3)},error:function(){setTimeout(cn12306.checkeUser,5E3)}})}};(function(a){function b(a){this.date=a||new Date;var b=0,d=0,e=(this.date-f)/864E5;this.daycyl=e+40;this.moncyl=14;for(a=1900;2050>a&&0<e;a++){b=void 0;d=348;for(b=32768;8<b;b>>=1)d+=c[a-1900]&b?1:0;d+=c[a-1900]&15?c[a-1900]&65536?30:29:0;e-=d;this.moncyl+=12}0>e&&(e+=d,a--,this.moncyl-=12);this.year=a;this.yearcyl=a-1864;b=c[a-1900]&15;this.isleap=!1;for(a=1;13>a&&0<e;a++)0<b&&a==b+1&&!1==this.isleap?(--a,this.isleap=!0,d=c[this.year-1900]&15?c[this.year-1900]&65536?30:29:0):d=c[this.year-1900]&
"undefined"!=typeof b.refer&&(b.refer=cn12306.getAjaxUrl(b.refer));$.ajax(b)},checking:!1,checkeUser:function(){cn12306.checking=!0;cn12306.ajax({url:"login/checkUser",refer:"login/init",success:function(){setTimeout(cn12306.checkeUser,6E4)},error:function(){setTimeout(cn12306.checkeUser,6E4)}})}};(function(a){function b(a){this.date=a||new Date;var b=0,d=0,e=(this.date-f)/864E5;this.daycyl=e+40;this.moncyl=14;for(a=1900;2050>a&&0<e;a++){b=void 0;d=348;for(b=32768;8<b;b>>=1)d+=c[a-1900]&b?1:0;d+=c[a-1900]&15?c[a-1900]&65536?30:29:0;e-=d;this.moncyl+=12}0>e&&(e+=d,a--,this.moncyl-=12);this.year=a;this.yearcyl=a-1864;b=c[a-1900]&15;this.isleap=!1;for(a=1;13>a&&0<e;a++)0<b&&a==b+1&&!1==this.isleap?(--a,this.isleap=!0,d=c[this.year-1900]&15?c[this.year-1900]&65536?30:29:0):d=c[this.year-1900]&
65536>>a?30:29,!0==this.isleap&&a==b+1&&(this.isleap=!1),e-=d,!1==this.isleap&&this.moncyl++;0==e&&(0<b&&a==b+1)&&(this.isleap?this.isleap=!1:(this.isleap=!0,--a,--this.moncyl));0>e&&(e+=d,--a,--this.moncyl);this.month=a;this.day=e+1}var c=[19416,19168,42352,21717,53856,55632,91476,22176,39632,21970,19168,42422,42192,53840,119381,46400,54944,44450,38320,84343,18800,42160,46261,27216,27968,109396,11104,38256,21234,18800,25958,54432,59984,28309,23248,11104,100067,37600,116951,51536,54432,120998,46416,
22176,107956,9680,37584,53938,43344,46423,27808,46416,86869,19872,42448,83315,21200,43432,59728,27296,44710,43856,19296,43748,42352,21088,62051,55632,23383,22176,38608,19925,19152,42192,54484,53840,54616,46400,46496,103846,38320,18864,43380,42160,45690,27216,27968,44870,43872,38256,19189,18800,25776,29859,59984,27480,21952,43872,38613,37600,51552,55636,54432,55888,30034,22176,43959,9680,37584,51893,43344,46240,47780,44368,21977,19360,42416,86390,21168,43312,31060,27296,44368,23378,19296,42726,42208,
53856,60005,54576,23200,30371,38608,19415,19152,42192,118966,53840,54560,56645,46496,22224,21938,18864,42359,42160,43600,111189,27936,44448],d="\u65e5\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d\u5341".split(""),e=["\u521d","\u5341","\u5eff","\u5345","\u3000"],f=new Date(1900,0,31);b.prototype.getLunarMonth=function(){var a="",a=10<this.month?a+("\u5341"+d[this.month-10]):a+d[this.month],a=a+"\u6708";"\u5341\u4e8c\u6708"==a?a="\u814a\u6708":"\u4e00\u6708"==a&&(a="\u6b63\u6708");return a};
@ -178,4 +178,4 @@ endpoint:t.queryLeftNewDTO.end_station_telecode==t.queryLeftNewDTO.to_station_te
secureStr:t.secretStr,selltime:null,date:t.queryLeftNewDTO.start_train_date.replace(/(\d{4})(\d{2})(\d{2})/,"$1-$2-$3"),limitSellInfo:t.buttonTextInfo&&-1!=t.buttonTextInfo.indexOf("\u6682\u552e")?t.buttonTextInfo.replace(/<[^>]+>/i,""):null};c=RunQuery.getTicketInfo(t.queryLeftNewDTO.yp_info);a.tickets=c;a.ticketMap=Util.mapObject(c,function(a){return a.code});a.ticketMapSort=Util.sortType(a.ticketMap);console.log(a.ticketMapSort);if(c=/(0*(\d+)\u67080*(\d+)\u65e5)?(\d+)\s*\u70b9\s*((\d+)\u5206)?\s*\u8d77\u552e/i.exec(t.buttonTextInfo.replace(/<.*?>/g,
"")))a.available=-1,a.selltime=new Date,a.selltime.setHours(parseInt(c[4])),a.selltime.setMinutes(parseInt(c[6]||"0",10)),a.selltime.setSeconds(0),c[1]&&(a.selltime.setMonth(parseInt(c[2])-1),a.selltime.setDate(parseInt(c[3])),a.selltime.getMonth()<(new Date).getMonth()&&a.selltime.setFullYear(a.selltime.getFullYear()+1));d.rawTrainMap[a.id]=t;d.trainMap[a.id]=a}RunQuery.trainData=d},dateChangeCallback:function(a){var b=a.date.getTime();b>=Public.calendar.minDate.date.getTime()&&b<=Public.calendar.maxDate.date.getTime()?
($("#date_tip").hide(),Public.hideInnerPage("date_box"),$("#start_date").html(Public.calendar.curDate.format(Public.formatString)+" "+Public.calendar.curDate.day(3)),$("#start_date_val").val(Public.calendar.curDate.format("yyyy-MM-dd")),RunQuery.hisUpdata(),console.log(a)):(b=$("a.cur",Public.calendar.wrap).offset(),$("#date_tip").css({left:b.left,top:b.top,display:"block"}).html("<p>"+a.format("M\u6708d\u65e5")+'\u4e0d\u5728\u9884\u552e\u671f</p><a href="#" class="btn btn_m btn_success">\u9884\u7ea6\u63d0\u9192</a>'),
0.75<b.left/window.innerWidth?$("#date_tip").attr("class","tip_small tip_right"):0.15>b.left/window.innerWidth?$("#date_tip").attr("class","tip_small tip_left"):$("#date_tip").attr("class","tip_small"))},hisUpdata:function(){Public.setHisQuery($("#startStationCode").val()+"-"+$("#endStationCode").val(),$("#query_form").serialize());Public.setHis();RunQuery.getQueryData();RunQuery.queryTicket()}};$().ready(function(){Public.init();Login.init();Query.init();RunQuery.init()});
0.75<b.left/window.innerWidth?$("#date_tip").attr("class","tip_small tip_right"):0.15>b.left/window.innerWidth?$("#date_tip").attr("class","tip_small tip_left"):$("#date_tip").attr("class","tip_small"))},hisUpdata:function(){Public.setHisQuery($("#startStationCode").val()+"-"+$("#endStationCode").val(),$("#query_form").serialize());Public.setHis();RunQuery.getQueryData();RunQuery.queryTicket()}};$().ready(function(){Public.init();Login.init();Query.init();RunQuery.init();Perfect.init()});

View File

@ -0,0 +1,52 @@
var Perfect = {
init : function(){
if($('#perfect_page').length == 0){
return false;
}
Perfect.checkLogin();
},
getPassenger:function(){
cn12306.ajax({
url:'confirmPassenger/getPassengerDTOs',
refer:'leftTicket/init',
success:function(data){
if(data['status'] && Array.isArray(data["data"]["normal_passengers"]) && data["data"]["normal_passengers"].length > 0){
Perfect.formatPassenger(data["data"]["normal_passengers"]);
}
},
error:function(){
console.log(err);
}
})
},
formatPassenger:function(lists){
for (var i = 0; i < lists.length; i++) {
if(Util.canPassageAddToOrder(lists[i])){
lists[i]['key'] = lists[i]['passenger_type'] + "$" + lists[i]['passenger_name'] + "$" + lists[i]['passenger_id_type_code'] + "$" + lists[i]['passenger_id_no'];
}
};
console.log(lists);
},
isLogin:false,
checkNum: 0,
checkLogin: function() {
Perfect.checkNum++;
cn12306.isUserLogined(Perfect.hasLogin, Perfect.noLogin, function() {
Perfect.noLogin();
if (Perfect.checkNum < 2) {
Perfect.checkLogin();
}
});
},
hasLogin: function() {
Perfect.isLogin = true;
$('body').removeClass('nologin');
$('#login_tip').hide();
Perfect.getPassenger();
},
noLogin: function() {
Perfect.isLogin = false;
$('body').addClass('nologin');
$('#login_tip').show();
}
}

View File

@ -0,0 +1,450 @@
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 += '<li>';
/*第1行*/
html += '<div class="line no_border">';
html += '<strong class="pull_right text_underline text_lg" data-id="'+obj["id"]+'">'+obj["code"]+'</strong>';
html += '<strong class="text_warning text_lg link_label">'+obj["from"]["time"]+'</strong>';
html += '<span class="text_lg">';
if(obj["from"]["code"] == obj["start"]["code"]){
html+='<i class="text_label">始</i>';
}
html += obj["from"]["name"]+'</span>';
html += '</div>';
/*第2行*/
html += '<div class="line">';
ls = obj["elapsedTime"]['total'].split(':');
html += '<span class="pull_right text_gray">'+ (!!ls[0]?ls[0]+'小时':'')+(!!ls[1]?ls[1]+'分':'0分')+'</span>';
html += '<span class="text_lg link_label">';
html += obj["to"]["time"]+'</span>';
html += '<span class="text_lg">'
if(obj["to"]["code"] == obj["end"]["code"]){
html+='<i class="text_label">终</i>';
}
html += obj["to"]["name"]+'</span>';
html += '</div>';
/*输出席别*/
/*商务坐*/
for (var i = 0; i < obj['ticketMapSort'].length; i++) {
obj['ticketMapSort'][i];
if(obj['ticketMapSort'][i]["count"] == 0){
continue;
}
html += '<div class="line"><span class="pull_right">';
if(obj['ticketMapSort'][i]["count"]=='有'){
html+='<span class="text_warning">有</span>';
}else{
html+='<span class="text_warning">'+obj['ticketMapSort'][i]["count"]+'</span>';
html+='<span class="text_gray">张</span>';
}
html+='<a href="javascript:;" class="btn btn_success" data-traincode="'+obj["id"]+'" data-seatcode="'+obj['ticketMapSort'][i]["code"]+'">抢票</a>';
html+='</span>';
html+='<span class="link_label">'+obj['ticketMapSort'][i]['name']+'</span>';
html+='<span class="text_gray">'+(obj['ticketMapSort'][i]['price']/10)+'元</span>';
html+='</div>';
};
html+='</li>';
};
$('#train_list').html(html);
$('.station_title span').html('共&nbsp;'+ $('#train_list li').length +'&nbsp;趟列车');
},
getTicketInfo:function (v) {
var data = [], info = v.indexOf("#") === -1 ? v : /getSelected\(['"](.*?)['"]\)/i.exec(v)[1].split('#')[11],
match = info.match(/([A-Z\d])0*?([\*\d]{5})0*?(\d{4})/gi);
for (var j in match) {
var m = /([A-Z\d])0*?([\*\d]{5})0*?(\d{4})/i.exec(match[j]);
var sc = m[1];
var sp = m[2][0] == '*' ? null : parseInt(m[2], 10);
var st = parseInt(m[3], 10);
var seat = { code: sc, name: Util.toSeatTypeName(sc), price: sp };
if (st < 3000) {
seat.count = st;
//TODO 二等软座提交是否和二等座一样都用的MO
//一等软座 7 二等软座 8
if (sc === "7") {
data.push({ code: 'M', name: Util.toSeatTypeName('M'), price: sp, count: st });
}
else if (sc === "8") {
data.push({ code: 'O', name: Util.toSeatTypeName('O'), price: sp, count: st });
} else {
data.push(seat);
}
} else {
seat.count = st - 3000;
seat.code = '0';
seat.name = "无座";
data.push(seat);
}
};
return data;
},
trainData:null,
formatJson : function(data){
if(!Array.isArray(data['data']) && !data['data'].length){
return null;
}
var lists = data['data'],train,kp,selltimem,trainData={ raw: data, rawTrainMap: {}, trainMap: {}, auto: null, nextTime: null };
for (var i = 0; i < lists.length; i++) {
t = lists[i];
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
};
kp = RunQuery.getTicketInfo(t["queryLeftNewDTO"]['yp_info']);
train.tickets = kp;
train.ticketMap = Util.mapObject(kp, function (e) { return e.code; });
train.ticketMapSort = Util.sortType(train.ticketMap);
console.log(train.ticketMapSort);
// for (var i = 0; i < train.ticketMapSort.length; i++) {
// if(train.ticketMapSort[i]['count'] == 0){
// train.ticketMapSort.splice(i,1);
// i--;
// }
// };
// //起售时间
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;
};
RunQuery.trainData = trainData;
},
dateChangeCallback: function(date) {
var time = date.date.getTime();
if (time >= Public.calendar.minDate.date.getTime() && time <= Public.calendar.maxDate.date.getTime()) {
$('#date_tip').hide();
Public.hideInnerPage('date_box');
$('#start_date').html(Public.calendar.curDate.format(Public.formatString) + ' ' + Public.calendar.curDate.day(3));
$('#start_date_val').val(Public.calendar.curDate.format('yyyy-MM-dd'));
RunQuery.hisUpdata();
console.log(date);
} else {
var offset = $('a.cur', Public.calendar.wrap).offset();
$('#date_tip').css({
'left': offset.left,
'top': offset.top,
'display': 'block'
}).html('<p>' + date.format('M月d日') + '不在预售期</p><a href="#" class="btn btn_m btn_success">预约提醒</a>');
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;
// };

215
Mobile12306New/perfect.html Normal file
View File

@ -0,0 +1,215 @@
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1, minimum-scale=1.0, maximum-scale=1.0,user-scalable=no, minimal-ui">
<meta name="format-detection" content="telephone=no">
<title>无标题文档</title>
<!-- <script src="https://kyfw.12306.cn/otn/resources/js/framework/station_name.js" type="text/javascript"></script> -->
<script src="http://app.fishlee.net/scripts/12306/query/station_name.js" type="text/javascript"></script>
<script src="js/favorite_name.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="css/css.css">
</head>
<body id="perfect_page">
<div class="wrap" id="wrap">
<header class="header">
<div class="h_l"><a href="javascript:;" data-fn="back"><i class="icon_back"></i></a></div>
<span class="h_t">预定车票</span>
</header>
<div class="main">
<div class="box"><div class="info">
<div class="info_title"><span class="pull_right">K2341</span><span>2014-8-6 星期三</span></div>
<div class="stations_info"><div class="station_info"><strong>北京</strong>00:47</div>
<div class="station_info"><strong>呼和浩特</strong>10:47</div></div>
</div></div>
<div class="passenger">
<ul class="passenger_list">
<li class="clearfix"><span class="pull_left"><strong>房祖名</strong>成人票<br>
421223198506217292</span><span class="pull_right">软卧312元&nbsp;<a href="#"><i class="icon_edit"></i></a></span></li>
</ul>
<a href="#" class="add_block">添加乘车人</a> </div>
<div class="box_insert">
<div class="form"><div class="form_line">
<label class="form_label">验证码</label>
<span class="form_cardimg"><img data-type="sjrand" id="randcodeimg" data-loading="images/loading.gif" src="images/loading.gif" alt="点击刷新验证码"></span>
<div class="ipt_wrap">
<input class="ipt" type="text" id="randcode" name="randcode" placeholder="不区分大小写" data-nostore="1" maxlength="4">
</div>
</div>
<div class="form_btns"><button type="submit" id="btnLogin" class="btn btn_success btn_block btn_lg">立即预订</button></div>
</div>
</div>
</div>
</div>
<div class="fixed_box" id="filter">
<header class="header">
<div class="h_l"><a href="javascript:;" id="filter_cancel">取消</a></div>
<span class="h_t">选择条件</span>
<div class="h_r"><a href="javascript:;" id="filter_ok">确定</a></div>
</header>
<form id="filter_form" action="">
<div class="form_title">选择类型</div>
<div class="box_insert query_box checks">
<label class="query_checkbox">
<input name="train_type" type="checkbox" checked value="all">
全选 </label>
<label class="query_checkbox query_checkbox2">
<input name="train_type" type="checkbox" checked value="G|C">
GC-高铁/城际 </label>
<label class="query_checkbox">
<input name="train_type" type="checkbox" checked value="D">
D-动车 </label>
<label class="query_checkbox">
<input name="train_type" type="checkbox" checked value="Z">
Z-直达 </label>
<label class="query_checkbox">
<input name="train_type" type="checkbox" checked value="T">
T-特快 </label>
<label class="query_checkbox">
<input name="train_type" type="checkbox" checked value="K">
K-快速 </label>
<label class="query_checkbox">
<input name="train_type" type="checkbox" checked value="L">
L-临客 </label>
<label class="query_checkbox">
<input name="train_type" type="checkbox" checked value="QT">
其它 </label>
</div>
<div class="form_title">选择席别</div>
<div class="box_insert query_box checks">
<label class="query_checkbox">
<input name="train_seat" type="checkbox" checked value="all">
全选</label>
<label class="query_checkbox">
<input name="train_seat" type="checkbox" checked value="9">
商务座</label>
<label class="query_checkbox">
<input name="train_seat" type="checkbox" checked value="P">
特等座</label>
<label class="query_checkbox">
<input name="train_seat" type="checkbox" checked value="M">
一等座</label>
<label class="query_checkbox">
<input name="train_seat" type="checkbox" checked value="O">
二等座</label>
<label class="query_checkbox">
<input name="train_seat" type="checkbox" checked value="6">
高等软卧</label>
<label class="query_checkbox">
<input name="train_seat" type="checkbox" checked value="4">
软卧</label>
<label class="query_checkbox">
<input name="train_seat" type="checkbox" checked value="3">
硬卧</label>
<label class="query_checkbox">
<input name="train_seat" type="checkbox" checked value="2">
软座</label>
<label class="query_checkbox">
<input name="train_seat" type="checkbox" checked value="1">
硬座</label>
<label class="query_checkbox">
<input name="train_seat" type="checkbox" checked value="0">
无座</label>
</div>
<div class="form_title">选择时间段</div>
<div class="box_insert query_box">
<label class="query_bigcheck query_bigcheck_checked">
<input type="radio" name="timeslot" checked value="0">
<span class="bfont">全选</span></label>
<label class="query_bigcheck">
<input type="radio" name="timeslot" value="1">
<span>00:00<br>
~<br>
06:00</span></label>
<label class="query_bigcheck">
<input type="radio" name="timeslot" value="2">
<span>06:00<br>
~<br>
12:00</span></label>
<label class="query_bigcheck">
<input type="radio" name="timeslot" value="3">
<span>12:00<br>
~<br>
18:00</span></label>
<label class="query_bigcheck">
<input type="radio" name="timeslot" value="4">
<span>18:00<br>
~<br>
24:00</span></label>
</div>
<div class="form_title">预定车次</div>
</form>
</div>
<div class="fixed_box" id="date_box">
<header class="header"><span class="h_t">选择日期</span><!--<div class="h_r"><a href="javascript:;" id="date_sure"><i class="icon_sure"></i></a></div>--></header>
<div id="calendar"></div>
<div class="box">
<div><span class="label_sale">在售</span><span class="label_remind">可预约</span></div>
<div class="footer_tip">部分车次预售期特殊,请以售票时显示时间为准.</div>
</div>
</div>
<div class="top_menu" id="user_menu">
<ul class="link_list">
<li><a href="#">预售提醒</a></li>
<li><a href="#">我的订单</a></li>
<li><a href="/12306/login.html" data-fn="login" id="login">登录</a></li>
</ul>
</div>
<div class="bottom_tip" id="login_tip"><a href="/12306/login.html">登录可以提高抢票成功率!</a></div>
<div class="tip_small" id="date_tip"></div>
<!--<div class="fixed_box fixed_box_show" id="search_station">
<header class="header">
<div class="search_box"><a href="javascript:;" class="search_cancel">取消</a><div class="search_ipt"><input type="search" name="" placeholder="搜索车站" id="searchbox" class="search_input" autocomplete="off"><i class="icon_remove_s"></i></div></div>
</header>
<div class="form_title">热门站点</div>
<div class="box_insert"><ul class="station_list">
<li><a href="javascript:;">北京</a></li>
<li><a href="javascript:;">上海</a></li>
<li><a href="javascript:;">天津</a></li>
<li><a href="javascript:;">重庆</a></li>
<li><a href="javascript:;">长沙</a></li>
<li><a href="javascript:;">长春</a></li>
<li><a href="javascript:;">成都</a></li>
<li><a href="javascript:;">福州</a></li>
<li><a href="javascript:;">广州</a></li>
<li><a href="javascript:;">贵阳</a></li>
<li><a href="javascript:;">呼和浩特</a></li>
<li><a href="javascript:;">哈尔滨</a></li>
<li><a href="javascript:;">合肥</a></li>
<li><a href="javascript:;">杭州</a></li>
<li><a href="javascript:;">海口</a></li>
<li><a href="javascript:;">济南</a></li>
<li><a href="javascript:;">昆明</a></li>
<li><a href="javascript:;">拉萨</a></li>
<li><a href="javascript:;">兰州</a></li>
<li><a href="javascript:;">南宁</a></li>
<li><a href="javascript:;">南京</a></li>
<li><a href="javascript:;">南昌</a></li>
<li><a href="javascript:;">沈阳</a></li>
<li><a href="javascript:;">石家庄</a></li>
<li><a href="javascript:;">太原</a></li>
<li><a href="javascript:;">乌鲁木齐</a></li>
<li><a href="javascript:;">武汉</a></li>
<li><a href="javascript:;">西宁西</a></li>
<li><a href="javascript:;">西安</a></li>
<li><a href="javascript:;">银川</a></li>
<li><a href="javascript:;">郑州</a></li>
</ul></div>
</div>-->
<script src="js/fastclick.js"></script>
<script src="js/zepto.js"></script>
<script src="js/public.js"></script>
<script src="js/util.js"></script>
<script src="js/12306.js"></script>
<script src="js/LunarCalendar.js"></script>
<script src="js/date.js"></script>
<script src="js/check_station.js"></script>
<script src="js/login.js"></script>
<script src="js/query.js"></script>
<script src="js/run_query.js"></script>
<script src="js/perfect.js"></script>
<script src="js/init.js"></script>
<!--<script src="js/js.min.js"></script>-->
</body>
</html>

View File

@ -0,0 +1,101 @@
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1, minimum-scale=1.0, maximum-scale=1.0,user-scalable=no, minimal-ui">
<meta name="format-detection" content="telephone=no">
<title>无标题文档</title>
<!-- <script src="https://kyfw.12306.cn/otn/resources/js/framework/station_name.js" type="text/javascript"></script> -->
<script src="http://app.fishlee.net/scripts/12306/query/station_name.js" type="text/javascript"></script>
<script src="js/favorite_name.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="css/css.css">
</head>
<body id="runquery_page">
<div class="wrap" id="wrap">
<form id="query_form" action="">
<header class="header">
<div class="h_l"><a href="javascript:;" data-fn="back"><i class="icon_back"></i></a></div>
<div class="station_title"><strong></strong><span></span></div>
<input type="hidden" value="" name="startname" id="startStationName">
<input type="hidden" value="" name="startcode" id="startStationCode">
<input type="hidden" value="" name="endname" id="endStationName">
<input type="hidden" value="" name="endcode" id="endStationCode">
<input type="hidden" value="" name="type">
<input type="hidden" name="filters" value="">
<div class="h_r"><a href="javascript:;" id="filter_btn">筛选</a></div>
</header>
<div class="date_title"><a href="javascript:;" class="prev_btn" id="check_left"><i class="icon_left"></i>前一天</a><a href="javascript:;" class="next_btn" id="check_right">后一天<i class="icon_right"></i></a><strong id="start_date"></strong><input type="hidden" name="start_date" id="start_date_val" value=""></div>
</form>
<div class="main">
<div class="train_list_box">
<ul id="train_list" class="train_list">
<!--<li>
<div class="line no_border"><strong class="pull_right text_underline text_lg">K2341</strong><strong class="text_warning text_lg link_label">00:37</strong><span class="text_lg">北京</span></div>
<div class="line"><span class="pull_right text_gray">10小时12分</span><span class="text_lg link_label">10:47</span><span class="text_lg">呼和浩特</span></div>
<div class="line"><span class="pull_right"><span class="text_warning">3</span> <span class="text_gray"></span><a href="javascript:;" class="btn btn_success">抢票</a></span><span class="link_label">软卧</span><span class="text_gray">312元</span></div>
<div class="line"><span class="pull_right"><span class="text_warning">3</span> <span class="text_gray"></span><a href="javascript:;" class="btn btn_success">抢票</a></span><span class="link_label">软卧</span><span class="text_gray">312元</span></div>
<div class="line"><span class="pull_right"><span class="text_warning">3</span> <span class="text_gray"></span><a href="javascript:;" class="btn btn_success">抢票</a></span><span class="link_label">软卧</span><span class="text_gray">312元</span></div>
<div class="line"><span class="pull_right"><span class="text_warning">3</span> <span class="text_gray"></span><a href="javascript:;" class="btn btn_success">抢票</a></span><span class="link_label">软卧</span><span class="text_gray">312元</span></div>
</li>
<li>
<div class="line no_border"><strong class="pull_right text_underline text_lg">K2341</strong><strong class="text_warning text_lg link_label">00:37</strong><span class="text_lg">北京</span></div>
<div class="line"><span class="pull_right text_gray">10小时12分</span><span class="text_lg link_label">10:47</span><span class="text_lg">呼和浩特</span></div>
<div class="line"><span class="pull_right"><span class="text_warning">3</span> <span class="text_gray"></span><a href="javascript:;" class="btn btn_success">抢票</a></span><span class="link_label">软卧</span><span class="text_gray">312元</span></div>
<div class="line"><span class="pull_right"><span class="text_warning">3</span> <span class="text_gray"></span><a href="javascript:;" class="btn btn_success">抢票</a></span><span class="link_label">软卧</span><span class="text_gray">312元</span></div>
<div class="line"><span class="pull_right"><span class="text_warning">3</span> <span class="text_gray"></span><a href="javascript:;" class="btn btn_success">抢票</a></span><span class="link_label">软卧</span><span class="text_gray">312元</span></div>
<div class="line"><span class="pull_right"><span class="text_warning">3</span> <span class="text_gray"></span><a href="javascript:;" class="btn btn_success">抢票</a></span><span class="link_label">软卧</span><span class="text_gray">312元</span></div>
</li>
<li>
<div class="line no_border"><strong class="pull_right text_underline text_lg">K2341</strong><strong class="text_warning text_lg link_label">00:37</strong><span class="text_lg">北京</span></div>
<div class="line"><span class="pull_right text_gray">10小时12分</span><span class="text_lg link_label">10:47</span><span class="text_lg">呼和浩特</span></div>
<div class="line"><span class="pull_right"><span class="text_warning">3</span> <span class="text_gray"></span><a href="javascript:;" class="btn btn_success">抢票</a></span><span class="link_label">软卧</span><span class="text_gray">312元</span></div>
<div class="line"><span class="pull_right"><span class="text_warning">3</span> <span class="text_gray"></span><a href="javascript:;" class="btn btn_success">抢票</a></span><span class="link_label">软卧</span><span class="text_gray">312元</span></div>
<div class="line"><span class="pull_right"><span class="text_warning">3</span> <span class="text_gray"></span><a href="javascript:;" class="btn btn_success">抢票</a></span><span class="link_label">软卧</span><span class="text_gray">312元</span></div>
<div class="line"><span class="pull_right"><span class="text_warning">3</span> <span class="text_gray"></span><a href="javascript:;" class="btn btn_success">抢票</a></span><span class="link_label">软卧</span><span class="text_gray">312元</span></div>
</li>-->
</ul>
</div>
</div>
</div>
<div class="fixed_box" id="filter">
<header class="header">
<div class="h_l"><a href="javascript:;" id="filter_cancel">取消</a></div>
<span class="h_t">选择条件</span>
<div class="h_r"><a href="javascript:;" id="filter_ok">确定</a></div>
</header>
<form id="filter_form" action="">
<div class="form_title">选择类型</div>
<div class="box_insert query_box checks"><label class="query_checkbox"><input name="train_type" type="checkbox" checked value="all">全选 </label><label class="query_checkbox query_checkbox2"><input name="train_type" type="checkbox" checked value="G|C">GC-高铁/城际 </label><label class="query_checkbox"><input name="train_type" type="checkbox" checked value="D">D-动车 </label><label class="query_checkbox"><input name="train_type" type="checkbox" checked value="Z">Z-直达 </label><label class="query_checkbox"><input name="train_type" type="checkbox" checked value="T">T-特快 </label><label class="query_checkbox"><input name="train_type" type="checkbox" checked value="K">K-快速 </label><label class="query_checkbox"><input name="train_type" type="checkbox" checked value="L">L-临客 </label><label class="query_checkbox"><input name="train_type" type="checkbox" checked value="QT">其它 </label></div>
<div class="form_title">选择席别</div>
<div class="box_insert query_box checks"><label class="query_checkbox"><input name="train_seat" type="checkbox" checked value="all">全选</label><label class="query_checkbox"><input name="train_seat" type="checkbox" checked value="9">商务座</label><label class="query_checkbox"><input name="train_seat" type="checkbox" checked value="P">特等座</label><label class="query_checkbox"><input name="train_seat" type="checkbox" checked value="M">一等座</label><label class="query_checkbox"><input name="train_seat" type="checkbox" checked value="O">二等座</label><label class="query_checkbox"><input name="train_seat" type="checkbox" checked value="6">高等软卧</label><label class="query_checkbox"><input name="train_seat" type="checkbox" checked value="4">软卧</label><label class="query_checkbox"><input name="train_seat" type="checkbox" checked value="3">硬卧</label><label class="query_checkbox"><input name="train_seat" type="checkbox" checked value="2">软座</label><label class="query_checkbox"><input name="train_seat" type="checkbox" checked value="1">硬座</label><label class="query_checkbox"><input name="train_seat" type="checkbox" checked value="0">无座</label></div>
<div class="form_title">选择时间段</div>
<div class="box_insert query_box"><label class="query_bigcheck query_bigcheck_checked"><input type="radio" name="timeslot" checked value="0"><span class="bfont">全选</span></label><label class="query_bigcheck"><input type="radio" name="timeslot" value="1"><span>00:00<br>~<br>06:00</span></label><label class="query_bigcheck"><input type="radio" name="timeslot" value="2"><span>06:00<br>~<br>12:00</span></label><label class="query_bigcheck"><input type="radio" name="timeslot" value="3"><span>12:00<br>~<br>18:00</span></label><label class="query_bigcheck"><input type="radio" name="timeslot" value="4"><span>18:00<br>~<br>24:00</span></label></div>
<div class="form_title">预定车次</div>
</form>
</div>
<div class="fixed_box" id="date_box">
<header class="header"><span class="h_t">选择日期</span><!--<div class="h_r"><a href="javascript:;" id="date_sure"><i class="icon_sure"></i></a></div>--></header>
<div id="calendar"></div>
<div class="box">
<div><span class="label_sale">在售</span><span class="label_remind">可预约</span></div>
<div class="footer_tip">部分车次预售期特殊,请以售票时显示时间为准.</div>
</div>
</div>
<div class="bottom_tip" id="login_tip"><a href="/12306/login.html">登录可以提高抢票成功率!</a></div>
<div class="tip_small" id="date_tip"></div>
<script src="js/fastclick.js"></script>
<script src="js/zepto.js"></script>
<script src="js/public.js"></script>
<script src="js/util.js"></script>
<script src="js/12306.js"></script>
<script src="js/LunarCalendar.js"></script>
<script src="js/date.js"></script>
<script src="js/check_station.js"></script>
<script src="js/login.js"></script>
<script src="js/query.js"></script>
<script src="js/run_query.js"></script>
<script src="js/init.js"></script>
<!--<script src="js/js.min.js"></script>-->
</body>
</html>