Commit 4f8c8121 authored by youjie's avatar youjie

B2C价格

parent 443e3190
...@@ -12,11 +12,11 @@ ...@@ -12,11 +12,11 @@
<view @click="()=>dateVisible=true" class="q-mt-sm row items-center" style="font-size: 24rpx;color:#000000BB"> <view @click="()=>dateVisible=true" class="q-mt-sm row items-center" style="font-size: 24rpx;color:#000000BB">
<text>{{ dateRangeValue.formatStartDate }}</text> <text>{{ dateRangeValue.formatStartDate }}</text>
<u-icon class="q-ml-sm" name='arrow_down' custom-prefix="tffont" color="#00000066" size="32"></u-icon> <u-icon class="q-ml-sm" name='arrow_down' custom-prefix="tffont" color="#00000066" size="32"></u-icon>
</view> </view>
<chosen-city @closed="resetCityVisible=false" @change="setNewCitiesHandle" :value="chosenResult" v-if="resetCityVisible"></chosen-city> <chosen-city @closed="resetCityVisible=false" @change="setNewCitiesHandle" :value="chosenResult" v-if="resetCityVisible"></chosen-city>
<u-popup mode="bottom" border-radius="20" :popup="false" v-model="dateVisible" :maskCloseAble="true" length="auto" :safeAreaInsetBottom="true" @close="()=>dateVisible=false" :z-index="9999"> <u-popup mode="bottom" border-radius="20" :popup="false" v-model="dateVisible" :maskCloseAble="true" length="auto" :safeAreaInsetBottom="true" @close="()=>dateVisible=false" :z-index="9999">
<date-range :value="dateRangeValue" @change='setDateHandler'></date-range> <date-range :value="dateRangeValue" @change='setDateHandler'></date-range>
</u-popup> </u-popup>
</view> </view>
<scroll-view scroll-y="true" style="width: 100%;height: 1px;" class="col"> <scroll-view scroll-y="true" style="width: 100%;height: 1px;" class="col">
<view class="air-low-rank"> <view class="air-low-rank">
...@@ -36,27 +36,32 @@ ...@@ -36,27 +36,32 @@
<view class="city-list-item col"> <view class="city-list-item col">
<view @click="goListHandle('',x)" style="margin-bottom: 30rpx;" class=" row items-center"> <view @click="goListHandle('',x)" style="margin-bottom: 30rpx;" class=" row items-center">
<view class="bold col">{{x.DepartureName}} - {{x.ArrivalCityName}}</view> <view class="bold col">{{x.DepartureName}} - {{x.ArrivalCityName}}</view>
<view class="row items-center"> <view class="row items-center">
<view style="font-size: 22rpx;">更多日期</view> <view style="font-size: 22rpx;">更多日期</view>
<u-icon name='arrow_right' custom-prefix="tffont" color="#00000066" size="28"></u-icon> <u-icon name='arrow_right' custom-prefix="tffont" color="#00000066" size="28"></u-icon>
</view> </view>
</view> </view>
<view @click="goListHandle(f.FlightDate,x)" class="flights row items-center" v-for="(f,fi) in x.TicketProductList"> <view @click="goListHandle(f.FlightDate,x)" class="flights row items-center" v-for="(f,fi) in x.TicketProductList">
<image style="width: 30rpx;" :src="`https://static.tripcdn.com/packages/flight/airline-logo/latest/airline/48/${f.AlCode}.png`" mode="widthFix"></image> <image style="width: 30rpx;" :src="`https://static.tripcdn.com/packages/flight/airline-logo/latest/airline/48/${f.AlCode}.png`" mode="widthFix"></image>
<view style="font-size: 22rpx;width:50rpx;margin:0 4px"> <view style="font-size: 22rpx;width:50rpx;margin:0 4px">
{{ f.DayCount }} {{ f.DayCount }}
</view> </view>
<view style="font-size: 22rpx;"> <view style="font-size: 22rpx;">
{{ f.FlightDateString }} {{ f.FlightDateString }}
</view> </view>
<view class="q-ml-sm col" style="font-size: 22rpx;"> <view class="q-ml-sm col" style="font-size: 22rpx;">
{{ f.ReturnDateString }} {{ f.ReturnDateString }}
</view> </view>
<text style="color:#FF3166;font-size: 22rpx;">¥</text> <text style="color:#FF3166;font-size: 22rpx;">¥</text>
<view style="font-weight: bold;font-size: 24rpx;color:#FF3166"> <view style="font-weight: bold;font-size: 24rpx;color:#FF3166">
{{ f.B2BPrice }} <!-- #ifdef MP-DI -->
</view> {{f.B2CPrice}}
<u-icon name='arrow_right' custom-prefix="tffont" color="#00000066" size="28"></u-icon> <!-- #endif-->
<!-- #ifdef MP-AG -->
{{f.B2BPrice}}
<!-- #endif -->
</view>
<u-icon name='arrow_right' custom-prefix="tffont" color="#00000066" size="28"></u-icon>
</view> </view>
</view> </view>
...@@ -68,10 +73,10 @@ ...@@ -68,10 +73,10 @@
</view> </view>
</template> </template>
<script> <script>
import ChosenCity from './components/address/ChosenCity.vue' import ChosenCity from './components/address/ChosenCity.vue'
import DateRange from './components/time/DateRange.vue' import DateRange from './components/time/DateRange.vue'
export default { export default {
components:{ChosenCity,DateRange}, components:{ChosenCity,DateRange},
data() { data() {
return { return {
...@@ -91,8 +96,8 @@ ...@@ -91,8 +96,8 @@
type: 0, type: 0,
ID: 0, ID: 0,
Name: '全部' Name: '全部'
}, },
resetCityVisible:false, resetCityVisible:false,
dateVisible:false, dateVisible:false,
lowData: [], lowData: [],
chosenResult: [{ chosenResult: [{
...@@ -135,7 +140,7 @@ ...@@ -135,7 +140,7 @@
mounted() { mounted() {
}, },
methods: { methods: {
resolveParameterHanle() { resolveParameterHanle() {
this.resetParameterHandle() this.resetParameterHandle()
...@@ -143,7 +148,7 @@ ...@@ -143,7 +148,7 @@
this.parementers.ArriveCityId = this.chosenResult[1].ID this.parementers.ArriveCityId = this.chosenResult[1].ID
if (this.dateRangeValue.type == 1) { if (this.dateRangeValue.type == 1) {
this.parementers.StartDate = this.dateRangeValue.startDate this.parementers.StartDate = this.dateRangeValue.startDate
this.parementers.EndDate = this.dateRangeValue.startDate this.parementers.EndDate = this.dateRangeValue.startDate
} else { } else {
const d = this.resolveDateByFuzzyHandle(this.dateRangeValue.fuzzy.fuzzyType) const d = this.resolveDateByFuzzyHandle(this.dateRangeValue.fuzzy.fuzzyType)
...@@ -203,7 +208,7 @@ ...@@ -203,7 +208,7 @@
this.loadingLow = true this.loadingLow = true
this.apipost('AirTicket_get_GetTopTicketProduct', this.parementers, (r) => { this.apipost('AirTicket_get_GetTopTicketProduct', this.parementers, (r) => {
if (r.resultCode == 1) { if (r.resultCode == 1) {
this.lowData = this.formatLowData(r.data) this.lowData = this.formatLowData(r.data)
console.log(this.lowData) console.log(this.lowData)
} }
this.loadingLow = false this.loadingLow = false
...@@ -215,44 +220,44 @@ ...@@ -215,44 +220,44 @@
d.forEach((x) => { d.forEach((x) => {
x.TicketProductList.sort((a,b)=>{ x.TicketProductList.sort((a,b)=>{
return new Date(a.FlightDate) - new Date(b.FlightDate); return new Date(a.FlightDate) - new Date(b.FlightDate);
}) })
const newTicket = x.TicketProductList.splice(0,2) const newTicket = x.TicketProductList.splice(0,2)
newTicket.forEach((x)=>{ newTicket.forEach((x)=>{
const q = x.FlightList.findLastIndex((f) => f.FlightType == 3) const q = x.FlightList.findLastIndex((f) => f.FlightType == 3)
x.ReturnDate = x.FlightList[q].FlightDate x.ReturnDate = x.FlightList[q].FlightDate
x.DayCount = Math.abs((new Date(x.ReturnDate).getTime()-new Date(x.FlightDate).getTime())/(24*60*60*1000)) x.DayCount = Math.abs((new Date(x.ReturnDate).getTime()-new Date(x.FlightDate).getTime())/(24*60*60*1000))
x.ReturnDateString = this.formatDateString(x.ReturnDate) x.ReturnDateString = this.formatDateString(x.ReturnDate)
x.FlightDateString = this.formatDateString(x.FlightDate) x.FlightDateString = this.formatDateString(x.FlightDate)
}) })
x.TicketProductList = newTicket x.TicketProductList = newTicket
}); });
return d return d
}, },
formatDateString(d){ formatDateString(d){
const date = new Date(d) const date = new Date(d)
const weeks = ['日','一','二','三','四','五','六'] const weeks = ['日','一','二','三','四','五','六']
return `${String(date.getMonth()+1).padStart(2,'0')}.${String(date.getDate()).padStart(2,'0')}${weeks[date.getDay()]}` //周${weeks[date.getDay()]} return `${String(date.getMonth()+1).padStart(2,'0')}.${String(date.getDate()).padStart(2,'0')}${weeks[date.getDay()]}` //周${weeks[date.getDay()]}
}, },
setNewCitiesHandle(val){ setNewCitiesHandle(val){
this.chosenResult = val this.chosenResult = val
uni.setStorageSync('scf',{ uni.setStorageSync('scf',{
cities:this.chosenResult, cities:this.chosenResult,
dateRange: this.dateRangeValue dateRange: this.dateRangeValue
}) })
this.getTopLowTicketHandle() this.getTopLowTicketHandle()
this.resetCityVisible = false this.resetCityVisible = false
}, },
setDateHandler(val){ setDateHandler(val){
this.dateRangeValue = val this.dateRangeValue = val
this.dateVisible = false this.dateVisible = false
uni.setStorageSync('scf',{ uni.setStorageSync('scf',{
cities:this.chosenResult, cities:this.chosenResult,
dateRange: this.dateRangeValue dateRange: this.dateRangeValue
}) })
this.getTopLowTicketHandle() this.getTopLowTicketHandle()
}, },
goListHandle(val,x){ goListHandle(val,x){
const newCityInfo = [{ const newCityInfo = [{
type: 0, type: 0,
ID: x.DepartureCity, ID: x.DepartureCity,
...@@ -263,18 +268,18 @@ ...@@ -263,18 +268,18 @@
ID: x.ArrivalCityId, ID: x.ArrivalCityId,
Name: x.ArrivalCityName Name: x.ArrivalCityName
} }
] ]
uni.setStorageSync('scf',{ uni.setStorageSync('scf',{
cities:newCityInfo, cities:newCityInfo,
dateRange: this.dateRangeValue dateRange: this.dateRangeValue
}) })
let url ='/pages/airTicket/ticketList/ticketList' let url ='/pages/airTicket/ticketList/ticketList'
if(val!=''){ if(val!=''){
url += `?dv=${encodeURIComponent(val)}` url += `?dv=${encodeURIComponent(val)}`
} }
uni.navigateTo({ uni.navigateTo({
url url
}) })
} }
} }
} }
...@@ -290,8 +295,8 @@ ...@@ -290,8 +295,8 @@
.search-box { .search-box {
height: 200rpx; height: 200rpx;
width: 100%; width: 100%;
box-shadow: 0 0 26rpx #f1f1f1; box-shadow: 0 0 26rpx #f1f1f1;
background-image: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638750707031350012.jpg'); background-image: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638750707031350012.jpg');
background-size: 100% auto; background-size: 100% auto;
} }
...@@ -301,22 +306,22 @@ ...@@ -301,22 +306,22 @@
color: #080A09; color: #080A09;
} }
.air-low-rank { .air-low-rank {
padding: 40rpx; padding: 40rpx;
} }
.air-low-rank .city-list-item { .air-low-rank .city-list-item {
margin-left: 18rpx; margin-left: 18rpx;
}
.air-low-rank .city-list-item .bold{
font-weight: bold;
font-size: 32rpx !important;
color: #080A09;
} }
.air-low-rank .city-list-item .flights{ .air-low-rank .city-list-item .bold{
background: #f1f1f1; font-weight: bold;
border-radius: 8rpx; font-size: 32rpx !important;
padding:10rpx; color: #080A09;
margin-top: 10rpx; }
.air-low-rank .city-list-item .flights{
background: #f1f1f1;
border-radius: 8rpx;
padding:10rpx;
margin-top: 10rpx;
} }
.air-low-rank .city-list-item .info-text { .air-low-rank .city-list-item .info-text {
font-size: 24rpx; font-size: 24rpx;
......
...@@ -85,7 +85,14 @@ ...@@ -85,7 +85,14 @@
<view class="col"> <view class="col">
<text style="font-size: 22rpx;color: #A4A4A4;font-weight: 400;">仅需:</text> <text style="font-size: 22rpx;color: #A4A4A4;font-weight: 400;">仅需:</text>
<text style="color:#FF3166;font-size: 22rpx;">¥</text> <text style="color:#FF3166;font-size: 22rpx;">¥</text>
<text style="font-size: 32rpx;font-weight: bold;color:#FF3166;">{{x.Flight.B2BPrice}}</text> <text style="font-size: 32rpx;font-weight: bold;color:#FF3166;">
<!-- #ifdef MP-DI-->
{{x.Flight.B2CPrice}}
<!-- #endif-->
<!-- #ifdef MP-AG-->
{{x.Flight.B2BPrice}}
<!-- #endif -->
</text>
</view> </view>
<view class="more-date" @click="openFlightHandle(x,1)">更多日期</view> <view class="more-date" @click="openFlightHandle(x,1)">更多日期</view>
</view> </view>
...@@ -96,25 +103,25 @@ ...@@ -96,25 +103,25 @@
</view> </view>
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
</template> </template>
<script> <script>
import CityList from './components/address/CityList.vue'; import CityList from './components/address/CityList.vue';
import DateRange from './components/time/DateRange.vue'; import DateRange from './components/time/DateRange.vue';
export default { export default {
data() { data() {
return { return {
leftPos: 0, leftPos: 0,
rightPos: 0, rightPos: 0,
leftStyle:{ leftStyle:{
transform: `translateX(0px)`, transform: `translateX(0px)`,
transition: 'transform 0.5s ease', transition: 'transform 0.5s ease',
}, },
rightStyle:{ rightStyle:{
transform: `translateX(0px)`, transform: `translateX(0px)`,
transition: 'transform 0.5s ease', transition: 'transform 0.5s ease',
}, },
scrollTop:0, scrollTop:0,
containerWidth:0, containerWidth:0,
...@@ -159,8 +166,8 @@ ...@@ -159,8 +166,8 @@
Name:'全部低价城市' Name:'全部低价城市'
} }
], ],
barHeight:0 barHeight:0
} }
}, },
components:{CityList,DateRange}, components:{CityList,DateRange},
created() { created() {
...@@ -177,7 +184,7 @@ ...@@ -177,7 +184,7 @@
that.barHeight = r.statusBarHeight that.barHeight = r.statusBarHeight
}, },
}); });
}, },
methods: { methods: {
searchFlightHandle(){ searchFlightHandle(){
uni.setStorageSync('scf',{ uni.setStorageSync('scf',{
...@@ -285,24 +292,24 @@ ...@@ -285,24 +292,24 @@
}) })
.exec(); .exec();
}); });
}, },
async swapLocations() { async swapLocations() {
this.leftWidth = await this.getDomWidthAsync('.left-name') this.leftWidth = await this.getDomWidthAsync('.left-name')
this.rightWidth = await this.getDomWidthAsync('.right-name') this.rightWidth = await this.getDomWidthAsync('.right-name')
this.leftPos = this.leftPos === 0 ? (this.containerWidth-this.leftWidth) : 0; this.leftPos = this.leftPos === 0 ? (this.containerWidth-this.leftWidth) : 0;
this.rightPos = this.rightPos === 0 ? -(this.containerWidth-this.rightWidth) : 0; this.rightPos = this.rightPos === 0 ? -(this.containerWidth-this.rightWidth) : 0;
this.chosenResult[0].type = this.leftPos === 0 ? 0 : 1 this.chosenResult[0].type = this.leftPos === 0 ? 0 : 1
this.chosenResult[1].type = this.rightPos === 0 ? 1 : 0 this.chosenResult[1].type = this.rightPos === 0 ? 1 : 0
this.rotateNum += 180 this.rotateNum += 180
this.leftStyle = { this.leftStyle = {
transform: `translateX(${this.leftPos}px)`, transform: `translateX(${this.leftPos}px)`,
transition: 'transform 0.5s ease', transition: 'transform 0.5s ease',
}
this.rightStyle ={
transform: `translateX(${this.rightPos}px)`,
transition: 'transform 0.5s ease',
} }
this.rightStyle ={ },
transform: `translateX(${this.rightPos}px)`,
transition: 'transform 0.5s ease',
}
},
popupClose(){ popupClose(){
this.citiesVisible = false this.citiesVisible = false
this.dateVisible = false this.dateVisible = false
...@@ -338,12 +345,12 @@ ...@@ -338,12 +345,12 @@
url:'/pages/index/index' url:'/pages/index/index'
}) })
} }
} }
} }
</script> </script>
<style> <style>
@import url("../../asset/css/flex.css"); @import url("../../asset/css/flex.css");
.nav-box{ .nav-box{
height: 44px; /* 这里的44px是示例高度,可根据实际设计调整 */ height: 44px; /* 这里的44px是示例高度,可根据实际设计调整 */
line-height: 44px; line-height: 44px;
...@@ -375,17 +382,17 @@ ...@@ -375,17 +382,17 @@
} }
.nav-box .home-btn:active{ .nav-box .home-btn:active{
background-color: #ccc; background-color: #ccc;
} }
.air-home { .air-home {
background-color: #F3F1EF; background-color: #F3F1EF;
min-height: 100vh; min-height: 100vh;
background-image: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/uploads/versions/flight.png'); background-image: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/uploads/versions/flight.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% auto; background-size: 100% auto;
padding: 0 30rpx; padding: 0 30rpx;
padding-top: 257rpx; padding-top: 257rpx;
padding-bottom: 36rpx; padding-bottom: 36rpx;
} }
.air-low-rank{ .air-low-rank{
margin-top: 36rpx; margin-top: 36rpx;
border-radius: 16rpx; border-radius: 16rpx;
...@@ -448,66 +455,66 @@ ...@@ -448,66 +455,66 @@
color: #000000DD; color: #000000DD;
font-size: 22rpx; font-size: 22rpx;
font-weight: 400; font-weight: 400;
} }
.air-home-header { .air-home-header {
border-radius: 18rpx; border-radius: 18rpx;
background-color: #FFF; background-color: #FFF;
} }
.air-home-header .title-box { .air-home-header .title-box {
height: 79rpx; height: 79rpx;
background: #FAF0DB; background: #FAF0DB;
position: relative; position: relative;
border-top-right-radius: 18rpx; border-top-right-radius: 18rpx;
} }
.air-home-header .title-box .active-item { .air-home-header .title-box .active-item {
background-color: #fff; background-color: #fff;
position: absolute; position: absolute;
padding-top: 30rpx; padding-top: 30rpx;
border-top-right-radius: 18rpx; border-top-right-radius: 18rpx;
border-top-left-radius: 18rpx; border-top-left-radius: 18rpx;
top: -10rpx; top: -10rpx;
width: 310rpx; width: 310rpx;
bottom: 0; bottom: 0;
left: 0; left: 0;
text-align: center; text-align: center;
font-weight: bold; font-weight: bold;
font-size: 32rpx; font-size: 32rpx;
color: #B99846; color: #B99846;
} }
.air-home-header .title-box .active-item .right { .air-home-header .title-box .active-item .right {
width: 75rpx; width: 75rpx;
height: 89rpx; height: 89rpx;
position: absolute; position: absolute;
background-image: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638745412034709773.png'); background-image: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638745412034709773.png');
background-size: 100% 100%; background-size: 100% 100%;
right: -62rpx; right: -62rpx;
top: 0; top: 0;
} }
.air-home .air-home-header .air-tools { .air-home .air-home-header .air-tools {
padding: 36rpx; padding: 36rpx;
} }
.air-tools .cities-name { .air-tools .cities-name {
font-weight: bold; font-weight: bold;
font-size: 32rpx; font-size: 32rpx;
color: #080A09; color: #080A09;
} }
.air-tools .normal-label { .air-tools .normal-label {
font-size: 24rpx; font-size: 24rpx;
color: #9999A6; color: #9999A6;
} }
.air-tools .exchange { .air-tools .exchange {
background-image: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1696990221000_663.png'); background-image: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1696990221000_663.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center center; background-position: center center;
background-size: 38rpx auto; background-size: 38rpx auto;
/* 这里设置背景图片的宽度和高度 */ /* 这里设置背景图片的宽度和高度 */
height: 30px; height: 30px;
} }
</style> </style>
\ No newline at end of file
...@@ -3,166 +3,180 @@ ...@@ -3,166 +3,180 @@
<view class="column items-center justify-center q-mt-md" v-if="loading"> <view class="column items-center justify-center q-mt-md" v-if="loading">
<u-loading mode="circle" size="40"></u-loading> <u-loading mode="circle" size="40"></u-loading>
<view class="normal-label text-center q-mt-sm">正在加载信息</view> <view class="normal-label text-center q-mt-sm">正在加载信息</view>
</view> </view>
<scroll-view v-if="flight && !loading" scroll-y="true" class="col" style="height: 1px;"> <scroll-view v-if="flight && !loading" scroll-y="true" class="col" style="height: 1px;">
<view class="flight-card"> <view class="flight-card">
<view class="row items-center" @click="goVisible=!goVisible"> <view class="row items-center" @click="goVisible=!goVisible">
<view class="flight-status">去程</view> <view class="flight-status">去程</view>
<view class="city bold">{{goList[0].DepartureName}}</view> <view class="city bold">{{goList[0].DepartureName}}</view>
<u-icon name='qianwangx' custom-prefix="tffont" color="#00000033" size="28"></u-icon> <u-icon name='qianwangx' custom-prefix="tffont" color="#00000033" size="28"></u-icon>
<view class="city bold">{{goList[goList.length-1].ArrivalCityName}}</view> <view class="city bold">{{goList[goList.length-1].ArrivalCityName}}</view>
<view class="col row" style="font-size: 14px;justify-content: flex-end;"> <view class="col row" style="font-size: 14px;justify-content: flex-end;">
<text>{{goList[0].FlightDate.split('-').splice(1,2).join('-')}} {{getWeeks(goList[0].FlightDate)}} {{goList[0].Departure_time}}</text> <text>{{goList[0].FlightDate.split('-').splice(1,2).join('-')}} {{getWeeks(goList[0].FlightDate)}} {{goList[0].Departure_time}}</text>
<u-icon class="q-ml-sm" name='arrow_down' custom-prefix="tffont" color="#00000066" <u-icon class="q-ml-sm" name='arrow_down' custom-prefix="tffont" color="#00000066"
size="32"></u-icon> size="32"></u-icon>
</view> </view>
</view> </view>
<view class="q-mt-md" style="padding: 32rpx 0;" v-if="goVisible"> <view class="q-mt-md" style="padding: 32rpx 0;" v-if="goVisible">
<flight :value="goList" :show-title="false"></flight> <flight :value="goList" :show-title="false"></flight>
</view> </view>
</view> </view>
<view class="flight-card"> <view class="flight-card">
<view class="row items-center" @click="backVisible=!backVisible"> <view class="row items-center" @click="backVisible=!backVisible">
<view class="flight-status">回程</view> <view class="flight-status">回程</view>
<view class="city bold">{{backList[0].DepartureName}}</view> <view class="city bold">{{backList[0].DepartureName}}</view>
<u-icon name='qianwangx' custom-prefix="tffont" color="#00000033" size="28"></u-icon> <u-icon name='qianwangx' custom-prefix="tffont" color="#00000033" size="28"></u-icon>
<view class="city bold">{{backList[goList.length-1].ArrivalCityName}}</view> <view class="city bold">{{backList[goList.length-1].ArrivalCityName}}</view>
<view class="col row" style="font-size: 14px;justify-content: flex-end;"> <view class="col row" style="font-size: 14px;justify-content: flex-end;">
<text>{{backList[0].FlightDate.split('-').splice(1,2).join('-')}} {{getWeeks(backList[0].FlightDate)}} {{backList[0].Departure_time}}</text> <text>{{backList[0].FlightDate.split('-').splice(1,2).join('-')}} {{getWeeks(backList[0].FlightDate)}} {{backList[0].Departure_time}}</text>
<u-icon class="q-ml-sm" name='arrow_down' custom-prefix="tffont" color="#00000066" <u-icon class="q-ml-sm" name='arrow_down' custom-prefix="tffont" color="#00000066"
size="32"></u-icon> size="32"></u-icon>
</view> </view>
</view> </view>
<view class="q-mt-md" style="padding: 32rpx 0;" v-if="backVisible"> <view class="q-mt-md" style="padding: 32rpx 0;" v-if="backVisible">
<flight :value="backList" :show-title="false"></flight> <flight :value="backList" :show-title="false"></flight>
</view> </view>
</view> </view>
<view class="flight-card q-mt-md"> <view class="flight-card q-mt-md">
<view class="title">选择乘机人</view> <view class="title">选择乘机人</view>
<guest @change-visible="(val)=>statusVisible=val" :max-num="flight.B2BSellNum" @selected="guestChangeHandle"></guest> <guest @change-visible="(val)=>statusVisible=val" :max-num="flight.B2BSellNum" @selected="guestChangeHandle"></guest>
<u-field <u-field
v-model="contactName" v-model="contactName"
label="联系人" label="联系人"
placeholder="联系人名称" placeholder="联系人名称"
padding="20rpx 28rpx" padding="20rpx 28rpx"
:borderBottom="true" :borderBottom="true"
required> required>
</u-field> </u-field>
<u-field <u-field
v-model="contactPhone" v-model="contactPhone"
label="联系电话" label="联系电话"
placeholder="请填写电话" placeholder="请填写电话"
padding="20rpx 28rpx" padding="20rpx 28rpx"
:borderBottom="true" :borderBottom="true"
required> required>
</u-field> </u-field>
</view> </view>
<view class="flight-card q-mt-md" v-if="sales.length>1"> <view class="flight-card q-mt-md" v-if="sales.length>1">
<view class="title">服务专员</view> <view class="title">服务专员</view>
<u-field <u-field
v-model="createBy.EmName" v-model="createBy.EmName"
label="服务专员" label="服务专员"
placeholder="请选择服务专员" placeholder="请选择服务专员"
padding="20rpx 28rpx" padding="20rpx 28rpx"
right-icon="arrow-down" right-icon="arrow-down"
:disabled="true" :disabled="true"
@click="saleVisable=true" @click="saleVisable=true"
required> required>
</u-field> </u-field>
</view> </view>
<view class="flight-card q-mt-md"> <view class="flight-card q-mt-md">
<view class="title"> <view class="title">
<text>优惠券</text> <text>优惠券</text>
</view> </view>
<view class="q-mt-md row items-center"> <view class="q-mt-md row items-center">
<view style="font-size: 12px;width:1px;flex:1">请选择优惠券</view> <view style="font-size: 12px;width:1px;flex:1">请选择优惠券</view>
<view style="display: flex;align-items: center;"> <view style="display: flex;align-items: center;">
<text style="color:#F20707;font-size: 12px;" @click="showCouponHandler"> <text style="color:#F20707;font-size: 12px;" @click="showCouponHandler">
<text style="flex: 1;" <text style="flex: 1;"
v-if="useCouponId == 0 &&couponList.length>0">{{couponList.length}}张可用优惠券</text> v-if="useCouponId == 0 &&couponList.length>0">{{couponList.length}}张可用优惠券</text>
<text class="content" style="color:grey" v-else-if="couponList.length==0">暂无优惠券</text> <text class="content" style="color:grey" v-else-if="couponList.length==0">暂无优惠券</text>
<text class="content" v-else :style="{ color: mainColor }">已优惠 {{currentCoupon.discountMoney}}</text> <text class="content" v-else :style="{ color: mainColor }">已优惠 {{currentCoupon.discountMoney}}</text>
</text> </text>
<u-icon name="arrow" :size="32" color="#111" v-if="couponList.length>0"></u-icon> <u-icon name="arrow" :size="32" color="#111" v-if="couponList.length>0"></u-icon>
</view> </view>
</view> </view>
</view> </view>
<view class="flight-card q-mt-md"> <view class="flight-card q-mt-md">
<view class="title"> <view class="title">
<text>订单金额</text> <text>订单金额</text>
</view> </view>
<view class="form-items q-mt-md"> <view class="form-items q-mt-md">
<view class="label"> 在线支付 </view> <view class="label"> 在线支付 </view>
<view class="val f14 regular" style="text-align: right"> <view class="val f14 regular" style="text-align: right">
<text style="margin-right: 30rpx">{{ guest.length }}</text> <text style="margin-right: 30rpx">{{ guest.length }}</text>
<text class="red">{{ price }}</text> <text class="red">{{ price }}</text>
</view> </view>
</view> </view>
<view class="form-items" style="border-bottom: none"> <view class="form-items" style="border-bottom: none">
<view class="label"> 明细 </view> <view class="label"> 明细 </view>
</view> </view>
<view v-if="crCount>0" class="row items-center price-list-details"> <view v-if="crCount>0" class="row items-center price-list-details">
<view class="col"> <view class="col">
<text style="margin-right: 30rpx">成人</text> <text style="margin-right: 30rpx">成人</text>
</view> </view>
<view>{{ crCount }}人 × ¥{{flight.B2BPrice}}</view> <view>{{ crCount }}人 × ¥
</view> <!-- #ifdef MP-DI-->
<view v-if="etCount>0" class="row items-center price-list-details"> {{flight.B2CPrice}}
<view class="col"> <!-- #endif-->
<text style="margin-right: 30rpx">儿童</text> <!-- #ifdef MP-AG-->
</view> {{flight.B2BPrice}}
<view>{{ etCount }}人 × ¥{{flight.B2BPrice}}</view> <!-- #endif -->
</view> </view>
<view v-if="babyCount>0" class="row items-center price-list-details"> </view>
<view class="col"> <view v-if="etCount>0" class="row items-center price-list-details">
<text style="margin-right: 30rpx">婴儿</text> <view class="col">
</view> <text style="margin-right: 30rpx">儿童</text>
<view>{{ babyCount }}人 × ¥{{babyPrice}}</view> </view>
</view> <view>{{ etCount }}人 × ¥
<view v-if="useCouponId.length>0" class="row items-center price-list-details" :style="{color:mainColor}"> <!-- #ifdef MP-DI-->
<view class="col"> {{flight.B2CPrice}}
<text style="margin-right: 30rpx">优惠券</text> <!-- #endif-->
</view> <!-- #ifdef MP-AG-->
<view>{{currentCoupon.discountMoney}}</view> {{flight.B2BPrice}}
</view> <!-- #endif -->
<view class="row items-center price-list-details"> </view>
<view class="col"> </view>
<text style="margin-right: 30rpx">合计</text> <view v-if="babyCount>0" class="row items-center price-list-details">
</view> <view class="col">
<view>¥{{(price-currentCoupon.discountMoney>0?price-currentCoupon.discountMoney:0)}}</view> <text style="margin-right: 30rpx">婴儿</text>
</view> </view>
</view> <view>{{ babyCount }}人 × ¥{{babyPrice}}</view>
</view>
<view v-if="useCouponId.length>0" class="row items-center price-list-details" :style="{color:mainColor}">
<view class="col">
<text style="margin-right: 30rpx">优惠券</text>
</view>
<view>{{currentCoupon.discountMoney}}</view>
</view>
<view class="row items-center price-list-details">
<view class="col">
<text style="margin-right: 30rpx">合计</text>
</view>
<view>¥{{(price-currentCoupon.discountMoney>0?price-currentCoupon.discountMoney:0)}}</view>
</view>
</view>
</scroll-view> </scroll-view>
<view class="order-box" v-if="flight && !loading && !statusVisible"> <view class="order-box" v-if="flight && !loading && !statusVisible">
<view class="flight-card order-preview row items-center"> <view class="flight-card order-preview row items-center">
<view class="col" style="color: #ff3166; font-weight: bold"> <view class="col" style="color: #ff3166; font-weight: bold">
<text style="font-size: 22rpx">¥</text> <text style="font-size: 22rpx">¥</text>
<text v-if="crCount+etCount+babyCount>0" style="font-size: 40rpx; margin: 0 20rpx 0 5rpx;font-family: nav-font;"> <text v-if="crCount+etCount+babyCount>0" style="font-size: 40rpx; margin: 0 20rpx 0 5rpx;font-family: nav-font;">
{{(price-currentCoupon.discountMoney).toFixed(2)}} {{(price-currentCoupon.discountMoney).toFixed(2)}}
</text> </text>
<text style="font-size: 40rpx; margin: 0 20rpx 0 5rpx;font-family: nav-font;" v-else>--</text> <text style="font-size: 40rpx; margin: 0 20rpx 0 5rpx;font-family: nav-font;" v-else>--</text>
<text style="color: #6e6e6e; font-size: 24rpx;font-family: microsoft yahei ui light;">共计{{ guest.length }}</text> <text style="color: #6e6e6e; font-size: 24rpx;font-family: microsoft yahei ui light;">共计{{ guest.length }}</text>
</view> </view>
<button class="jz_OrderReNow" @click="orderHandler" :disabled="submit" :loading="submit"> <button class="jz_OrderReNow" @click="orderHandler" :disabled="submit" :loading="submit">
立即预定 立即预定
</button> </button>
</view> </view>
</view> </view>
<coupon v-if="couponList.length > 0 && showCoupon" :price="price" :list="couponList" :current="useCouponId" <coupon v-if="couponList.length > 0 && showCoupon" :price="price" :list="couponList" :current="useCouponId"
@close="closeCouponHandler"></coupon> @close="closeCouponHandler"></coupon>
<u-picker mode="selector" v-model="saleVisable" @confirm="setSaleHandle" :default-selector="[0]" :range="sales" range-key="EmName"></u-picker> <u-picker mode="selector" v-model="saleVisable" @confirm="setSaleHandle" :default-selector="[0]" :range="sales" range-key="EmName"></u-picker>
<u-modal :border-radius="16" @confirm="nativageToOrderHandle" title="订单提醒" content="订单创建成功,请您在6小时内完成付款,否则将会被取消." @cancel="navigatorToHomeHandle" v-model="successVisible" confirm-text='查看订单' cancel-text='返回首页' confirm-color='#DEBF7B' cancel-color='#080A09' :show-cancel-button="true"></u-modal> <u-modal :border-radius="16" @confirm="nativageToOrderHandle" title="订单提醒" content="订单创建成功,请您在6小时内完成付款,否则将会被取消." @cancel="navigatorToHomeHandle" v-model="successVisible" confirm-text='查看订单' cancel-text='返回首页' confirm-color='#DEBF7B' cancel-color='#080A09' :show-cancel-button="true"></u-modal>
</view> </view>
</template> </template>
<script> <script>
import guest from './components/guest/index.vue' import guest from './components/guest/index.vue'
import coupon from '@/components/coupon/index'; import coupon from '@/components/coupon/index';
import Flight from './components/flight/Index.vue' import Flight from './components/flight/Index.vue'
export default { export default {
data() { data() {
...@@ -215,31 +229,37 @@ ...@@ -215,31 +229,37 @@
}, },
customer: {}, customer: {},
guest: [], guest: [],
mainColor: '', mainColor: '',
submit:false, submit:false,
contactName:'', contactName:'',
contactPhone:'', contactPhone:'',
successVisible:false, successVisible:false,
createBy:{ createBy:{
EmName:'', EmName:'',
CreateBy:0 CreateBy:0
}, },
sales:[], sales:[],
saleVisable:false, saleVisable:false,
statusVisible:false, statusVisible:false,
backVisible:false, backVisible:false,
goVisible:false goVisible:false
} }
}, },
components: { components: {
guest, guest,
coupon, coupon,
Flight Flight
}, },
computed: { computed: {
price() { price() {
if (!this.flight) return 0 if (!this.flight) return 0
const p = this.flight.B2BPrice let p = 0
//#ifdef MP-DI
p = this.flight.B2CPrice
//#endif
//#ifdef MP-AG
p = this.flight.B2BPrice
//#endif
if (this.guest.length == 1) return p if (this.guest.length == 1) return p
const f = this.guest.filter(x => x.year > 1).length const f = this.guest.filter(x => x.year > 1).length
const b = this.guest.filter(x => x.year < 2).length const b = this.guest.filter(x => x.year < 2).length
...@@ -248,7 +268,13 @@ ...@@ -248,7 +268,13 @@
}, },
babyPrice() { babyPrice() {
if (!this.flight) return 0 if (!this.flight) return 0
const p = this.flight.B2BPrice let p = 0
//#ifdef MP-DI
p = this.flight.B2CPrice
//#endif
//#ifdef MP-AG
p = this.flight.B2BPrice
//#endif
let bp = this.flight.BabyPrecent let bp = this.flight.BabyPrecent
bp = bp && bp != '' ? (parseFloat(bp) / 100.00) : 0 bp = bp && bp != '' ? (parseFloat(bp) / 100.00) : 0
...@@ -287,116 +313,128 @@ ...@@ -287,116 +313,128 @@
created() { created() {
this.mainColor = this.$uiConfig.mainColor this.mainColor = this.$uiConfig.mainColor
this.customer = uni.getStorageSync("b2b_user"); this.customer = uni.getStorageSync("b2b_user");
this.getUserCouponList() this.getUserCouponList()
this.getSalesHandle() // #ifdef MP-DI
this.createBy.CreateBy = this.customer.pid
// #endif
// #ifdef MP-AG
this.getSalesHandle()
// #endif
}, },
methods: { methods: {
getSalesHandle(){ getSalesHandle(){
const p = { CustomerId: this.customer.customerId } const p = { CustomerId: this.customer.customerId }
this.apipost( "b2b_get_GetCustomerCreateByList", p,(res) => { this.apipost( "b2b_get_GetCustomerCreateByList", p,(res) => {
if (res.resultCode == 1) { if (res.resultCode == 1) {
this.sales = res.data this.sales = res.data
if(this.sales.length==1) this.createBy=this.sales[0] if(this.sales.length==1) this.createBy=this.sales[0]
} }
},(err) => { },(err) => {
}); });
}, },
setSaleHandle(val){ setSaleHandle(val){
this.createBy=this.sales[val[0]] this.createBy=this.sales[val[0]]
}, },
nativageToOrderHandle(){ nativageToOrderHandle(){
uni.redirectTo({ uni.redirectTo({
url:'/pages/airTicket/TicketOrderList' url:'/pages/airTicket/TicketOrderList'
}) })
}, },
orderHandler(){ orderHandler(){
if(this.submit) return if(this.submit) return
const error = this.validate() const error = this.validate()
if(error!=''){ if(error!=''){
uni.showToast({ uni.showToast({
icon:'none', icon:'none',
title:error title:error
}) })
return return
} }
this.submit=true this.submit=true
const p = this.createParameter() const p = this.createParameter()
this.apipost('sellorder_post_SetOrderInfoForAirTicket',p,r=>{ this.apipost('sellorder_post_SetOrderInfoForAirTicket',p,r=>{
if(r.resultCode==1){ if(r.resultCode==1){
this.successVisible=true this.successVisible=true
}else{ }else{
uni.showToast({ uni.showToast({
icon:'error', icon:'error',
title: r.message title: r.message
}) })
} }
this.submit=false this.submit=false
},e=>{ },e=>{
this.submit=false this.submit=false
}) })
}, },
validate(){ validate(){
let msg = '' let msg = ''
if(this.crCount+this.etCount+this.babyCount==0){ if(this.crCount+this.etCount+this.babyCount==0){
msg = '请选择乘机人' msg = '请选择乘机人'
} else if(this.crCount+this.etCount>this.flight.B2BSellNum){ } else if(this.crCount+this.etCount>this.flight.B2BSellNum){
msg = '机位数不足' msg = '机位数不足'
} else if(this.crCount==0){ } else if(this.crCount==0){
msg = '不支持儿童或婴儿单独出游' msg = '不支持儿童或婴儿单独出游'
} else if(this.price-this.currentCoupon.discountMoney<=0){ } else if(this.price-this.currentCoupon.discountMoney<=0){
msg = '机票价格异常,无法生成订单' msg = '机票价格异常,无法生成订单'
} else if(this.contactName==''){ } else if(this.contactName==''){
msg = '请输入联系人名称' msg = '请输入联系人名称'
} else if(this.contactPhone=='' || this.contactPhone.length!=11){ } else if(this.contactPhone=='' || this.contactPhone.length!=11){
msg = '请输入11位联系电话' msg = '请输入11位联系电话'
} else if(this.createBy.CreateBy==0){ } else if(this.createBy.CreateBy==0){
msg = '请选择与你对接的服务人员' msg = '请选择与你对接的服务人员'
} }
return msg return msg
}, },
createParameter(){ createParameter(){
const mallUser = uni.getStorageSync('mall_UserInfo') const mallUser = uni.getStorageSync('mall_UserInfo')
const list = this.guest.map(x=>{ const list = this.guest.map(x=>{
const n = { const n = {
SurName:x.SurName, SurName:x.SurName,
Name:x.GivenName, Name:x.GivenName,
Sex:x.Sex=='M'?1:2, Sex:x.Sex=='M'?1:2,
PassportNo:x.Passport, PassportNo:x.Passport,
PassportExpiry:x.PassportExpired, PassportExpiry:x.PassportExpired,
Birthday:x.BrithDay, Birthday:x.BrithDay,
MobilePhone:x.Mobile, MobilePhone:x.Mobile,
Nationality:x.CountryId Nationality:x.CountryId
} }
return n return n
}) })
const p = { let PriceNum = 0
OrderId:0, //#ifdef MP-DI
TCID:this.id, PriceNum = this.flight.B2CPrice
CustomerType:2, //#endif
GroupType:5, //#ifdef MP-AG
ContactName:this.contactName, PriceNum = this.flight.B2CPrice
ContactMobile:this.contactPhone, //#endif
CustomerId:this.customer.customerId, const p = {
OrderSource:5, OrderId:0,
Unit_Price:this.flight.B2BPrice, TCID:this.id,
TC_Price:this.flight.B2BPrice, CustomerType:2,
CouponAllotIds:this.useCouponId.join(','), GroupType:5,
ManNum:this.crCount, ContactName:this.contactName,
ChirdNum:this.etCount, ContactMobile:this.contactPhone,
ChirdNeedBedNum:this.etCount, CustomerId:this.customer.customerId,
BabyNum:this.babyCount, OrderSource:5,
PreferPrice:this.price, Unit_Price:PriceNum,
YSeatNum:this.crCount+this.etCount, TC_Price:PriceNum,
GuestNum:this.crCount+this.etCount+this.babyCount, CouponAllotIds:this.useCouponId.join(','),
PlaceOrderFrom:2, ManNum:this.crCount,
MiniAppUserId:mallUser.UserId, ChirdNum:this.etCount,
DirectCustomerId:0, ChirdNeedBedNum:this.etCount,
EnterID:0, BabyNum:this.babyCount,
GuestList:list, PreferPrice:this.price,
CreateBy:this.createBy.CreateBy YSeatNum:this.crCount+this.etCount,
} GuestNum:this.crCount+this.etCount+this.babyCount,
return p PlaceOrderFrom:2,
MiniAppUserId:mallUser.UserId,
DirectCustomerId:0,
EnterID:0,
GuestList:list,
CreateBy:this.createBy.CreateBy
}
return p
}, },
showCouponHandler() { showCouponHandler() {
this.showCoupon = this.couponList.length > 0; this.showCoupon = this.couponList.length > 0;
...@@ -404,22 +442,22 @@ ...@@ -404,22 +442,22 @@
guestChangeHandle(val) { guestChangeHandle(val) {
this.guest = val ? val : [] this.guest = val ? val : []
}, },
closeCouponHandler(e) { closeCouponHandler(e) {
this.useCouponId = [] this.useCouponId = []
this.currentCoupon.discountMoney = 0 this.currentCoupon.discountMoney = 0
if (e != -1) { if (e != -1) {
this.useCouponId = e; this.useCouponId = e;
if (this.useCouponId.length>0) { if (this.useCouponId.length>0) {
const cp = this.couponList.filter(x=>this.useCouponId.indexOf(x.id)!=-1) const cp = this.couponList.filter(x=>this.useCouponId.indexOf(x.id)!=-1)
if(cp.length>0){ if(cp.length>0){
cp.forEach(x=>{ cp.forEach(x=>{
if (x.couponsType == 1) { if (x.couponsType == 1) {
this.currentCoupon.discountMoney += x.denomination this.currentCoupon.discountMoney += x.denomination
} else { } else {
this.currentCoupon.discountMoney += parseFloat((parseFloat(this.price) * (1 - parseFloat(x.denomination / 10))).toFixed(2)) this.currentCoupon.discountMoney += parseFloat((parseFloat(this.price) * (1 - parseFloat(x.denomination / 10))).toFixed(2))
} }
}) })
} }
} }
} }
...@@ -578,13 +616,13 @@ ...@@ -578,13 +616,13 @@
background-repeat: no-repeat; background-repeat: no-repeat;
height: 100vh; height: 100vh;
width: 100vw; width: 100vw;
padding-top: 30rpx; padding-top: 30rpx;
} }
.f-detail .safeBottom{ .f-detail .safeBottom{
/* background-color: #f5f5f5; */ /* background-color: #f5f5f5; */
padding-bottom: calc(156rpx + constant(safe-area-inset-bottom)); padding-bottom: calc(156rpx + constant(safe-area-inset-bottom));
padding-bottom: calc(156rpx + env(safe-area-inset-bottom)); padding-bottom: calc(156rpx + env(safe-area-inset-bottom));
} }
.f-detail .flight-card { .f-detail .flight-card {
background-color: #fff; background-color: #fff;
...@@ -665,24 +703,24 @@ ...@@ -665,24 +703,24 @@
padding-bottom: calc(constant(safe-area-inset-bottom)); padding-bottom: calc(constant(safe-area-inset-bottom));
padding-bottom: calc(env(safe-area-inset-bottom)); padding-bottom: calc(env(safe-area-inset-bottom));
min-height: 156rpx; min-height: 156rpx;
background: #F5F5F5; background: #F5F5F5;
} }
.f-detail .order-box .order-preview{ .f-detail .order-box .order-preview{
margin: 0 16px; margin: 0 16px;
padding: 10rpx; padding: 10rpx;
box-shadow: 0 0 40rpx #00000033; box-shadow: 0 0 40rpx #00000033;
} }
.f-detail .jz_OrderReNow { .f-detail .jz_OrderReNow {
height: 80rpx; height: 80rpx;
background-color: #111111; background-color: #111111;
text-align: center; text-align: center;
line-height: 80rpx; line-height: 80rpx;
color: #fff; color: #fff;
font-weight: 600; font-weight: 600;
font-size: 28rpx; font-size: 28rpx;
border-radius: 16rpx; border-radius: 16rpx;
} }
</style> </style>
\ No newline at end of file
<template> <template>
<view style="height: 100vh;background-color: #F3F1EF;" class="flight-list column"> <view style="height: 100vh;background-color: #F3F1EF;" class="flight-list column">
<chosen-city :enable-all="false" :padding-top="`${barHeight}px`" @closed="resetCityVisible=false" @change="setNewCitiesHandle" :value="chosenResult" v-if="resetCityVisible"></chosen-city> <chosen-city :enable-all="false" :padding-top="`${barHeight}px`" @closed="resetCityVisible=false" @change="setNewCitiesHandle" :value="chosenResult" v-if="resetCityVisible"></chosen-city>
<view class="nav-box row items-center" :style="{paddingTop:barHeight+'px',height:(barHeight+44)+'px'}"> <view class="nav-box row items-center" :style="{paddingTop:barHeight+'px',height:(barHeight+44)+'px'}">
<view class="home-btn row items-center" @click="goBackHandle"> <view class="home-btn row items-center" @click="goBackHandle">
<u-icon name="arrowleft" custom-prefix="tffont" color="#111" size="34" <u-icon name="arrowleft" custom-prefix="tffont" color="#111" size="34"
style="font-weight: bolder;"></u-icon> style="font-weight: bolder;"></u-icon>
</view> </view>
<view class="home-btn row items-center" @click="goHomeHandle"> <view class="home-btn row items-center" @click="goHomeHandle">
<u-icon name="home_1" custom-prefix="tffont" color="#111" size="38" <u-icon name="home_1" custom-prefix="tffont" color="#111" size="38"
style="font-weight: bolder;"></u-icon> style="font-weight: bolder;"></u-icon>
</view> </view>
<view class="title row items-center justify-center" @click="resetCityVisible=true"> <view class="title row items-center justify-center" @click="resetCityVisible=true">
<text>{{chosenResult[0].Name}}</text> <text>{{chosenResult[0].Name}}</text>
<view style="margin:0 20rpx"> <view style="margin:0 20rpx">
<u-icon name="wangfan1" custom-prefix="tffont" color="#00000066" size="36"></u-icon> <u-icon name="wangfan1" custom-prefix="tffont" color="#00000066" size="36"></u-icon>
</view> </view>
<text>{{chosenResult[1].Name}}</text> <text>{{chosenResult[1].Name}}</text>
<u-icon class="q-ml-sm" name='arrow_down' custom-prefix="tffont" color="#00000066" size="32"></u-icon> <u-icon class="q-ml-sm" name='arrow_down' custom-prefix="tffont" color="#00000066" size="32"></u-icon>
</view> </view>
</view> </view>
<view class="column items-center justify-center q-mt-md" v-if="loadingLow"> <view class="column items-center justify-center q-mt-md" v-if="loadingLow">
<u-loading mode="circle" size="40"></u-loading> <u-loading mode="circle" size="40"></u-loading>
<view class="normal-label text-center q-mt-sm">正在加载信息</view> <view class="normal-label text-center q-mt-sm">正在加载信息</view>
</view> </view>
<view style="margin:10vh 0" class="text-center" v-else-if="lowData.length==0"> <view style="margin:10vh 0" class="text-center" v-else-if="lowData.length==0">
<u-empty mode="data"></u-empty> <u-empty mode="data"></u-empty>
</view> </view>
<template v-else> <template v-else>
<view class="time-list row" style="padding:0 12rpx;"> <view class="time-list row" style="padding:0 12rpx;">
<scroll-view :scroll-left="scrollLeft" scroll-x class="col header-scroll" style="padding:12rpx 0;width:1px;"> <scroll-view :scroll-left="scrollLeft" scroll-x class="col header-scroll" style="padding:12rpx 0;width:1px;">
<view class="row items-center"> <view class="row items-center">
<view class="time-item" :id="'a'+x.FlightDate.replaceAll('-','')" @click="flightDateChangeHandle(x.FlightDate)" <view class="time-item" :id="'a'+x.FlightDate.replaceAll('-','')" @click="flightDateChangeHandle(x.FlightDate)"
:class="{'active':currentDate==x.FlightDate}" v-for="(x,i) in lowHeadData" :key="i"> :class="{'active':currentDate==x.FlightDate}" v-for="(x,i) in lowHeadData" :key="i">
<view class="">{{x.FlightDate.split('-').splice(1,2).join('-')}}</view> <view class="">{{x.FlightDate.split('-').splice(1,2).join('-')}}</view>
<view style="margin: 10rpx 0;">{{x.WeekDayStr}}</view> <view style="margin: 10rpx 0;">{{x.WeekDayStr}}</view>
<view class="">¥{{x.B2BPrice}}</view> <view class="">¥
</view> <!-- #ifdef MP-DI-->
</view> {{x.B2CPrice}}
<!-- #endif-->
<!-- #ifdef MP-AG-->
{{x.B2BPrice}}
<!-- #endif -->
</view>
</view>
</view>
</scroll-view> </scroll-view>
<view class="time-item more row items-center justify-center"> <view class="time-item more row items-center justify-center">
<date-select :display-list="dateDisplay" @change="dateFilterChange" :default-value="[filterDate.start,filterDate.end]"> <date-select :display-list="dateDisplay" @change="dateFilterChange" :default-value="[filterDate.start,filterDate.end]">
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638753835239709518.png" mode="widthFix" style="width: 30rpx;max-height: 60px;"></image> <image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638753835239709518.png" mode="widthFix" style="width: 30rpx;max-height: 60px;"></image>
</date-select> </date-select>
</view> </view>
</view> </view>
<view class="filter-list"> <view class="filter-list">
<view class="filter-items col" @click="sortChangeHandle(x.id)" :class="{'active':x.id==sortBy}" v-for="(x,i) in sortList" :key="i">{{x.name}}</view> <view class="filter-items col" @click="sortChangeHandle(x.id)" :class="{'active':x.id==sortBy}" v-for="(x,i) in sortList" :key="i">{{x.name}}</view>
</view> </view>
...@@ -135,7 +142,14 @@ ...@@ -135,7 +142,14 @@
<view> <view>
<view class="price"> <view class="price">
<text>¥</text> <text>¥</text>
<text class="big">{{x.B2BPrice}}</text> <text class="big">
<!-- #ifdef MP-DI-->
{{x.B2CPrice}}
<!-- #endif-->
<!-- #ifdef MP-AG-->
{{x.B2BPrice}}
<!-- #endif -->
</text>
</view> </view>
<view class="num row items-center"> <view class="num row items-center">
<text style="padding: 6rpx;width: 56rpx;" class="text-center"></text> <text style="padding: 6rpx;width: 56rpx;" class="text-center"></text>
...@@ -147,58 +161,58 @@ ...@@ -147,58 +161,58 @@
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
</template> </template>
</view> </view>
</template> </template>
<script> <script>
import DateSelect from '../components/time/DateSelect.vue'; import DateSelect from '../components/time/DateSelect.vue';
import ChosenCity from '../components/address/ChosenCity.vue'; import ChosenCity from '../components/address/ChosenCity.vue';
export default { export default {
data() { data() {
return { return {
barHeight: 0, barHeight: 0,
currentDate: '', currentDate: '',
lowData: [], lowData: [],
lowHeadData: [], lowHeadData: [],
dateRangeValue: { dateRangeValue: {
type: 0, type: 0,
startDate: '', startDate: '',
fuzzy: { fuzzy: {
fuzzyType: 0, fuzzyType: 0,
fuzzyTypeName: '', fuzzyTypeName: '',
weeks: [], weeks: [],
dayRangStatus: false, dayRangStatus: false,
dayRange: [4, 10] dayRange: [4, 10]
}, },
formatStartDate: '任意时间出发' formatStartDate: '任意时间出发'
},
resetCityVisible:false,
chosenResult: [{
type: 0,
ID: 0,
Name: '全部城市'
},
{
type: 1,
ID: 0,
Name: '全部城市'
}
],
loadingLow: false,
parementers: {
StartDate: '',
EndDate: '',
DepartCityId: 0,
ArriveCityId: 0,
AirLineID: 0,
groupId: 2,
TicketType: 2,
StartPlayDay: 0,
EndPlayDay: 0,
WeekDay: ''
}, },
resetCityVisible:false,
chosenResult: [{
type: 0,
ID: 0,
Name: '全部城市'
},
{
type: 1,
ID: 0,
Name: '全部城市'
}
],
loadingLow: false,
parementers: {
StartDate: '',
EndDate: '',
DepartCityId: 0,
ArriveCityId: 0,
AirLineID: 0,
groupId: 2,
TicketType: 2,
StartPlayDay: 0,
EndPlayDay: 0,
WeekDay: ''
},
sortBy:0, sortBy:0,
scrollLeft:0, scrollLeft:0,
sortList:[ sortList:[
...@@ -212,7 +226,7 @@ ...@@ -212,7 +226,7 @@
end:'' end:''
}, },
dateDisplay:{} dateDisplay:{}
} }
}, },
components:{DateSelect,ChosenCity}, components:{DateSelect,ChosenCity},
computed: { computed: {
...@@ -221,31 +235,31 @@ ...@@ -221,31 +235,31 @@
let filteredFlights = this.lowData.filter(flight => flight.FlightDate === this.currentDate); let filteredFlights = this.lowData.filter(flight => flight.FlightDate === this.currentDate);
return this.applySorting(filteredFlights); return this.applySorting(filteredFlights);
} }
}, },
created() { created() {
if (uni.getStorageSync('scf')) { if (uni.getStorageSync('scf')) {
const s = uni.getStorageSync('scf') const s = uni.getStorageSync('scf')
this.dateRangeValue = s.dateRange this.dateRangeValue = s.dateRange
this.chosenResult = s.cities this.chosenResult = s.cities
} }
this.chosenResult.sort((a, b) => { this.chosenResult.sort((a, b) => {
return a.type - b.type; return a.type - b.type;
}); });
this.getTopLowTicketHandle() this.getTopLowTicketHandle()
}, },
onLoad(options) { onLoad(options) {
if(options.dv){ if(options.dv){
this.currentDate = decodeURIComponent(options.dv) this.currentDate = decodeURIComponent(options.dv)
} }
}, },
mounted() { mounted() {
let that = this let that = this
uni.getSystemInfo({ uni.getSystemInfo({
success(r) { success(r) {
that.barHeight = r.statusBarHeight that.barHeight = r.statusBarHeight
}, },
}); });
}, },
methods: { methods: {
nativageToOrderHandle(id){ nativageToOrderHandle(id){
uni.navigateTo({ uni.navigateTo({
...@@ -253,18 +267,23 @@ ...@@ -253,18 +267,23 @@
}) })
}, },
applySorting(flights) { applySorting(flights) {
switch (this.sortBy) { switch (this.sortBy) {
case 0: case 0:
return flights.sort((a, b) => new Date(`${a.FlightDate} ${a.FlightList[0].Departure_time}`) - new Date(`${b.FlightDate} ${b.FlightList[0].Departure_time}`)); return flights.sort((a, b) => new Date(`${a.FlightDate} ${a.FlightList[0].Departure_time}`) - new Date(`${b.FlightDate} ${b.FlightList[0].Departure_time}`));
case 1: case 1:
return flights.sort((a, b) => this.getFlightDuration(a) - this.getFlightDuration(b)); return flights.sort((a, b) => this.getFlightDuration(a) - this.getFlightDuration(b));
case 2: case 2:
return flights.sort((a, b) => a.B2BPrice - b.B2BPrice); // #ifdef MP-DI
case 3: return flights.sort((a, b) => a.B2CPrice - b.B2CPrice);
return flights.filter(flight => flight.GoFlightList.length === 1 && flight.BackFlightList.length === 1); // #endif
default: // #ifdef MP-AG
return flights; return flights.sort((a, b) => a.B2BPrice - b.B2BPrice);
} // #endif
case 3:
return flights.filter(flight => flight.GoFlightList.length === 1 && flight.BackFlightList.length === 1);
default:
return flights;
}
}, },
getFlightDuration(flight) { getFlightDuration(flight) {
const duration = (flight.DepartureTime.Days * 24 * 60) + (flight.DepartureTime.Hours * 60) + flight.DepartureTime.Minutes; const duration = (flight.DepartureTime.Days * 24 * 60) + (flight.DepartureTime.Hours * 60) + flight.DepartureTime.Minutes;
...@@ -300,83 +319,83 @@ ...@@ -300,83 +319,83 @@
}, },
easeInOutQuad(t) { easeInOutQuad(t) {
return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t; return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
}, },
resolveParameterHanle() { resolveParameterHanle() {
this.resetParameterHandle() this.resetParameterHandle()
this.parementers.DepartCityId = this.chosenResult[0].ID this.parementers.DepartCityId = this.chosenResult[0].ID
this.parementers.ArriveCityId = this.chosenResult[1].ID this.parementers.ArriveCityId = this.chosenResult[1].ID
if (this.dateRangeValue.type == 1) { if (this.dateRangeValue.type == 1) {
this.currentDate = this.formatDateHandle(start) this.currentDate = this.formatDateHandle(start)
this.filterDate.start = this.dateRangeValue.startDate this.filterDate.start = this.dateRangeValue.startDate
this.filterDate.end = this.dateRangeValue.startDate this.filterDate.end = this.dateRangeValue.startDate
} else { } else {
const d = this.resolveDateByFuzzyHandle(this.dateRangeValue.fuzzy.fuzzyType) const d = this.resolveDateByFuzzyHandle(this.dateRangeValue.fuzzy.fuzzyType)
this.parementers.StartDate = '' this.parementers.StartDate = ''
this.parementers.EndDate = '' this.parementers.EndDate = ''
this.filterDate.start=d[0] this.filterDate.start=d[0]
this.filterDate.end = d[1] this.filterDate.end = d[1]
} }
}, },
resetParameterHandle() { resetParameterHandle() {
this.currentDate = '' this.currentDate = ''
this.parementers = { this.parementers = {
StartDate: '', StartDate: '',
EndDate: '', EndDate: '',
DepartCityId: 0, DepartCityId: 0,
ArriveCityId: 0, ArriveCityId: 0,
AirLineID: 0, AirLineID: 0,
groupId: 2, groupId: 2,
TicketType: 2, TicketType: 2,
StartPlayDay: 0, StartPlayDay: 0,
EndPlayDay: 0, EndPlayDay: 0,
WeekDay: '' WeekDay: ''
} }
}, },
resolveDateByFuzzyHandle(t) { resolveDateByFuzzyHandle(t) {
if (t == 0) return ['', ''] if (t == 0) return ['', '']
let start = new Date(); let start = new Date();
let end = new Date() let end = new Date()
if (t == -1) { if (t == -1) {
start.setTime(start.getTime() + 3600 * 1000 * 24 * 1); start.setTime(start.getTime() + 3600 * 1000 * 24 * 1);
end.setMonth(end.getMonth() + 1); end.setMonth(end.getMonth() + 1);
} else if (t == -2) { } else if (t == -2) {
start.setTime(start.getTime() + 3600 * 1000 * 24 * 1); start.setTime(start.getTime() + 3600 * 1000 * 24 * 1);
end.setMonth(end.getMonth() + 3) end.setMonth(end.getMonth() + 3)
} else { } else {
const currentDate = new Date() const currentDate = new Date()
currentDate.setMonth(currentDate.getMonth() + t); currentDate.setMonth(currentDate.getMonth() + t);
const year = currentDate.getFullYear(); const year = currentDate.getFullYear();
const month = currentDate.getMonth(); const month = currentDate.getMonth();
start = new Date(year, month, 1); start = new Date(year, month, 1);
end = new Date(year, month + 1, 0); end = new Date(year, month + 1, 0);
} }
this.currentDate = this.formatDateHandle(start) this.currentDate = this.formatDateHandle(start)
return [this.formatDateHandle(start), this.formatDateHandle(end)] return [this.formatDateHandle(start), this.formatDateHandle(end)]
}, },
formatDateHandle(date) { formatDateHandle(date) {
return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2,'0')}-${String(date.getDate()).padStart(2,'0')}` return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2,'0')}-${String(date.getDate()).padStart(2,'0')}`
}, },
getTopLowTicketHandle() { getTopLowTicketHandle() {
this.resolveParameterHanle() this.resolveParameterHanle()
this.lowData = [] this.lowData = []
this.loadingLow = true this.loadingLow = true
this.dateDisplay = {} this.dateDisplay = {}
this.apipost('AirTicket_get_GetTopTicketProduct', this.parementers, (r) => { this.apipost('AirTicket_get_GetTopTicketProduct', this.parementers, (r) => {
if (r.resultCode == 1) { if (r.resultCode == 1) {
this.lowData = this.formatLowData(r.data) this.lowData = this.formatLowData(r.data)
} }
this.centerSelectedItem() this.centerSelectedItem()
this.loadingLow = false this.loadingLow = false
}, (e) => { }, (e) => {
this.loadingLow = false this.loadingLow = false
}) })
}, },
formatLowData(d) { formatLowData(d) {
if (!d || d.length == 0) return [] if (!d || d.length == 0) return []
const list = d[0].TicketProductList const list = d[0].TicketProductList
list.sort((a, b) => { list.sort((a, b) => {
return new Date(a.FlightDate) - new Date(b.FlightDate); return new Date(a.FlightDate) - new Date(b.FlightDate);
}) })
list.forEach(x=>{ list.forEach(x=>{
x.GoFlightList = x.FlightList.filter(f=>f.FlightType==1) x.GoFlightList = x.FlightList.filter(f=>f.FlightType==1)
...@@ -392,18 +411,29 @@ ...@@ -392,18 +411,29 @@
if( this.lowHeadData.length>0 && this.lowHeadData.findIndex(x=>x.FlightDate==this.currentDate)==-1){ if( this.lowHeadData.length>0 && this.lowHeadData.findIndex(x=>x.FlightDate==this.currentDate)==-1){
this.currentDate = this.lowHeadData[0].FlightDate this.currentDate = this.lowHeadData[0].FlightDate
} }
return list return list
}, },
formatDisplayHandle(list){ formatDisplayHandle(list){
this.dateDisplay = list.reduce((acc, item) => { this.dateDisplay = list.reduce((acc, item) => {
const arr = item.FlightDate.split('-') const arr = item.FlightDate.split('-')
const groupValue = `${arr[0]}${Number(arr[1])}${Number(arr[2])}`; const groupValue = `${arr[0]}${Number(arr[1])}${Number(arr[2])}`;
const currentPrice = item.B2BPrice; const currentPrice = item.B2BPrice;
const currentB2CPrice = item.B2CPrice;
if (!acc[groupValue]) { if (!acc[groupValue]) {
acc[groupValue] = '¥'+currentPrice; // #ifdef MP-DI
acc[groupValue] = '¥'+currentB2CPrice;
// #endif
// #ifdef MP-AG
acc[groupValue] = '¥'+currentPrice;
// #endif
} else { } else {
acc[groupValue] = '¥'+Math.min(parseFloat(acc[groupValue].replaceAll('¥','')), currentPrice); // #ifdef MP-DI
acc[groupValue] = '¥'+Math.min(parseFloat(acc[groupValue].replaceAll('¥','')), currentB2CPrice);
// #endif
// #ifdef MP-AG
acc[groupValue] = '¥'+Math.min(parseFloat(acc[groupValue].replaceAll('¥','')), currentPrice);
// #endif
} }
return acc; return acc;
...@@ -425,15 +455,18 @@ ...@@ -425,15 +455,18 @@
const result = d.reduce((acc, item) => { const result = d.reduce((acc, item) => {
const groupValue = item.FlightDate; const groupValue = item.FlightDate;
const currentPrice = item.B2BPrice; const currentPrice = item.B2BPrice;
const currentB2CPrice = item.B2CPrice;
if (!acc[groupValue]) { if (!acc[groupValue]) {
acc[groupValue] = { acc[groupValue] = {
FlightDate: groupValue, FlightDate: groupValue,
B2BPrice: currentPrice, B2BPrice: currentPrice,
B2CPrice: currentB2CPrice,
WeekDayStr: item.WeekDayStr WeekDayStr: item.WeekDayStr
}; };
} else { } else {
acc[groupValue].B2BPrice = Math.min(acc[groupValue].B2BPrice, currentPrice); acc[groupValue].B2BPrice = Math.min(acc[groupValue].B2BPrice, currentPrice);
acc[groupValue].B2CPrice = Math.min(acc[groupValue].B2CPrice, currentB2CPrice);
} }
return acc; return acc;
...@@ -441,25 +474,25 @@ ...@@ -441,25 +474,25 @@
const finalResult = Object.values(result); const finalResult = Object.values(result);
return finalResult return finalResult
}, },
formatDateString(d) { formatDateString(d) {
const date = new Date(d) const date = new Date(d)
const weeks = ['日', '一', '二', '三', '四', '五', '六'] const weeks = ['日', '一', '二', '三', '四', '五', '六']
return `${String(date.getMonth()+1).padStart(2,'0')}.${String(date.getDate()).padStart(2,'0')}${weeks[date.getDay()]}` //周${weeks[date.getDay()]} return `${String(date.getMonth()+1).padStart(2,'0')}.${String(date.getDate()).padStart(2,'0')}${weeks[date.getDay()]}` //周${weeks[date.getDay()]}
}, },
goBackHandle() { goBackHandle() {
uni.navigateBack(-1) uni.navigateBack(-1)
}, },
goHomeHandle() { goHomeHandle() {
uni.redirectTo({ uni.redirectTo({
url: '/pages/index/index' url: '/pages/index/index'
}) })
}, },
flightDateChangeHandle(date){ flightDateChangeHandle(date){
this.currentDate = date this.currentDate = date
this.centerSelectedItem() this.centerSelectedItem()
}, },
sortChangeHandle(id){ sortChangeHandle(id){
this.sortBy = id this.sortBy = id
}, },
...@@ -492,71 +525,71 @@ ...@@ -492,71 +525,71 @@
this.getTopLowTicketHandle() this.getTopLowTicketHandle()
this.resetCityVisible = false this.resetCityVisible = false
}, },
} }
} }
</script> </script>
<style> <style>
@import url('../../../asset/css/flex.css'); @import url('../../../asset/css/flex.css');
.nav-box { .nav-box {
height: 44px; height: 44px;
/* 这里的44px是示例高度,可根据实际设计调整 */ /* 这里的44px是示例高度,可根据实际设计调整 */
line-height: 44px; line-height: 44px;
background-color: #FFF; background-color: #FFF;
color: #fff; color: #fff;
width: 100vw; width: 100vw;
padding-left: 30rpx; padding-left: 30rpx;
background-color: #d4b465; background-color: #d4b465;
} }
.nav-box .home-btn { .nav-box .home-btn {
width: 60rpx; width: 60rpx;
height: 60rpx; height: 60rpx;
border-radius: 60rpx; border-radius: 60rpx;
/* border:2rpx solid #ccc; */ /* border:2rpx solid #ccc; */
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.nav-box .title { .nav-box .title {
font-weight: bold; font-weight: bold;
font-size: 32rpx; font-size: 32rpx;
color: #080A09; color: #080A09;
text-align: center; text-align: center;
width: calc(100vw - 140px); width: calc(100vw - 140px);
} }
.header-scroll{ .header-scroll{
transition: scroll-left 0.5s ease; transition: scroll-left 0.5s ease;
} }
.time-list { .time-list {
background: linear-gradient(0, #eacf8d, #d4b465); background: linear-gradient(0, #eacf8d, #d4b465);
width: 100%; width: 100%;
} }
.time-list .time-item { .time-list .time-item {
padding: 22rpx 33rpx; padding: 22rpx 33rpx;
font-size: 24rpx; font-size: 24rpx;
color: #111; color: #111;
line-height: 1; line-height: 1;
text-align: center; text-align: center;
border-radius: 16rpx; border-radius: 16rpx;
position: relative; position: relative;
min-width: 148rpx; min-width: 148rpx;
} }
.time-list .time-item::after { .time-list .time-item::after {
position: absolute; position: absolute;
display: block; display: block;
right: 0; right: 0;
width: 1px; width: 1px;
height: 60%; height: 60%;
top: 20%; top: 20%;
content: ' '; content: ' ';
background-color: #FFFFFF33; background-color: #FFFFFF33;
} }
.time-list .time-item.more::before{ .time-list .time-item.more::before{
position: absolute; position: absolute;
left: -10rpx; left: -10rpx;
...@@ -567,16 +600,16 @@ ...@@ -567,16 +600,16 @@
background-size: auto 100%; background-size: auto 100%;
display: block; display: block;
content: ' '; content: ' ';
} }
.time-list .time-item.active { .time-list .time-item.active {
background-color: #e7d9b2; background-color: #e7d9b2;
font-weight: bold; font-weight: bold;
margin-left: -1px; margin-left: -1px;
} }
.time-list .time-item.active::after, .time-list .time-item.active::after,
.time-list .time-item:last-child::after { .time-list .time-item:last-child::after {
display: none; display: none;
} }
.filter-list{ .filter-list{
...@@ -596,7 +629,7 @@ ...@@ -596,7 +629,7 @@
} }
.filter-list .filter-items:last-child{ .filter-list .filter-items:last-child{
margin-right: 0; margin-right: 0;
} }
.filter-list .filter-items.active{ .filter-list .filter-items.active{
background-color: #e7d9b2; background-color: #e7d9b2;
} }
...@@ -753,8 +786,8 @@ ...@@ -753,8 +786,8 @@
margin-top: 16px; margin-top: 16px;
font-size: 25rpx; font-size: 25rpx;
font-weight: 400; font-weight: 400;
} }
/* .nav-box .home-btn:active{ /* .nav-box .home-btn:active{
background-color: #ccc; background-color: #ccc;
} */ } */
</style> </style>
\ No newline at end of file
...@@ -54,8 +54,8 @@ ...@@ -54,8 +54,8 @@
<view class="cdTiaojianBRText" v-if="g.remark&&g.remark!=''">备注:{{ g.remark }}</view> <view class="cdTiaojianBRText" v-if="g.remark&&g.remark!=''">备注:{{ g.remark }}</view>
</view> </view>
</view> </view>
<view class="cdTiaojianButtom" v-if="type==1" @click="gouseUrl(g)">立即使用</view> <view class="cdTiaojianButtom" v-if="type==1" @click="gouseUrl()">立即使用</view>
<view class="cdTiaojianButtom" v-else @click="g.couponReceiveCount==0?receive(g.couponReceiveCount):gouseUrl(g)">{{ g.couponReceiveCount==0?'立即领取':'立即使用' }}</view> <view class="cdTiaojianButtom" v-else @click="g.couponReceiveCount==0?receive():gouseUrl()">{{ g.couponReceiveCount==0?'立即领取':'立即使用' }}</view>
</view> </view>
</view> </view>
...@@ -108,9 +108,9 @@ ...@@ -108,9 +108,9 @@
return num return num
}, },
receive(id){ receive(){
this.apipost("b2c_post_CustomerGrantCoupon", { this.apipost("b2c_post_CustomerGrantCoupon", {
Id: id Id: this.g.id
}, (res) => { }, (res) => {
if (res.resultCode == 1) { if (res.resultCode == 1) {
uni.showToast({ uni.showToast({
...@@ -129,7 +129,7 @@ ...@@ -129,7 +129,7 @@
}, },
gouseUrl(g) { gouseUrl() {
uni.redirectTo({ uni.redirectTo({
url: '/pages/index/index' url: '/pages/index/index'
}); });
......
...@@ -305,58 +305,75 @@ ...@@ -305,58 +305,75 @@
for (let i = 0; i < this.count; i++) { for (let i = 0; i < this.count; i++) {
var days = []; var days = [];
var week = 0; var week = 0;
for (var j = 0; j < new Date(year, month + 1, 0).getDate(); j++) { // #ifdef MP-DI
let isexsit = false; for (var j = 0; j < new Date(year, month + 1, 0).getDate(); j++) {
const m = month + 1 > 9 ? month + 1 : "0" + (month + 1); let isexsit = false;
const d = j + 1 > 9 ? j + 1 : "0" + (j + 1); const m = month + 1 > 9 ? month + 1 : "0" + (month + 1);
const ds = `${year}-${m}-${d}` const d = j + 1 > 9 ? j + 1 : "0" + (j + 1);
const price = this.priceList.find(p => p.startDate == ds) const ds = `${year}-${m}-${d}`
if (price) { const price = this.priceList.find(p => p.startDate == ds)
isexsit = true if (price) {
if (price.remainNum > 0){ isexsit = true
let priceNum = 0 if (price.remainNum > 0){
// #ifdef MP-DI days.push(price.b2CPrice)
priceNum = price.b2CPrice }
/// #endif else if (price.isSubstitution == 1)
// #ifdef MP-AG days.push(-2)
priceNum = price.b2BPrice else
/// #endif days.push(-1)
days.push(priceNum) } else {
days.push(0);
} }
else if (price.isSubstitution == 1)
days.push(-2)
else
days.push(-1)
} else {
days.push(0);
} }
console.log(this.priceList.length, new Date(year, month + 1, 0).getDate(), price) // #endif
// for (var k = 0; k < this.priceList.length; k++) { // #ifdef MP-AG
// const x = this.priceList[k]; for (var j = 0; j < new Date(year, month + 1, 0).getDate(); j++) {
// console.log(x) let isexsit = false;
// } const m = month + 1 > 9 ? month + 1 : "0" + (month + 1);
// this.priceList.forEach((x) => { const d = j + 1 > 9 ? j + 1 : "0" + (j + 1);
// let m = month + 1 > 9 ? month + 1 : "0" + (month + 1); const ds = `${year}-${m}-${d}`
// let d = j + 1 > 9 ? j + 1 : "0" + (j + 1); const price = this.priceList.find(p => p.startDate == ds)
// //console.log(x.startDate+'-----'+`${year}-${m}-${d}`) if (price) {
// if (x.startDate == `${year}-${m}-${d}`) { isexsit = true
// isexsit = true; if (price.remainNum > 0){
// if (x.remainNum > 0) { days.push(price.b2BPrice)
// let priceNum = 0 }
// // #ifdef MP-DI else if (price.isSubstitution == 1)
// priceNum = x.b2CPrice days.push(-2)
// // #endif else
// // #ifdef MP-AG days.push(-1)
// priceNum = x.b2BPrice } else {
// // #endif days.push(0);
// days.push(priceNum); }
// //days.push(x.b2CPrice); console.log(this.priceList.length, new Date(year, month + 1, 0).getDate(), price)
// } else { // for (var k = 0; k < this.priceList.length; k++) {
// days.push(-1); // const x = this.priceList[k];
// } // console.log(x)
// } // }
// }); // this.priceList.forEach((x) => {
} // let m = month + 1 > 9 ? month + 1 : "0" + (month + 1);
// let d = j + 1 > 9 ? j + 1 : "0" + (j + 1);
// //console.log(x.startDate+'-----'+`${year}-${m}-${d}`)
// if (x.startDate == `${year}-${m}-${d}`) {
// isexsit = true;
// if (x.remainNum > 0) {
// let priceNum = 0
// // #ifdef MP-DI
// priceNum = x.b2CPrice
// // #endif
// // #ifdef MP-AG
// priceNum = x.b2BPrice
// // #endif
// days.push(priceNum);
// //days.push(x.b2CPrice);
// } else {
// days.push(-1);
// }
// }
// });
}
// #endif
data.push(days); data.push(days);
if (month == 11) { if (month == 11) {
year += 1; year += 1;
......
...@@ -1086,7 +1086,7 @@ ...@@ -1086,7 +1086,7 @@
</view> </view>
<view class="line-flex" style="padding: 30rpx; background: #fff" <view class="line-flex" style="padding: 30rpx; background: #fff"
v-if="createBy==0&&SaleList&&SaleList.length>1" @click="showSalePreviwe=true"> v-if="createBy==0&&SaleList&&SaleList.length>1" @click="showSalePreviwe=true">
<text style="font-size: 28rpx; color: #111; font-weight: 500">销售</text> <text style="font-size: 28rpx; color: #111; font-weight: 500">服务人员</text>
<text style=" <text style="
font-size: 22rpx; font-size: 22rpx;
color: #999; color: #999;
...@@ -1206,7 +1206,7 @@ ...@@ -1206,7 +1206,7 @@
<u-popup v-model="showSalePreviwe" mode="bottom" border-radius="50" length="60%" :safe-area-inset-bottom="true"> <u-popup v-model="showSalePreviwe" mode="bottom" border-radius="50" length="60%" :safe-area-inset-bottom="true">
<view> <view>
<view style="font-size: 17px;text-align: center;padding: 20px 0;"> <view style="font-size: 17px;text-align: center;padding: 20px 0;">
选择销售 选择服务人员
</view> </view>
<scroll-view scroll-x="true" style="width: 100%;height: 43vh;"> <scroll-view scroll-x="true" style="width: 100%;height: 43vh;">
<view class="SaleBox"> <view class="SaleBox">
...@@ -1426,7 +1426,12 @@ ...@@ -1426,7 +1426,12 @@
}) })
} }
this.customer = uni.getStorageSync("b2b_user"); this.customer = uni.getStorageSync("b2b_user");
this.delMsg.customerId = this.customer.customerId // #ifdef MP-DI
this.delMsg.directCustomerId = this.customer.customerId
// #endif
// #ifdef MP-AG
this.delMsg.customerId = this.customer.customerId
// #endif
if (!option.scene) { if (!option.scene) {
if (option.lineId) { if (option.lineId) {
this.delMsg.lineId = option.lineId; this.delMsg.lineId = option.lineId;
...@@ -1554,7 +1559,13 @@ ...@@ -1554,7 +1559,13 @@
this.couponList.forEach(x=>{ this.couponList.forEach(x=>{
if(x.couponsType==1 && x.denomination>this.maxCouponDiscount) this.maxCouponDiscount=x.denomination if(x.couponsType==1 && x.denomination>this.maxCouponDiscount) this.maxCouponDiscount=x.denomination
if(x.couponsType==2){ if(x.couponsType==2){
const disMoney = this.currentPrice.b2BPrice*(1-x.denomination) let disMoney = 0
// #ifdef MP-DI
disMoney = this.currentPrice.b2CPrice*(1-x.denomination)
// #endif
// #ifdef MP-AG
disMoney = this.currentPrice.b2BPrice*(1-x.denomination)
// #endif
this.maxCouponDiscount = this.maxCouponDiscount<disMoney?disMoney:this.maxCouponDiscount this.maxCouponDiscount = this.maxCouponDiscount<disMoney?disMoney:this.maxCouponDiscount
} }
}) })
...@@ -2023,14 +2034,16 @@ ...@@ -2023,14 +2034,16 @@
this.is_show_auth = 1; this.is_show_auth = 1;
return; return;
} }
if (this.SaleList&&this.SaleList.length>1&&this.SaleId==0&&this.createBy==0) { // #ifdef MP-AG
uni.showToast({ if (this.SaleList&&this.SaleList.length>1&&this.SaleId==0&&this.createBy==0) {
title: "请选择销售", uni.showToast({
icon: "none", title: "请选择服务人员",
}); icon: "none",
this.showSalePreviwe = true; });
return; this.showSalePreviwe = true;
} return;
}
// #endif
let myObj = {}; let myObj = {};
myObj.startCityName = this.dataList.startCityName; myObj.startCityName = this.dataList.startCityName;
myObj.startDate = this.currentPrice.startDate; myObj.startDate = this.currentPrice.startDate;
...@@ -2057,7 +2070,15 @@ ...@@ -2057,7 +2070,15 @@
yeCount: this.yeCount, //婴儿 yeCount: this.yeCount, //婴儿
etbCount: this.etbCount, //儿童不占床 etbCount: this.etbCount, //儿童不占床
}; };
let createBy = this.createBy>0?this.createBy:this.SaleId
let createBy = 0
// #ifdef MP-DI
createBy = this.createBy>0?this.createBy:this.customer.pid
// #endif
// #ifdef MP-AG
if(this.createBy>0||this.SaleId) createBy = this.createBy>0?this.createBy:this.SaleId
// #endif
let tParams = "&tcid=" + let tParams = "&tcid=" +
this.delMsg.tcid + this.delMsg.tcid +
"&cityId=" + "&cityId=" +
......
...@@ -343,34 +343,40 @@ ...@@ -343,34 +343,40 @@
<view style="flex: 1"> <view style="flex: 1">
<text style="margin-right: 30rpx">成人</text> <text style="margin-right: 30rpx">成人</text>
</view> </view>
<view style="text-align: right">{{ orderMsg.ManNum }}人 × ¥{{ $utils.getretailer()?currentPriceInfo.b2BPrice :currentPriceInfo.b2CPrice <view style="text-align: right">{{ orderMsg.ManNum }}人 × ¥
}}</view> <!-- #ifdef MP-DI -->
{{ currentPriceInfo.b2CPrice }}
<!-- #endif -->
<!-- #ifdef MP-AG -->
{{ currentPriceInfo.b2BPrice }}
<!-- #endif -->
</view>
</view> </view>
<view class="flex f12 grey" style="margin-bottom: 40rpx" :key="index" v-if="orderMsg.ChirdNeedBedNum > 0"> <view class="flex f12 grey" style="margin-bottom: 40rpx" :key="index" v-if="orderMsg.ChirdNeedBedNum > 0">
<view style="flex: 1"> <view style="flex: 1">
<text style="margin-right: 30rpx">儿童(占床)</text> <text style="margin-right: 30rpx">儿童(占床)</text>
</view> </view>
<view style="text-align: right">{{ orderMsg.ChirdNeedBedNum }}人 × ¥{{ <view style="text-align: right">{{ orderMsg.ChirdNeedBedNum }}人 × ¥
($utils.getretailer() <!-- #ifdef MP-DI -->
? currentPriceInfo.b2BPrice {{ currentPriceInfo.b2CPrice+(currentPriceInfo.childNeedPrice? currentPriceInfo.childNeedPrice: 0) }}
: currentPriceInfo.b2CPrice) + <!-- #endif -->
(currentPriceInfo.childNeedPrice <!-- #ifdef MP-AG -->
? currentPriceInfo.childNeedPrice {{ currentPriceInfo.b2BPrice+(currentPriceInfo.childNeedPrice? currentPriceInfo.childNeedPrice: 0) }}
: 0) <!-- #endif -->
}}</view> </view>
</view> </view>
<view class="flex f12 grey" style="margin-bottom: 40rpx" :key="index" v-if="orderMsg.ChirdNoBedNum > 0"> <view class="flex f12 grey" style="margin-bottom: 40rpx" :key="index" v-if="orderMsg.ChirdNoBedNum > 0">
<view style="flex: 1"> <view style="flex: 1">
<text style="margin-right: 30rpx">儿童(不占床)</text> <text style="margin-right: 30rpx">儿童(不占床)</text>
</view> </view>
<view style="text-align: right">{{ orderMsg.ChirdNoBedNum }}人 × ¥{{ <view style="text-align: right">{{ orderMsg.ChirdNoBedNum }}人 × ¥
($utils.getretailer() <!-- #ifdef MP-DI -->
? currentPriceInfo.b2BPrice {{ currentPriceInfo.b2CPrice-(currentPriceInfo.childNoNeedPrice? currentPriceInfo.childNoNeedPrice: 0) }}
: currentPriceInfo.b2CPrice) - <!-- #endif -->
(currentPriceInfo.childNoNeedPrice <!-- #ifdef MP-AG -->
? currentPriceInfo.childNoNeedPrice {{ currentPriceInfo.b2BPrice-(currentPriceInfo.childNoNeedPrice? currentPriceInfo.childNoNeedPrice: 0) }}
: 0) <!-- #endif -->
}}</view> </view>
</view> </view>
<view class="flex f12 grey" style="margin-bottom: 40rpx" :key="index" v-if="orderMsg.BabyNum > 0"> <view class="flex f12 grey" style="margin-bottom: 40rpx" :key="index" v-if="orderMsg.BabyNum > 0">
<view style="flex: 1"> <view style="flex: 1">
...@@ -445,9 +451,15 @@ ...@@ -445,9 +451,15 @@
<text style="color: #6e6e6e; font-size: 24rpx;font-family: microsoft yahei ui light;">共计{{ total }}</text> <text style="color: #6e6e6e; font-size: 24rpx;font-family: microsoft yahei ui light;">共计{{ total }}</text>
</view> </view>
<view style="display: flex; margin-top: -2px"> <view style="display: flex; margin-top: -2px">
<button class="jz_OrderReNow" @click="goPay()" :disabled="submit" :loading="submit"> <button class="jz_OrderReNow" @click="goPay()" :disabled="submit" :loading="submit">
立即预定 <!-- #ifdef MP-DI -->
</button> 立即支付
<!-- #endif -->
<!-- #ifdef MP-AG -->
立即预定
<!-- #endif -->
</button>
</view> </view>
</view> </view>
</view> </view>
...@@ -532,6 +544,7 @@ ...@@ -532,6 +544,7 @@
CreateBy: 0, CreateBy: 0,
showPz:false, showPz:false,
pzCoupon:null, pzCoupon:null,
userInfo: {},
}; };
}, },
created() { created() {
...@@ -543,6 +556,7 @@ ...@@ -543,6 +556,7 @@
}, },
onLoad(option) { onLoad(option) {
this.customer = uni.getStorageSync("b2b_user"); this.customer = uni.getStorageSync("b2b_user");
console.log(this.customer,'--------');
if (option.currentPriceInfo) { if (option.currentPriceInfo) {
this.currentPriceInfo = JSON.parse( this.currentPriceInfo = JSON.parse(
decodeURIComponent(option.currentPriceInfo) decodeURIComponent(option.currentPriceInfo)
...@@ -569,6 +583,74 @@ ...@@ -569,6 +583,74 @@
this.getUserCouponList(); this.getUserCouponList();
}, },
methods: { methods: {
getUserInfoHandler() {
this.apipost("GetCustomerInfo_post", { Id: this.customer.customerId }, (res) => {
if (res.resultCode == 1) {
this.userInfo = res.data;
console.log(this.userInfo,'----');
}
});
},
submitB2COrderHandler(orderId) {
let productType = 0
if (this.currentPriceInfo.teamType == "0") {
//跟团游
productType = 2;
} else if (this.currentPriceInfo.teamType == "1") {
//小包团
productType = 10;
} else if (this.currentPriceInfo.teamType == "2") {
//当地游
productType = 8;
}
let guestInfo = `成人x${this.orderMsg.ManNum}; `;
if (this.orderMsg.ChirdNeedBedNum > 0) {
guestInfo += `占床儿童${this.orderMsg.ChirdNeedBedNum}; `;
}
if (this.orderMsg.ChirdNoBedNum > 0) {
guestInfo += `不占床儿童x${this.orderMsg.ChirdNoBedNum}; `;
}
if (this.orderMsg.BabyNum > 0) {
guestInfo += `婴儿x${this.orderMsg.BabyNum}; `;
}
let startCityName = this.realCurrentPriceInfo.priceUnion && this.realCurrentPriceInfo.priceUnion.startCityName?this.realCurrentPriceInfo.priceUnion.startCityName:this.currentPriceInfo.startCityName
let msg = {
SurName: '',
Name: this.customer.name,
ContactNumber: this.customer.contactNumber,
Mailbox: '',
GoodsId: this.currentPriceInfo.tcid,
GoodsName: this.currentPriceInfo.title,
GoodsPic: this.currentPriceInfo.CoverImg? this.currentPriceInfo.CoverImg : '',
GoodsType: productType,
OrderMake: `${this.currentPriceInfo.startDate}${startCityName}出发 ${guestInfo}`,
TotalPrice: this.price,
PreferentialPrice: this.currentCoupon.discountMoney,
ErpOrderId: orderId,
Country: '',
PlatformTax: 0,
Income: 0,
Refund: 0,
};
this.apipost("AddOrderInfo_post", msg, (res) => {
if (res.resultCode == 1) {
uni.showToast({
icon: 'none',
title: '订单创建成功'
})
this.goPayHandler(res.data);
} else {
uni.showToast({
title:res.message,
icon:'none',
duration:3000
})
}
});
},
goPayHandler(pay) {
//pay.OrderNo
},
showCouponHandler() { showCouponHandler() {
this.showCoupon = this.couponList.length > 0; this.showCoupon = this.couponList.length > 0;
}, },
...@@ -761,11 +843,12 @@ ...@@ -761,11 +843,12 @@
//计算价格 //计算价格
calcMoney() { calcMoney() {
var price = 0; var price = 0;
if (this.$utils.getretailer()) { // #ifdef MP-DI
price = this.currentPriceInfo.b2BPrice;
} else {
price = this.currentPriceInfo.b2CPrice; price = this.currentPriceInfo.b2CPrice;
} // #endif
// #ifdef MP-AG
price = this.currentPriceInfo.b2BPrice;
// #endif
this.orderMsg.ChirdNum = parseInt(this.orderMsg.ChirdNoBedNum) + parseInt(this.orderMsg.ChirdNeedBedNum); this.orderMsg.ChirdNum = parseInt(this.orderMsg.ChirdNoBedNum) + parseInt(this.orderMsg.ChirdNeedBedNum);
//计算总人数 //计算总人数
this.total = parseInt(this.orderMsg.ManNum) + parseInt(this.orderMsg.ChirdNum) + parseInt(this.orderMsg.BabyNum); this.total = parseInt(this.orderMsg.ManNum) + parseInt(this.orderMsg.ChirdNum) + parseInt(this.orderMsg.BabyNum);
...@@ -813,37 +896,6 @@ ...@@ -813,37 +896,6 @@
}, },
//去支付 //去支付
goPay() { goPay() {
// for (var i = 0; i < this.GuestList.length; i++) {
// if (this.GuestList[i].SurName == "") {
// uni.showToast({
// title: `请输入游客${i + 1}的姓名`,
// icon: "none",
// });
// return;
// }
// if (this.GuestList[i].IdCard == "") {
// uni.showToast({
// title: `请输入游客${i + 1}的身份证`,
// icon: "none",
// });
// return;
// }
// if (this.GuestList[i].MobilePhone == "") {
// uni.showToast({
// title: `请输入游客${i + 1}的联系电话`,
// icon: "none",
// });
// return;
// }
// }
if(!this.CreateBy){
uni.showToast({
title: `销售为空,请联系销售人员!`,
icon: "none",
});
return
}
this.submit = true; this.submit = true;
this.userInfo = uni.getStorageSync("mall_UserInfo"); this.userInfo = uni.getStorageSync("mall_UserInfo");
this.basedataObj = uni.getStorageSync("basedata").mall; this.basedataObj = uni.getStorageSync("basedata").mall;
...@@ -866,11 +918,16 @@ ...@@ -866,11 +918,16 @@
var CustomerType = this.customer.isMember //4; var CustomerType = this.customer.isMember //4;
var CustomerCreateBy = this.customer.createBy; var CustomerCreateBy = this.customer.createBy;
var price = 0; var price = 0;
if (this.$utils.getretailer()) { var CreateBy = 0
price = this.currentPriceInfo.b2BPrice; var DirectCustomerId = 0
} else { // #ifdef MP-DI
price = this.currentPriceInfo.b2CPrice; price = this.currentPriceInfo.b2CPrice;
} DirectCustomerId = this.CreateBy
// #endif
// #ifdef MP-AG
price = this.currentPriceInfo.b2BPrice;
CreateBy = this.CreateBy
// #endif
let CouponAllotIds = '' let CouponAllotIds = ''
if(this.useCouponIds.length>0){ if(this.useCouponIds.length>0){
CouponAllotIds = this.useCouponIds.join(',') CouponAllotIds = this.useCouponIds.join(',')
...@@ -926,8 +983,8 @@ ...@@ -926,8 +983,8 @@
CommissionSharePeople: 0, CommissionSharePeople: 0,
CommissionShareMoney: 0, CommissionShareMoney: 0,
MiniAppUserId: MiniAppUserId, MiniAppUserId: MiniAppUserId,
CreateBy: this.CreateBy, //同行联系人创建人 CustomerCreateBy CreateBy: CreateBy, //同行联系人创建人 CustomerCreateBy
DirectCustomerId: 0, //直客Id DirectCustomerId: DirectCustomerId, //直客Id
// #ifdef MP-WEIXIN // #ifdef MP-WEIXIN
OrderSource: 5, OrderSource: 5,
// #endif // #endif
...@@ -953,13 +1010,19 @@ ...@@ -953,13 +1010,19 @@
if(tempData.CounponList && tempData.CounponList.length>0){ if(tempData.CounponList && tempData.CounponList.length>0){
uni.setStorageSync('coupons',tempData.CounponList) uni.setStorageSync('coupons',tempData.CounponList)
} }
uni.showToast({ // #ifdef MP-DI
title: '订单创建成功.', this.submitB2COrderHandler(tempData.OrderId)
icon: 'none' // #endif
}) // #ifdef MP-AG
uni.redirectTo({ uni.showToast({
url: "/pages/jiuzhai/jz_MyOrder", title: '订单创建成功.',
}); icon: 'none'
})
uni.redirectTo({
url: "/pages/jiuzhai/jz_MyOrder",
});
// #endif
// let data = res.data; // let data = res.data;
// data.CoverImg = this.currentPriceInfo.CoverImg; // data.CoverImg = this.currentPriceInfo.CoverImg;
// let myData = JSON.stringify(data); // let myData = JSON.stringify(data);
...@@ -979,7 +1042,9 @@ ...@@ -979,7 +1042,9 @@
duration:3000 duration:3000
}) })
} }
this.submit = false; // #ifdef MP-AG
this.submit = false;
// #endif
}, },
(e) => { (e) => {
this.submit = false; this.submit = false;
......
...@@ -42,24 +42,40 @@ ...@@ -42,24 +42,40 @@
<view style="padding: 33rpx 30rpx 51rpx 38rpx;"> <view style="padding: 33rpx 30rpx 51rpx 38rpx;">
<view class="jz_LineTitle row items-center"> <view class="jz_LineTitle row items-center">
<view class="col"> <view class="col">
<text>原价:</text> <!-- #ifdef MP-AG -->
<text>原价:</text>
<!-- #endif -->
<text class="jz_renmin">¥</text> <text class="jz_renmin">¥</text>
<text class="jz_B2bPrice"> <text class="jz_B2bPrice">
<!--{{ discountPrice }}--> <!--{{ discountPrice }}-->
{{ $utils.getretailer()?dataList.VisaPrice:dataList.VisaB2CPrice }} <!-- #ifdef MP-DI -->
{{dataList.VisaB2CPrice}}
<!-- #endif -->
<!-- #ifdef MP-AG -->
{{dataList.VisaPrice}}
<!-- #endif -->
</text> </text>
<text style="color: #999999; font-size: 28rpx; font-weight: 400">/人</text> <!-- #ifdef MP-AG -->
<text style="font-size: 13px;color:#111;margin-left: 10px;"> <text style="color: #999999; font-size: 28rpx; font-weight: 400">/人</text>
直客价:<text style="font-size: 20rpx;">¥</text>{{ dataList.VisaB2CPrice}} <text style="font-size: 13px;color:#111;margin-left: 10px;">
</text> 直客价:<text style="font-size: 20rpx;">¥</text>{{ dataList.VisaB2CPrice}}
</text>
<!-- #endif -->
</view> </view>
</view> </view>
<view class="jz_LineDetaYJDKQ" style="padding: 0rpx 0 0 0;" v-if="couponList.length>0||TotalDiscount>0"> <view class="jz_LineDetaYJDKQ" style="padding: 0rpx 0 0 0;" v-if="couponList.length>0||TotalDiscount>0">
<view class="jz_LineDetaYJ" v-if="TotalDiscount>0"> <view class="jz_LineDetaYJ" v-if="TotalDiscount>0">
<view class="jz_LineDetaYJL"> <view class="jz_LineDetaYJL">
<!-- <template v-if="false">
原价 ¥{{ $utils.getretailer()?dataList.VisaPrice:dataList.VisaB2CPrice }}/人 原价 ¥
--> <!-- #ifdef MP-DI -->
{{dataList.VisaB2CPrice}}
<!-- #endif -->
<!-- #ifdef MP-AG -->
{{dataList.VisaPrice}}
<!-- #endif -->
/人
</template>
</view> </view>
<view class="jz_LineDetaYJR">最高可减{{TotalDiscount}}</view> <view class="jz_LineDetaYJR">最高可减{{TotalDiscount}}</view>
</view> </view>
...@@ -80,7 +96,7 @@ ...@@ -80,7 +96,7 @@
<view class="line-flex col" style="padding: 30rpx; background: #fff;margin-top: 20rpx" <view class="line-flex col" style="padding: 30rpx; background: #fff;margin-top: 20rpx"
v-if="createBy==0&&SaleList&&SaleList.length>1" v-if="createBy==0&&SaleList&&SaleList.length>1"
@click="showSalePreviwe=true"> @click="showSalePreviwe=true">
<text style="font-size: 28rpx; color: #111; font-weight: 500">销售</text> <text style="font-size: 28rpx; color: #111; font-weight: 500">服务人员</text>
<text style=" <text style="
font-size: 22rpx; font-size: 22rpx;
color: #999; color: #999;
...@@ -164,7 +180,12 @@ ...@@ -164,7 +180,12 @@
<!-- 原b2b --> <!-- 原b2b -->
<text style="font-size: 40rpx;font-family: nav-font;"> <text style="font-size: 40rpx;font-family: nav-font;">
<!-- {{discountPrice}} --> <!-- {{discountPrice}} -->
{{ $utils.getretailer()?dataList.VisaPrice:dataList.VisaB2CPrice }} <!-- #ifdef MP-DI -->
{{ dataList.VisaB2CPrice }}
<!-- #endif -->
<!-- #ifdef MP-AG -->
{{ dataList.VisaPrice }}
<!-- #endif -->
</text> </text>
<text style="font-size: 22rpx">/人</text> <text style="font-size: 22rpx">/人</text>
</view> </view>
...@@ -193,7 +214,7 @@ ...@@ -193,7 +214,7 @@
<u-popup v-model="showSalePreviwe" mode="bottom" border-radius="50" length="60%" :safe-area-inset-bottom="true"> <u-popup v-model="showSalePreviwe" mode="bottom" border-radius="50" length="60%" :safe-area-inset-bottom="true">
<view> <view>
<view style="font-size: 17px;text-align: center;padding: 20px 0;"> <view style="font-size: 17px;text-align: center;padding: 20px 0;">
选择销售 选择服务人员
</view> </view>
<scroll-view scroll-x="true" style="width: 100%;height: 43vh;"> <scroll-view scroll-x="true" style="width: 100%;height: 43vh;">
<view class="SaleBox"> <view class="SaleBox">
...@@ -517,11 +538,23 @@ ...@@ -517,11 +538,23 @@
this.couponList.forEach(x=>{ this.couponList.forEach(x=>{
if(x.couponsType==1 && x.denomination>this.maxCouponDiscount) this.maxCouponDiscount=x.denomination if(x.couponsType==1 && x.denomination>this.maxCouponDiscount) this.maxCouponDiscount=x.denomination
if(x.couponsType==2){ if(x.couponsType==2){
const disMoney = this.currentPrice.b2BPrice*(1-x.denomination) let disMoney = 0
// #ifdef MP-DI
disMoney = this.currentPrice.b2CPrice*(1-x.denomination)
// #endif
// #ifdef MP-AG
disMoney = this.currentPrice.b2BPrice*(1-x.denomination)
// #endif
this.maxCouponDiscount = this.maxCouponDiscount<disMoney?disMoney:this.maxCouponDiscount this.maxCouponDiscount = this.maxCouponDiscount<disMoney?disMoney:this.maxCouponDiscount
} }
}) })
let money = this.$utils.getretailer()?this.dataList.VisaPrice:this.dataList.VisaB2CPrice let money = 0
// #ifdef MP-DI
money = this.dataList.VisaB2CPrice
// #endif
// #ifdef MP-AG
money = this.dataList.VisaPrice
// #endif
let maxCouponDiscount = this.maxCouponDiscount let maxCouponDiscount = this.maxCouponDiscount
this.TotalDiscount = this.maxCouponDiscount this.TotalDiscount = this.maxCouponDiscount
this.discountPrice = money-maxCouponDiscount this.discountPrice = money-maxCouponDiscount
...@@ -675,16 +708,27 @@ ...@@ -675,16 +708,27 @@
this.is_show_auth = 1; this.is_show_auth = 1;
return; return;
} }
if (this.SaleList&&this.SaleList.length>1&&this.SaleId==0&&this.createBy==0) {
uni.showToast({ // #ifdef MP-AG
title: "请选择销售", if (this.SaleList&&this.SaleList.length>1&&this.SaleId==0&&this.createBy==0) {
icon: "none", uni.showToast({
}); title: "请选择服务人员",
this.showSalePreviwe = true; icon: "none",
return; });
} this.showSalePreviwe = true;
return;
}
// #endif
let createBy = 0
// #ifdef MP-DI
createBy = this.createBy>0?this.createBy:this.customer.pid
// #endif
// #ifdef MP-AG
if(this.createBy>0||this.SaleId) createBy = this.createBy>0?this.createBy:this.SaleId
// #endif
uni.navigateTo({ uni.navigateTo({
url: "/pages/visa/visa_Reserve?id=" +this.delMsg.Pid+'&CreateBy=' +(this.createBy?this.createBy:this.SaleId), url: "/pages/visa/visa_Reserve?id=" +this.delMsg.Pid+'&CreateBy=' +createBy,
}); });
}, },
}, },
......
...@@ -91,7 +91,14 @@ ...@@ -91,7 +91,14 @@
</view> </view>
<view class="visaListNumR"> <view class="visaListNumR">
<text style="font-size: 20rpx;">CNY</text> <text style="font-size: 20rpx;">CNY</text>
<text class="price-Num">{{ $utils.getretailer()?item.visaPrice:item.visaB2CPrice }}</text> <text class="price-Num">
<!-- #ifdef MP-DI -->
{{parseFloat(item.visaB2CPrice).toFixed(2)}}
<!-- #endif -->
<!-- #ifdef MP-AG -->
{{parseFloat(item.visaPrice).toFixed(2)}}
<!-- #endif -->
</text>
<text class="price-stuff" style="font-size: 20rpx;color: rgba(164, 164, 164, 1)"></text> <text class="price-stuff" style="font-size: 20rpx;color: rgba(164, 164, 164, 1)"></text>
</view> </view>
</view> </view>
......
...@@ -1105,17 +1105,15 @@ ...@@ -1105,17 +1105,15 @@
//计算价格 //计算价格
calcMoney() { calcMoney() {
var price = 0; var price = 0;
if (this.$utils.getretailer()) { // #ifdef MP-DI
price = this.dataList.VisaB2CPrice;
// #endif
// #ifdef MP-AG
price = this.dataList.VisaPrice; price = this.dataList.VisaPrice;
} else { // #endif
price = this.dataList.VisaB2CPrice;
}
let money = price * this.orderMsg.AdultPeopleNum; let money = price * this.orderMsg.AdultPeopleNum;
this.price = money; this.price = money;
}, },
//去支付 //去支付
goPay() { goPay() {
...@@ -1216,6 +1214,15 @@ ...@@ -1216,6 +1214,15 @@
}); });
return; return;
} }
// #ifdef MP-AG
if(!this.CreateBy){
uni.showToast({
title: `服务人员为空,请联系服务人员!`,
icon: "none",
});
return
}
// #endif
this.submit = true; this.submit = true;
let mall_customer = uni.getStorageSync("mall_customer"); let mall_customer = uni.getStorageSync("mall_customer");
......
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