123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535 |
- $(function() {
- //初始化行程单
- var sessionStorage= window.sessionStorage;
- var sessionItinerary= sessionStorage.getItem(sessionStorageList);
-
- // console.log(typeof sessionItinerary)
- // if(sessionItinerary===''){
- // sessionItinerary={};
- // }
-
- 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);
- }
|