Commit 37f3c5c8 authored by 沈良进's avatar 沈良进

Merge branch 'master' of http://gitlab.oytour.com/viitto/million

parents 209d7096 aaf94d58
...@@ -49,6 +49,27 @@ body { ...@@ -49,6 +49,27 @@ body {
font-family: "Noto Sans SC", 微软雅黑, "Microsoft YaHei", sans-serif !important; font-family: "Noto Sans SC", 微软雅黑, "Microsoft YaHei", sans-serif !important;
font-weight: 400 !important; font-weight: 400 !important;
} }
.fz14{
font-size: 14px;
}
.fz15{
font-size: 15px;
}
.fz16{
font-size: 16px;
}
.fz17{
font-size: 17px;
}
.fz18{
font-size: 18px;
}
.fz20{
font-size: 20px;
}
.fz28{
font-size: 28px;
}
.text-middle{ .text-middle{
display: flex; display: flex;
align-items: center; align-items: center;
......
...@@ -20,8 +20,7 @@ Vue.prototype.domainManager = function() { ...@@ -20,8 +20,7 @@ Vue.prototype.domainManager = function() {
domainUrl = "http://testapi.oytour.com"; domainUrl = "http://testapi.oytour.com";
} else if (domainNameUrl.indexOf('oytour') !== -1) { } else if (domainNameUrl.indexOf('oytour') !== -1) {
domainUrl = "http://reborn.oytour.com"; domainUrl = "http://reborn.oytour.com";
// domainUrl = 'http://192.168.10.11:8083' domainUrl = 'http://192.168.10.206:8015'
domainUrl = 'http://192.168.10.206:8015' // 吴春
} }
var obj = { var obj = {
//主地址 //主地址
......
<style scoped>
.card {width: 100vm;
height: 320px;
border: 1px solid #F0EFEF;
border-radius: 8px;}
</style>
<template>
<div class="card" :id="`baidu-map_${center.Id}`"></div>
</template>
<script>
export default {
props:["AddressObj"],
data() {
return {
center:{
Lng: 116.294625,
Lat: 39.961627
}
}
},
watch: {
AddressObj:{
handler(newValue,onldValue) {
this.center = newValue
},
deep:true,
immediate:true
}
},
mounted() {
this.createMap();
this.addMarker();
this.addLabel()
if(this.center.Range&&this.center.Range>0){
this.addCircle()
}
},
methods: {
createMap() {
if (!BMapGL) {
return;
}
let map = new BMapGL.Map(`baidu-map_${this.center.Id}`); // 创建地图实例
let point = new BMapGL.Point(this.center.Lng, this.center.Lat); // 创建点坐标
map.centerAndZoom(point, 15); // 初始化地图,设置中心点坐标和地图级别
this.map = map;
},
addMarker() {
let icon = require(`../../assets/img/marker.png`);
var myIcon = new BMapGL.Icon(icon, new BMapGL.Size(23, 25), {
// 指定定位位置。
// 当标注显示在地图上时,其所指向的地理位置距离图标左上
// 角各偏移10像素和25像素。您可以看到在本例中该位置即是
// 图标中央下端的尖角位置。
anchor: new BMapGL.Size(10, 25),
// 设置图片偏移。
// 当您需要从一幅较大的图片中截取某部分作为标注图标时,您
// 需要指定大图的偏移位置,此做法与css sprites技术类似。
// imageOffset: new BMapGL.Size(0, 0 - 25) // 设置图片偏移
});
let point = new BMapGL.Point(this.center.Lng, this.center.Lat); // 创建点坐标
// 创建标注对象并添加到地图
var marker = new BMapGL.Marker(point, { icon: myIcon });
this.map.addOverlay(marker);
},
addLabel() {
var point = new BMapGL.Point(this.center.Lng, this.center.Lat);
var content = this.center.Address;
var label = new BMapGL.Label(content, {
// 创建文本标注
position: point, // 设置标注的地理位置
offset: new BMapGL.Size(10, -60), // 设置标注的偏移量
});
this.map.addOverlay(label); // 将标注添加到地图中
label.addEventListener("click", function () {
// alert("您点击了标注");
});
label.setStyle({
// 设置label的样式
color: "#000",
fontSize: "18px",
border: "0 solid #1E90FF",
padding: '0 5px',
borderRadius: '3px',
});
},
addCircle(){
var mPoint = new BMapGL.Point(this.center.Lng, this.center.Lat);
var circle = new BMapGL.Circle(mPoint,this.center.Range,{fillColor:"blue", strokeWeight: 1 ,fillOpacity: 0.3, strokeOpacity: 0.3});
this.map.addOverlay(circle);
}
},
}
</script>
\ No newline at end of file
...@@ -10,7 +10,21 @@ ...@@ -10,7 +10,21 @@
flat flat
/> />
</div> </div>
<div class="text-grey-6 f12 q-my-md">選擇類型</div> <template v-if="dataList.CarType!=3">
<div class="text-grey-6 f12 q-my-md">選擇機場</div>
<div class="row wrap">
<q-btn @click="handleSelectAirport(item)"
:color="item.Id === selectedAirport?'primary':'grey-5'"
unelevated
class="car-tag mr"
v-for="item in AirportList"
:key="item.Id"
>
{{ item.AirportName }}
</q-btn>
</div>
</template>
<div class="text-grey-6 f12 q-my-md">選擇車類型</div>
<div class="row wrap"> <div class="row wrap">
<q-btn @click="handleSelect(item)" <q-btn @click="handleSelect(item)"
:color="item.Id === selectedCar?'primary':'grey-5'" :color="item.Id === selectedCar?'primary':'grey-5'"
...@@ -94,8 +108,15 @@ ...@@ -94,8 +108,15 @@
<span class="text-h6 text-primary product-price">CNY {{ moneyFormat(sumPrice,0) }}</span> <span class="text-h6 text-primary product-price">CNY {{ moneyFormat(sumPrice,0) }}</span>
</div> </div>
<div class="q-mt-md text-right"> <div class="q-mt-md text-right">
<span class="q-mr-lg f12 text-negative" v-if="!p.startDate" >{{$q.platform.is.mobile?'請選擇上面的出行日期':'請選擇左側的出行日期'}} </span> <span class="q-mr-lg f12 text-negative" v-if="!p.startDate" >
<q-btn color="primary" label="立即訂購" unelevated class="q-px-lg" :disable="sumPrice==0"/> {{$q.platform.is.mobile?'請選擇上面的出行日期':'請選擇左側的出行日期'}}
</span>
<span class="q-mr-lg f12 text-negative"
v-if="(p.startDate&&!selectedCar)||(p.startDate&&dataList.CarType!=3&&!selectedAirportObj)" >
{{`請選擇上面的${dataList.CarType==3?'車類型':'機場、車類型'}`}}
</span>
<q-btn color="primary" label="立即訂購" unelevated class="q-px-lg" :disable="sumPrice==0"
@click="goUrl"/>
</div> </div>
</div> </div>
</div> </div>
...@@ -103,22 +124,26 @@ ...@@ -103,22 +124,26 @@
<script> <script>
export default { export default {
props: ["price","CarTypeList","configId","Month"], props: ["dataList","price","CarTypeList","AirportList","configId","Month"],
watch: { watch: {
price: { price: {
handler(n, o) { handler(n, o) {
this.p = n; this.p = n;
console.log(n,'-----') if(n&&n.startDate){
this.chosenObj.startDate = n.startDate; this.chosenObj.startDate = n.startDate;
// this.selectedCar = this.CarTypeList[0].Id
// this.selectedObj = this.CarTypeList[0]
}
this.calcMoney() this.calcMoney()
}, },
deep: true, deep: true,
immediate: true immediate: false
}, },
CarTypeList: { CarTypeList: {
handler(n, o) { handler(n, o) {
this.CarTypeList = n; this.CarTypeList = n;
this.selectedCar = this.CarTypeList[0].Id
}, },
deep: true, deep: true,
immediate: true immediate: true
...@@ -129,9 +154,11 @@ export default { ...@@ -129,9 +154,11 @@ export default {
p: {}, p: {},
chosenObj: null, chosenObj: null,
sumPrice:0, sumPrice:0,
selectedCar: 0,
selectedObj: null, selectedObj: null,
priceList: [], priceList: [],
selectedCar: 0 selectedAirport: 0,
selectedAirportObj: null,
}; };
}, },
created() { created() {
...@@ -140,11 +167,18 @@ export default { ...@@ -140,11 +167,18 @@ export default {
this.chosenObj.startDate = this.p.startDate; this.chosenObj.startDate = this.p.startDate;
this.calcMoney() this.calcMoney()
this.getCarPriceData2() this.getCarPriceData2()
this.selectedCar = this.CarTypeList[0].Id // this.selectedCar = this.CarTypeList[0].Id
// this.selectedObj = this.CarTypeList[0]
} }
}, },
methods: { methods: {
goUrl(){
this.CommonJump(
"/PickuporderForm",
{}
);
},
// 获取车的详情 // 获取车的详情
getCarPriceData2() { getCarPriceData2() {
this.priceList = [] this.priceList = []
...@@ -158,21 +192,49 @@ export default { ...@@ -158,21 +192,49 @@ export default {
}, },
(r) => { (r) => {
if (r.data.resultCode == 1) { if (r.data.resultCode == 1) {
let arr = []
r.data.data.forEach(x=>{ r.data.data.forEach(x=>{
x.startDate = x.Date if(x.Price){
x.originalB2CPrice = x.Price if(this.chosenObj.startDate==x.Date){
x.remainNum =1 this.p.originalB2CPrice = x.Price
x.Count = 1 }
x.isSupportChildren = 1 let dataObj = {
x.safeMoney = 0 startDate: x.Date,
this.p.originalB2CPrice = x.Price originalB2CPrice: x.Price,
remainNum: 1,
Count: 1,
isSupportChildren: 1,
safeMoney: 0,
}
arr.push(dataObj)
}
}) })
this.$emit('getPriceList',JSON.stringify(r.data.data),this.selectedCar) const temp= JSON.parse(JSON.stringify(r.data.data))
let PriceArr = temp.filter(x=>{ return x.Price>0 })
if(PriceArr.length>0){
this.$emit('getPriceList',JSON.stringify(arr),this.selectedCar)
}else{
let dataObj = {
startDate: '',
originalB2CPrice: '',
remainNum: 0,
Count: 0,
isSupportChildren: 0,
safeMoney: 0,
}
this.priceList.push(dataObj)
this.$emit('getPriceList',JSON.stringify(this.priceList),this.selectedCar)
this.p.originalB2CPrice = 0
this.resetHandler()
}
} }
},null) },null)
}, },
handleSelectAirport(item){
this.selectedAirportObj = item
this.selectedAirport = item.Id
},
handleSelect(item){ handleSelect(item){
this.selectedObj = item this.selectedObj = item
this.selectedCar = item.Id this.selectedCar = item.Id
...@@ -186,9 +248,17 @@ export default { ...@@ -186,9 +248,17 @@ export default {
remark: "", remark: "",
}; };
}, },
resetHandler() { resetHandler(type) {
this.p = {}; if(type&&type!=1){
this.initModel() this.selectedCar = 0
this.selectedObj = null
this.selectedAirportObj = null
this.selectedAirport = 0
}
setTimeout(()=>{
this.p = {};
this.initModel()
},100)
this.$emit("reset"); this.$emit("reset");
}, },
changePeople(val) {}, changePeople(val) {},
......
<template>
<q-card flat class="q-pa-md q-mt-lg">
<div class="row items-center">
<div class="text-subtitle1 text-weight-bolder q-mb-md col">
<span>優惠券</span>
<span class="text-weight-regular q-ml-sm text-body2">(可用優惠券 0 張)</span>
</div>
<q-toggle v-model="showDisable" label="顯示不可用優惠券" style="zoom:0.8;margin-top: -24px;" v-if="isExplends"/>
<q-icon :name="isExplends?'keyboard_arrow_up':'keyboard_arrow_down'" @click="$event=>isExplends=!isExplends" size="32px" color="grey-9" class="q-ml-md cursor-pointer" style="margin-top:-10px;"/>
</div>
<div v-if="isExplends">
<div class="row q-col-gutter-md">
<div :class="filedWidth">
<div class="cursor-pointer">
<div class="coupon-head">
<div class="check-tools">
<q-checkbox v-model="chosenCouponId" :value="1" dense color="teal" />
</div>
<div class="q-pa-lg q-mt-lg">
<div class="row items-center">
<div class="text-h4 text-weight-bold text-white col">
{{ moneyFormat(500,2) }}
</div>
<div class=" f12 text-white">滿 2000 可用</div>
</div>
<div class="q-mt-sm f12" style="color:#195954">有效期至:2023.02.30</div>
</div>
</div>
<div class="q-px-lg q-py-md coupon-content">
<div class="row">
<div class="col-5">適用平台:</div>
<div class="">全平台通用</div>
</div>
<div class="row q-mt-sm">
<div class="col-5">使用品類:</div>
<div class="">多日遊行程適用</div>
</div>
</div>
</div>
</div>
<div :class="filedWidth">
<div class="unUsed">
<div class="coupon-head">
<div class="q-pa-lg q-mt-lg">
<div class="row items-center">
<div class="text-h4 text-weight-bold text-white col">
{{ moneyFormat(500,2) }}
</div>
<div class=" f12 text-white">滿 2000 可用</div>
</div>
<div class="q-mt-sm f12" style="color:#195954">有效期至:2023.02.30</div>
</div>
</div>
<div class="q-px-lg q-py-md coupon-content">
<div class="row">
<div class="col-5">適用平台:</div>
<div class="">全平台通用</div>
</div>
<div class="row q-mt-sm">
<div class="col-5">使用品類:</div>
<div class="">多日遊行程適用</div>
</div>
</div>
</div>
</div>
</div>
<div class="text-center q-mt-lg" v-if="1==2">
<p>
<img src="~assets/sad.svg" style="width: 50px" />
</p>
<p class="f12 text-grey-6">沒有找到可用優惠券</p>
</div>
</div>
</q-card>
</template>
<script>
export default {
props:["goodsInfo"],
computed: {
filedWidth() {
return {
"col-12": this.$q.screen.width < 1200,
"col-4": this.$q.screen.width >= 1200,
};
}
},
data() {
return {
showDisable:false,
isExplends:false,
chosenCouponId:false
};
},
methods: {
changeDiscountHandler(){
}
},
}
</script>
<style>
.coupon-item{
box-shadow: 0px 10px 20px 0px rgb(76 87 125 / 20%) !important;
}
.unUsed .coupon-head{
background: #DDD !important;
}
.unUsed .coupon-head *{
color:#AAA !important;
}
.coupon-head{
height: 138px;
background: #67CAC2;
position: relative;
overflow: hidden;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
}
.coupon-head .check-tools{
position: absolute;
top:10px;
right: 10px;
}
.coupon-content{
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
background: #f9f9f9;
}
.coupon-head::before{
content: ' ';
display: inline-block;
width:30px;
height: 30px;
border-radius: 30px;
background: #FFF;
position: absolute;
top:-15px;
left: 50%;
margin-left: -15px;
}
.coupon-head::after{
content: ' ';
display: block;
position: absolute;
bottom: 0px;
left: 0;
right: 0;
height: 8px;
background-image: radial-gradient(circle, #f9f9f9, #f9f9f9 9px, #f9f9f9 9px, #f9f9f9 10px, transparent 10px, transparent);
background-size: 16px 20px;
}
</style>
\ No newline at end of file
...@@ -747,7 +747,7 @@ this.dayArray = this.dayArray.filter(item => arr.includes(item.id)) ...@@ -747,7 +747,7 @@ this.dayArray = this.dayArray.filter(item => arr.includes(item.id))
return return
} }
this.CommonJump( this.CommonJump(
"/detail/" + encodeURIComponent(item.id) + "/" + item.tcid, "/detail/" + encodeURIComponent(item.id) + "/" + item.tcid + "/" + item.configId,
{} {}
); );
}, },
......
<style scoped> <style scoped>
@import url('../../../assets/trip/block/index.css'); @import url('../../../assets/trip/block/index.css');
.fz15{
font-size: 15px;
}
.fz28{
font-size: 28px;
}
</style> </style>
<template> <template>
<div class="trip-box"> <div class="trip-box">
......
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
<q-input <q-input
style="width: 150px" style="width: 150px"
@input="changePeople" @input="changePeople"
v-model="chosenObj.etCount" v-model="chosenObj.etbzcCount"
class="col" class="col"
:class="{ :class="{
'q-ml-sm q-px-none q-pl-none': $q.platform.is.desktop, 'q-ml-sm q-px-none q-pl-none': $q.platform.is.desktop,
...@@ -105,7 +105,7 @@ ...@@ -105,7 +105,7 @@
class="q-px-none" class="q-px-none"
flat flat
icon="remove" icon="remove"
@click="addPeople('etCount', -1)" @click="addPeople('etbzcCount', -1)"
/> />
</template> </template>
<template v-slot:append> <template v-slot:append>
...@@ -115,7 +115,7 @@ ...@@ -115,7 +115,7 @@
class="q-px-none" class="q-px-none"
flat flat
icon="add" icon="add"
@click="addPeople('etCount', 1)" @click="addPeople('etbzcCount', 1)"
/> />
</template> </template>
</q-input> </q-input>
...@@ -131,19 +131,19 @@ ...@@ -131,19 +131,19 @@
<div v-if="$q.platform.is.mobile"> <div v-if="$q.platform.is.mobile">
<span class="text-grey-7 product-price" style="font-size: 13px"> <span class="text-grey-7 product-price" style="font-size: 13px">
CNY CNY
{{ moneyFormat(p.childNeedPrice, 0) }} /每人 {{ moneyFormat(p.childNeedPrice+p.originalB2CPrice, 0) }} /每人
</span> </span>
</div> </div>
</div> </div>
<div class="row items-end"> <div class="row items-end">
<span v-if="$q.platform.is.desktop" class="text-grey-7 product-price" style="font-size: 13px"> <span v-if="$q.platform.is.desktop" class="text-grey-7 product-price" style="font-size: 13px">
CNY CNY
{{ moneyFormat( p.childNeedPrice, 0) }} /每人 {{ moneyFormat( p.childNeedPrice+p.originalB2CPrice, 0) }} /每人
</span> </span>
<q-input <q-input
style="width: 150px" style="width: 150px"
@input="changePeople" @input="changePeople"
v-model="chosenObj.etCount" v-model="chosenObj.etzcCount"
class="col" class="col"
:class="{ :class="{
'q-ml-sm q-px-none q-pl-none': $q.platform.is.desktop, 'q-ml-sm q-px-none q-pl-none': $q.platform.is.desktop,
...@@ -162,7 +162,7 @@ ...@@ -162,7 +162,7 @@
class="q-px-none" class="q-px-none"
flat flat
icon="remove" icon="remove"
@click="addPeople('etCount', -1)" @click="addPeople('etzcCount', -1)"
/> />
</template> </template>
<template v-slot:append> <template v-slot:append>
...@@ -172,7 +172,7 @@ ...@@ -172,7 +172,7 @@
class="q-px-none" class="q-px-none"
flat flat
icon="add" icon="add"
@click="addPeople('etCount', 1)" @click="addPeople('etzcCount', 1)"
/> />
</template> </template>
</q-input> </q-input>
...@@ -357,7 +357,7 @@ export default { ...@@ -357,7 +357,7 @@ export default {
yeCount: 0, yeCount: 0,
lrCount: 0, lrCount: 0,
etbzcCount: 0, etbzcCount: 0,
etzc: 0, etzcCount: 0,
df: 0, df: 0,
dcf: 0, dcf: 0,
srf: 0, srf: 0,
...@@ -392,14 +392,14 @@ export default { ...@@ -392,14 +392,14 @@ export default {
} }
if (!isDf) { if (!isDf) {
if ( if (
this.chosenObj.crCount + this.chosenObj.etCount > this.chosenObj.crCount + this.chosenObj.etzcCount >
this.p.remainNum this.p.remainNum
) { ) {
this.chosenObj[m] = this.chosenObj[m] - 1; this.chosenObj[m] = this.chosenObj[m] - 1;
} }
} else { } else {
if ( if (
this.chosenObj.crCount + this.chosenObj.etCount < this.chosenObj.crCount + this.chosenObj.etzcCount <
this.chosenObj.df this.chosenObj.df
) { ) {
this.chosenObj[m] = this.chosenObj[m] - 1; this.chosenObj[m] = this.chosenObj[m] - 1;
...@@ -412,7 +412,9 @@ export default { ...@@ -412,7 +412,9 @@ export default {
let money = let money =
this.p.originalB2CPrice * this.chosenObj.crCount; this.p.originalB2CPrice * this.chosenObj.crCount;
money += money +=
(this.p.originalB2CPrice-this.p.childNoNeedPrice+this.p.babyChargePrice) * this.chosenObj.etCount; (this.p.originalB2CPrice-this.p.childNoNeedPrice+this.p.babyChargePrice) * this.chosenObj.etbzcCount;
money +=
(this.p.originalB2CPrice+this.p.childNeedPrice+this.p.babyChargePrice) * this.chosenObj.etzcCount;
money += this.p.babyPrice * this.chosenObj.yeCount; money += this.p.babyPrice * this.chosenObj.yeCount;
money += this.p.singleRoomPrice * this.chosenObj.df; money += this.p.singleRoomPrice * this.chosenObj.df;
......
...@@ -190,6 +190,8 @@ ...@@ -190,6 +190,8 @@
tcid: 0, tcid: 0,
teamType: 0, teamType: 0,
isGetPriceFlight: true, isGetPriceFlight: true,
pType: 1,//类型 1 来源B2C
newConfigId: 0,//列表里的configId
}, },
isShow: false, isShow: false,
dataList: {}, dataList: {},
...@@ -220,6 +222,9 @@ ...@@ -220,6 +222,9 @@
if (this.$route.params.tcid) { if (this.$route.params.tcid) {
this.msg.tcid = decodeURIComponent(this.$route.params.tcid) this.msg.tcid = decodeURIComponent(this.$route.params.tcid)
} }
if (this.$route.params.newConfigId) {
this.msg.newConfigId = decodeURIComponent(this.$route.params.newConfigId)
}
}, },
mounted() { mounted() {
if (localStorage.baseifo) { if (localStorage.baseifo) {
......
...@@ -117,7 +117,7 @@ ...@@ -117,7 +117,7 @@
> >
<div class="col q-mr-lg"> <div class="col q-mr-lg">
<div class="text-h6 ellipsis-2-lines">{{ dataList.Name }}</div> <div class="text-h6 ellipsis-2-lines">{{ dataList.Name }}</div>
<!-- <div class="text-h6 ellipsis-2-lines">{{ dataList.Description }}</div> --> <div class="text-grey-7 fz17 ellipsis-2-lines">{{ dataList.Description }}</div>
<div class="q-mt-md f12 text-grey-6"> <div class="q-mt-md f12 text-grey-6">
<q-icon <q-icon
name="iconfont icondingweixiao" name="iconfont icondingweixiao"
...@@ -277,9 +277,11 @@ ...@@ -277,9 +277,11 @@
<template v-if="currentPrice && currentPrice.startDate"> <template v-if="currentPrice && currentPrice.startDate">
<order-preview <order-preview
class="q-pa-md" class="q-pa-md"
:dataList="dataList"
:configId="msg.configId" :configId="msg.configId"
:Month="currentYM.str" :Month="currentYM.str"
:CarTypeList="dataList.CarTypeList" :CarTypeList="dataList.CarTypeList"
:AirportList="dataList.AirportList"
:price="currentPrice" :price="currentPrice"
@reset="resetHandler" @reset="resetHandler"
@getPriceList="getPriceList" @getPriceList="getPriceList"
...@@ -302,12 +304,13 @@ ...@@ -302,12 +304,13 @@
> >
<span class="q-mr-md">行程標準出行方案</span> <span class="q-mr-md">行程標準出行方案</span>
<q-chip <q-chip
v-if="dataList.FreeCancelDay>0"
square square
color="orange" color="orange"
size="sm" size="sm"
text-color="grey-2" text-color="grey-2"
class="text-light" class="text-light"
label="3天前可免费取消" :label="`${dataList.FreeCancelDay}天前可免费取消`"
/> />
</div> </div>
<!-- <div class="text-grey f12"> <!-- <div class="text-grey f12">
...@@ -349,10 +352,11 @@ ...@@ -349,10 +352,11 @@
關於此方案 關於此方案
</div> </div>
<q-chip <q-chip
v-if="dataList.FreeCancelDay>0"
class="transparent q-mr-xl no-padding" class="transparent q-mr-xl no-padding"
square square
icon="iconfont iconcancel" icon="iconfont iconcancel"
label="3天前可免費取消" :label="`${dataList.FreeCancelDay}天前可免费取消`"
/> />
</div> </div>
<div class="q-mt-lg row" v-if="$q.platform.is.desktop"> <div class="q-mt-lg row" v-if="$q.platform.is.desktop">
...@@ -365,9 +369,11 @@ ...@@ -365,9 +369,11 @@
</div> </div>
<div class="col q-ml-xl"> <div class="col q-ml-xl">
<order-preview <order-preview
:dataList="dataList"
:configId="msg.configId" :configId="msg.configId"
:Month="currentYM.str" :Month="currentYM.str"
:CarTypeList="dataList.CarTypeList" :CarTypeList="dataList.CarTypeList"
:AirportList="dataList.AirportList"
:price="currentPrice" :price="currentPrice"
@reset="resetHandler" @reset="resetHandler"
@getPriceList="getPriceList" @getPriceList="getPriceList"
...@@ -439,6 +445,60 @@ ...@@ -439,6 +445,60 @@
'q-px-md': $q.screen.width < 1220 && $q.platform.is.mobile, 'q-px-md': $q.screen.width < 1220 && $q.platform.is.mobile,
}" }"
></div> ></div>
<div
id="assemblypoint"
class="text-h5 text-weight-bold text-left q-mt-xl"
ref="assemblypoint"
:class="{
'q-px-md': $q.screen.width < 1220 && $q.platform.is.mobile,
}"
>
接送點範圍
</div>
<div
class="q-mt-lg trip-text rounded-borders q-mb-xl"
style="border: 1px dashed var(--q-color-warning)"
:class="{
'q-mx-md': $q.screen.width < 1220 && $q.platform.is.mobile,
}"
v-for="(x,index) in dataList.PlaceList">
<div class="q-pa-md" style="border-bottom: 1px dashed var(--q-color-warning)">
<div class="text-weight-bold text-h6">地點名稱:{{x.Name}}</div>
<div class="text-grey-9">地址:{{x.Address}}</div>
</div>
<div class="q-pa-md" :class="{
'q-mx-md': $q.screen.width < 1220 && $q.platform.is.mobile,
}">
<componentsMap :AddressObj="x"/>
</div>
</div>
<div
id="experiencelocation"
class="text-h5 text-weight-bold text-left q-mt-xl"
ref="experiencelocation"
:class="{
'q-px-md': $q.screen.width < 1220 && $q.platform.is.mobile,
}"
>
機場地點
</div>
<div
class="q-mt-lg trip-text rounded-borders q-mb-xl"
style="border: 1px dashed var(--q-color-warning)"
:class="{
'q-mx-md': $q.screen.width < 1220 && $q.platform.is.mobile,
}"
v-for="(x,index) in dataList.AirportList">
<div class="q-pa-md" style="border-bottom: 1px dashed var(--q-color-warning)">
<div class="text-weight-bold text-h6">地点名称:{{x.Name}}</div>
<div class="text-grey-9">地址:{{x.Address}}</div>
</div>
<div class="q-pa-md" :class="{
'q-mx-md': $q.screen.width < 1220 && $q.platform.is.mobile,
}">
<componentsMap :AddressObj="x"/>
</div>
</div>
<div <div
id="warning" id="warning"
class="text-h5 text-weight-bold text-left q-mt-xl" class="text-h5 text-weight-bold text-left q-mt-xl"
...@@ -544,6 +604,8 @@ import OrderPreview from "src/components/car/orderPreview.vue"; ...@@ -544,6 +604,8 @@ import OrderPreview from "src/components/car/orderPreview.vue";
import smaple from "src/components/trip/smaple.vue"; import smaple from "src/components/trip/smaple.vue";
import Trip from "src/components/trip/trip.vue"; import Trip from "src/components/trip/trip.vue";
import block from "src/components/trip/block/index"; import block from "src/components/trip/block/index";
import { date } from "quasar";
import componentsMap from "../components/car/Map.vue";
import * as dayjs from "dayjs"; import * as dayjs from "dayjs";
export default { export default {
props: [], props: [],
...@@ -626,6 +688,18 @@ export default { ...@@ -626,6 +688,18 @@ export default {
isActive: false, isActive: false,
display: "購買須知", display: "購買須知",
}, },
{
id: "#assemblypoint",
top: 0,
isActive: false,
display: "接送點範圍",
},
{
id: "#experiencelocation",
top: 0,
isActive: false,
display: "機場地點",
},
{ {
id: "#tips", id: "#tips",
top: 0, top: 0,
...@@ -652,6 +726,7 @@ export default { ...@@ -652,6 +726,7 @@ export default {
smaple, smaple,
Trip, Trip,
block, block,
componentsMap
}, },
watch: { watch: {
days: { days: {
...@@ -678,6 +753,13 @@ export default { ...@@ -678,6 +753,13 @@ export default {
} }
}, },
mounted() { mounted() {
const timeStamp = Date.now()
const formattedString = date.formatDate(timeStamp, 'YYYY-MM-DD')
this.currentYM = {
year: date.formatDate(timeStamp, 'YYYY'),
month: date.formatDate(timeStamp, 'MM'),
str: formattedString
}
if (localStorage.baseifo) { if (localStorage.baseifo) {
this.TripConfig = JSON.parse(window.localStorage.getItem("baseifo")); this.TripConfig = JSON.parse(window.localStorage.getItem("baseifo"));
} }
...@@ -842,15 +924,21 @@ export default { ...@@ -842,15 +924,21 @@ export default {
}, },
(r) => { (r) => {
if (r.data.resultCode == 1) { if (r.data.resultCode == 1) {
let arr = []
r.data.data.forEach(x=>{ r.data.data.forEach(x=>{
x.startDate = x.Date if(x.Price){
x.originalB2CPrice = x.Price let dataObj = {
x.remainNum = 1 startDate: x.Date,
x.Count = 1 originalB2CPrice: x.Price,
x.isSupportChildren = 1 remainNum: 1,
x.safeMoney = 0 Count: 1,
isSupportChildren: 1,
safeMoney: 0,
}
arr.push(dataObj)
}
}) })
this.priceList = JSON.parse(JSON.stringify(r.data.data)) this.priceList = JSON.parse(JSON.stringify(arr))
} }
},null) },null)
......
...@@ -621,6 +621,8 @@ export default { ...@@ -621,6 +621,8 @@ export default {
tcid: 0, tcid: 0,
teamType: 0, teamType: 0,
isGetPriceFlight: true, isGetPriceFlight: true,
pType: 1,//类型 1 来源B2C
newConfigId: 0,//列表里的configId
}, },
currentPrice: {}, currentPrice: {},
isShow: false, isShow: false,
...@@ -752,6 +754,9 @@ export default { ...@@ -752,6 +754,9 @@ export default {
if (this.$route.params.tcid) { if (this.$route.params.tcid) {
this.msg.tcid = decodeURIComponent(this.$route.params.tcid); this.msg.tcid = decodeURIComponent(this.$route.params.tcid);
} }
if (this.$route.params.newConfigId) {
this.msg.newConfigId = decodeURIComponent(this.$route.params.newConfigId)
}
}, },
mounted() { mounted() {
window.addEventListener("scroll", this.handleScroll); window.addEventListener("scroll", this.handleScroll);
......
This diff is collapsed.
...@@ -1275,7 +1275,9 @@ ...@@ -1275,7 +1275,9 @@
//请求参数 //请求参数
msg: { msg: {
ID: 0, ID: 0,
tcid: 0 tcid: 0,
pType: 1,//类型 1 来源B2C
newConfigId: 0,//列表里的configId
}, },
dataList: {}, dataList: {},
scrollobj: null, scrollobj: null,
...@@ -1307,6 +1309,7 @@ ...@@ -1307,6 +1309,7 @@
mounted() { mounted() {
this.msg.ID = this.$route.query.ID; this.msg.ID = this.$route.query.ID;
this.msg.tcid = this.$route.query.tcid; this.msg.tcid = this.$route.query.tcid;
this.msg.newConfigId = this.$route.query.ConfigId;
this.crtnav = 'tripLine'; this.crtnav = 'tripLine';
this.getTrip(); this.getTrip();
...@@ -1317,6 +1320,7 @@ ...@@ -1317,6 +1320,7 @@
query: { query: {
ID: decodeURIComponent(this.msg.ID), ID: decodeURIComponent(this.msg.ID),
tcid: decodeURIComponent(this.msg.tcid), tcid: decodeURIComponent(this.msg.tcid),
newConfigId: decodeURIComponent(this.msg.newConfigId)
} }
}); });
} }
......
...@@ -1010,7 +1010,9 @@ ...@@ -1010,7 +1010,9 @@
ID: 0, ID: 0,
tcid: 0, tcid: 0,
isDes:0, isDes:0,
NewId:'' NewId:'',
pType: 1,//类型 1 来源B2C
newConfigId: 0,//列表里的configId
}, },
showMapType:0, showMapType:0,
dataList: {}, dataList: {},
...@@ -1039,13 +1041,15 @@ ...@@ -1039,13 +1041,15 @@
this.isInChina() this.isInChina()
this.msg.ID = this.$route.query.ID; this.msg.ID = this.$route.query.ID;
this.msg.tcid = this.$route.query.tcid; this.msg.tcid = this.$route.query.tcid;
this.msg.newConfigId = this.$route.query.ConfigId;
//判断为pc端 //判断为pc端
if(this.$q.platform.is.desktop){ if(this.$q.platform.is.desktop){
this.$router.push({ this.$router.push({
path: 'newTrip', path: 'newTrip',
query: { query: {
ID: decodeURIComponent(this.msg.ID), ID: decodeURIComponent(this.msg.ID),
tcid: decodeURIComponent(this.msg.tcid) tcid: decodeURIComponent(this.msg.tcid),
newConfigId: decodeURIComponent(this.msg.newConfigId)
} }
}); });
} }
......
...@@ -32,12 +32,16 @@ const routes = [{ ...@@ -32,12 +32,16 @@ const routes = [{
path: '/detailCar/:id', path: '/detailCar/:id',
component: () => component: () =>
import ('pages/detailsCar.vue') import ('pages/detailsCar.vue')
}, { // 包车,接机下单
path: '/PickuporderForm',
component: () =>
import ('pages/Pickuporder/orderForm.vue')
}, { // 酒店 }, { // 酒店
path: '/detailHotal/:id', path: '/detailHotal/:id',
component: () => component: () =>
import ('pages/detailsHotal.vue') import ('pages/detailsHotal.vue')
}, { // 旅程 }, { // 旅程
path: '/detail/:id/:tcid', path: '/detail/:id/:tcid/:newConfigId',
component: () => component: () =>
import ('pages/detailsNew.vue') import ('pages/detailsNew.vue')
}, { }, {
......
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