|  | @@ -0,0 +1,528 @@
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +$(function() {
 | 
	
		
			
				|  |  | +	//初始化行程单
 | 
	
		
			
				|  |  | +	var sessionStorage= window.sessionStorage;
 | 
	
		
			
				|  |  | +	var sessionItinerary= sessionStorage.getItem(sessionStorageList);
 | 
	
		
			
				|  |  | +	if(typeof sessionItinerary!=='object'){
 | 
	
		
			
				|  |  | +		//console.log(JSON.parse(sessionItinerary));
 | 
	
		
			
				|  |  | +		buildItinerary(JSON.parse(sessionItinerary));
 | 
	
		
			
				|  |  | +		fnTotTravelPrice();
 | 
	
		
			
				|  |  | +		buildItineraryProcess(sessionItinerary);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	//打开新建设置行程单
 | 
	
		
			
				|  |  | +	$("a[addStroke]").click(function() {
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		districtTop();
 | 
	
		
			
				|  |  | +		districtCityBuild('departurecity','departureprovince');
 | 
	
		
			
				|  |  | +		districtCityBuild('arrivalscity','arrivalsprovince');
 | 
	
		
			
				|  |  | +		$("input[departuredate]").val('');
 | 
	
		
			
				|  |  | +		$("input[arrivalsdate]").val('');
 | 
	
		
			
				|  |  | +		$("tbody[feeTravelItem]").html('');
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		var sessionItinerary= sessionStorage.getItem(sessionStorageList);
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		if(!(sessionItinerary===null||sessionItinerary==='[]')){
 | 
	
		
			
				|  |  | +			sessionItinerary=JSON.parse(sessionItinerary);
 | 
	
		
			
				|  |  | +			var id=sessionItinerary.length-1;
 | 
	
		
			
				|  |  | +			let item=`{"departuredate":"","departureprovince":"${sessionItinerary[id].arrivalsprovince}","departurecity":"${sessionItinerary[id].arrivalscity.substring(1)}","arrivalsdate":"${sessionItinerary[id].arrivalsdate}","arrivalsprovince":"","arrivalscity":"","feeTraveItem":[]}`;
 | 
	
		
			
				|  |  | +			districtTop(JSON.parse(item));
 | 
	
		
			
				|  |  | +			districtCityBuild('departurecity','departureprovince',JSON.parse(item));
 | 
	
		
			
				|  |  | +			setDisabled(item);
 | 
	
		
			
				|  |  | +		}else{
 | 
	
		
			
				|  |  | +			setUnDisabled();
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		$("a[additinerarybut]").show();
 | 
	
		
			
				|  |  | +		$("a[ediItineraryBut]").hide();
 | 
	
		
			
				|  |  | +	});
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	//存储新建的行程单
 | 
	
		
			
				|  |  | +	$("a[additinerarybut]").click(function() {
 | 
	
		
			
				|  |  | +		var itinerary=fnGetItineraryData();
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		var sessionItinerary = sessionStorage.getItem(sessionStorageList);
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		if(typeof sessionItinerary==='object'){
 | 
	
		
			
				|  |  | +			sessionItinerary=[];
 | 
	
		
			
				|  |  | +			sessionItinerary.push(itinerary);
 | 
	
		
			
				|  |  | +			sessionStorage.setItem(sessionStorageList,JSON.stringify(sessionItinerary));
 | 
	
		
			
				|  |  | +		}else{
 | 
	
		
			
				|  |  | +			sessionItinerary=JSON.parse(sessionItinerary);
 | 
	
		
			
				|  |  | +			sessionItinerary.push(itinerary);
 | 
	
		
			
				|  |  | +			sessionStorage.setItem(sessionStorageList,JSON.stringify(sessionItinerary));
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		buildItinerary(sessionItinerary);
 | 
	
		
			
				|  |  | +		fnTotTravelPrice();
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		buildItineraryProcess(sessionItinerary);
 | 
	
		
			
				|  |  | +	});
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	//打开编辑行程单
 | 
	
		
			
				|  |  | +//	$("a[ediStroke]").click(function() {
 | 
	
		
			
				|  |  | +//		var sessionItinerary= sessionStorage.getItem(sessionStorageList);
 | 
	
		
			
				|  |  | +//		sessionItinerary=JSON.parse(sessionItinerary);
 | 
	
		
			
				|  |  | +//		var id=$(this).attr('dataId');
 | 
	
		
			
				|  |  | +//		
 | 
	
		
			
				|  |  | +//		var storage=window.localStorage;
 | 
	
		
			
				|  |  | +//		
 | 
	
		
			
				|  |  | +//		if(id==='0'){
 | 
	
		
			
				|  |  | +//			
 | 
	
		
			
				|  |  | +//		}else{
 | 
	
		
			
				|  |  | +//			sessionItinerary[id].departureprovince=sessionItinerary[id-1].arrivalsprovince;
 | 
	
		
			
				|  |  | +//			sessionItinerary[id].departurecity=sessionItinerary[id-1].arrivalscity;
 | 
	
		
			
				|  |  | +//			console.log(sessionItinerary[id]);
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  | +//		
 | 
	
		
			
				|  |  | +//		districtTop(sessionItinerary[id]);
 | 
	
		
			
				|  |  | +//		districtCityBuild('departurecity','departureprovince',sessionItinerary[id]);
 | 
	
		
			
				|  |  | +//		districtCityBuild('arrivalscity','arrivalsprovince',sessionItinerary[id]);
 | 
	
		
			
				|  |  | +//		
 | 
	
		
			
				|  |  | +//		//读取上一个行程的终点
 | 
	
		
			
				|  |  | +//		
 | 
	
		
			
				|  |  | +//		buildFeeTravelItem(sessionItinerary[id].feeTraveItem);
 | 
	
		
			
				|  |  | +//		
 | 
	
		
			
				|  |  | +//		if(id==='0'){
 | 
	
		
			
				|  |  | +//			$("input[departuredate]").val(sessionItinerary[id].departuredate);
 | 
	
		
			
				|  |  | +//			setUnDisabled();
 | 
	
		
			
				|  |  | +//		}else{
 | 
	
		
			
				|  |  | +//			console.log(sessionItinerary[id-1].arrivalsdate);
 | 
	
		
			
				|  |  | +//			$("input[departuredate]").val(sessionItinerary[id-1].arrivalsdate.substring(1));
 | 
	
		
			
				|  |  | +//			setDisabled('');
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  | +//		
 | 
	
		
			
				|  |  | +//		$("a[additinerarybut]").hide();
 | 
	
		
			
				|  |  | +//		$("a[ediItineraryBut]").show();
 | 
	
		
			
				|  |  | +//	});
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	$("tbody[itinerary]").on("click","a[edistroke]",function(){
 | 
	
		
			
				|  |  | +		$("input[name=ediStrokeId]").val($(this).attr('dataid'));
 | 
	
		
			
				|  |  | +		var sessionItinerary= sessionStorage.getItem(sessionStorageList);
 | 
	
		
			
				|  |  | +		sessionItinerary=JSON.parse(sessionItinerary);
 | 
	
		
			
				|  |  | +		var id=$(this).attr('dataId');
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		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('');
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		$("a[additinerarybut]").hide();
 | 
	
		
			
				|  |  | +		$("a[ediItineraryBut]").show();
 | 
	
		
			
				|  |  | +	});
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	//存储编辑行程单
 | 
	
		
			
				|  |  | +	$("a[ediItineraryBut]").click(function() {
 | 
	
		
			
				|  |  | +		var itinerary=fnGetItineraryData();
 | 
	
		
			
				|  |  | +		var siIndex=$("input[name=ediStrokeId]").val();
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		var sessionItinerary =JSON.parse(sessionStorage.getItem(sessionStorageList));
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		sessionItinerary[siIndex]=itinerary;
 | 
	
		
			
				|  |  | +		let data=JSON.stringify(sessionItinerary);
 | 
	
		
			
				|  |  | +		sessionStorage.setItem(sessionStorageList,data);
 | 
	
		
			
				|  |  | +		buildItinerary(sessionItinerary);
 | 
	
		
			
				|  |  | +		fnTotTravelPrice();
 | 
	
		
			
				|  |  | +		buildItineraryProcess(data)
 | 
	
		
			
				|  |  | +	});
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	//移除行程单item功能
 | 
	
		
			
				|  |  | +	$("tbody[itinerary]").on("click","a[removeitinerary]",function(){
 | 
	
		
			
				|  |  | +		var sessionItinerary= sessionStorage.getItem(sessionStorageList);
 | 
	
		
			
				|  |  | +		var id=$(this).attr('dataId');
 | 
	
		
			
				|  |  | +		sessionItinerary=JSON.parse(sessionItinerary);
 | 
	
		
			
				|  |  | +		sessionItinerary.splice(id,1);
 | 
	
		
			
				|  |  | +		sessionStorage.setItem(sessionStorageList,JSON.stringify(sessionItinerary));
 | 
	
		
			
				|  |  | +		buildItinerary(sessionItinerary);
 | 
	
		
			
				|  |  | +		$("#itinerary").val(JSON.stringify(sessionItinerary));
 | 
	
		
			
				|  |  | +		fnTotTravelPrice();
 | 
	
		
			
				|  |  | +		buildItineraryProcess(sessionItinerary);
 | 
	
		
			
				|  |  | +	});
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	$("select[departureProvince]").change(function() {
 | 
	
		
			
				|  |  | +		districtCityBuild('departurecity','departureprovince');
 | 
	
		
			
				|  |  | +	});
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	$("select[arrivalsProvince]").change(function() {
 | 
	
		
			
				|  |  | +		districtCityBuild('arrivalscity','arrivalsprovince');
 | 
	
		
			
				|  |  | +	});
 | 
	
		
			
				|  |  | +	$("a[feeTravelItem]").click(function() {
 | 
	
		
			
				|  |  | +		var itemName=$("select[feeTravelItem] option:selected").text();
 | 
	
		
			
				|  |  | +		var itemId=$("select[feeTravelItem] option:selected").val();
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		var html='<tr class="remove" ><th>'+itemName+'</th>';
 | 
	
		
			
				|  |  | +		html+='<td class="taR"><p>¥<input type="number" itemId_'+itemId+' data="'+itemName+'" dataId="'+itemId+'" value="0" placeholder="输入费用" pattern="[0-9]" step="1" min="0"class="span2"></p>'+
 | 
	
		
			
				|  |  | +		'<p><textarea type="text" itemDetail_'+itemId+' placeholder="填写费用说明" rows="2" style=" width: 350px; margin: 10px 0px 0px 12px; height: 65px;"></textarea></p></td>';
 | 
	
		
			
				|  |  | +		//html+='<td><textarea type="text" itemDetail_'+itemId+' placeholder="填写费用说明"></textarea></td>';
 | 
	
		
			
				|  |  | +		html+='<td><a href="#" removeFeeTravelItem >移除</a></td></tr>';
 | 
	
		
			
				|  |  | +		$("tbody[feeTravelItem]").append(html);
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +	});
 | 
	
		
			
				|  |  | +	$("tbody[feeTravelItem]").on("click","a[removeFeeTravelItem]",function(){
 | 
	
		
			
				|  |  | +		$(this).closest('.remove').remove();
 | 
	
		
			
				|  |  | +	});
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	//检查行程日期
 | 
	
		
			
				|  |  | +	$("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('<span class="colRed">日期已被使用过</span>');
 | 
	
		
			
				|  |  | +				}else{
 | 
	
		
			
				|  |  | +					$('td[msg]').html('');
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				//storage.setItem("district_"+id,JSON.stringify(data.districtList));
 | 
	
		
			
				|  |  | +				//districtCity(selectDom,data.districtList);
 | 
	
		
			
				|  |  | +			},
 | 
	
		
			
				|  |  | +			error : function(err) {}
 | 
	
		
			
				|  |  | +		});
 | 
	
		
			
				|  |  | +	});
 | 
	
		
			
				|  |  | +	$("input[arrivalsDate]").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[arrivalsDate]').val('');
 | 
	
		
			
				|  |  | +					$('td[msg]').html('<span class="colRed">日期已被使用过</span>');
 | 
	
		
			
				|  |  | +				}else{
 | 
	
		
			
				|  |  | +					$('td[msg]').html('');
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				//storage.setItem("district_"+id,JSON.stringify(data.districtList));
 | 
	
		
			
				|  |  | +				//districtCity(selectDom,data.districtList);
 | 
	
		
			
				|  |  | +			},
 | 
	
		
			
				|  |  | +			error : function(err) {}
 | 
	
		
			
				|  |  | +		});
 | 
	
		
			
				|  |  | +	});
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +})
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +function setDisabled(sessionItinerary){
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	if(sessionItinerary!==''){
 | 
	
		
			
				|  |  | +		let si=JSON.parse(sessionItinerary);
 | 
	
		
			
				|  |  | +		$('input[departuredate]').val(si.arrivalsdate.substring(1));
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	//禁用出发地
 | 
	
		
			
				|  |  | +	$('select[departureprovince]').attr("disabled","disabled");
 | 
	
		
			
				|  |  | +	$('select[departurecity]').attr("disabled","disabled");
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	$('input[departuredate]').attr("disabled","disabled");
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +function setUnDisabled(){
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	//禁用出发地
 | 
	
		
			
				|  |  | +	$('select[departureprovince]').removeAttr("disabled");
 | 
	
		
			
				|  |  | +	$('select[departurecity]').removeAttr("disabled");
 | 
	
		
			
				|  |  | +	$('input[departuredate]').removeAttr("disabled");
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +//构建总行程单
 | 
	
		
			
				|  |  | +function buildItineraryProcess(data){
 | 
	
		
			
				|  |  | +	let html='';
 | 
	
		
			
				|  |  | +	let dataJson=data;
 | 
	
		
			
				|  |  | +	if(typeof data==='string'){
 | 
	
		
			
				|  |  | +		dataJson=JSON.parse(data);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	let last=dataJson.length-1;
 | 
	
		
			
				|  |  | +	let n=0;
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	for(let i=0;i<dataJson.length;i++){
 | 
	
		
			
				|  |  | +		let price=0;
 | 
	
		
			
				|  |  | +		for(let p=0;p<dataJson[i].feeTraveItem.length;p++){
 | 
	
		
			
				|  |  | +			price+=parseFloat(dataJson[i].feeTraveItem[p].price);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		price=price.toFixed(2);
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		let city='';
 | 
	
		
			
				|  |  | +		if(i==0){
 | 
	
		
			
				|  |  | +			city=dataJson[i].departurecity;
 | 
	
		
			
				|  |  | +		}else{
 | 
	
		
			
				|  |  | +			n=i-1;
 | 
	
		
			
				|  |  | +			city=dataJson[n].arrivalscity.substring(1);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		html+=`<li>
 | 
	
		
			
				|  |  | +		<div class="itineraryList">
 | 
	
		
			
				|  |  | +			<div class="addressName"><i class="contactsMark icon-">P</i> <b>${city}</b></div>
 | 
	
		
			
				|  |  | +			<div class="pointLine">
 | 
	
		
			
				|  |  | +				<div class="priceList">
 | 
	
		
			
				|  |  | +					<span class="priceTitle">金额</span>
 | 
	
		
			
				|  |  | +					<span class="price colGreen">¥${price}</span>
 | 
	
		
			
				|  |  | +				</div>
 | 
	
		
			
				|  |  | +				<div class="timeList">
 | 
	
		
			
				|  |  | +					<span class="timeTitle">时间</span>
 | 
	
		
			
				|  |  | +					<span class="time">${dataJson[i].departuredate}${dataJson[i].arrivalsdate}</span>
 | 
	
		
			
				|  |  | +				</div>
 | 
	
		
			
				|  |  | +			</div>
 | 
	
		
			
				|  |  | +		</div>
 | 
	
		
			
				|  |  | +	</li>`;
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		if(i===last){
 | 
	
		
			
				|  |  | +			let arrivalscity=dataJson[i].arrivalscity.substring(1);
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			html+=`<li>
 | 
	
		
			
				|  |  | +			<div class="itineraryList">
 | 
	
		
			
				|  |  | +				<div class="addressName"><i class="contactsMark icon-">P</i> <b>${arrivalscity}</b></div>
 | 
	
		
			
				|  |  | +				
 | 
	
		
			
				|  |  | +			</div>
 | 
	
		
			
				|  |  | +		</li>`;
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			//html+=`<div class="addressName fL"><i class="contactsMark icon-">P</i><b>${arrivalscity}</b></div>`;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	$("ul[itineraryinfo]").html(html);
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +//重新计算费用单金额
 | 
	
		
			
				|  |  | +function fnTotTravelPrice(){
 | 
	
		
			
				|  |  | +	var itineraryStr=sessionStorage.getItem(sessionStorageList);
 | 
	
		
			
				|  |  | +	var sessionItinerary= JSON.parse(itineraryStr);
 | 
	
		
			
				|  |  | +	//重新赋值行程详情
 | 
	
		
			
				|  |  | +	$("#itinerary").val(itineraryStr);
 | 
	
		
			
				|  |  | +	var priceList=[];
 | 
	
		
			
				|  |  | +	for(let i=0;i<sessionItinerary.length;i++){
 | 
	
		
			
				|  |  | +		let feeTraveItem=sessionItinerary[i].feeTraveItem;
 | 
	
		
			
				|  |  | +		for(let k=0;k<feeTraveItem.length;k++){
 | 
	
		
			
				|  |  | +			if(typeof priceList[feeTraveItem[k].id]==='undefined'){
 | 
	
		
			
				|  |  | +				priceList[feeTraveItem[k].id]=0;
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			priceList[feeTraveItem[k].id]+=parseFloat(feeTraveItem[k].price);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	$("input[id^='travel_']").val(0);
 | 
	
		
			
				|  |  | +	$("td span").html(0);
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	let travelResult=0;
 | 
	
		
			
				|  |  | +	for(let i=0;i<priceList.length;i++){
 | 
	
		
			
				|  |  | +		if(typeof priceList[i]==='number'){
 | 
	
		
			
				|  |  | +			$("span[travelprice_"+i+"]").html(priceList[i].toFixed(2));
 | 
	
		
			
				|  |  | +			$("#travel_"+i+"").val(priceList[i].toFixed(2));
 | 
	
		
			
				|  |  | +			travelResult+=priceList[i];
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	$("#travelResult").html(travelResult.toFixed(2));
 | 
	
		
			
				|  |  | +	$("#RS").html(travelResult.toFixed(2));
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +//构建费用说明
 | 
	
		
			
				|  |  | +function buildFeeTravelItem(feeTraveItem){
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	var html='';
 | 
	
		
			
				|  |  | +	for(let i=0;i<feeTraveItem.length;i++){
 | 
	
		
			
				|  |  | +		html+='<tr class="remove" ><th>'+feeTraveItem[i].name+'</th>';
 | 
	
		
			
				|  |  | +		html+='<td class="taR"><p>¥<input type="number" itemId_'+feeTraveItem[i].id+' data="'+feeTraveItem[i].name+'" dataId="'+feeTraveItem[i].id+'" value="'+feeTraveItem[i].price+'" placeholder="输入费用" pattern="[0-9]" step="1" min="0"class="span2"></p>'+
 | 
	
		
			
				|  |  | +		'<p><textarea type="text"  itemDetail_'+feeTraveItem[i].id+' placeholder="填写费用说明" rows="2" style=" width: 350px; margin: 10px 0px 0px 12px; height: 65px;">'+feeTraveItem[i].detail+'</textarea></p></td>';
 | 
	
		
			
				|  |  | +		//html+='<td><textarea type="text"  itemDetail_'+feeTraveItem[i].id+' placeholder="填写费用说明">'+feeTraveItem[i].detail+'</textarea> </td>';
 | 
	
		
			
				|  |  | +		html+='<td><a href="#" removeFeeTravelItem >移除</a></td></tr>';
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	$("tbody[feeTravelItem]").html(html);
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +//获得设置行程单的相关内容
 | 
	
		
			
				|  |  | +function fnGetItineraryData(){
 | 
	
		
			
				|  |  | +	var departurecity=$("select[departurecity] option:selected").text();
 | 
	
		
			
				|  |  | +	var arrivalscity=$("select[arrivalscity] option:selected").text();
 | 
	
		
			
				|  |  | +	var departureprovince=$("select[departureprovince] option:selected").text();
 | 
	
		
			
				|  |  | +	var arrivalsprovince=$("select[arrivalsprovince] option:selected").text();
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	var departuredate=$("input[departuredate]").val();
 | 
	
		
			
				|  |  | +	var arrivalsdate=$("input[arrivalsdate]").val();
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	var feeTravePriceList=$("tbody[feeTravelItem]").find('input[type=number]');
 | 
	
		
			
				|  |  | +	//var feeTraveDetailList=$("tbody[feeTravelItem]").find('input[type=text]');
 | 
	
		
			
				|  |  | +	var feeTraveDetailList=$("tbody[feeTravelItem]").find('textarea');
 | 
	
		
			
				|  |  | +	if(arrivalscity!==''){
 | 
	
		
			
				|  |  | +		arrivalscity='-'+arrivalscity;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	if(arrivalsdate!==''){
 | 
	
		
			
				|  |  | +		arrivalsdate='~'+arrivalsdate;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	var feeTraveItem=[];
 | 
	
		
			
				|  |  | +	for(let i=0;i<feeTravePriceList.length;i++){
 | 
	
		
			
				|  |  | +		feeTraveItem.push({'id':$(feeTravePriceList[i]).attr('dataId'),'name':$(feeTravePriceList[i]).attr('data'),'price':$(feeTravePriceList[i]).val(),'detail':$(feeTraveDetailList[i]).val()});
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	var itinerary={'departuredate':departuredate,'departureprovince':departureprovince,'departurecity':departurecity,'arrivalsdate':arrivalsdate,'arrivalsprovince':arrivalsprovince,'arrivalscity':arrivalscity,'feeTraveItem':feeTraveItem};
 | 
	
		
			
				|  |  | +	return itinerary;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +//设置行程详情--列表页
 | 
	
		
			
				|  |  | +function buildItinerary(list){
 | 
	
		
			
				|  |  | +	var html='';
 | 
	
		
			
				|  |  | +	for(let i=0;i<list.length;i++){
 | 
	
		
			
				|  |  | +		if(i==0){
 | 
	
		
			
				|  |  | +			html+='<tr><th colspan="2" class="ta"><i class="contactsMark icon-">P</i> '+list[i].departuredate+list[i].arrivalsdate+' '+list[i].departurecity+list[i].arrivalscity+'';
 | 
	
		
			
				|  |  | +		}else{
 | 
	
		
			
				|  |  | +			let previousIndex=i-1;
 | 
	
		
			
				|  |  | +			html+='<tr><th colspan="2" class="ta"><i class="contactsMark icon-">P</i> '+list[previousIndex].arrivalsdate.substring(1)+list[i].arrivalsdate+' '+list[previousIndex].arrivalscity.substring(1)+list[i].arrivalscity+'';
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		html+='<div class="fR"><a href="#route-add" ediStroke data-toggle="modal" dataId="'+i+'" >编辑</a> <a href="#" dataId="'+i+'" removeitinerary class="colRed">移除</a></div></th></tr>';
 | 
	
		
			
				|  |  | +		let feeTraveItem=list[i].feeTraveItem;
 | 
	
		
			
				|  |  | +		let price=0;let detail='';
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		for(let k=0;k<feeTraveItem.length;k++){
 | 
	
		
			
				|  |  | +			price+=parseFloat(feeTraveItem[k].price);
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			if(!(typeof feeTraveItem[k].detail==='undefined')){
 | 
	
		
			
				|  |  | +				detail=feeTraveItem[k].detail.replace(new RegExp("\n", "gm"), '<br/>');
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			html+='<tr><th>'+feeTraveItem[k].name+'<p class="colGray">'+detail+'</p></th><td width="200" class="taR">¥'+feeTraveItem[k].price+'</td></tr>';
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		html+='<tr><th class="taR">合计</th><td class="colGreen taR">¥'+price.toFixed(2)+'</td></tr>';
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	$("tbody[itinerary]").html(html);
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +//设置城市下来菜单-存储数据
 | 
	
		
			
				|  |  | +function districtCityBuild(selectDom,obj,selected){
 | 
	
		
			
				|  |  | +	var storage=window.localStorage;
 | 
	
		
			
				|  |  | +	var id=$('select['+obj+']').val();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	if(typeof storage["district_"+id]==='undefined'||storage["district_"+id]===''){
 | 
	
		
			
				|  |  | +		$.ajax({
 | 
	
		
			
				|  |  | +			url : '/api/district?did='+id,
 | 
	
		
			
				|  |  | +			type : "post",
 | 
	
		
			
				|  |  | +			cache : false,
 | 
	
		
			
				|  |  | +			dataType : "json",
 | 
	
		
			
				|  |  | +			async:false,
 | 
	
		
			
				|  |  | +			global : true,
 | 
	
		
			
				|  |  | +			success : function(data) {
 | 
	
		
			
				|  |  | +				storage.setItem("district_"+id,JSON.stringify(data.districtList));
 | 
	
		
			
				|  |  | +				//districtCity(selectDom,data.districtList);
 | 
	
		
			
				|  |  | +			},
 | 
	
		
			
				|  |  | +			error : function(err) {}
 | 
	
		
			
				|  |  | +		});
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	districtCity=JSON.parse(storage["district_"+id]);
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	var html='';var cityName='';
 | 
	
		
			
				|  |  | +	if(typeof selected!=='undefined'){
 | 
	
		
			
				|  |  | +		if(selectDom=='departurecity'){
 | 
	
		
			
				|  |  | +			cityName=selected.departurecity;
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +		}else{
 | 
	
		
			
				|  |  | +			cityName=selected.arrivalscity.substring(1);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	for(let i=0;i<districtCity.length;i++){
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		if(typeof selected!=='undefined'&&cityName==districtCity[i].name){
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			html+='<option selected value='+districtCity[i].name+'>'+districtCity[i].name+'</option>';
 | 
	
		
			
				|  |  | +		}else{
 | 
	
		
			
				|  |  | +			html+='<option value='+districtCity[i].name+'>'+districtCity[i].name+'</option>';
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	$("select["+selectDom+"]").html(html);
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//--设置省份下拉
 | 
	
		
			
				|  |  | +function districtTop(selected){
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	var storage=window.localStorage;
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	if(typeof storage["districtTop"]==='undefined'||storage["districtTop"]===''){
 | 
	
		
			
				|  |  | +		$.ajax({
 | 
	
		
			
				|  |  | +			url : '/api/district',
 | 
	
		
			
				|  |  | +			type : "post",
 | 
	
		
			
				|  |  | +			cache : false,
 | 
	
		
			
				|  |  | +			dataType : "json",
 | 
	
		
			
				|  |  | +			global : true,
 | 
	
		
			
				|  |  | +			success : function(data) {
 | 
	
		
			
				|  |  | +				
 | 
	
		
			
				|  |  | +				storage.setItem("districtTop",JSON.stringify(data.districtList));
 | 
	
		
			
				|  |  | +				//districtTop(data.districtList);
 | 
	
		
			
				|  |  | +				districtTopHtml(data.districtList,selected);
 | 
	
		
			
				|  |  | +			},
 | 
	
		
			
				|  |  | +			error : function(err) {}
 | 
	
		
			
				|  |  | +		});
 | 
	
		
			
				|  |  | +	}else{
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		districtTopHtml(JSON.parse(storage["districtTop"]),selected);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +function districtTopHtml(districtTop,selected){
 | 
	
		
			
				|  |  | +	//var districtTop=JSON.parse(storage["districtTop"]);
 | 
	
		
			
				|  |  | +	//console.log(districtTop.length);
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	var html='';
 | 
	
		
			
				|  |  | +	for(let i=0;i<districtTop.length;i++){
 | 
	
		
			
				|  |  | +		if(typeof selected!=='undefined'&&selected.departureprovince==districtTop[i].name){
 | 
	
		
			
				|  |  | +			html+='<option selected value='+districtTop[i].id+'>'+districtTop[i].name+'</option>';
 | 
	
		
			
				|  |  | +		}else{
 | 
	
		
			
				|  |  | +			html+='<option value='+districtTop[i].id+'>'+districtTop[i].name+'</option>';
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	$("select[departureProvince]").html(html);
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	html='';
 | 
	
		
			
				|  |  | +	for(let i=0;i<districtTop.length;i++){
 | 
	
		
			
				|  |  | +		if(typeof selected!=='undefined'&&selected.arrivalsprovince==districtTop[i].name){
 | 
	
		
			
				|  |  | +			html+='<option selected value='+districtTop[i].id+'>'+districtTop[i].name+'</option>';
 | 
	
		
			
				|  |  | +		}else{
 | 
	
		
			
				|  |  | +			html+='<option value='+districtTop[i].id+'>'+districtTop[i].name+'</option>';
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	$("select[arrivalsProvince]").html(html);
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 |