## 使用指导（立即可用）
- 叠加策略（stacking_strategy）
  - 对“双倍概率”（effect_type=6）当前不生效；代码仅按“概率累加+统一封顶”处理（internal/service/activity/draw_with_effects.go:133-149）。
  - 只有一个双倍效果时，保持默认即可（推荐填 1“累加封顶”或 0“最大值”，不影响现状）。
- 统一封顶（cap_value_x1000）
  - 约束“多个双倍效果合并后的总概率”的上限（单位千分）。
  - 只有一个效果：填 0（不封顶）或填业务上限（如 1000=100%）。
  - 多个效果：按业务上限填写，如最多 30% 则填 300（避免叠加超过 30%）。

## 作用范围简化（改造目标）
- 将前端“作用范围”改为：
  - 下拉选择“活动 activity_ids”（多选）
  - 依赖选择“期 issue_ids”（多选，基于已选活动加载期）
  - 可选“排除期 exclude.issue_ids”（多选）
- 不再要求手写 ID，不展示分类/时间等无关选项。

## 前端改造
- EffectEditDialog.vue
  - 为 effect_type=6 添加三组下拉：活动、期、排除期。
  - 提交时构造简化版 scopes_json：`{ activity_ids, issue_ids, exclude: { issue_ids } }`。
  - 在 UI 上为 stacking_strategy/cap_value_x1000 提供简短说明（不改后端字段）。
- EffectManagerDialog.vue
  - 在列表新增“作用范围”列，展示活动/期/排除期标签（已完成范围列，可保留）。

## 数据来源与接口（不改后端）
- 活动/期下拉数据：
  - 如果已有活动与期的接口：直接请求填充；
  - 如暂无接口：先用静态选项或从现有管理页可获取的列表填充，下轮再对接接口。
- 不改后端：效果保存仍通过 `admin/system_titles/:title_id/effects`，携带 `params_json` 与简化 `scopes_json`。

## 验收
- 在管理端为“双倍概率”新增/编辑效果：
  - 可用下拉选择活动与期，不用手写；
  - 保存后列表显示范围标签；
  - 抽奖按选定的期过滤生效（draw_with_effects.go:85-103）。

确认后我将实施前端下拉改造与表单说明文本，并保持后端兼容。