From f7b4c2d8883c523d83fa5ff1efddf02994a7eb43 Mon Sep 17 00:00:00 2001 From: jiazhipeng Date: Thu, 12 Sep 2024 16:35:42 +0800 Subject: [PATCH] 1 --- subPackages/ticketBooking/order.vue | 149 +++++++++++++++++++++++----- 1 file changed, 124 insertions(+), 25 deletions(-) diff --git a/subPackages/ticketBooking/order.vue b/subPackages/ticketBooking/order.vue index 8fb96ed..4031290 100644 --- a/subPackages/ticketBooking/order.vue +++ b/subPackages/ticketBooking/order.vue @@ -59,20 +59,20 @@ - {{item.name}} - + - + 更多> @@ -124,7 +124,7 @@ {{skuItem.selPerson.name}} - + 手机号 {{skuItem.selPerson.tel}} 身份证 {{skuItem.selPerson.id_number}} @@ -164,7 +164,7 @@ - + 优惠券 请选择 @@ -175,7 +175,7 @@ -{{coupon.percent}}% > - + @@ -359,6 +359,19 @@ onUnload () { }, 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 () { @@ -373,7 +386,21 @@ } }, - initPageData () { + // 获取sku价格日历money + 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.showMore = false this.skuBuyMultiple = false @@ -401,6 +428,20 @@ } 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.sInfo = data.sInfo 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.currentPersonIds = [] personList.forEach(v=>{ @@ -482,7 +538,6 @@ }) - // 如果只有一张票给默认值 if (!this.setDefault && this.addressList.length>0) { // 找符合条件的 @@ -551,25 +606,45 @@ // 表单上选择点击出行人 personClick (person, sku) { - let personHave = sku.selPeople.find(v=>v.id == person.id) - if (personHave) { - for(let key in personHave) { - personHave[key] = null + console.log(sku) + // 一证一票 + if (sku.is_real_name) { + 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 { - 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 - } + if(sku.selPerson.id == person.id) { + sku.selPerson.id = null + sku.selPerson.id_number = null + sku.selPerson.name = null + sku.selPerson.user_id = null + sku.selPerson.tel = null + sku.selPerson.age = null + } else { + 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) { for(let key in person) { @@ -777,7 +852,31 @@ this.closePopup() //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() { @@ -805,7 +904,7 @@ date: use_date, start_time: start_time, end_time: end_time, - reserve_phone: sku.selPerson.tel, + reserve_mobile: sku.selPerson.tel, } goods.push(param)