bindbox-game/.trae/documents/一番赏活动创建表单逻辑优化计划.md
邹方成 45815bfb7d chore: 清理无用文件与优化代码结构
refactor(utils): 修复密码哈希比较逻辑错误
feat(user): 新增按状态筛选优惠券接口
docs: 添加虚拟发货与任务中心相关文档
fix(wechat): 修正Code2Session上下文传递问题
test: 补充订单折扣与积分转换测试用例
build: 更新配置文件与构建脚本
style: 清理多余的空行与注释
2025-12-18 17:35:55 +08:00

4.1 KiB
Raw Blame History

一番赏活动创建表单优化计划

用户反馈在创建一番赏活动时,选择即时/定时开奖的页面逻辑不对。通过分析代码 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,或者某些字段不该显示。
  • 优化方案:

    1. 联动逻辑: 当 play_type 切换为 ichiban 时,强制或默认 draw_modeinstant(即时开奖),并禁用 scheduled(除非业务明确支持一番赏定时)。
    2. 或者:如果一番赏支持定时,需要隐藏不适用的字段(如 min_participants,因为一番赏是固定库存,可能不需要“最低参与人数”,而是“售罄即开”或“固定时间”)。
    3. UI 调整: 简化一番赏模式下的表单,隐藏不必要的复杂定时配置。

    经确认(自我推演): 一番赏的典型玩法是用户购买后立即获得确定的赏品(即时)。但也存在“整箱全开”的定时玩法。但最常见的问题是:一番赏不应该显示“最低参与人数”等凑单逻辑,因为它基于固定数量的签

    决定:

    • play_type === 'ichiban' 时:
      • 锁定 draw_modeinstant(即时开奖),并隐藏开奖模式选择框(或禁用)。
      • 隐藏所有定时相关的配置(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)

  1. Modify Frontend (wizard/index.vue):
    • 添加 watch 监听 scheduledForm.play_type
    • 修改模板中的 v-if 条件,针对 ichiban 隐藏不必要的字段。
    • 或者直接在 play_type 选择器下方添加提示:“一番赏模式下默认为即时开奖”。

4. 执行步骤 (Automate)

  1. Step 1: 修改 web/admin/src/views/activity/wizard/index.vue
    • script setup 中添加 watch 逻辑。
    • 调整 template 中的表单项可见性。