# 实时奖品价格统计功能 - 需求对齐文档 ## 项目概述 在盲盒游戏管理后台的创建活动向导页面中,实现实时统计所有奖品总价格的功能模块。 ## 原始需求 用户需要在添加奖品时动态计算所有奖品的价值,并提供一个价值统计显示。 ## 需求理解与边界确认 ### 功能边界 - **页面范围**: 仅限于创建活动向导的第三步"添加奖品"页面 - **触发时机**: 用户添加、修改、删除奖品时实时计算 - **显示位置**: 奖品工具栏区域,与现有统计信息并列 - **数据范围**: 仅统计当前活动期数内的奖品 ### 技术边界 - **技术栈**: Vue 3 + TypeScript + Element Plus + SCSS - **状态管理**: 使用Vue的响应式系统(computed) - **性能要求**: 计算响应时间 < 100ms,支持50个奖品同时计算 - **精度要求**: 精确到小数点后两位,支持千分位显示 ### 数据模型分析 基于现有代码分析,奖品数据结构: ```typescript interface Reward { product_id: number product_name: string product_price: number // 商品单价 quantity: number // 奖品数量 weight: number // 权重 level: number // 等级 is_boss: number // 是否Boss奖品 } ``` ### 现有功能分析 1. **已有价格计算**: 代码中已存在`totalCost`计算属性(第505-511行) 2. **已有价格缓存**: 使用`priceCache`缓存商品价格(第481行) 3. **已有统计显示**: 工具栏已显示"总计:X 个奖品"(第195行) ### 需求澄清 1. **价格来源**: 商品价格来自商品库的`product.price`字段 2. **计算逻辑**: 单价 × 数量,累加所有奖品 3. **显示格式**: ¥1,234.56(货币符号+千分位+两位小数) 4. **更新频率**: 每次奖品数据变更时立即更新 ### 疑问与确认 1. **货币格式**: 确认使用人民币符号"¥",格式为"¥1,234.56" 2. **空值处理**: 当商品无价格时按0计算 3. **性能优化**: 使用computed缓存计算结果,避免重复计算 4. **视觉样式**: 与现有统计信息保持一致的风格 ### 验收标准 - ✅ 实时响应奖品列表变化 - ✅ 准确计算所有奖品总价格 - ✅ 显示格式符合货币规范 - ✅ 性能满足响应时间要求 - ✅ 与现有UI风格保持一致 ## 项目特性规范 - **响应式**: 使用Vue computed实现响应式计算 - **可维护**: 代码结构清晰,逻辑分离 - **可扩展**: 易于添加新的统计维度 - **高性能**: 避免不必要的重渲染和计算