let sessionStorage= window.sessionStorage; let sessionItinerary= sessionStorage.getItem(sessionStorageList); $(function() { //初始化行程单 if(typeof sessionItinerary!=='object'){ sessionItinerary=JSON.parse(sessionItinerary); buildStrokeTable(sessionItinerary); fnTotTravelPrice(); buildItineraryProcess(sessionItinerary) } // 新增行程 $("a[stroke='addNode']").click(function() { let sessionItinerary = sessionStorage.getItem(sessionStorageList); if(typeof sessionItinerary==='object'){ sessionItinerary=[{'0':[]}]; }else{ sessionItinerary=JSON.parse(sessionItinerary); sessionItinerary.push({[sessionItinerary.length]:[]}); } sessionStorage.setItem(sessionStorageList,JSON.stringify(sessionItinerary)); //构建行程单 buildStrokeTable(sessionItinerary); fnTotTravelPrice(); buildItineraryProcess(sessionItinerary) //计算金额 }); // 移除行程 $("table[stroke]").on("click","a[stroke='delNode']",function(){ let sessionItinerary = sessionStorage.getItem(sessionStorageList); sessionItinerary=JSON.parse(sessionItinerary); let dataID=$(this).attr('dataID'); sessionItinerary=sessionItinerary.filter(item=>{ let keyId=Object.keys(item)[0]; console.log(dataID); if(keyId===dataID){ return false }else{ return true } }); let isIndex=dataID-1; $('#node_'+dataID).remove(); sessionStorage.setItem(sessionStorageList,JSON.stringify(sessionItinerary)); // 重新计算金额 buildStrokeTable(sessionItinerary); fnTotTravelPrice(); buildItineraryProcess(sessionItinerary) }); //打开新建设置的行程单 $("table[stroke]").on("click","a[addStroke]",function(){ districtTop(); districtCityBuild('departurecity','departureprovince'); districtCityBuild('arrivalscity','arrivalsprovince'); // let dataID=$(this).attr('dataID'); $("input[departuredate]").val(''); $("input[arrivalsdate]").val(''); $("tbody[feeTravelItem]").html(''); let strokeList= sessionStorage.getItem(sessionStorageList); sessionItinerary=getItineraryData(strokeList,dataID); if(!(sessionItinerary.length===0)){ let si= sessionItinerary[sessionItinerary.length-1]; let item=`{"departuredate":"","departureprovince":"${si.arrivalsprovince}","departurecity":"${si.arrivalscity.substring(1)}","arrivalsdate":"${si.arrivalsdate}","arrivalsprovince":"","arrivalscity":"","feeTraveItem":[]}`; districtTop(JSON.parse(item)); districtCityBuild('departurecity','departureprovince',JSON.parse(item)); setDisabled(item); }else{ setUnDisabled(); } $("#strokeIndex").val(dataID); $("a[additinerarybut]").show(); $("a[ediItineraryBut]").hide(); }); //存储新建的行程单 $("a[additinerarybut]").click(function() { var itinerary=fnGetItineraryData(); let dataID=$("#strokeIndex").val(); let strokeStr = sessionStorage.getItem(sessionStorageList); let strokeJson=JSON.parse(strokeStr); sessionItinerary=getItineraryData(strokeStr,dataID); sessionItinerary.push(itinerary); strokeJson.forEach(function(value,index){ keyId=Object.keys(value)[0]; if(keyId==dataID){ strokeJson[index][dataID]=sessionItinerary; } }) sessionStorage.setItem(sessionStorageList,JSON.stringify(strokeJson)); buildStrokeTable(strokeJson); fnTotTravelPrice(); //TODO buildItineraryProcess(strokeJson) }); //打开编辑的行程单 $("table[stroke]").on("click","a[edistroke]",function(){ let id=$(this).attr('dataId'); let strokeid=$(this).attr('strokeId'); let strokeIndex=$(this).attr('strokeIndex'); $("input[name=ediStrokeId]").val(id); let strokeStr= sessionStorage.getItem(sessionStorageList); let strokeJson=JSON.parse(strokeStr); sessionItinerary=strokeJson[strokeIndex][strokeid]; var storage=window.localStorage; if(id!=='0'){ sessionItinerary[id].departureprovince=sessionItinerary[id-1].arrivalsprovince; sessionItinerary[id].departurecity=sessionItinerary[id-1].arrivalscity.substring(1); } districtTop(sessionItinerary[id]); districtCityBuild('departurecity','departureprovince',sessionItinerary[id]); districtCityBuild('arrivalscity','arrivalsprovince',sessionItinerary[id]); $("input[arrivalsdate]").val(sessionItinerary[id].arrivalsdate.substring(1)); buildFeeTravelItem(sessionItinerary[id].feeTraveItem); if(id==='0'){ $("input[departuredate]").val(sessionItinerary[id].departuredate); setUnDisabled(); }else{ $("input[departuredate]").val(sessionItinerary[id-1].arrivalsdate.substring(1)); setDisabled(''); } $("#dataId").val(id); $("#strokeId").val(strokeid); $("#strokeIndex").val(strokeIndex); $("a[additinerarybut]").hide(); $("a[ediItineraryBut]").show(); }); //存储编辑行程单 $("a[ediItineraryBut]").click(function() { var itinerary=fnGetItineraryData(); var siIndex=$("input[name=ediStrokeId]").val(); let strokeid=$("#strokeId").val(); let strokeIndex=$("#strokeIndex").val(); let strokeStr=sessionStorage.getItem(sessionStorageList) let strokeJson=JSON.parse(strokeStr); var sessionItinerary =strokeJson[strokeIndex][strokeid]; //var sessionItinerary =JSON.parse(sessionStorage.getItem(sessionStorageList)); sessionItinerary[siIndex]=itinerary; strokeJson[strokeIndex][strokeid]=sessionItinerary; let data=JSON.stringify(strokeJson); sessionStorage.setItem(sessionStorageList,data); buildStrokeTable(strokeJson); fnTotTravelPrice(); buildItineraryProcess(strokeJson) }); //移除行程单item功能 $("table[stroke]").on("click","a[removeitinerary]",function(){ var strokeStr= sessionStorage.getItem(sessionStorageList); let id=$(this).attr('dataId'); let strokeid=$(this).attr('strokeId'); let strokeIndex=$(this).attr('strokeIndex'); var strokeJson= JSON.parse(strokeStr); //console.log(strokeJson[strokeIndex][strokeid]); let sessionItinerary=strokeJson[strokeIndex][strokeid]; sessionItinerary.splice(id,1); strokeJson[strokeIndex][strokeid]=sessionItinerary; console.log(strokeJson); sessionStorage.setItem(sessionStorageList,JSON.stringify(strokeJson)); buildStrokeTable(strokeJson); //$("#itinerary").val(JSON.stringify(strokeJson)); fnTotTravelPrice(); buildItineraryProcess(strokeJson) //buildItineraryProcess(sessionItinerary); }); //编辑行程单内容相关--设置出发城市-设置到达城市 $("select[departureProvince]").change(function() { districtCityBuild('departurecity','departureprovince'); }); $("select[arrivalsProvince]").change(function() { districtCityBuild('arrivalscity','arrivalsprovince'); }); //检查行程日期 $("input[departureDate]").change(function() { let date=$(this).val(); $.ajax({ url : '/api/itinerary/date', data: {date:date}, type : "post", cache : false, dataType : "json", async:false, global : true, success : function(data) { console.log(data.status); if(!data.status){ $('input[departureDate]').val(''); $('td[msg]').html('日期已被使用过'); }else{ $('td[msg]').html(''); } }, error : function(err) {} }); }); $("input[arrivalsDate]").change(function() { var strokeStr= sessionStorage.getItem(sessionStorageList); var strokeJson= JSON.parse(strokeStr); var siIndex=$("input[name=ediStrokeId]").val(); let strokeid=$("#strokeId").val(); let strokeIndex=$("#strokeIndex").val(); let date=$(this).val(); let departuredate=new Date(strokeJson[strokeIndex][strokeid][siIndex].departuredate).getTime(); let arrivalsdate=new Date(date).getTime(); if(departuredate>arrivalsdate){ $('input[arrivalsDate]').val(''); $('td[msg]').html('到达日期不能早于出发日期'); return ; } $.ajax({ url : '/api/itinerary/date', data: {date:date}, type : "post", cache : false, dataType : "json", async:false, global : true, success : function(data) { if(!data.status){ $('input[arrivalsDate]').val(''); $('td[msg]').html('日期已被使用过'); }else{ $('td[msg]').html(''); } }, error : function(err) {} }); }); //添加费用详情列表 $("a[feeTravelItem]").click(function() { var itemName=$("select[feeTravelItem] option:selected").text(); var itemId=$("select[feeTravelItem] option:selected").val(); var html='
¥
'+ '