# 裁判邀请功能使用说明

## 功能概述

裁判邀请模块用于为武术赛事邀请裁判，通过生成邀请码的方式让裁判登录系统并回复邀请。

## 完整操作流程

### 1. 准备工作

#### 1.1 创建赛事
- 进入"赛事管理"模块
- 创建新的赛事
- 确保赛事状态为"进行中"

#### 1.2 添加裁判
- 进入"评委管理"模块
- 点击"新增评委"按钮
- 填写裁判基本信息：
  - 姓名、性别、手机号、身份证号
  - 裁判类型（主裁判/普通裁判）
  - 等级/职称
  - 擅长项目
- 保存裁判信息

### 2. 生成邀请码

#### 方式一：从评委库导入（推荐）

这是为新裁判生成邀请码的主要方式。

**操作步骤：**
1. 进入"裁判邀请"页面
2. 选择赛事（页面顶部下拉框）
3. 点击"从评委库导入"按钮
4. 在弹出的对话框中：
   - 可以搜索裁判（按姓名、手机号、类型）
   - 勾选需要邀请的裁判（支持多选）
   - 查看已选择的裁判数量
5. 点击"确定导入"按钮
6. 系统自动为选中的裁判批量生成邀请码
7. 生成成功后，邀请列表会自动刷新

**特点：**
- ✅ 支持批量操作
- ✅ 可以搜索和筛选裁判
- ✅ 自动生成邀请码
- ✅ 适合首次邀请裁判

#### 方式二：批量生成邀请码

用于为已有邀请记录但未生成邀请码的裁判批量生成。

**操作步骤：**
1. 在邀请列表中勾选需要生成邀请码的记录
2. 点击"批量生成邀请码"按钮
3. 确认操作
4. 系统为选中的裁判生成邀请码

**注意：**
- ⚠️ 只能为已有邀请记录的裁判生成
- ⚠️ 如果是新裁判，请使用"从评委库导入"

#### 方式三：单个生成邀请码

用于为单个裁判生成或重新生成邀请码。

**操作步骤：**
1. 在邀请列表中找到目标裁判
2. 如果未生成邀请码：点击"生成邀请码"按钮
3. 如果已有邀请码：点击邀请码旁边的刷新图标"重新生成"
4. 邀请码会自动复制到剪贴板

### 3. 发送邀请

生成邀请码后，需要将邀请码发送给裁判：

**发送方式：**
- 📧 邮件：将邀请码通过邮件发送
- 📱 短信：将邀请码通过短信发送
- 💬 微信/其他：通过即时通讯工具发送

**邀请码使用：**
- 裁判收到邀请码后，访问系统登录页面
- 输入邀请码进行登录
- 查看赛事信息并回复邀请（接受/拒绝）

### 4. 管理邀请

#### 4.1 查看邀请状态

邀请状态说明：
- 🟡 **待回复**：已发送邀请，裁判尚未回复
- 🟢 **已接受**：裁判已接受邀请
- 🔴 **已拒绝**：裁判已拒绝邀请
- ⚪ **已取消**：管理员已取消邀请

#### 4.2 邀请操作

**对于"待回复"状态的邀请：**
- **重发**：重新发送邀请通知
- **提醒**：发送提醒消息催促裁判回复
- **取消**：取消邀请（需填写取消原因）

**对于"已接受"状态的邀请：**
- **确认**：确认裁判参与（可进行后续的场地、项目分配）

**所有邀请：**
- **查看**：查看邀请详细信息
- **复制邀请码**：点击邀请码即可复制

### 5. 统计信息

页面顶部显示四个统计卡片：
- 📊 **总邀请数**：已发送的邀请总数
- ⏰ **待回复**：等待裁判回复的邀请数
- ✅ **已接受**：裁判已接受的邀请数
- ❌ **已拒绝**：裁判已拒绝的邀请数

### 6. 导出数据

点击"导出数据"按钮可以导出当前筛选条件下的邀请列表为Excel文件。

## 常见问题

### Q1: 为什么"批量生成邀请码"按钮是灰色的？
**A:** 可能的原因：
1. 未选择赛事
2. 赛事列表正在加载
3. 未勾选任何邀请记录

### Q2: 如何为新裁判生成邀请码？
**A:** 使用"从评委库导入"功能：
1. 先在"评委管理"中添加裁判
2. 在"裁判邀请"页面点击"从评委库导入"
3. 选择裁判并确认导入

### Q3: 邀请码可以重复使用吗？
**A:** 不可以。每个邀请码只能使用一次。如果需要重新邀请，请使用"重新生成"功能。

### Q4: 邀请码有效期是多久？
**A:** 默认有效期为30天。过期后需要重新生成。

### Q5: 如何知道裁判是否收到邀请？
**A:**
- 查看邀请状态，如果裁判已登录并回复，状态会更新
- 可以使用"提醒"功能发送提醒消息
- 建议通过电话或其他方式确认裁判是否收到

## 技术说明

### 邀请码生成规则
- 每个赛事+裁判组合生成唯一邀请码
- 邀请码包含角色信息（主裁判/普通裁判）
- 可以预分配场地和项目

### 数据关联
```
赛事 (Competition)
  ↓
邀请记录 (JudgeInvite)
  ↓
裁判 (Judge)
```

### API接口
- 生成邀请码：`POST /api/blade-martial/judgeInvite/generate`
- 批量生成：`POST /api/blade-martial/judgeInvite/generate/batch`
- 重新生成：`PUT /api/blade-martial/judgeInvite/regenerate/{inviteId}`
- 邀请列表：`GET /api/blade-martial/judgeInvite/list`
- 邀请统计：`GET /api/blade-martial/judgeInvite/statistics`

## 更新日志

### 2025-12-13
- ✨ 新增"从评委库导入"功能
- ✨ 支持裁判搜索和筛选
- ✨ 优化邀请码生成流程
- 🐛 修复按钮禁用逻辑问题
- 🐛 修复赛事选择初始化问题
- 💄 优化用户界面和交互体验
