diff --git a/pages/newOrder/confirmOrder.vue b/pages/newOrder/confirmOrder.vue
index a55a550..25e1b20 100644
--- a/pages/newOrder/confirmOrder.vue
+++ b/pages/newOrder/confirmOrder.vue
@@ -155,9 +155,9 @@
- 提前熟悉
- ¥{{ (price_config.preFamiliarize && price_config.preFamiliarize.price) || 40 }}
-
+ 提前熟悉
+ ¥{{ (price_config && price_config.preFamiliarize && price_config.preFamiliarize.price) || 40 }}
+
费用总计
@@ -216,7 +216,7 @@
*
- 价格{{ price_config.preFamiliarize.price }}元/次
+ 价格{{ (price_config && price_config.preFamiliarize && price_config.preFamiliarize.price) || 40 }}元/次
*
@@ -391,14 +391,20 @@
this.getCouponList()
// this.totalPrice = this.$globalData.newOrderData.totalPrice
- this.companionLevelTitle = this.$globalData.newOrderData.companionLevel.paramValue
+ this.companionLevelTitle = (this.$globalData.newOrderData.companionLevel && this.$globalData.newOrderData.companionLevel.paramValue) || ''
},
methods: {
companionLevelPrice(){
let companionLevel = this.$globalData.newOrderData.companionLevel
- let price = Number(companionLevel.paramValueText) * this.isAddPrice()
-
- return price * this.$store.state.memberRate
+ if (!companionLevel || !companionLevel.paramValueText) {
+ return 0
+ }
+ let paramValueText = isNaN(companionLevel.paramValueText) ? 0 : Number(companionLevel.paramValueText)
+ let addPrice = this.isAddPrice()
+ let memberRate = isNaN(this.$store.state.memberRate) ? 1 : Number(this.$store.state.memberRate)
+ let price = paramValueText * addPrice
+
+ return price * memberRate
},
//判断当前选中的地址是否加价
isAddPrice(){
@@ -475,7 +481,9 @@
const pets = dailyPets[date];
const priceDetails = []
// 基础服务 - 根据是否为节假日设置价格
- const baseServiceCost = Number(this.isHoliday(date) ? this.holidayPrice : this.normalPrice)
+ const holidayPrice = isNaN(this.holidayPrice) ? 75 : Number(this.holidayPrice)
+ const normalPrice = isNaN(this.normalPrice) ? 75 : Number(this.normalPrice)
+ const baseServiceCost = Number(this.isHoliday(date) ? holidayPrice : normalPrice)
const largeDogCount = pets.filter(pet => pet.petType === 'dog' && pet.bodyType.includes('大型')).length;
let mediumDogCount = pets.filter(pet => pet.petType === 'dog' && pet.bodyType.includes('中型')).length;
@@ -607,7 +615,13 @@
console.log(baseServiceCost + additionalCost + multServicesTotalCost + customServiceCost);
console.log(baseServiceCost , additionalCost , multServicesTotalCost , customServiceCost);
- const totalCost = parseFloat((baseServiceCost + additionalCost + multServicesTotalCost + Number(customServiceCost))).toFixed(2)
+ // 确保所有数值都是有效的数字,避免NaN
+ const safeBaseServiceCost = isNaN(baseServiceCost) ? 0 : Number(baseServiceCost)
+ const safeAdditionalCost = isNaN(additionalCost) ? 0 : Number(additionalCost)
+ const safeMultServicesTotalCost = isNaN(multServicesTotalCost) ? 0 : Number(multServicesTotalCost)
+ const safeCustomServiceCost = isNaN(customServiceCost) ? 0 : Number(customServiceCost)
+
+ const totalCost = parseFloat(safeBaseServiceCost + safeAdditionalCost + safeMultServicesTotalCost + safeCustomServiceCost).toFixed(2)
// 所有宠物定制服务总项数,每个类型的服务只算一次
const acc = []
pets.map(pet => {
@@ -649,7 +663,15 @@
// 计算宠物定制服务费用
calculatePetCustomServiceCost(pet) {
console.log('pet.customServices',pet.customServices)
- const customServiceCost = pet.customServices.reduce((acc, item) => acc + Number(item.price) * item.quantity, 0)
+ // 确保customServices存在且为数组
+ if (!pet.customServices || !Array.isArray(pet.customServices)) {
+ return '0.00'
+ }
+ const customServiceCost = pet.customServices.reduce((acc, item) => {
+ const price = isNaN(item.price) ? 0 : Number(item.price)
+ const quantity = isNaN(item.quantity) ? 0 : Number(item.quantity)
+ return acc + price * quantity
+ }, 0)
console.log('customServiceCost',customServiceCost)
return parseFloat(customServiceCost).toFixed(2)
},
@@ -687,22 +709,29 @@
// 将价格配置赋值给组件
this.price_config = priceConfig || {}
- // 获取伴宠师等级价格和城市倍率
- let companionPrice = this.$globalData.newOrderData.companionLevelPrice || 0
- let cityPriceRate = this.$globalData.newOrderData.cityPriceRate || 1
+ // 获取伴宠师等级价格和城市倍率,确保都是有效数字
+ let companionPrice = isNaN(this.$globalData.newOrderData.companionLevelPrice) ? 0 : Number(this.$globalData.newOrderData.companionLevelPrice)
+ let cityPriceRate = isNaN(this.$globalData.newOrderData.cityPriceRate) ? 1 : Number(this.$globalData.newOrderData.cityPriceRate)
+ let memberRate = isNaN(this.$store.state.memberRate) ? 1 : Number(this.$store.state.memberRate)
if(priceConfig.basePrice && priceConfig.basePrice.holiday){
- this.holidayPrice = Number((priceConfig.basePrice.holiday * this.$store.state.memberRate * cityPriceRate) + companionPrice).toFixed(2)
+ const holidayBasePrice = isNaN(priceConfig.basePrice.holiday) ? 75 : Number(priceConfig.basePrice.holiday)
+ this.holidayPrice = Number((holidayBasePrice * memberRate * cityPriceRate) + companionPrice).toFixed(2)
+ } else {
+ this.holidayPrice = 75
}
if(priceConfig.basePrice && priceConfig.basePrice.normal){
- this.normalPrice = Number((priceConfig.basePrice.normal * this.$store.state.memberRate * cityPriceRate) + companionPrice).toFixed(2)
+ const normalBasePrice = isNaN(priceConfig.basePrice.normal) ? 75 : Number(priceConfig.basePrice.normal)
+ this.normalPrice = Number((normalBasePrice * memberRate * cityPriceRate) + companionPrice).toFixed(2)
+ } else {
+ this.normalPrice = 75
}
- if(priceConfig.holidays && priceConfig.holidays.length > 0){
+ if(priceConfig.holidays && Array.isArray(priceConfig.holidays) && priceConfig.holidays.length > 0){
this.holidayDate = priceConfig.holidays
}else{
this.holidayDate = []
}
- this.discountMemberText = (this.$store.state.memberRate * 10)
+ this.discountMemberText = (memberRate * 10)
},
// 判断是否为节假日
isHoliday(date) {
diff --git a/pages_order/order/orderList.vue b/pages_order/order/orderList.vue
index 5ae7d37..44d4c6d 100644
--- a/pages_order/order/orderList.vue
+++ b/pages_order/order/orderList.vue
@@ -275,6 +275,8 @@
return '已关闭';
case 5:
return '无效订单';
+ case 6:
+ return '已取消';
case 11:
return '服务中';
}