本系统实现了基于当前地址、日期、宠物类型等因素的智能价格计算功能,所有价格计算结果均保留2位小数。
位置:utils/priceCalculator.js
主要功能:
位置:pages/priceConfig.vue
(后台管理页面)
配置项包括:
import PriceCalculator from '@/utils/priceCalculator.js'
// 使用默认配置
const priceCalculator = new PriceCalculator()
// 使用自定义配置
const customConfig = {
basePrice: {
normal: 80,
holiday: 90,
weekend: 85
},
// ... 其他配置
}
const priceCalculator = new PriceCalculator(customConfig)
const orderData = {
needPreFamiliarize: ['需要提前熟悉'],
pets: [
{
petId: 1,
serviceDate: '2024-01-15',
name: '小白',
petType: 'cat',
bodyType: '小型',
feedCount: 2,
customServices: [
{ name: '梳毛服务', price: 20, quantity: 1 }
]
}
]
}
const userAddress = '北京市朝阳区某某街道'
const memberLevel = 'silver'
const result = priceCalculator.calculateOrderTotal(orderData, userAddress, memberLevel)
console.log('订单总价:', result.totalWithDiscount)
console.log('城市倍率:', result.cityRate)
console.log('会员折扣:', result.memberDiscount)
const pets = [/* 宠物数据 */]
const dateString = '2024-01-15'
const feedCount = 2
const customServices = [/* 定制服务数据 */]
const dailyPrice = priceCalculator.calculateDailyPrice(pets, dateString, feedCount, customServices)
console.log('基础服务费用:', dailyPrice.baseServiceCost)
console.log('宠物额外费用:', dailyPrice.petExtraCost)
console.log('多次服务费用:', dailyPrice.multiServiceCost)
console.log('定制服务费用:', dailyPrice.customServiceCost)
console.log('免费额度:', dailyPrice.freeQuota)
console.log('总价:', dailyPrice.totalOriginalPrice)
const priceDetails = priceCalculator.getPriceDetails(orderData, userAddress, memberLevel)
console.log('价格明细:', priceDetails.priceDetails)
console.log('城市倍率:', priceDetails.cityRate)
console.log('会员等级:', priceDetails.memberLevel)
getPriceConfig()
: 获取价格配置savePriceConfig()
: 保存价格配置updatePriceConfig()
: 更新价格配置calculateOrderPrice()
: 计算订单价格