//蜘蛛班次: //使用: /* html中
*/ /* js run_list:班次数组 run_date:配合cache_select_data使用 cache_select_data中的key cache_select_data:缓存对象 格式如下 window.runbus.init({ run_list:js.data.class_station_list, run_date:"2017-03-08", cache_select_data:{"2017-03-08":{cache_run_id:2,cache_start_station_id:"2_0",cache_end_station_id:"2_0_2"}} },function(run,start,end){ console.log(run,start,end); }); //callback=>班次回调 //callback2=>上车站回调 //callback3=>下车站回调 */ (function($) { window.runbus = window.runbus || {}; var initData = {}; var cache_select_data = {}; //切换班次信息 var passindex = ''; var selectindex = ''; var runlist = []; var run_date = ""; //回调出去的参数 var call_run = {}; var call_start_station = {}; var call_end_station = {}; window.runbus.init = function(initData, callback, callback2, callback3) { runlist = initData['run_list'] ? initData['run_list'] : []; run_date = initData['run_date'] ? initData['run_date'] : ""; cache_select_data = initData['cache_select_data'] ? initData['cache_select_data'] : {}; showGoInfo(runlist); //展示去程的站点信息 function showGoInfo(runlist) { console.log(runlist); var listHTML = ''; var start_stationHTML = ''; var end_stationHTML = ''; runlist.forEach(function(dict, index) { //上车站内容 var start_station_list = dict['start_station_list']; start_stationHTML = getStartHtml(start_station_list); var end_list = []; var cache_sel = 'bus_kong'; var t = ''; var temp = ''; if(cache_select_data.hasOwnProperty(run_date)) { t = cache_select_data[run_date]; if(t.cache_run_id == dict['run_id']) { cache_sel = 'bus_sel_image'; temp = 'open'; start_station_list.forEach(function(v, i) { if(v['start_res_id'] == t.cache_start_station_id) { end_list = v.end_station_list; } }) } } end_stationHTML = getEndHtml(end_list, false); var dictstr = JSON.stringify(dict); // onclick="changeTheBusInfo(this)" dictstr = dictstr.replace(/"/g, '"'); // var html1 = `
//
//
${dict.run_time}
//
余票充足
//
//
//
//
// //
` var html1 = '
' + '
' + '
' + dict.run_time + '
' + '
余票充足
' + '
' + '
' + '
' + '
' + '' + '
'; listHTML += html1; }) $('#sel_car').html(listHTML); $('.runbus').on('click', function(e) { changeTheBusInfo($(this)); }); $('.start_station_all').on('click', function(e) { var list = $(this).attr('dict'); list = JSON.parse(list); changeTheStartStation(list, $(this), true); }) $('.open').next().slideDown(); var tobj = $('.open').next().find('.sel_station_sigle_start'); passindex = $('.open'); var cstr = $('.open').next().find('.sel_station_sigle_start').attr('dict'); if(cstr) { var endlist = JSON.parse(cstr); changeTheStartStation(endlist, tobj, false); } } //得到上车站内容 function getStartHtml(start_station_list) { var temp_start_stationHTML = ''; var temp_end_stationFirst = ''; start_station_list.forEach(function(start_dict, index) { var cache_sel = 'select_quan'; var t = ''; var sel_station_sigle_start = ''; if(cache_select_data.hasOwnProperty(run_date)) { t = cache_select_data[run_date]; if(t.cache_start_station_id == start_dict['start_res_id']) { cache_sel = 'select_gou'; sel_station_sigle_start = 'sel_station_sigle_start'; } } else { if(index == 0) { cache_sel = 'select_gou'; sel_station_sigle_start = 'sel_station_sigle_start'; } } var cstr = JSON.stringify(start_dict['end_station_list']); cstr = cstr.replace(/"/g, '"'); // onclick="changeTheStartStation(${cstr},this,true)" var html2 = '
' + '
' + start_dict.start_res_name + '
' + '
' + '
' temp_start_stationHTML += html2; }) return temp_start_stationHTML } //得到下车站内容 function getEndHtml(end_station_list, isClick) { var html = ''; var end_ids = []; if(end_station_list.length > 0) { end_ids = end_station_list.map(function(v) { return v['station_id'] }); } var t = ''; end_station_list.forEach(function(end_dict, index) { var cache_sel = 'select_quan'; var sel_station_sigle_end = ''; if(isClick == true) { if(index == 0) { cache_sel = 'select_gou'; sel_station_sigle_end = 'sel_station_sigle_end'; } } else { if(cache_select_data.hasOwnProperty(run_date)) { t = cache_select_data[run_date]; if($.inArray(t.cache_end_station_id, end_ids) > -1) { if(t.cache_end_station_id == end_dict['station_id']) { cache_sel = 'select_gou'; sel_station_sigle_end = 'sel_station_sigle_end'; } } else { if(index == 0) { cache_sel = 'select_gou'; sel_station_sigle_end = 'sel_station_sigle_end'; } } } else { if(index == 0) { cache_sel = 'select_gou'; sel_station_sigle_end = 'sel_station_sigle_end'; } } } var str = 'bor_b_e5'; if(index == end_station_list.length - 1) { str = ''; } // onclick="changeTheEndStation(this)" var html3 = '
' + '
' + end_dict.station_name + '
' + '
' + '
'; html += html3; }) return html; } function changeTheBusInfo(obj) { var cstr = $(obj).attr('dict'); var dict = JSON.parse(cstr); var tobj = $(obj).next().find('.start_station_all:first'); var endlist = dict.start_station_list[0].end_station_list; changeTheStartStation(endlist, tobj, true); var next = $(obj).next(); next.slideToggle(); $(obj).parent().parent().find('.station').not(next).slideUp(); selectindex = obj; if(selectindex.hasClass('open') && passindex.hasClass('open')) { $(selectindex).removeClass('open'); $(selectindex).removeClass('bor_b_e5'); $(selectindex).find('.run_bus').removeClass('bus_sel_image'); $(selectindex).find('.run_bus').addClass('bus_kong'); $('#select_run_bus').text('选择乘坐班次'); passindex = ''; } else { $(passindex).removeClass('open'); $(passindex).removeClass('bor_b_e5'); $(passindex).find('.run_bus').removeClass('bus_sel_image'); $(passindex).find('.run_bus').addClass('bus_kong'); $(selectindex).addClass('open'); $(selectindex).addClass('bor_b_e5'); $(selectindex).find('.run_bus').removeClass('bus_kong'); $(selectindex).find('.run_bus').addClass('bus_sel_image'); var t_text = $(obj).children().eq(0).text(); $('#select_run_bus').text('选择乘坐班次--' + t_text); passindex = selectindex; } $('.open').next().find('.start_station_all').first().addClass('sel_station_sigle_start'); $('.open').next().find('.end_station_all').first().addClass('sel_station_sigle_end'); $('.open').next().find('.start_image').removeClass('select_gou'); $('.open').next().find('.start_image').addClass('select_quan'); $('.open').next().find('.end_image').removeClass('select_gou'); $('.open').next().find('.end_image').addClass('select_quan'); $('.open').next().find('.start_image').first().removeClass('select_quan'); $('.open').next().find('.start_image').first().addClass('select_gou'); $('.open').next().find('.end_image').first().removeClass('select_quan'); $('.open').next().find('.end_image').first().addClass('select_gou'); if(typeof(callback) == 'function') { var run_id = $('.open').children().eq(0).attr('run_time_id'); var run_time = $('.open').children().eq(0).text(); var count = $('.sel_station_sigle_end').children().eq(0).attr('count'); var pro_cate_id = $('.sel_station_sigle_end').children().eq(0).attr('pro_cate_id'); call_run = { run_id: run_id, run_time: run_time, count: count, pro_cate_id: pro_cate_id } console.log('callback1', call_run); callback(call_run); } } //切换上车站站点 function changeTheStartStation(cstr, obj, isClick) { var html = getEndHtml(cstr, isClick); $(obj).closest('.start_station').next().find('.end_station').html(html); $('.end_station_all').on('click', function(e) { changeTheEndStation($(this)); }) $('.start_station_all').find('.start_image').removeClass('select_gou'); $('.start_station_all').find('.start_image').addClass('select_quan'); $(obj).find('.start_image').addClass('select_gou'); $(obj).find('.start_image').removeClass('select_quan'); $('.start_station_all').removeClass('sel_station_sigle_start'); $(obj).addClass('sel_station_sigle_start'); if(typeof(callback2) == 'function') { var start_station_id = $('.sel_station_sigle_start').children().eq(0).attr('start_station_id'); var start_station_name = $('.sel_station_sigle_start').children().eq(0).text(); var count = $('.sel_station_sigle_end').children().eq(0).attr('count'); var pro_cate_id = $('.sel_station_sigle_end').children().eq(0).attr('pro_cate_id'); call_start_station = { start_station_id: start_station_id, start_station_name: start_station_name, count: count, pro_cate_id: pro_cate_id } console.log('callback2', call_start_station); callback2(call_start_station); } } //切换下车站站点 function changeTheEndStation(obj) { $('.end_station_all').removeClass('sel_station_sigle_end'); $(obj).addClass('sel_station_sigle_end'); $('.end_station_all').find('.end_image').removeClass('select_gou'); $('.end_station_all').find('.end_image').addClass('select_quan'); $(obj).find('.end_image').removeClass('select_quan'); $(obj).find('.end_image').addClass('select_gou'); if(typeof(callback3) == 'function') { var end_station_id = $('.sel_station_sigle_end').children().eq(0).attr('end_station_id'); var end_station_name = $('.sel_station_sigle_end').children().eq(0).text(); var count = $('.sel_station_sigle_end').children().eq(0).attr('count'); var pro_cate_id = $('.sel_station_sigle_end').children().eq(0).attr('pro_cate_id'); call_end_station = { end_station_id: end_station_id, end_station_name: end_station_name, count: count, pro_cate_id: pro_cate_id } console.log('callback3', call_end_station); callback3(call_end_station); } } } })(jQuery)