bindbox-game/.trae/documents/修复“添加奖品弹出批量抽奖”与奖品列表优化计划.md
邹方成 6ee627139c
Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 40s
feat: 新增支付测试小程序与微信支付集成
feat(pay): 添加支付API基础结构
feat(miniapp): 创建支付测试小程序页面与配置
feat(wechatpay): 配置微信支付参数与证书
fix(guild): 修复成员列表查询条件
docs: 更新代码规范文档与需求文档
style: 统一前后端枚举显示与注释格式
refactor(admin): 重构用户奖励发放接口参数处理
test(title): 添加称号效果参数验证测试
2025-11-17 00:42:08 +08:00

40 lines
2.8 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.

## 问题定位
- 奖品页 `web/admin/src/views/activity/rewards/index.vue` 在工具栏下方无条件渲染了批量抽奖对话框:`<BatchDrawDialog :activity="currentActivity" />`
- 该子组件内部以 `props.activity !== null` 控制 `v-model`,而当前页的 `currentActivity` 始终返回对象(非 null导致对话框初始即打开表现为点击“新增奖励”时出现“批量抽奖”。
## 修复方案
- 直接移除奖品页中的 `BatchDrawDialog` 渲染(该页仅做奖励 CRUD模拟批量抽奖逻辑属于活动管理页/模拟页)。
- 若保留(备选):使用受控显示状态,改为 `<BatchDrawDialog v-model="showBatchDrawDialog" :activity="showBatchDrawDialog ? currentActivity : null" />`,并提供单独按钮触发。默认 `showBatchDrawDialog=false`
- 采用“移除”方案,影响文件:`web/admin/src/views/activity/rewards/index.vue`(删除组件引用与相关变量)。
## 奖品列表优化
- 新增展示:
- “剩余/总量”列:`quantity / original_qty`
- “期望概率”列:基于总权重 `sumWeight` 本地计算 `weight/sumWeight*100`,保留两位小数。
- Boss 标签保持但列名更明确为“Boss”。
- 汇总信息:表头上方显示“奖品总数 / 总权重”。
- 交互优化:
- 编辑校验完善(名称、商品、权重、数量、原始数量、等级为必填/大于零)。
- 删除增加二次确认弹窗。
- 过滤与排序(前端本地):
- 过滤项名称模糊、等级S/A/B/C、是否 Boss。
- 默认排序按等级S→C+ `sort`
- 数据加载优化:商品列表一次加载并缓存,避免重复请求。
## 具体改动
- 修改文件:`web/admin/src/views/activity/rewards/index.vue`
- 删除 `<BatchDrawDialog :activity="currentActivity" />` 与相关 `currentActivity` 计算属性。
-`columns` 增加 `剩余/总量``期望概率` 两列(期望概率通过本地计算得到)。
- 在顶部新增汇总区域(使用 `computed` 基于 `data` 计算)。
- 增加简单的本地过滤控件(`ElInput`/`ElSelect`),对展示数据做 `computed` 过滤与排序。
- 删除与批量抽奖相关的无用状态(如 `showSimDialog`)。
- 删除按钮文案更明确:`批量新增奖励``新增奖励`
- 不改后端接口;所有优化为前端表现层。
## 验收
- 进入“奖励”页,点击“新增奖励”只弹奖励编辑对话框,不再出现批量抽奖对话框。
- 列表显示“剩余/总量”、“期望概率”,汇总信息正确;过滤与排序生效。
- 构建通过,交互校验正常,删除有确认提示。
## 风险与回滚
- 风险低,仅前端视图改动;如需回滚,保留原组件引用并恢复初始布局即可。