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

2.5 KiB
Raw Blame History

实时奖品价格统计功能 - 需求对齐文档

项目概述

在盲盒游戏管理后台的创建活动向导页面中,实现实时统计所有奖品总价格的功能模块。

原始需求

用户需要在添加奖品时动态计算所有奖品的价值,并提供一个价值统计显示。

需求理解与边界确认

功能边界

  • 页面范围: 仅限于创建活动向导的第三步"添加奖品"页面
  • 触发时机: 用户添加、修改、删除奖品时实时计算
  • 显示位置: 奖品工具栏区域,与现有统计信息并列
  • 数据范围: 仅统计当前活动期数内的奖品

技术边界

  • 技术栈: Vue 3 + TypeScript + Element Plus + SCSS
  • 状态管理: 使用Vue的响应式系统computed
  • 性能要求: 计算响应时间 < 100ms支持50个奖品同时计算
  • 精度要求: 精确到小数点后两位,支持千分位显示

数据模型分析

基于现有代码分析,奖品数据结构:

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实现响应式计算
  • 可维护: 代码结构清晰,逻辑分离
  • 可扩展: 易于添加新的统计维度
  • 高性能: 避免不必要的重渲染和计算