jiazhipeng 1 year ago
parent
commit
f7b4c2d888
  1. 149
      subPackages/ticketBooking/order.vue

149
subPackages/ticketBooking/order.vue

@ -59,20 +59,20 @@
<view class="flex relative" style="max-width: 100%;width: fit-content;" <view class="flex relative" style="max-width: 100%;width: fit-content;"
v-if="!skuBuyMultiple&&skuItem.is_card"> v-if="!skuBuyMultiple&&skuItem.is_card">
<view class="person-scroll no-scrollbar" style="overflow-y: auto;"> <view class="person-scroll no-scrollbar" style="overflow-y: auto;">
<view :class="['person-item-container',skuItem.selPeople.some(v=>v.id==item.id)?'active':'']" <view :class="['person-item-container',(skuItem.is_real_name&&skuItem.selPeople.some(v=>v.id==item.id))||(!skuItem.is_real_name&&skuItem.selPerson.id==item.id)?'active':'']"
v-for="(item,addI) in addressList" :key="addI" v-for="(item,addI) in addressList" :key="addI"
@click.stop="personClick(item,skuItem)"> @click.stop="personClick(item,skuItem)">
<view class="person-item"> <view class="person-item">
<view>{{item.name}}</view> <view>{{item.name}}</view>
<!-- <view class="disabled">信息不符</view> --> <!-- <view class="disabled">信息不符</view> -->
</view> </view>
<view class="selected" v-if="skuItem.selPeople.some(v=>v.id==item.id)"> <view class="selected" v-if="(skuItem.is_real_name&&skuItem.selPeople.some(v=>v.id==item.id))||(!skuItem.is_real_name&&skuItem.selPerson.id==item.id)">
<uni-icons color="#fff" type="checkmarkempty" size="10" ></uni-icons> <uni-icons color="#fff" type="checkmarkempty" size="10" ></uni-icons>
</view> </view>
</view> </view>
</view> </view>
<view class="h-1rpx flex-shrink-0" style="width: 110rpx;"></view> <view class="h-1rpx flex-shrink-0" style="width: 110rpx;"></view>
<view class="person-item-more" @click.stop="changeAddressPopup('open')"> <view class="person-item-more" @click.stop="showAddressPopUp({},[],true)">
<view>更多></view> <view>更多></view>
</view> </view>
</view> </view>
@ -124,7 +124,7 @@
<view class="person-info-detail"> <view class="person-info-detail">
<view style="font-size: 31rpx;color: #000000;" class="flex flex-items-center"> <view style="font-size: 31rpx;color: #000000;" class="flex flex-items-center">
<text style="padding-right: 30rpx;">{{skuItem.selPerson.name}}</text> <text style="padding-right: 30rpx;">{{skuItem.selPerson.name}}</text>
<img @click.stop="changeAddressAddPopup('open',person)" v-if="skuBuyMultiple" style="width: 32rpx;height: 32rpx;" :src="showImg('/uploads/20240827/337cf610ce5924c2a65b7a28b6a4891e.png')" alt="" /> <img @click.stop="changeAddressAddPopup('open',skuItem.selPerson)" v-if="skuBuyMultiple" style="width: 32rpx;height: 32rpx;" :src="showImg('/uploads/20240827/337cf610ce5924c2a65b7a28b6a4891e.png')" alt="" />
</view> </view>
<view style="padding: 20rpx 0 14rpx;">手机号 {{skuItem.selPerson.tel}}</view> <view style="padding: 20rpx 0 14rpx;">手机号 {{skuItem.selPerson.tel}}</view>
<view>身份证 {{skuItem.selPerson.id_number}}</view> <view>身份证 {{skuItem.selPerson.id_number}}</view>
@ -164,7 +164,7 @@
</view> </view>
<!-- 优惠券 --> <!-- 优惠券 -->
<navigator :url="'/subPackages/order/orderCoupon?allprice='+ 1 + '&sku_ids='+ 1" class="tickets-container flex-between top-line"> <view @click="goOrderCoupon" class="tickets-container flex-between top-line">
<view class="order-title">优惠券</view> <view class="order-title">优惠券</view>
<view class="coupon-btn" v-if="coupon==''"> <view class="coupon-btn" v-if="coupon==''">
<view class="select">请选择</view> <view class="select">请选择</view>
@ -175,7 +175,7 @@
<span v-else>-{{coupon.percent}}%</span> <span v-else>-{{coupon.percent}}%</span>
<span style="margin:0 31rpx 0 8rpx;color: #6C7A94;">></span> <span style="margin:0 31rpx 0 8rpx;color: #6C7A94;">></span>
</div> </div>
</navigator> </view>
<view class="btn-list"> <view class="btn-list">
<view class="price-box"> <view class="price-box">
@ -359,6 +359,19 @@
onUnload () { onUnload () {
}, },
methods: { methods: {
goOrderCoupon () {
let allPrice = 0
let skuIds= []
this.pInfo.specifications.forEach(v=>{
allPrice+= v.price*v.buyNum
if (v.buyNum>0) {
skuIds.push(v.id)
}
})
uni.navigateTo({
url: `/subPackages/order/orderCoupon?allprice=${allPrice}&sku_ids=${skuIds.join(',')}`
})
},
// //
async getMaxCouponData () { async getMaxCouponData () {
@ -373,7 +386,21 @@
} }
}, },
initPageData () { // skumoney
async initPriceCal(skuId, goodsId,date) {
let res = await this.Post({
specifications_id: skuId,
goods_id: goodsId,
end_date:date,
start_date:date
}, '/api/goods/getPriceCalendarListBySpecifications')
if (res.code == 1) {
return {code:1,money: res.data[0].money}
}
return {code:2}
},
async initPageData () {
this.setDefault = false this.setDefault = false
this.showMore = false this.showMore = false
this.skuBuyMultiple = false this.skuBuyMultiple = false
@ -401,6 +428,20 @@
} }
data.pInfo.specifications.unshift(item); data.pInfo.specifications.unshift(item);
// sku
let is_time_stock = data.sInfo.is_time_stock
let is_price_calendar = data.sInfo.is_price_calendar
data.pInfo.specifications = data.pInfo.specifications.filter(v=>v.is_time_stock==is_time_stock && v.is_price_calendar==is_price_calendar)
let date = data.allSeldDate[data.seldDateIndex].date
for(let sku of data.pInfo.specifications) {
let res = await this.initPriceCal(sku.id, sku.goods_id, date)
if (res.code === 1) {
sku.price = res.money
}
}
this.pInfo = data.pInfo this.pInfo = data.pInfo
this.sInfo = data.sInfo this.sInfo = data.sInfo
this.minSeldDate=data.minSeldDate this.minSeldDate=data.minSeldDate
@ -429,7 +470,22 @@
/*---------------出行人------------------------------*/ /*---------------出行人------------------------------*/
// //
showAddressPopUp (person,personList) { showAddressPopUp (person,personList, isMore) {
if (isMore) {
let currentSku = this.pInfo.specifications[0]
if (currentSku.is_real_name) {
let personIndex = currentSku.selPeople.findIndex(v=>!v.id)
console.log(personIndex)
if (personIndex<0) {personIndex = 0}
person = currentSku.selPeople[personIndex]
personList = currentSku.selPeople
} else {
person = currentSku.selPerson
personList = [currentSku.selPerson]
}
}
console.log(this.pInfo.specifications[0].selPeople[0])
this.currentPerson = person this.currentPerson = person
this.currentPersonIds = [] this.currentPersonIds = []
personList.forEach(v=>{ personList.forEach(v=>{
@ -482,7 +538,6 @@
}) })
// //
if (!this.setDefault && this.addressList.length>0) { if (!this.setDefault && this.addressList.length>0) {
// //
@ -551,25 +606,45 @@
// //
personClick (person, sku) { personClick (person, sku) {
let personHave = sku.selPeople.find(v=>v.id == person.id) console.log(sku)
if (personHave) { //
for(let key in personHave) { if (sku.is_real_name) {
personHave[key] = null let personHave = sku.selPeople.find(v=>v.id == person.id)
if (personHave) {
for(let key in personHave) {
personHave[key] = null
}
} else {
for(let p of sku.selPeople) {
if (!p.id) {
p.id = person.id
p.id_number = person.id_number
p.name = person.name
p.user_id = person.user_id
p.tel = person.tel
p.age = person.age
break
}
}
} }
} else { } else {
for(let p of sku.selPeople) { if(sku.selPerson.id == person.id) {
if (!p.id) { sku.selPerson.id = null
p.id = person.id sku.selPerson.id_number = null
p.id_number = person.id_number sku.selPerson.name = null
p.name = person.name sku.selPerson.user_id = null
p.user_id = person.user_id sku.selPerson.tel = null
p.tel = person.tel sku.selPerson.age = null
p.age = person.age } else {
break sku.selPerson.id = person.id
} sku.selPerson.id_number = person.id_number
sku.selPerson.name = person.name
sku.selPerson.user_id = person.user_id
sku.selPerson.tel = person.tel
sku.selPerson.age = person.age
} }
} }
}, },
removePerson (person) { removePerson (person) {
for(let key in person) { for(let key in person) {
@ -777,7 +852,31 @@
this.closePopup() this.closePopup()
//todo //todo
this.pInfo.specifications.forEach(v=>{
v.buyNum = 0;v.selPeople = [];v.selPerson = {}
v.is_card = Number(v.is_card);
v.is_real_name = Number(v.is_real_name)
})
this.pInfo.specifications[0].buyNum = 1
let date = this.allSeldDate[this.seldDateIndex].date
for(let sku of this.pInfo.specifications) {
sku.selPeople = [
{
id:null,id_number:null,name:null,
tel:null,user_id:null,age:null,
},
]
sku.selPerson = {
id:null,id_number:null,name:null,tel:null,user_id:null,age:null,
}
let res = this.initPriceCal(sku.id, sku.goods_id, date)
if (res.code === 1) {
sku.price = res.money
}
}
}, },
/*---------------------------价格日历-----------------------------------*/ /*---------------------------价格日历-----------------------------------*/
order() { order() {
@ -805,7 +904,7 @@
date: use_date, date: use_date,
start_time: start_time, start_time: start_time,
end_time: end_time, end_time: end_time,
reserve_phone: sku.selPerson.tel, reserve_mobile: sku.selPerson.tel,
} }
goods.push(param) goods.push(param)

Loading…
Cancel
Save