# 农事任务农资选择功能 - 快速测试指南

## 🎯 5分钟快速测试

### **测试目标**
验证新建农事任务时，可以从农资管理系统选择农资，系统自动填充农资信息并显示库存状态。

---

## 📍 访问路径

```
农事操作管理 → 农事任务 → 任务管理 → 新建任务 → 所需农资
```

---

## ✅ 测试用例1：从农资库选择农资

### **前置条件**
确保农资管理中有农资数据（系统已预置示例数据）

### **操作步骤**

1. **进入任务管理**
   - 点击顶部导航"农事操作管理"
   - 点击左侧菜单"农事任务 → 任务管理"

2. **打开创建对话框**
   - 点击右上角绿色"新建任务"按钮

3. **快速填写基本信息**
   - 任务名称：施肥作业测试
   - 任务类型：施肥
   - 执行地块：东区1号地
   - 负责人：张三
   - 班组：第一作业组
   - 计划开始时间：选择任意日期

4. **滚动到"所需农资"区域**
   - 找到黄色背景的"所需农资"区域

5. **点击"从农资库选择"**
   - 点击输入框右侧的"从农资库选择"按钮
   - 观察弹出的农资选择器对话框

6. **查看农资选择器**
   - ✅ 顶部显示4个统计卡片
   - ✅ 显示可用农资数量
   - ✅ 分类统计（种子/化肥、农药、其他）
   - ✅ 农资列表展示详细信息

7. **选择一个农资**
   - 点击任意农资卡片（例如：液压油）
   - 观察对话框关闭

8. **检查自动填充**
   - ✅ 农资名称自动填充：液压油
   - ✅ 单位自动填充：升
   - ✅ 显示当前库存：200 升

9. **输入数量**
   - 在数量框输入：50
   - 观察库存提示：当前库存 200 升 ✓

10. **测试库存不足警告**
    - 修改数量为：300
    - 观察警告：⚠️ 库存不足

11. **添加多个农资**
    - 点击"添加农资"按钮
    - 再次从农资库选择另一个农资
    - 验证可以添加多个

12. **保存任务**
    - 点击底部"创建任务"按钮
    - 看到成功提示

### **预期结果**
- ✅ 农资选择器正常弹出
- ✅ 显示所有有库存的农资（10个）
- ✅ 点击后自动填充名称和单位
- ✅ 正确显示当前库存
- ✅ 用量超库存时显示红色警告
- ✅ 可以添加多个农资
- ✅ 任务保存成功

---

## ✅ 测试用例2：手动输入农资（对比）

### **操作步骤**

1. 点击"新建任务"
2. 填写基本信息（同上）
3. 滚动到"所需农资"
4. 直接在输入框输入：
   - 农资名称：新型除草剂
   - 数量：10
   - 单位：L
5. 观察：不显示库存信息
6. 保存任务

### **预期结果**
- ✅ 可以手动输入农资
- ✅ 不显示库存信息
- ✅ 不显示库存预警
- ✅ 保存成功

---

## ✅ 测试用例3：农资选择器内容验证

### **操作步骤**

1. 打开农资选择器
2. 检查统计卡片
3. 检查农资列表

### **验证要点**

#### **统计卡片**
```
✅ 可用农资：10
✅ 种子/化肥：0
✅ 农药：0
✅ 其他：10 （配件+耗材）
```

#### **农资列表**
应显示以下农资（示例）：
```
✅ 机油滤芯    [配件] [正常]    库存：50 个
✅ 空气滤芯    [配件] [正常]    库存：30 个
✅ 液压油      [耗材] [正常]    库存：200 升
✅ 齿轮油      [耗材] [正常]    库存：150 升
✅ 燃油滤芯    [配件] [正常]    库存：25 个
✅ 防冻液      [耗材] [正常]    库存：80 升
✅ 传动皮带    [配件] [正常]    库存：15 条
✅ 黄油        [耗材] [正常]    库存：60 公斤
✅ 刀片组      [配件] [库存预警] 库存：8 套
✅ 清洗剂      [耗材] [正常]    库存：40 升
```

#### **农资卡片信息**
```
✅ 名称
✅ 类型标签（颜色正确）
✅ 状态标签（颜色正确）
✅ 编码
✅ 规格
✅ 供应商
✅ 当前库存（带单位）
✅ 选择按钮
```

---

## ✅ 测试用例4：关联计划 + 农资选择（组合功能）

### **操作步骤**

1. 新建任务
2. 选择关联计划："2024年秋季花生种植计划"
3. 观察系统自动填充农资：花生种子
4. 点击该农资的"从农资库选择"
5. 选择实际库存中的种子类农资（如果有）
6. 替换自动填充的农资
7. 保存任务

### **预期结果**
- ✅ 关联计划后预填充农资
- ✅ 可以替换为库存中的农资
- ✅ 保存后使用实际选择的农资

---

## 🎨 界面检查清单

### **农资输入区域**
- [ ] 黄色背景显示正确
- [ ] "从农资库选择"按钮位置合理
- [ ] 输入框宽度适中
- [ ] 数量和单位输入框大小合适
- [ ] 删除按钮显示正常
- [ ] 添加农资按钮样式正确
- [ ] 底部提示文字清晰

### **农资选择器对话框**
- [ ] 对话框标题正确
- [ ] 说明文字清晰
- [ ] 统计卡片排列整齐
- [ ] 统计数字准确
- [ ] 农资列表滚动正常
- [ ] 农资卡片样式美观
- [ ] 点击卡片有hover效果
- [ ] 使用说明区域显示正确

### **库存提示**
- [ ] 选择农资后显示库存
- [ ] 库存数值正确
- [ ] 库存不足时显示红色警告
- [ ] 警告图标显示正确

---

## 🔍 数据验证

### **检查点1：农资选择器数据**

打开农资选择器，验证显示的农资：

```
✓ 机油滤芯 - 配件 - 紫色标签
✓ 空气滤芯 - 配件 - 紫色标签
✓ 液压油 - 耗材 - 橙色标签
✓ 齿轮油 - 耗材 - 橙色标签
✓ 燃油滤芯 - 配件 - 紫色标签
✓ 防冻液 - 耗材 - 橙色标签
✓ 传动皮带 - 配件 - 紫色标签
✓ 黄油（润滑脂）- 耗材 - 橙色标签
✓ 刀片组 - 配件 - 紫色标签（库存预警-橙色）
✓ 清洗剂 - 耗材 - 橙色标签
```

### **检查点2：自动填充准确性**

选择"液压油"后验证：
```
✓ 名称 = "液压油"
✓ 单位 = "升"
✓ 库存 = 200 升
✓ materialId = "material-3"（内部记录）
```

### **检查点3：库存预警测试**

| 农资 | 库存 | 输入数量 | 预期提示 |
|------|------|----------|---------|
| 液压油 | 200升 | 100升 | ✓ 无警告 |
| 液压油 | 200升 | 250升 | ⚠️ 库存不足 |
| 刀片组 | 8套 | 5套 | ✓ 无警告 |
| 刀片组 | 8套 | 10套 | ⚠️ 库存不足 |

---

## ⚠️ 常见问题排查

### **问题1：农资选择器中没有数据**

**现象**：打开农资选择器，显示"暂无可用农资"

**可能原因**：
- 农资管理中没有数据
- 所有农资库存为0
- 所有农资已过期

**解决方法**：
```javascript
// 在浏览器控制台运行
import { initializeMaterialData } from '../../lib/materialStorage';
initializeMaterialData(); // 初始化示例数据
```

或者：
1. 进入"农资管理"
2. 手动添加农资
3. 确保库存 > 0
4. 确保状态不是"已过期"

### **问题2：选择后没有自动填充**

**可能原因**：
- handleMaterialSelect函数未正确触发
- 状态更新失败

**解决方法**：
- 检查浏览器控制台是否有错误
- 确认toast提示是否显示
- 重新打开选择器重试

### **问题3：库存信息不显示**

**可能原因**：
- 手动输入的农资（正常，不显示库存）
- 数据未正确保存

**解决方法**：
- 确认是通过"从农资库选择"添加的
- 检查material对象中是否有currentStock字段

---

## 📊 测试报告模板

```
测试时间: _______________
测试人员: _______________

[ ] 用例1：从农资库选择农资 - 通过/失败
[ ] 用例2：手动输入农资 - 通过/失败
[ ] 用例3：农资选择器内容验证 - 通过/失败
[ ] 用例4：关联计划+农资选择 - 通过/失败

界面检查:
[ ] 农资输入区域显示正常
[ ] 农资选择器对话框显示正常
[ ] 库存提示显示正常

数据验证:
[ ] 农资列表数据正确（10个）
[ ] 自动填充数据准确
[ ] 库存预警机制正常

功能测试:
[ ] 可以选择农资
[ ] 自动填充正确
[ ] 库存显示正确
[ ] 库存预警正常
[ ] 可以手动输入
[ ] 可以添加多个
[ ] 可以保存任务

问题记录:
_______________________________
_______________________________

总体评价: 优秀/良好/需改进
```

---

## 🎉 测试通过标准

- ✅ 所有4个测试用例通过
- ✅ 界面显示符合设计要求
- ✅ 农资选择器数据完整（10个农资）
- ✅ 自动填充功能正常
- ✅ 库存显示准确
- ✅ 库存预警正常工作
- ✅ 可正常保存任务
- ✅ 无控制台错误

---

## 💡 测试技巧

### **快速验证技巧**

1. **批量测试**
   ```
   一次性添加5个农资
   分别从库选择和手动输入
   验证混合使用场景
   ```

2. **边界值测试**
   ```
   数量 = 0
   数量 = 库存值
   数量 = 库存值 + 1
   数量 = 很大的值（9999）
   ```

3. **交互测试**
   ```
   选择 → 修改名称
   选择 → 修改单位
   选择 → 修改数量
   选择 → 删除 → 重新选择
   ```

### **性能测试**
```
✓ 打开农资选择器响应速度
✓ 农资列表滚动流畅度
✓ 点击选择响应速度
✓ 自动填充速度
```

---

## 📞 问题反馈

如测试过程中发现问题，请记录：

1. **问题描述**
2. **复现步骤**
3. **预期结果**
4. **实际结果**
5. **截图**（如有）
6. **浏览器信息**
7. **控制台错误**（如有）

---

## 🔗 相关功能

测试时可以结合以下功能一起测试：

- ✅ 关联农事计划（自动填充农资）
- ✅ 农资管理（查看和管理农资库存）
- ✅ 任务详情（查看保存的农资信息）
- ✅ 任务执行（实际使用农资）

---

**更新时间**: 2024-10-24  
**测试版本**: v1.0
