bindbox-game/docs/实时奖品价格统计/ALIGNMENT_实时奖品价格统计.md
邹方成 642b3cf7dd
Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 50s
build: 更新前端构建产物和资源文件
更新了前端构建产物包括JavaScript、CSS和HTML文件,主要涉及以下变更:

1. 新增了多个组件和工具函数,包括异常页面组件、iframe组件等
2. 更新了活动管理、产品管理、优惠券管理等业务模块
3. 优化了构建配置和依赖管理
4. 修复了一些样式和功能问题
5. 更新了测试相关文件

同时更新了部分后端服务接口和测试用例。这些变更主要是为了支持新功能和改进现有功能的用户体验。
2025-11-21 01:24:13 +08:00

65 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 实时奖品价格统计功能 - 需求对齐文档
## 项目概述
在盲盒游戏管理后台的创建活动向导页面中,实现实时统计所有奖品总价格的功能模块。
## 原始需求
用户需要在添加奖品时动态计算所有奖品的价值,并提供一个价值统计显示。
## 需求理解与边界确认
### 功能边界
- **页面范围**: 仅限于创建活动向导的第三步"添加奖品"页面
- **触发时机**: 用户添加、修改、删除奖品时实时计算
- **显示位置**: 奖品工具栏区域,与现有统计信息并列
- **数据范围**: 仅统计当前活动期数内的奖品
### 技术边界
- **技术栈**: 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实现响应式计算
- **可维护**: 代码结构清晰逻辑分离
- **可扩展**: 易于添加新的统计维度
- **高性能**: 避免不必要的重渲染和计算