Commit 4f9cd9bf authored by zhengke's avatar zhengke

S

parents 59462332 3979b429
<style> <style>
@import url('../../assets/mall/detail.css'); @import url('../../assets/mall/detail.css');
._labelClass{
width:120px; ._labelClass {
width: 120px;
background-color: white; background-color: white;
text-align: center; text-align: center;
} }
._travelLngLatInfo_box{
._travelLngLatInfo_box {
background-color: #f3f3f3; background-color: #f3f3f3;
padding: 20px; padding: 20px;
margin-top: 15px; margin-top: 15px;
} }
._travelLngLatInfo_label{
._travelLngLatInfo_label {
display: inline-block; display: inline-block;
width: 20px; width: 20px;
height: 20px; height: 20px;
...@@ -20,10 +23,12 @@ ...@@ -20,10 +23,12 @@
text-align: center; text-align: center;
line-height: 20px; line-height: 20px;
} }
.zanding_flight{
.zanding_flight {
position: relative; position: relative;
} }
.zanding_flight span{
.zanding_flight span {
position: absolute; position: absolute;
right: -36px; right: -36px;
top: 10px; top: 10px;
...@@ -34,43 +39,72 @@ ...@@ -34,43 +39,72 @@
cursor: pointer; cursor: pointer;
border-radius: 50%; border-radius: 50%;
} }
.template_box_two>div>div{
zoom:0.89; .template_box_two>div>div {
zoom: 0.89;
}
.TripDownLoadCommon {
height: 350px;
text-align: center
}
.TripDownLoadCommon>label {
cursor: pointer;
vertical-align: middle;
}
.TripDownLoadCommon>label input {
vertical-align: middle;
}
.TripDownLoadCommon .TripBtn {
color: #fff;
width: 90px;
height: 30px;
background: #E95252;
border: 1px solid #E95252;
cursor: pointer;
border-radius: 15px;
}
.TripDownLoadCommon input[type="checkbox"]+label::before {
content: "\A0";
display: inline-block;
width: 15px;
height: 15px;
margin-right: 5px;
border-radius: 4px;
background-color: white;
text-indent: .15em;
line-height: 15px;
color: white;
border: 1px solid #e95252;
}
.TripDownLoadCommon input[type="checkbox"]:checked+label::before {
content: "\2713";
background-color: #e95252;
}
.TripDownLoadCommon input[type="checkbox"] {
position: absolute;
clip: rect(0, 0, 0, 0);
}
.TripDownLoadCommon input[type="checkbox"]:focus+label::before {
box-shadow: none;
}
.TripDownLoadCommon input[type="checkbox"]:disabled+label::before {
background-color: gray;
box-shadow: none;
color: #555;
}
.w450 {
width: 450px;
} }
.TripDownLoadCommon{ height:350px; text-align: center}
.TripDownLoadCommon> label{cursor: pointer;vertical-align: middle;}
.TripDownLoadCommon> label input{vertical-align: middle;}
.TripDownLoadCommon .TripBtn{ color: #fff; width: 90px; height:30px; background:#E95252; border: 1px solid #E95252; cursor: pointer; border-radius: 15px;}
.TripDownLoadCommon input[type="checkbox"] + label::before {
content: "\A0";
display: inline-block;
width: 15px;
height: 15px;
margin-right: 5px;
border-radius: 4px;
background-color: white;
text-indent: .15em;
line-height: 15px;
color: white;
border: 1px solid #e95252;
}
.TripDownLoadCommon input[type="checkbox"]:checked + label::before {
content: "\2713";
background-color: #e95252;
}
.TripDownLoadCommon input[type="checkbox"]{
position: absolute;
clip: rect(0, 0, 0, 0);
}
.TripDownLoadCommon input[type="checkbox"]:focus + label::before {
box-shadow: none;
}
.TripDownLoadCommon input[type="checkbox"]:disabled + label::before {
background-color: gray;
box-shadow: none;
color: #555;
}
.w450{width: 450px;}
</style> </style>
<template> <template>
...@@ -80,8 +114,12 @@ ...@@ -80,8 +114,12 @@
<el-col :span='12'> <el-col :span='12'>
<el-breadcrumb separator-class="el-icon-arrow-right"> <el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/heel',query:{} }">跟团游</el-breadcrumb-item> <el-breadcrumb-item :to="{ path: '/heel',query:{} }">跟团游</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/search',query:{'keywords':'','lineId':dataList.lineId,'lineName':dataList.lineName} }">{{dataList.lineName}}</el-breadcrumb-item> <el-breadcrumb-item
<el-breadcrumb-item :to="{ path: '/search',query:{'keywords':'','lineId':dataList.lineId,'lineName':dataList.lineName,'lineteamId':dataList.lineteamId,'lineteamName':dataList.ltName} }">{{dataList.ltName}}</el-breadcrumb-item> :to="{ path: '/search',query:{'keywords':'','lineId':dataList.lineId,'lineName':dataList.lineName} }">
{{dataList.lineName}}</el-breadcrumb-item>
<el-breadcrumb-item
:to="{ path: '/search',query:{'keywords':'','lineId':dataList.lineId,'lineName':dataList.lineName,'lineteamId':dataList.lineteamId,'lineteamName':dataList.ltName} }">
{{dataList.ltName}}</el-breadcrumb-item>
<el-breadcrumb-item>{{dataList.title}}</el-breadcrumb-item> <el-breadcrumb-item>{{dataList.title}}</el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
</el-col> </el-col>
...@@ -90,7 +128,8 @@ ...@@ -90,7 +128,8 @@
<el-col :span='12'> <el-col :span='12'>
<el-breadcrumb separator-class="el-icon-arrow-right"> <el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/IndependentTravel',query:{} }">自由行</el-breadcrumb-item> <el-breadcrumb-item :to="{ path: '/IndependentTravel',query:{} }">自由行</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/IndependentList',query:{'lineteamId':dataList.lineteamId} }">{{dataList.ltName}}</el-breadcrumb-item> <el-breadcrumb-item :to="{ path: '/IndependentList',query:{'lineteamId':dataList.lineteamId} }">
{{dataList.ltName}}</el-breadcrumb-item>
<el-breadcrumb-item>{{dataList.title}}</el-breadcrumb-item> <el-breadcrumb-item>{{dataList.title}}</el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
</el-col> </el-col>
...@@ -104,7 +143,7 @@ ...@@ -104,7 +143,7 @@
<span class="code">团队编号:{{dataList.id}}</span> <span class="code">团队编号:{{dataList.id}}</span>
</div> </div>
<div class="team-title"> <div class="team-title">
{{dataList.title}} {{dataList.title}}
</div> </div>
<div class="price-box"> <div class="price-box">
<div class="huodong" v-if="toDayObj && toDayObj.discountPrice>0"> <div class="huodong" v-if="toDayObj && toDayObj.discountPrice>0">
...@@ -113,11 +152,12 @@ ...@@ -113,11 +152,12 @@
</div> </div>
<div> <div>
<span class="red"></span> <span class="red"></span>
<span class="red big">{{toDayObj?(isLogin!==1?toDayObj.b2CPrice:toDayObj.b2BPrice):0}}</span> <span
class="red big">{{toDayObj?(isLogin!==1?toDayObj.b2CPrice:toDayObj.b2BPrice):0}}</span>
<span>/人起</span> <span>/人起</span>
<span class="tips pointer"> <span class="tips pointer">
起价说明 起价说明
</span> </span>
<!-- <span class="blue split medium pointer">4.9</span> <!-- <span class="blue split medium pointer">4.9</span>
<span class="blue pointer">0条点评</span> --> <span class="blue pointer">0条点评</span> -->
<span style='margin-left:5px'>{{dataList.offerNumber+99}}人出游</span> <span style='margin-left:5px'>{{dataList.offerNumber+99}}人出游</span>
...@@ -132,21 +172,32 @@ ...@@ -132,21 +172,32 @@
<el-row :gutter="7"> <el-row :gutter="7">
<template v-if="VideoStr"> <template v-if="VideoStr">
<el-col :span='12'> <el-col :span='12'>
<video :src="VideoStr" width="100%" height="259" class="avatar" controls="controls">您的浏览器不支持视频播放</video> <video :src="VideoStr" width="100%" height="259" class="avatar"
controls="controls">您的浏览器不支持视频播放</video>
</el-col> </el-col>
<el-col :span='12'> <el-col :span='12'>
<el-col :span='12'> <el-col :span='12'>
<img @click="BigImgShow(0)" v-if="imgCover&&imgCover[0]" :src="editSrc(imgCover[0].Url)" style="height: 126px;width:100%" /> <img @click="BigImgShow(0)" v-if="imgCover&&imgCover[0]"
<img v-else src="../../assets/img/bg_c2@3x.png" style="height: 126px;width:100%" /> :src="editSrc(imgCover[0].Url)" style="height: 126px;width:100%" />
<img @click="BigImgShow(1)" v-if="imgCover&&imgCover[1]" :src="editSrc(imgCover[1].Url)" style="height: 126px;width:100%" /> <img v-else src="../../assets/img/bg_c2@3x.png"
<img v-else src="../../assets/img/bg_c2@3x.png" style="height: 126px;width:100%;margin-top:3px;" /> style="height: 126px;width:100%" />
<img @click="BigImgShow(1)" v-if="imgCover&&imgCover[1]"
:src="editSrc(imgCover[1].Url)" style="height: 126px;width:100%" />
<img v-else src="../../assets/img/bg_c2@3x.png"
style="height: 126px;width:100%;margin-top:3px;" />
</el-col> </el-col>
<el-col :span='12'> <el-col :span='12'>
<img @click="BigImgShow(2)" v-if="imgCover&&imgCover[2]" :src="imgCover[2].Url==''?'../../assets/img/bg_c2@3x.png':editSrc(imgCover[2].Url)" style="height: 126px;width:100%" /> <img @click="BigImgShow(2)" v-if="imgCover&&imgCover[2]"
<img v-else src="../../assets/img/bg_c2@3x.png" style="height: 126px;width:100%" /> :src="imgCover[2].Url==''?'../../assets/img/bg_c2@3x.png':editSrc(imgCover[2].Url)"
style="height: 126px;width:100%" />
<img v-else src="../../assets/img/bg_c2@3x.png"
style="height: 126px;width:100%" />
<div class="last"> <div class="last">
<img @click="BigImgShow(3)" v-if="imgCover&&imgCover[3]" :src="imgCover[3].Url==''?'../../assets/img/bg_c2@3x.png':editSrc(imgCover[3].Url)" style="height: 126px;width:100%" /> <img @click="BigImgShow(3)" v-if="imgCover&&imgCover[3]"
<img v-else src="../../assets/img/bg_c2@3x.png" style="height: 126px;width:100%;margin-top:3px;" /> :src="imgCover[3].Url==''?'../../assets/img/bg_c2@3x.png':editSrc(imgCover[3].Url)"
style="height: 126px;width:100%" />
<img v-else src="../../assets/img/bg_c2@3x.png"
style="height: 126px;width:100%;margin-top:3px;" />
<div class="tip" @click="BigImgShow(4)"> <div class="tip" @click="BigImgShow(4)">
查看全部图片 查看全部图片
</div> </div>
...@@ -156,22 +207,33 @@ ...@@ -156,22 +207,33 @@
</template> </template>
<template v-else> <template v-else>
<el-col :span='12'> <el-col :span='12'>
<img @click="BigImgShow(0)" v-if="imgCover&&imgCover[0]" :src="editSrc(imgCover[0].Url)" style="height: 259px;width:100%" /> <img @click="BigImgShow(0)" v-if="imgCover&&imgCover[0]"
:src="editSrc(imgCover[0].Url)" style="height: 259px;width:100%" />
<img v-else src="../../assets/img/bg_c2@3x.png" style="height: 259px;width:100%" /> <img v-else src="../../assets/img/bg_c2@3x.png" style="height: 259px;width:100%" />
</el-col> </el-col>
<el-col :span='12'> <el-col :span='12'>
<el-col :span='12'> <el-col :span='12'>
<img @click="BigImgShow(1)" v-if="imgCover&&imgCover[1]" :src="editSrc(imgCover[1].Url)" style="height: 126px;width:100%" /> <img @click="BigImgShow(1)" v-if="imgCover&&imgCover[1]"
<img v-else src="../../assets/img/bg_c2@3x.png" style="height: 126px;width:100%" /> :src="editSrc(imgCover[1].Url)" style="height: 126px;width:100%" />
<img @click="BigImgShow(2)" v-if="imgCover&&imgCover[2]" :src="editSrc(imgCover[2].Url)" style="height: 126px;width:100%" /> <img v-else src="../../assets/img/bg_c2@3x.png"
<img v-else src="../../assets/img/bg_c2@3x.png" style="height: 126px;width:100%;margin-top:3px;" /> style="height: 126px;width:100%" />
<img @click="BigImgShow(2)" v-if="imgCover&&imgCover[2]"
:src="editSrc(imgCover[2].Url)" style="height: 126px;width:100%" />
<img v-else src="../../assets/img/bg_c2@3x.png"
style="height: 126px;width:100%;margin-top:3px;" />
</el-col> </el-col>
<el-col :span='12'> <el-col :span='12'>
<img @click="BigImgShow(3)" v-if="imgCover&&imgCover[3]" :src="imgCover[3].Url==''?'../../assets/img/bg_c2@3x.png':editSrc(imgCover[3].Url)" style="height: 126px;width:100%" /> <img @click="BigImgShow(3)" v-if="imgCover&&imgCover[3]"
<img v-else src="../../assets/img/bg_c2@3x.png" style="height: 126px;width:100%" /> :src="imgCover[3].Url==''?'../../assets/img/bg_c2@3x.png':editSrc(imgCover[3].Url)"
style="height: 126px;width:100%" />
<img v-else src="../../assets/img/bg_c2@3x.png"
style="height: 126px;width:100%" />
<div class="last"> <div class="last">
<img @click="BigImgShow(4)" v-if="imgCover&&imgCover[4]" :src="imgCover[4].Url==''?'../../assets/img/bg_c2@3x.png':editSrc(imgCover[4].Url)" style="height: 126px;width:100%" /> <img @click="BigImgShow(4)" v-if="imgCover&&imgCover[4]"
<img v-else src="../../assets/img/bg_c2@3x.png" style="height: 126px;width:100%;margin-top:3px;" /> :src="imgCover[4].Url==''?'../../assets/img/bg_c2@3x.png':editSrc(imgCover[4].Url)"
style="height: 126px;width:100%" />
<img v-else src="../../assets/img/bg_c2@3x.png"
style="height: 126px;width:100%;margin-top:3px;" />
<div class="tip" @click="BigImgShow(4)"> <div class="tip" @click="BigImgShow(4)">
查看全部图片 查看全部图片
</div> </div>
...@@ -193,35 +255,38 @@ ...@@ -193,35 +255,38 @@
<el-col :span='10' class="right-team-box-col"> <el-col :span='10' class="right-team-box-col">
<div class="right-team-box"> <div class="right-team-box">
<div class="title"> <div class="title">
<span class="item" v-for="(i,index) in calendarTit" @click="selectMounth(index)" :class="index===indexActive?'avtice':''"> <span class="item" v-for="(i,index) in calendarTit" @click="selectMounth(index)"
<span>{{i.dateStrS}}</span><br/> :class="index===indexActive?'avtice':''" :key="index">
<span>{{i.dateStrS}}</span><br />
<span class="price">¥{{isLogin!==1?i.price:i.b2BPrice}}起</span> <span class="price">¥{{isLogin!==1?i.price:i.b2BPrice}}起</span>
</span> </span>
</div> </div>
<calendar v-for="(item,index) in classArray" :key="index" :dateData= "item" :day = "item[0].dateStr" @ChildrenSelect="ListenChildren" v-if="index == selectMonth"/> <calendar v-for="(item,index) in classArray" :key="index" :dateData="item"
:day="item[0].dateStr" @ChildrenSelect="ListenChildren" v-if="index == selectMonth" />
</div> </div>
</el-col> </el-col>
</el-col> </el-col>
</el-row> </el-row>
<trade :free="free" :teamType="teamType" :priceList='dataList.priceList' :trip='dataList' :numPeople="null" v-if="dataList.priceList && dataList.priceList.length>0"></trade> <trade :free="free" :teamType="teamType" :priceList='dataList.priceList' :trip='dataList' :numPeople="null"
v-if="dataList.priceList && dataList.priceList.length>0"></trade>
<div ref="nav"> <div ref="nav">
<el-row> <el-row>
<el-col :span="20" :offset="2"> <el-col :span="20" :offset="2">
<el-col :span="18"> <el-col :span="18">
<ul class="top-nav" > <ul class="top-nav">
<li :class="crtnav=='flight'?'active':''" @click="goScroll('flight')"> <li :class="crtnav=='flight'?'active':''" @click="goScroll('flight')">
<i class="iconfont icon-Pointer"></i> <i class="iconfont icon-Pointer"></i>
<span>航班信息</span> <span>航班信息</span>
</li> </li>
<li :class="crtnav=='tese'?'active':''" @click="goScroll('tese')"> <li :class="crtnav=='tese'?'active':''" @click="goScroll('tese')">
<i class="iconfont icon-Pointer"></i> <i class="iconfont icon-Pointer"></i>
<span>行程特色</span> <span>行程特色</span>
</li> </li>
<li :class="crtnav=='teamacitvy'?'active':''" @click="goScroll('teamacitvy')"> <li :class="crtnav=='teamacitvy'?'active':''" @click="goScroll('teamacitvy')">
<i class="iconfont icon-List"></i> <i class="iconfont icon-List"></i>
{{dayTrip}}日行程 {{dayTrip}}日行程
</li> </li>
<li :class="crtnav=='feiyong'?'active':''" @click="goScroll('feiyong')"> <li :class="crtnav=='feiyong'?'active':''" @click="goScroll('feiyong')">
<i class="iconfont icon-zifeishuoming"></i> <i class="iconfont icon-zifeishuoming"></i>
费用 费用
</li> </li>
...@@ -241,7 +306,8 @@ ...@@ -241,7 +306,8 @@
<i class="iconfont icon-hangchenganpai"></i> <i class="iconfont icon-hangchenganpai"></i>
同行备注 同行备注
</li> </li>
<li :class="crtnav=='PDFDownL'?'active':''" @click="crtnav=='PDFDownL',PDFDownLoad('tonghang')"> <li :class="crtnav=='PDFDownL'?'active':''"
@click="crtnav=='PDFDownL',PDFDownLoad('tonghang')">
<i class="iconfont icon-hangchenganpai"></i> <i class="iconfont icon-hangchenganpai"></i>
PDF下载 PDF下载
</li> </li>
...@@ -276,7 +342,7 @@ ...@@ -276,7 +342,7 @@
<span>Reference flight</span> <span>Reference flight</span>
</div> </div>
<div class="hangban-info"> <div class="hangban-info">
<table border="0" align="center" cellpadding="0" cellspacing="0" class="flight_th"> <table border="0" align="center" cellpadding="0" cellspacing="0" class="flight_th">
<tbody> <tbody>
<tr> <tr>
<td width="170">出发时间<span>(当地)</span></td> <td width="170">出发时间<span>(当地)</span></td>
...@@ -287,27 +353,32 @@ ...@@ -287,27 +353,32 @@
<td width="18" class="gap">&nbsp;</td> <td width="18" class="gap">&nbsp;</td>
<td width="80">航空公司</td> <td width="80">航空公司</td>
<td width="90">航班编号</td> <td width="90">航班编号</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<div class="_hangban_line"></div> <div class="_hangban_line"></div>
<table border="0" align="center" cellspacing="0" cellpadding="0" class="flight_list"> <table border="0" align="center" cellspacing="0" cellpadding="0" class="flight_list">
<tbody v-if="showFlight && FlightList.length>0"> <tbody v-if="showFlight && FlightList.length>0">
<tr v-for="(flight,ftIndex) in sonData.currentPriceInfo.priceFlight" :key="ftIndex"> <tr v-for="(flight,ftIndex) in sonData.currentPriceInfo.priceFlight" :key="ftIndex">
<td width="170"><span class="nth-day">{{flight.startDate.substring(5)}}</span>&nbsp;<span class="num">{{flight.departureTime}}</span></td> <td width="170"><span
<td width="170"><span class="nth-day">{{flight.arriveDate.substring(5)}}</span>&nbsp;<span class="num">{{flight.arrivalTime}}</span></td> class="nth-day">{{flight.startDate.substring(5)}}</span>&nbsp;<span
class="num">{{flight.departureTime}}</span></td>
<td width="170"><span
class="nth-day">{{flight.arriveDate.substring(5)}}</span>&nbsp;<span
class="num">{{flight.arrivalTime}}</span></td>
<td width="216">{{flight.departureAirPortName}}<span class="citycode"></span></td> <td width="216">{{flight.departureAirPortName}}<span class="citycode"></span></td>
<td width="18" class="gap">&nbsp;</td> <td width="18" class="gap">&nbsp;</td>
<td>{{flight.arrivalAirPortName}}<span class="citycode"></span></td> <td>{{flight.arrivalAirPortName}}<span class="citycode"></span></td>
<td width="18" class="gap">&nbsp;</td> <td width="18" class="gap">&nbsp;</td>
<td width="80" >{{flight.alName}}</td> <td width="80">{{flight.alName}}</td>
<td width="90" class="zanding_flight">{{flight.flightNumber}} <span v-if="flight.flightState===2" title="暂定"></span></td> <td width="90" class="zanding_flight">{{flight.flightNumber}} <span
v-if="flight.flightState===2" title="暂定"></span></td>
</tr> </tr>
</tbody> </tbody>
<tbody v-else> <tbody v-else>
<tr> <tr>
<td>航班信息未确认</td> <td>航班信息未确认</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
...@@ -319,25 +390,31 @@ ...@@ -319,25 +390,31 @@
<span>Trip characteristics</span> <span>Trip characteristics</span>
</div> </div>
<div class="nin-box" v-if="showType==2"> <div class="nin-box" v-if="showType==2">
<table> <table>
<tbody> <tbody>
<tr> <tr>
<td @click="showImg(feature.featureImgList),initialIndex=index" v-for="(i,index) in feature.featureImgList" :key="index" v-if="index<3" :style="{background:'url(' + i.url + ') no-repeat bottom left/100% auto'}"> <td @click="showImg(feature.featureImgList),initialIndex=index"
&nbsp; v-for="(i,index) in feature.featureImgList" :key="index" v-if="index<3"
</td> :style="{background:'url(' + i.url + ') no-repeat bottom left/100% auto'}">
&nbsp;
</td>
</tr> </tr>
<tr> <tr>
<td @click="showImg(feature.featureImgList),initialIndex=index" v-for="(i,index) in feature.featureImgList" :key="index" v-if="index>2&&index<6" :style="{background:'url(' + i.url + ') no-repeat bottom left/100% auto'}"> <td @click="showImg(feature.featureImgList),initialIndex=index"
&nbsp; v-for="(i,index) in feature.featureImgList" :key="index" v-if="index>2&&index<6"
</td> :style="{background:'url(' + i.url + ') no-repeat bottom left/100% auto'}">
&nbsp;
</td>
</tr> </tr>
<tr> <tr>
<td @click="showImg(feature.featureImgList),initialIndex=index" v-for="(i,index) in feature.featureImgList" :key="index" v-if="index>5&&index<=8" :style="{background:'url(' + i.url + ') no-repeat bottom left/100% auto'}"> <td @click="showImg(feature.featureImgList),initialIndex=index"
&nbsp; v-for="(i,index) in feature.featureImgList" :key="index" v-if="index>5&&index<=8"
</td> :style="{background:'url(' + i.url + ') no-repeat bottom left/100% auto'}">
&nbsp;
</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="slider" v-if="showType==1&&loadNone==false"> <div class="slider" v-if="showType==1&&loadNone==false">
<!-- <el-carousel :interval="2000" height='400px' trigger="click" :style="{'background':'#ddd'}"> <!-- <el-carousel :interval="2000" height='400px' trigger="click" :style="{'background':'#ddd'}">
...@@ -347,13 +424,13 @@ ...@@ -347,13 +424,13 @@
</el-carousel> --> </el-carousel> -->
<swiper :imgs='feature.featureImgList'></swiper> <swiper :imgs='feature.featureImgList'></swiper>
</div> </div>
<div class="zidingyi" v-if="(showType==3 || showType<4)&&loadNone==false"> <div class="zidingyi" v-if="(showType==3 || showType<4)&&loadNone==false">
<center v-html="feature.featureContent"></center> <center v-html="feature.featureContent"></center>
</div> </div>
<div class="template-box" v-if="showType==4&&loadNone==false"> <div class="template-box" v-if="showType==4&&loadNone==false">
<div v-html="feature.featureHtml" style="width:1000px;margin:0 auto;"></div> <div v-html="feature.featureHtml" style="width:1000px;margin:0 auto;"></div>
</div> </div>
<div class="template-box template_box_two" v-if="showType>4&&loadNone==false"> <div class="template-box template_box_two" v-if="showType>4&&loadNone==false">
<div v-html="feature.featureHtml" style="width:1000px;margin:0 auto;"></div> <div v-html="feature.featureHtml" style="width:1000px;margin:0 auto;"></div>
</div> </div>
<div id="teamacitvy"> </div> <div id="teamacitvy"> </div>
...@@ -369,7 +446,8 @@ ...@@ -369,7 +446,8 @@
<!-- <bmap :data="travelLngLat"/> --> <!-- <bmap :data="travelLngLat"/> -->
<GGMap :dataList="travelLngLat"></GGMap> <GGMap :dataList="travelLngLat"></GGMap>
<div class="_travelLngLatInfo_box"> <div class="_travelLngLatInfo_box">
<p v-for="item in travelLngLatInfo"><span class="_travelLngLatInfo_label">{{item.lable}}</span>: {{item.text}}</p> <p v-for="(item,index) in travelLngLatInfo" :key="index"><span class="_travelLngLatInfo_label">{{item.lable}}</span>
{{item.text}}</p>
</div> </div>
</div> </div>
<!-- <div id="map_canvas" style="width:1000px; height:600px;"></div> --> <!-- <div id="map_canvas" style="width:1000px; height:600px;"></div> -->
...@@ -380,7 +458,7 @@ ...@@ -380,7 +458,7 @@
</span> </span>
<span>Scheduling</span> <span>Scheduling</span>
</div> </div>
<div v-if='dayList&&dayList.length>0'> <div v-if='dayList&&dayList.length>0'>
<!-- <trip :tripList="dayList"></trip> --> <!-- <trip :tripList="dayList"></trip> -->
<block :tripList="dayList" :isDirect="isDirect" :clickDate="clickDate"></block> <block :tripList="dayList" :isDirect="isDirect" :clickDate="clickDate"></block>
...@@ -402,7 +480,8 @@ ...@@ -402,7 +480,8 @@
<div class="left">自理费用</div> <div class="left">自理费用</div>
<div class="right"> <div class="right">
<div v-html="feature.feeNonInclude"></div> <div v-html="feature.feeNonInclude"></div>
<table class="expense-table" cellspacing=0 cellpadding=0 v-if='dataList.selfpayingList && dataList.selfpayingList.length>0'> <table class="expense-table" cellspacing=0 cellpadding=0
v-if='dataList.selfpayingList && dataList.selfpayingList.length>0'>
<thead> <thead>
<th>城市</th> <th>城市</th>
<th>活动</th> <th>活动</th>
...@@ -501,10 +580,10 @@ ...@@ -501,10 +580,10 @@
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="fuben-nav" v-if="changeNav&&loadNone==false" > <el-row class="fuben-nav" v-if="changeNav&&loadNone==false">
<el-col :span="20" :offset="2"> <el-col :span="20" :offset="2">
<el-col :span="18"> <el-col :span="18">
<ul class="top-nav" > <ul class="top-nav">
<li :class="crtnav=='flight'?'active':''" @click="goScroll('flight')"> <li :class="crtnav=='flight'?'active':''" @click="goScroll('flight')">
<i class="iconfont icon-Pointer"></i> <i class="iconfont icon-Pointer"></i>
<span>航班信息</span> <span>航班信息</span>
...@@ -513,11 +592,11 @@ ...@@ -513,11 +592,11 @@
<i class="iconfont icon-Pointer"></i> <i class="iconfont icon-Pointer"></i>
<span>行程特色</span> <span>行程特色</span>
</li> </li>
<li :class="crtnav=='teamacitvy'?'active':''" @click="goScroll('teamacitvy')"> <li :class="crtnav=='teamacitvy'?'active':''" @click="goScroll('teamacitvy')">
<i class="iconfont icon-List"></i> <i class="iconfont icon-List"></i>
{{dayTrip}}日行程 {{dayTrip}}日行程
</li> </li>
<li :class="crtnav=='feiyong'?'active':''" @click="goScroll('feiyong')"> <li :class="crtnav=='feiyong'?'active':''" @click="goScroll('feiyong')">
<i class="iconfont icon-zifeishuoming"></i> <i class="iconfont icon-zifeishuoming"></i>
费用 费用
</li> </li>
...@@ -561,50 +640,62 @@ ...@@ -561,50 +640,62 @@
</el-col> </el-col>
</el-row> </el-row>
<div v-if='picIsShow' class="_show_img_box" @click="picIsShow=false,picObj=[]"> <div v-if='picIsShow' class="_show_img_box" @click="picIsShow=false,picObj=[]">
<div style="position: absolute; width: 800px; height: 600px; left: 50%; top: 50%; margin-left: -400px; margin-top: -300px;"> <div
<el-carousel :initial-index=initialIndex height="600px" :interval="5000" trigger="click"> style="position: absolute; width: 800px; height: 600px; left: 50%; top: 50%; margin-left: -400px; margin-top: -300px;">
<el-carousel-item v-for="(item,index) in picObj" :key="index"> <el-carousel :initial-index=initialIndex height="600px" :interval="5000" trigger="click">
<img :src="item.Url?item.Url:item.url" style="width: 100%; height: 100%;"/> <el-carousel-item v-for="(item,index) in picObj" :key="index">
</el-carousel-item> <img :src="item.Url?item.Url:item.url" style="width: 100%; height: 100%;" />
</el-carousel> </el-carousel-item>
</div> </el-carousel>
</div> </div>
</div>
<div style="height:100px;"></div> <div style="height:100px;"></div>
<!-- <el-button class="pdfDom_btn" type="primary" size="small" @click="donwLoad()" v-if="loadNone==false">点击下载</el-button> --> <!-- <el-button class="pdfDom_btn" type="primary" size="small" @click="donwLoad()" v-if="loadNone==false">点击下载</el-button> -->
<template v-if="sonData"> <template v-if="sonData">
<confirmationOrderDownLoad ref="confirmationOrderDownLoad" :sonData="sonData" :TripLayer="TripLayer"/> <confirmationOrderDownLoad ref="confirmationOrderDownLoad" :sonData="sonData" :TripLayer="TripLayer" />
</template> </template>
<el-dialog custom-class='w450' title="行程下载" :visible.sync="travelControlTripLayerShow" center> <el-dialog custom-class='w450' title="行程下载" :visible.sync="travelControlTripLayerShow" center>
<div class="TripDownLoadCommon" > <div class="TripDownLoadCommon">
<table style="width:380px" border="0" cellspacing="0" cellpadding="0"> <table style="width:380px" border="0" cellspacing="0" cellpadding="0">
<tr> <tr>
<th colspan="2"> <th colspan="2">
请选择需要的类容 请选择需要的类容
</th> </th>
</tr> </tr>
<tbody> <tbody>
<tr height="36"> <tr height="36">
<td width="50%"><input id="vshowA" v-model="TripLayer.vshowA" type="checkbox" /><label for="vshowA">基础信息</label></td> <td width="50%"><input id="vshowA" v-model="TripLayer.vshowA" type="checkbox" /><label
<td width="50%"><input id="vshowB" v-model="TripLayer.vshowB" type="checkbox" /><label for="vshowB">航班信息</label></td> for="vshowA">基础信息</label></td>
<td width="50%"><input id="vshowB" v-model="TripLayer.vshowB" type="checkbox" /><label
for="vshowB">航班信息</label></td>
</tr> </tr>
<tr height="36"> <tr height="36">
<td><input id="vshowC" v-model="TripLayer.vshowC" type="checkbox" /><label for="vshowC">行程特色</label></td> <td><input id="vshowC" v-model="TripLayer.vshowC" type="checkbox" /><label
<td><input id="vshowD" v-model="TripLayer.vshowD" type="checkbox" /><label for="vshowD">行程安排</label></td> for="vshowC">行程特色</label></td>
<td><input id="vshowD" v-model="TripLayer.vshowD" type="checkbox" /><label
for="vshowD">行程安排</label></td>
</tr> </tr>
<tr height="36"> <tr height="36">
<td><input id="vshowE" v-model="TripLayer.vshowE" type="checkbox" /><label for="vshowE">费用说明</label></td> <td><input id="vshowE" v-model="TripLayer.vshowE" type="checkbox" /><label
<td><input id="vshowF" v-model="TripLayer.vshowF" type="checkbox" /><label for="vshowF">购物说明</label></td> for="vshowE">费用说明</label></td>
<td><input id="vshowF" v-model="TripLayer.vshowF" type="checkbox" /><label
for="vshowF">购物说明</label></td>
</tr> </tr>
<tr height="36"> <tr height="36">
<td><input id="vshowG" v-model="TripLayer.vshowG" type="checkbox" /><label for="vshowG">订单须知</label></td> <td><input id="vshowG" v-model="TripLayer.vshowG" type="checkbox" /><label
<td><input id="vshowH" v-model="TripLayer.vshowH" type="checkbox" /><label for="vshowH">签证信息</label></td> for="vshowG">订单须知</label></td>
<td><input id="vshowH" v-model="TripLayer.vshowH" type="checkbox" /><label
for="vshowH">签证信息</label></td>
</tr> </tr>
<tr height="36"> <tr height="36">
<td><input id="vshowI" v-model="TripLayer.vshowI" type="checkbox" /><label for="vshowI">同行备注</label></td> <td><input id="vshowI" v-model="TripLayer.vshowI" type="checkbox" /><label
<td><input id="vshowJ" v-model="TripLayer.vshowJ" type="checkbox" /><label for="vshowJ">印象标识</label></td> for="vshowI">同行备注</label></td>
<td><input id="vshowJ" v-model="TripLayer.vshowJ" type="checkbox" /><label
for="vshowJ">印象标识</label></td>
</tr> </tr>
<tr height="36"> <tr height="36">
<td><input id="vshowK" v-model="TripLayer.vshowK" type="checkbox" /><label for="vshowK">景点图片</label></td> <td><input id="vshowK" v-model="TripLayer.vshowK" type="checkbox" /><label
for="vshowK">景点图片</label></td>
</tr> </tr>
</tbody> </tbody>
<!-- <tbody> <!-- <tbody>
...@@ -638,14 +729,15 @@ ...@@ -638,14 +729,15 @@
</tbody> --> </tbody> -->
<tr height="66"> <tr height="66">
<td colspan="2" align="center"> <td colspan="2" align="center">
<input type="button" class="TripBtn" @click="PDFDownLoad();" value="确定" /> <input type="button" class="TripBtn" @click="PDFDownLoad();" value="确定" />
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>
</el-dialog> </el-dialog>
<viewer style="display:none" :images="images" :options='imageOptions' @inited="inited" class="viewer" ref="viewer"> <viewer style="display:none" :images="images" :options='imageOptions' @inited="inited" class="viewer"
ref="viewer">
<img v-for="(item,index) in images" :src="item.Url" :key="index+5000"> <img v-for="(item,index) in images" :src="item.Url" :key="index+5000">
</viewer> </viewer>
...@@ -654,514 +746,536 @@ ...@@ -654,514 +746,536 @@
<script> <script>
import moment from 'moment' import moment from 'moment'
// import bmap from './map.vue' // import bmap from './map.vue'
import calendar from './calendar.vue' import calendar from './calendar.vue'
import trip from '../trip/waterfall/index' import trip from '../trip/waterfall/index'
import block from '../trip/block/index' import block from '../trip/block/index'
import trade from '../trade/order/index' import trade from '../trade/order/index'
import swiper from '../trip/swiper/index' import swiper from '../trip/swiper/index'
import GGMap from '../global/GGMap' import GGMap from '../global/GGMap'
import confirmationOrderDownLoad from '../global/confirmationOrderDownLoad' import confirmationOrderDownLoad from '../global/confirmationOrderDownLoad'
import bus from '../../plugins/event-bus' import bus from '../../plugins/event-bus'
export default { export default {
components: { components: {
// bmap, // bmap,
GGMap, GGMap,
calendar, calendar,
trip, trip,
block, block,
trade, trade,
swiper, swiper,
confirmationOrderDownLoad confirmationOrderDownLoad
},
props:['changeCity'],
data () {
return {
ID:'',
tcid: '',
pre:0,
chosenTime:'',
crn:2,
etn:0,
changeNav:false,
scrollobj:null,
picIsShow:false,
initialIndex:0,
showType:-1,
crtnav:'tese',
dayList:[],
feature:{},
priceList:[],
dataList:{},
toDayObj:{},
calendarTit:[],
classArray:[],
imgCover:[],
picObj:[],
travelLngLat:[],
selectMonth:0,
value:'1',
dayTrip:'',
input10:'',
isLogin:1,
oderInfoShow:false,
indexActive:0,
clickDate:'',
travelControlTripLayerShow: false,
TripLayer: {
vshowA :true,
vshowB :true,
vshowC :true,
vshowD :true,
vshowE :true,
vshowF :true,
vshowG :true,
vshowH :true,
vshowI :true,
vshowJ :true,
vshowK :true,
vshowL :true,
vshowM :true,
vshowLLR :true,
},
navs:[
'flight',
'tese',
'teamacitvy',
'feiyong',
'gouwu',
'yuding',
'qianz',
'tonghang'
],
pickerOptions:{
disabledDate(time) {
// return moment(time).format('YYYY-MM-DD')!='2018-10-18' && moment(time).format('YYYY-MM-DD')!='2018-10-28'
}
},
maxdiscountAmount:0,
loadingDataList:false,
htmlTitle: '印象之旅',
loadNone:false,
site:localStorage.site,
priceListIndex:0,
isDirect:1,//是否是直采 0:否,1:是
abcList: ['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','AA','AB','AC','AD','AE','AF','AG'],
travelLngLatInfo:[],
VideoStr:'',
sonData: null,
showFlight: false,
FlightList: [],
city: -1,
teamType:0,
free:0,
images:[],
imageOptions:{
navbar:false,
title:false
},
}
},watch: { // 监听参数变化
changeCity: {
handler: function(val, oldVal) {
// console.log(val)
if(val){
this.getList()
}
},
deep: true
},
},created(){
if(this.$route.query.teamType){
this.teamType=this.$route.query.teamType;
}
this.ID = decodeURIComponent(this.$route.params.id)
this.tcid = decodeURIComponent(this.$route.params.tcid)
if(this.$route.params.pre && this.$route.params.pre=='preview'){
this.pre=1
}
this.getList()
this.isLogin=this.$store.state.isLogin;
bus.$on('order-chosen', this.orderChosen)
if(this.$route.query.free){
this.free=1;
this.getAction(3);
}
},
mounted () {
this.scrollobj=document.getElementsByClassName('el-scrollbar__wrap')[0];
this.scrollobj.addEventListener('scroll', this.handleScroll);
// this.initMap();
},
methods: {
inited (viewer){
this.$viewer = viewer
},
BigImgShow(index){
// if(num==1){
this.$viewer.view(index)
this.$viewer.show()
// }
}, },
props: ['changeCity'],
data() {
return {
ID: '',
tcid: '',
pre: 0,
chosenTime: '',
crn: 2,
etn: 0,
changeNav: false,
scrollobj: null,
picIsShow: false,
initialIndex: 0,
showType: -1,
crtnav: 'tese',
dayList: [],
feature: {},
priceList: [],
dataList: {},
toDayObj: {},
calendarTit: [],
classArray: [],
imgCover: [],
picObj: [],
travelLngLat: [],
selectMonth: 0,
value: '1',
dayTrip: '',
input10: '',
isLogin: 1,
oderInfoShow: false,
indexActive: 0,
clickDate: '',
travelControlTripLayerShow: false,
TripLayer: {
vshowA: true,
vshowB: true,
vshowC: true,
vshowD: true,
vshowE: true,
vshowF: true,
vshowG: true,
vshowH: true,
vshowI: true,
vshowJ: true,
vshowK: true,
vshowL: true,
vshowM: true,
vshowLLR: true,
},
navs: [
'flight',
'tese',
'teamacitvy',
'feiyong',
'gouwu',
'yuding',
'qianz',
'tonghang'
],
pickerOptions: {
disabledDate(time) {
// return moment(time).format('YYYY-MM-DD')!='2018-10-18' && moment(time).format('YYYY-MM-DD')!='2018-10-28'
}
},
maxdiscountAmount: 0,
loadingDataList: false,
htmlTitle: '印象之旅',
loadNone: false,
site: localStorage.site,
priceListIndex: 0,
isDirect: 1, //是否是直采 0:否,1:是
abcList: ['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', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG'
],
travelLngLatInfo: [],
VideoStr: '',
sonData: null,
showFlight: false,
FlightList: [],
city: -1,
teamType: 0,
free: 0,
images: [],
imageOptions: {
navbar: false,
title: false
},
orderChosen: function (date) {
let day = date.split('-')[0] + '-' + date.split('-')[1]
this.calendarTit.forEach((x, index)=>{
if (x.dateStrS === day) {
this.selectMonth = index;
this.indexActive = index;
setTimeout(function(){
bus.$emit('order-chosen_calendar', date)
},500)
}
})
},
editSrc: function (src) {
return src.split('?')[0]
},
PDFDownLoad: function (type) {
if (type) {
this.travelControlTripLayerShow = true
} else {
let orderMsg = this.sonData.orderMsg
this.travelControlTripLayerShow = false
this.$refs.confirmationOrderDownLoad.toPDF(orderMsg.startDate + orderMsg.lineteamName+orderMsg.dayNum+'日游');
} }
}, },
ToWord: function () { watch: { // 监听参数变化
this.loadingDataList = true changeCity: {
let title = this.dataList.currentPriceInfo.startDate + this.dataList.ltName + this.dataList.dayNum + '日游' handler: function (val, oldVal) {
let msg = { // console.log(val)
configId: this.dayList.id, if (val) {
cityId: this.city, this.getList()
tcid: this.tcid, }
orderId: 0, },
FileName: title, deep: true
//是否显示基础信息 },
isShowBase: 1 ,
//是否显示航班
isShowFlight: 1,
//是否显示行程特色
isShowFeature: 1,
//自费、费用包含、费用不含
isShowFee: 1,
//购物说明,购物安排
isShowShop: 1,
//重要提示、温馨提示 [订单须知]
isShowTip: 1,
//是否显示同行备注
isShowB2B: 1,
//是否显示行程
isShowTrip: 1,
//是否显示标题
isShowTitle: 1,
//是否显示旅客名单
isShowGuest: 0,
//是否显示紧急联系人
isShowMan: 0,
//是否显示团号
isShowTCNUM: 0,
//是否显示行程图片
isShowTripImage: 1,
//是否显示签证信息
isShowVisa: 1,
//isPc是否PC下载
isPc: 1,
//模板参数
templateId: this.showType,
};
this.GetLocalFile("DownLoadTripWord", msg, title + ".doc", res => {
this.loadingDataList = false
});
}, },
donwLoad(){ created() {
this.loadNone = true; if (this.$route.query.teamType) {
this.loadingDataList = true; this.teamType = this.$route.query.teamType;
let imgs=document.getElementsByTagName('img');
for(let i=0;i<imgs.length;i++){
document.getElementsByTagName('img')[i].setAttribute('crossOrigin','Anonymous')
} }
window.setTimeout(this.getPdf('#pdfDom'),3000); this.ID = decodeURIComponent(this.$route.params.id)
}, this.tcid = decodeURIComponent(this.$route.params.tcid)
DateDiff(sDate1, sDate2){ //sDate1和sDate2是2002-12-18格式 if (this.$route.params.pre && this.$route.params.pre == 'preview') {
var aDate, oDate1, oDate2, iDays this.pre = 1
aDate = sDate1.split("-") }
oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) //转换为12-18-2002格式 this.getList()
aDate = sDate2.split("-") this.isLogin = this.$store.state.isLogin;
oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) bus.$on('order-chosen', this.orderChosen)
iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 /24) //把相差的毫秒数转换为天数 if (this.$route.query.free) {
return iDays this.free = 1;
}, this.getAction(3);
ListenChildren(word){
this.clickDate = word
let data = this.dataList.priceList;
for ( let i = 0; i < data.length; i++) {
if (word===data[i].startDate){
this.priceListIndex = i;
let msg = {configId:data[i].configIDDes, cityId:this.city, preview:this.pre, tcid:data[i].tcid,teamType:this.teamType}
bus.$emit('chosen-tripdate', word)
this.getData(msg)
}
} }
}, },
oderInfoShowF(){ mounted() {
this.oderInfoShow = !this.oderInfoShow this.scrollobj = document.getElementsByClassName('el-scrollbar__wrap')[0];
}, this.scrollobj.addEventListener('scroll', this.handleScroll);
showImg(obj){ // this.initMap();
obj.forEach(x=>{
x.Url = x.Url.split('?')[0]
})
this.picObj= obj
this.picIsShow= true;
}, },
getList(){ methods: {
this.apipost('b2b_get_site',{},res=> { inited(viewer) {
let data = res.data.data this.$viewer = viewer
let city = 0 },
for(let i = 0 ; i < data.length; i++ ) { BigImgShow(index) {
if(data[i].companyId == localStorage.site) { // if(num==1){
city = data[i].cityId this.$viewer.view(index)
this.city = city this.$viewer.show()
break // }
},
orderChosen: function (date) {
let day = date.split('-')[0] + '-' + date.split('-')[1]
this.calendarTit.forEach((x, index) => {
if (x.dateStrS === day) {
this.selectMonth = index;
this.indexActive = index;
setTimeout(function () {
bus.$emit('order-chosen_calendar', date)
}, 500)
} }
})
},
editSrc: function (src) {
return src.split('?')[0]
},
PDFDownLoad: function (type) {
if (type) {
this.travelControlTripLayerShow = true
} else {
let orderMsg = this.sonData.orderMsg
this.travelControlTripLayerShow = false
this.$refs.confirmationOrderDownLoad.toPDF(orderMsg.startDate + orderMsg.lineteamName + orderMsg
.dayNum + '日游');
} }
let msg = {configId:this.ID,cityId:city,preview:this.pre,tcid:this.tcid,teamType:this.teamType} },
this.getData(msg) ToWord: function () {
}) this.loadingDataList = true
}, let title = this.dataList.currentPriceInfo.startDate + this.dataList.ltName + this.dataList.dayNum +
getData: function (msg) { '日游'
this.loadingDataList=true let msg = {
this.apipost('b2b_get_GetB2BTravelInfoV1',msg,r=>{ configId: this.dayList.id,
cityId: this.city,
if(r.data.resultCode==1){ tcid: this.tcid,
let data = (r.data.data); orderId: 0,
this.sonData = data; FileName: title,
this.dayList = data.dayList; //是否显示基础信息
this.feature = data.feature; isShowBase: 1,
this.isDirect = data.isDirect; //是否显示航班
if(!this.$route.query.free){ isShowFlight: 1,
this.getAction(7,data.lineId); //是否显示行程特色
isShowFeature: 1,
//自费、费用包含、费用不含
isShowFee: 1,
//购物说明,购物安排
isShowShop: 1,
//重要提示、温馨提示 [订单须知]
isShowTip: 1,
//是否显示同行备注
isShowB2B: 1,
//是否显示行程
isShowTrip: 1,
//是否显示标题
isShowTitle: 1,
//是否显示旅客名单
isShowGuest: 0,
//是否显示紧急联系人
isShowMan: 0,
//是否显示团号
isShowTCNUM: 0,
//是否显示行程图片
isShowTripImage: 1,
//是否显示签证信息
isShowVisa: 1,
//isPc是否PC下载
isPc: 1,
//模板参数
templateId: this.showType,
};
this.GetLocalFile("DownLoadTripWord", msg, title + ".doc", res => {
this.loadingDataList = false
});
},
donwLoad() {
this.loadNone = true;
this.loadingDataList = true;
let imgs = document.getElementsByTagName('img');
for (let i = 0; i < imgs.length; i++) {
document.getElementsByTagName('img')[i].setAttribute('crossOrigin', 'Anonymous')
}
window.setTimeout(this.getPdf('#pdfDom'), 3000);
},
DateDiff(sDate1, sDate2) { //sDate1和sDate2是2002-12-18格式
var aDate, oDate1, oDate2, iDays
aDate = sDate1.split("-")
oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) //转换为12-18-2002格式
aDate = sDate2.split("-")
oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24) //把相差的毫秒数转换为天数
return iDays
},
ListenChildren(word) {
this.clickDate = word
let data = this.dataList.priceList;
for (let i = 0; i < data.length; i++) {
if (word === data[i].startDate) {
this.priceListIndex = i;
let msg = {
configId: data[i].configIDDes,
cityId: this.city,
preview: this.pre,
tcid: data[i].tcid,
teamType: this.teamType
}
bus.$emit('chosen-tripdate', word)
this.getData(msg)
}
}
},
oderInfoShowF() {
this.oderInfoShow = !this.oderInfoShow
},
showImg(obj) {
obj.forEach(x => {
x.Url = x.Url.split('?')[0]
})
this.picObj = obj
this.picIsShow = true;
},
getList() {
this.apipost('b2b_get_site', {}, res => {
let data = res.data.data
let city = 0
for (let i = 0; i < data.length; i++) {
if (data[i].companyId == localStorage.site) {
city = data[i].cityId
this.city = city
break
}
} }
if (data.videoStr) { let msg = {
let path = data.videoStr.indexOf('http') > -1 ? data.videoStr : domainManager().ViittoFileUrl + data.videoStr; configId: this.ID,
this.VideoStr = path; cityId: city,
preview: this.pre,
tcid: this.tcid,
teamType: this.teamType
} }
// console.log(data.priceList[0].priceFlight) this.getData(msg)
// if(data.priceList && data.priceList.length>0){ })
// data.priceList[0].priceFlight.forEach((x,i)=>{ },
// if(i==0){ getData: function (msg) {
// x.dayNum = 1; this.loadingDataList = true
// if(x.departureTime<x.arrivalTime){ this.apipost('b2b_get_GetB2BTravelInfoV1', msg, r => {
// x.daodaDay = 1;
// }else{ if (r.data.resultCode == 1) {
// x.daodaDay = 2; let data = (r.data.data);
// } this.sonData = data;
// } else { this.dayList = data.dayList;
// console.log(this.DateDiff(data.priceList[0].priceFlight[0].startDate,x.startDate)) this.feature = data.feature;
// x.dayNum = this.DateDiff(data.priceList[0].priceFlight[0].startDate,x.startDate); this.isDirect = data.isDirect;
// x.dayNum +=1 if (!this.$route.query.free) {
// if(x.departureTime<x.arrivalTime){ this.getAction(7, data.lineId);
// x.daodaDay = x.dayNum; }
// }else{ if (data.videoStr) {
// x.daodaDay = x.dayNum+1; let path = data.videoStr.indexOf('http') > -1 ? data.videoStr : domainManager()
// } .ViittoFileUrl + data.videoStr;
// } this.VideoStr = path;
// }) }
// } // console.log(data.priceList[0].priceFlight)
this.priceList = data.priceList; // if(data.priceList && data.priceList.length>0){
this.clickDate = data.currentPriceInfo && data.currentPriceInfo.startDate ? data.currentPriceInfo.startDate : ''; // data.priceList[0].priceFlight.forEach((x,i)=>{
this.FlightList = data.currentPriceInfo && data.currentPriceInfo.priceFlight ? data.currentPriceInfo.priceFlight : ''; // if(i==0){
this.dataList = data; // x.dayNum = 1;
this.toDayObj = data.currentPriceInfo; // if(x.departureTime<x.arrivalTime){
this.imgCover = JSON.parse(this.dataList.imgCover); // x.daodaDay = 1;
this.images = this.imgCover; // }else{
this.showType = this.feature.featureType; // x.daodaDay = 2;
this.dayTrip = this.dataList.dayNum; // }
if(this.dataList.isDirect==1&&this.dataList.travelLngLat.length){ // } else {
this.travelLngLat = [];//this.dataList.travelLngLat; // console.log(this.DateDiff(data.priceList[0].priceFlight[0].startDate,x.startDate))
this.dataList.travelLngLat.forEach(x=>{ // x.dayNum = this.DateDiff(data.priceList[0].priceFlight[0].startDate,x.startDate);
if(x.type!=2){ // x.dayNum +=1
this.travelLngLat.push(x) // if(x.departureTime<x.arrivalTime){
} // x.daodaDay = x.dayNum;
}) // }else{
let travelLngLatInfo = []; // x.daodaDay = x.dayNum+1;
this.travelLngLat.forEach((x,index)=>{ // }
travelLngLatInfo.push( // }
{ // })
// }
this.priceList = data.priceList;
this.clickDate = data.currentPriceInfo && data.currentPriceInfo.startDate ? data
.currentPriceInfo.startDate : '';
this.FlightList = data.currentPriceInfo && data.currentPriceInfo.priceFlight ? data
.currentPriceInfo.priceFlight : '';
this.dataList = data;
this.toDayObj = data.currentPriceInfo;
this.imgCover = JSON.parse(this.dataList.imgCover);
this.images = this.imgCover;
this.showType = this.feature.featureType;
this.dayTrip = this.dataList.dayNum;
if (this.dataList.isDirect == 1 && this.dataList.travelLngLat.length) {
this.travelLngLat = []; //this.dataList.travelLngLat;
this.dataList.travelLngLat.forEach(x => {
if (x.type != 2) {
this.travelLngLat.push(x)
}
})
let travelLngLatInfo = [];
this.travelLngLat.forEach((x, index) => {
travelLngLatInfo.push({
lable: this.abcList[index], lable: this.abcList[index],
text: x.name text: x.name
} })
) })
}) this.travelLngLatInfo = travelLngLatInfo;
this.travelLngLatInfo = travelLngLatInfo; }
} this.creatCalendar(this.priceList);
this.creatCalendar(this.priceList); if (data.lineTeamDiscountList && data.lineTeamDiscountList.length > 0) {
if(data.lineTeamDiscountList && data.lineTeamDiscountList.length>0){ data.lineTeamDiscountList.forEach(x => {
data.lineTeamDiscountList.forEach(x=>{ this.maxdiscountAmount = x.discountAmount > this.maxdiscountAmount ?
this.maxdiscountAmount=x.discountAmount>this.maxdiscountAmount?x.discountAmount:this.maxdiscountAmount x.discountAmount : this.maxdiscountAmount
}) })
}
this.htmlTitle = this.dataList.ltName;
this.showFlight = true
this.$forceUpdate()
// console.log("dataList",this.dataList)
} else {
this.$message.error(r.data.message)
} }
this.htmlTitle = this.dataList.ltName; this.loadingDataList = false
this.showFlight = true }, null)
this.$forceUpdate() },
// console.log("dataList",this.dataList) creatCalendar(list) { // 创建日历
}else{
this.$message.error(r.data.message) let dateList = [];
if (list && list.length > 0) {
list.forEach((x, index) => {
if (x.tcState == 3) {
let msg = {
dateStr: x.startDate,
cDate: x.startDate.replace('-', '年').replace('-', '月'),
price: x.b2CPrice,
b2BMemberPrice: x.b2BMemberPrice,
b2BPrice: x.b2BPrice,
b2CMemberPrice: x.b2CMemberPrice,
id: index,
dateStrS: x.startDate.substring(0, x.startDate.length - 3),
tcid: x.tcid,
configIDDes: x.configIDDes
}
dateList.push(msg);
}
});
} }
this.loadingDataList=false let monthArray = [];
},null) for (var i in dateList) {
}, var data = dateList[i];
creatCalendar(list){ // 创建日历 var dateDict = {
'mounth': data.dateStr.substring(0, data.dateStr.length - 3)
let dateList = []; };
if(list && list.length>0){ monthArray.push(dateDict);
list.forEach((x,index)=>{ }
if(x.tcState==3){ //数组去重,获取有几个月
let msg = { var hash = {};
dateStr:x.startDate, monthArray = monthArray.reduce(
cDate:x.startDate.replace('-','年').replace('-','月'), function (item, next) {
price:x.b2CPrice, hash[next.mounth] ? '' : hash[next.mounth] = true && item.push(next);
b2BMemberPrice:x.b2BMemberPrice, return item;
b2BPrice:x.b2BPrice, }, []
b2CMemberPrice:x.b2CMemberPrice, )
id:index, //数据分组
dateStrS:x.startDate.substring(0,x.startDate.length-3), let classArray = [];
tcid: x.tcid, for (var j in monthArray) {
configIDDes: x.configIDDes var newArray = new Array();
for (var i in dateList) {
var data = dateList[i];
if (data.dateStr.substring(0, data.dateStr.length - 3) == monthArray[j].mounth) {
newArray.push(data)
} }
dateList.push(msg);
} }
classArray.push(newArray);
});
}
let monthArray = [];
for (var i in dateList) {
var data = dateList[i];
var dateDict = {'mounth':data.dateStr.substring(0,data.dateStr.length-3)};
monthArray.push(dateDict);
}
//数组去重,获取有几个月
var hash={};
monthArray = monthArray.reduce(
function (item,next) {
hash[next.mounth]?'' :hash[next.mounth] = true && item.push(next);
return item;
},[]
)
//数据分组
let classArray = [];
for (var j in monthArray) {
var newArray = new Array();
for (var i in dateList) {
var data = dateList[i];
if (data.dateStr.substring(0,data.dateStr.length-3) == monthArray[j].mounth) {
newArray.push(data)
}
}
classArray.push(newArray);
}
this.classArray = classArray;
var hash={};
dateList = dateList.reduce(
function (item,next) {
hash[next.dateStrS]?'' :hash[next.dateStrS] = true && item.push(next);
return item;
},[]
)
this.calendarTit = dateList;
},
goScroll(id){
this.scrollobj.scrollTop=document.getElementById(id).offsetTop+screen.availHeight-350;
},
//跳转至新行程
goUrlTrip(){
this.$router.push({
name: "newTrip",
query: {
ID : decodeURIComponent(this.$route.params.id),
tcid : decodeURIComponent(this.$route.params.tcid)
}
})
},
handleScroll(){
try {
if(this.scrollobj.scrollTop>this.$refs.nav.offsetTop){
this.changeNav=true
}else{
this.changeNav=false
} }
let current='' this.classArray = classArray;
this.navs.forEach(x=>{ var hash = {};
let t=document.getElementById(x).offsetTop dateList = dateList.reduce(
if(t<=this.scrollobj.scrollTop-200){ function (item, next) {
current=x hash[next.dateStrS] ? '' : hash[next.dateStrS] = true && item.push(next);
return item;
}, []
)
this.calendarTit = dateList;
},
goScroll(id) {
this.scrollobj.scrollTop = document.getElementById(id).offsetTop + screen.availHeight - 350;
},
//跳转至新行程
goUrlTrip(){
this.$router.push({
name: "newTrip",
query: {
ID : decodeURIComponent(this.$route.params.id),
tcid : decodeURIComponent(this.$route.params.tcid)
} }
}) })
this.crtnav=current },
} catch (error) { handleScroll() {
try {
} if (this.scrollobj.scrollTop > this.$refs.nav.offsetTop) {
}, this.changeNav = true
selectMounth(index){ } else {
this.selectMonth = index; this.changeNav = false
this.indexActive = index; }
}, let current = ''
initMap: function () { this.navs.forEach(x => {
//所有坐标 let t = document.getElementById(x).offsetTop
var locations = new Array( if (t <= this.scrollobj.scrollTop - 200) {
"31.953313,121.841581","31.15347,121.291706", current = x
"31.207516,121.412556","31.122909,121.458561", }
"31.118207,121.38715","31.041168,121.426289", })
"30.985262,121.301319","31.057934,121.305834"); this.crtnav = current
//地图 } catch (error) {
var map;
var marker; }
var poly; },
selectMounth(index) {
this.selectMonth = index;
this.indexActive = index;
},
initMap: function () {
//所有坐标
var locations = new Array(
"31.953313,121.841581", "31.15347,121.291706",
"31.207516,121.412556", "31.122909,121.458561",
"31.118207,121.38715", "31.041168,121.426289",
"30.985262,121.301319", "31.057934,121.305834");
//地图
var map;
var marker;
var poly;
/* 加载地图 */ /* 加载地图 */
var latlng = new google.maps.LatLng(31.253313, 121.241581); var latlng = new google.maps.LatLng(31.253313, 121.241581);
var myOptions = { var myOptions = {
zoom: 10, //缩放级别 zoom: 10, //缩放级别
center: latlng, //坐标 center: latlng, //坐标
mapTypeId: google.maps.MapTypeId.ROADMAP //类型:默认的普通二维图块 mapTypeId: google.maps.MapTypeId.ROADMAP //类型:默认的普通二维图块
}; };
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
// console.log(google) // console.log(google)
// 线条设置 // 线条设置
// var polyOptions = { // var polyOptions = {
// strokeColor: '#4a90e2', // 颜色 // strokeColor: '#4a90e2', // 颜色
// strokeOpacity: 1.0, // 透明度 // strokeOpacity: 1.0, // 透明度
// strokeWeight: 2 // 宽度 // strokeWeight: 2 // 宽度
// } // }
// poly = new google.maps.Polyline(polyOptions); // poly = new google.maps.Polyline(polyOptions);
// poly.setMap(map); // 装载 // poly.setMap(map); // 装载
/* 循环标出所有坐标 */ /* 循环标出所有坐标 */
// for(var i=0; i<locations.length; i++){ // for(var i=0; i<locations.length; i++){
// var loc = locations[i].split(','); // var loc = locations[i].split(',');
// var path = poly.getPath(); //获取线条的坐标 // var path = poly.getPath(); //获取线条的坐标
// path.push(new google.maps.LatLng(loc[0], loc[1])); //为线条添加标记坐标 // path.push(new google.maps.LatLng(loc[0], loc[1])); //为线条添加标记坐标
// //生成标记图标 // //生成标记图标
// marker = new google.maps.MarkerWithLabel({ // marker = new google.maps.MarkerWithLabel({
// position: new google.maps.LatLng(loc[0], loc[1]), // position: new google.maps.LatLng(loc[0], loc[1]),
// labelContent: `<div> // labelContent: `<div>
// <img src="http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,m_fixed,h_50,w_50"></img> // <img src="http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,m_fixed,h_50,w_50"></img>
// <p>新疆-北京</p> // <p>新疆-北京</p>
// </div>`, //需要显示的标题的内容 // </div>`, //需要显示的标题的内容
// labelAnchor: 0, //当前标题基于marker左上角的偏移 // labelAnchor: 0, //当前标题基于marker左上角的偏移
// labelStyle:{ //标题的style样式 // labelStyle:{ //标题的style样式
// color: "red", // color: "red",
// fontSize: "12px" // fontSize: "12px"
// }, // },
// map: map, // map: map,
// labelClass:"_labelClass", //支持直接绑定class名,将样式写在css里面 // labelClass:"_labelClass", //支持直接绑定class名,将样式写在css里面
// // icon: "http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,m_fixed,h_50,w_50" // // icon: "http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,m_fixed,h_50,w_50"
// }) // })
// } // }
}
} }
} }
} </script>
</script> \ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment