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

用户反馈在创建一番赏活动时，选择即时/定时开奖的页面逻辑不对。通过分析代码 `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_mode` 为 `instant`（即时开奖），并禁用 `scheduled`（除非业务明确支持一番赏定时）。
    2.  **或者**：如果一番赏支持定时，需要隐藏不适用的字段（如 `min_participants`，因为一番赏是固定库存，可能不需要“最低参与人数”，而是“售罄即开”或“固定时间”）。
    3.  **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)

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` 中的表单项可见性。

