# 价格计算系统说明 ## 概述 本系统实现了基于当前地址、日期、宠物类型等因素的智能价格计算功能,所有价格计算结果均保留2位小数。 ## 核心功能 ### 1. 价格计算器 (PriceCalculator) 位置:`utils/priceCalculator.js` 主要功能: - 根据地址自动识别城市并应用相应价格倍率 - 根据日期类型(节假日/周末/普通日)计算不同价格 - 支持会员折扣计算 - 支持套餐免费额度计算 - 支持多次服务费用计算 - 支持定制服务费用计算 ### 2. 价格配置管理 位置:`pages/priceConfig.vue` (后台管理页面) 配置项包括: - 基础价格配置(普通/节假日/周末) - 会员折扣配置(新晋家长/普卡/银卡/金卡) - 提前熟悉费用配置 - 多次服务费用配置 - 宠物额外费用配置 - 套餐免费额度配置 - 节假日配置 - 城市差异化配置 ## 使用方法 ### 1. 初始化价格计算器 ```javascript import PriceCalculator from '@/utils/priceCalculator.js' // 使用默认配置 const priceCalculator = new PriceCalculator() // 使用自定义配置 const customConfig = { basePrice: { normal: 80, holiday: 90, weekend: 85 }, // ... 其他配置 } const priceCalculator = new PriceCalculator(customConfig) ``` ### 2. 计算订单总价 ```javascript 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) ``` ### 3. 计算单日价格 ```javascript 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) ``` ### 4. 获取价格明细 ```javascript const priceDetails = priceCalculator.getPriceDetails(orderData, userAddress, memberLevel) console.log('价格明细:', priceDetails.priceDetails) console.log('城市倍率:', priceDetails.cityRate) console.log('会员等级:', priceDetails.memberLevel) ``` ## 价格计算规则 ### 1. 基础价格 - 普通日:75元 - 周末:80元 - 节假日:85元 ### 2. 城市价格倍率 - 北京:1.2倍 - 上海:1.15倍 - 广州:1.1倍 - 深圳:1.15倍 - 其他城市:1.0倍 ### 3. 会员折扣 - 新晋家长:9.5折 - 普卡会员:9折 - 银卡会员:8.8折 - 金卡会员:8.5折 ### 4. 宠物额外费用 - 大型犬:40元 - 中型犬:30元 - 小型犬:15元 - 猫:10元 ### 5. 多次服务费用 - 一天两次:45元 - 一天三次:130元 ### 6. 套餐免费额度 - 3只及以上猫:免费30元 - 2只及以上小型犬:免费30元 - 1只及以上中型犬:免费30元 - 混合类型(1猫1小型犬):免费25元 ### 7. 提前熟悉费用 - 基础价格:40元 - 节假日倍率:1.2倍 ## 前端集成 ### 1. serviceNew2.vue - 使用价格计算器计算订单总价 - 在日期选择界面显示会员折扣后价格 - 支持实时价格更新 ### 2. confirmOrder.vue - 使用价格计算器计算最终订单价格 - 显示详细的价格明细 - 支持优惠券和会员折扣叠加 ## 后台管理 ### 1. 价格配置管理页面 - 支持所有价格参数的配置 - 支持节假日日期配置 - 支持城市价格倍率配置 - 支持免费规则配置 ### 2. API接口 - `getPriceConfig()`: 获取价格配置 - `savePriceConfig()`: 保存价格配置 - `updatePriceConfig()`: 更新价格配置 - `calculateOrderPrice()`: 计算订单价格 ## 注意事项 1. 所有价格计算结果均保留2位小数 2. 城市识别基于地址字符串匹配 3. 节假日配置支持后台动态管理 4. 会员折扣和城市倍率可以叠加使用 5. 套餐免费额度按规则优先级计算 ## 扩展功能 1. 支持更多城市的价格倍率配置 2. 支持更复杂的会员等级体系 3. 支持季节性价格调整 4. 支持特殊活动价格优惠 5. 支持批量价格计算