refactor(utils): 修复密码哈希比较逻辑错误 feat(user): 新增按状态筛选优惠券接口 docs: 添加虚拟发货与任务中心相关文档 fix(wechat): 修正Code2Session上下文传递问题 test: 补充订单折扣与积分转换测试用例 build: 更新配置文件与构建脚本 style: 清理多余的空行与注释
4.1 KiB
4.1 KiB
一番赏活动创建表单优化计划
用户反馈在创建一番赏活动时,选择即时/定时开奖的页面逻辑不对。通过分析代码 web/admin/src/views/activity/wizard/index.vue,发现目前表单的逻辑允许用户在“一番赏”模式下选择“定时开奖”或“即时开奖”,但某些字段的显示逻辑可能不够清晰或存在冲突。一番赏(Ichiban Kuji)通常有其特定的开奖规则,需要对表单进行以下优化。
1. 需求分析与对齐 (Align)
-
当前问题:
- 在选择
play_type='ichiban'时,表单依然展示通用的draw_mode(定时/即时)选项,且后续的定时参数(如min_participants,scheduled_time等)可能没有正确联动。 - 一番赏的核心逻辑是“即买即开”(即时开奖),但也可能存在“定时开奖”的特殊玩法(如凑够多少人开一箱)。需要明确一番赏是否支持所有开奖模式。
- 假设: 用户提到的“逻辑不对”可能是指一番赏只能是即时开奖,或者一番赏的定时开奖不应该显示某些不相关的字段(如
min_participants在一番赏中可能不适用,因为一番赏是消耗库存的)。 - 修正策略:
- 当选择“一番赏”时,默认锁定或限制
draw_mode的选项。 - 如果是“一番赏”,通常是即时开奖(用户购买后立即知道结果)。
- 如果一番赏确实支持定时(例如:全员购买完后统一开奖),则需要明确字段。
- 根据用户语境“即时 定时的 页面逻辑不对”,推测可能是:切换一番赏时,应该自动处理
draw_mode,或者某些字段不该显示。
- 当选择“一番赏”时,默认锁定或限制
- 在选择
-
优化方案:
- 联动逻辑: 当
play_type切换为ichiban时,强制或默认draw_mode为instant(即时开奖),并禁用scheduled(除非业务明确支持一番赏定时)。 - 或者:如果一番赏支持定时,需要隐藏不适用的字段(如
min_participants,因为一番赏是固定库存,可能不需要“最低参与人数”,而是“售罄即开”或“固定时间”)。 - UI 调整: 简化一番赏模式下的表单,隐藏不必要的复杂定时配置。
经确认(自我推演): 一番赏的典型玩法是用户购买后立即获得确定的赏品(即时)。但也存在“整箱全开”的定时玩法。但最常见的问题是:一番赏不应该显示“最低参与人数”等凑单逻辑,因为它基于固定数量的签。
决定:
- 当
play_type === 'ichiban'时:- 锁定
draw_mode为instant(即时开奖),并隐藏开奖模式选择框(或禁用)。 - 隐藏所有定时相关的配置(
min_participants,time_mode,interval_minutes等)。
- 锁定
- 这样能避免用户配置出“定时开奖的一番赏”这种非典型且可能逻辑冲突的活动(除非后端明确支持)。
- 联动逻辑: 当
2. 架构设计 (Architect)
- 前端逻辑调整 (
wizard/index.vue):- 监听
scheduledForm.play_type的变化。 - 如果
play_type === 'ichiban':- 自动设置
scheduledForm.draw_mode = 'instant'。 scheduledForm.min_participants = 0。scheduledForm.interval_minutes = 0。
- 自动设置
- 在模板中,使用
v-if控制字段显示:- 如果
play_type === 'ichiban',隐藏draw_mode选择框(或者显示为只读的“即时开奖”)。 - 隐藏所有
scheduled相关的输入框。
- 如果
- 监听
3. 任务拆解 (Atomize)
- Modify Frontend (
wizard/index.vue):- 添加
watch监听scheduledForm.play_type。 - 修改模板中的
v-if条件,针对ichiban隐藏不必要的字段。 - 或者直接在
play_type选择器下方添加提示:“一番赏模式下默认为即时开奖”。
- 添加
4. 执行步骤 (Automate)
- Step 1: 修改
web/admin/src/views/activity/wizard/index.vue。- 在
script setup中添加watch逻辑。 - 调整
template中的表单项可见性。
- 在