# 动态农机分类使用指南

## 🎯 功能说明

系统现已支持使用手动添加的农机类型和使用场景数据。您在"分类管理"中添加的自定义类型和场景会自动出现在以下位置：

### 1. 农机档案表单

**位置**: 新增/编辑农机时
**功能**: 
- ✅ "农机类型"下拉框会显示所有自定义类型
- ✅ "使用场景"下拉框会显示所有自定义场景
- ✅ 实时同步，添加后立即可用

### 2. 农机列表筛选

**位置**: 农机档案列表页面
**功能**:
- ✅ 筛选栏的"农机类型"选择器包含所有自定义类型
- ✅ 筛选栏的"使用场景"选择器包含所有自定义场景
- ✅ 支持按任意分类/标签组合进行过滤

---

## 🚀 完整使用流程

### 步骤1: 添加自定义农机类型

```
1. 进入"农机档案"页面
2. 点击"分类管理"按钮
3. 切换到"农机类型"标签
4. 点击"新增类型"
5. 填写类型信息：
   ├─ 类型编码: YJSJ
   ├─ 类型名称: 育秧设备
   └─ 描述: 用于水稻育秧作业
6. 点击"保存"
✅ 新类型已添加！
```

### 步骤2: 在表单中使用新类型

```
1. 点击"新增农机"按钮
2. 在"农机类型"下拉框中
   ✅ 看到"育秧设备"选项
3. 选择"育秧设备"
4. 继续填写其他信息
5. 保存农机档案
✅ 农机已归类到"育秧设备"！
```

### 步骤3: 按新类型筛选

```
1. 在农机列表页面
2. 点击"农机类型"筛选器
   ✅ 看到"育秧设备"选项
3. 选择"育秧设备"
✅ 列表只显示该类型的设备！
```

---

## 📊 数据同步机制

### 自动同步时机

**农机表单**:
```typescript
// 每次打开表单时，自动从 localStorage 加载最新数据
useEffect(() => {
  loadMachineryTypes();    // 加载农机类型
  loadUsageScenarios();    // 加载使用场景
}, [open]);
```

**农机列表**:
```typescript
// 当设备列表更新时，重新加载分类数据
useEffect(() => {
  loadMachineryTypes();    // 加载农机类型
  loadUsageScenarios();    // 加载使用场景
}, [machinery]);
```

### 数据存储

```
localStorage 存储键:
├─ machinery_types     → 农机类型数据
└─ usage_scenarios     → 使用场景数据
```

---

## 🔄 数据合并策略

系统会将预置数据和自定义数据合并：

### 农机类型合并

```typescript
// 预置类型
const defaultTypes = ['耕地机械', '播种机械', '收获机械', 
                      '植保机械', '灌溉机械', '运输机械', '其他'];

// 自定义类型（从分类管理添加）
const customTypes = ['育秧设备', '烘干设备', '加工机械'];

// 最终显示（去重）
const allTypes = [...customTypes, '其他'];
// 结果: ['育秧设备', '烘干设备', '加工机械', ... , '其他']
```

### 使用场景合并

```typescript
// 预置场景
const defaultScenarios = ['旱地', '水田', '通用', '其他'];

// 自定义场景（从分类管理添加）
const customScenarios = ['耕地作业', '播种作业', '植保作业', 
                         '收获作业', '灌溉作业', '运输作业'];

// 最终显示（去重）
const allScenarios = [...customScenarios, '其他'];
// 结果: ['耕地作业', '播种作业', ... , '其他']
```

---

## 🎨 界面效果

### 农机表单中的下拉框

**农机类型选择器**:
```
┌─────────────────────────┐
│ 农机类型 *              │
├─────────────────────────┤
│ [选择类型 ▼]            │
│                         │
│ • 拖拉机                │
│ • 收割机                │
│ • 播种机                │
│ • 植保机                │
│ • 育秧设备 ← 自定义     │
│ • 烘干设备 ← 自定义     │
│ • 其他                  │
└─────────────────────────┘
提示: 可在"分类管理"中添加自定义类型
```

**使用场景选择器**:
```
┌─────────────────────────┐
│ 使用场景 *              │
├─────────────────────────┤
│ [选择场景 ▼]            │
│                         │
│ • 耕地作业 ← 自定义     │
│ • 播种作业 ← 自定义     │
│ • 植保作业 ← 自定义     │
│ • 收获作业 ← 自定义     │
│ • 灌溉作业 ← 自定义     │
│ • 运输作业 ← 自定义     │
│ • 其他                  │
└─────────────────────────┘
提示: 可在"分类管理"中添加自定义场景
```

### 列表页面的筛选器

```
┌──────────────────────────────────────────────────────────┐
│ [搜索框...] [农机类型 ▼] [使用场景 ▼] [设备状态 ▼] [清空] │
│                                                          │
│ ┌──────────────┐  ┌──────────────┐                      │
│ │ 全部类型      │  │ 全部场景      │                      │
│ │ 拖拉机        │  │ 耕地作业 ✓   │  ← 支持自定义分类    │
│ │ 收割机        │  │ 播种作业      │                      │
│ │ 播种机        │  │ 植保作业      │                      │
│ │ 育秧设备 ✓   │  │ 收获作业      │                      │
│ │ 烘干设备      │  │ 灌溉作业      │                      │
│ └──────────────┘  └──────────────┘                      │
└──────────────────────────────────────────────────────────┘
```

---

## 💡 使用技巧

### 技巧1: 批量设置类型

如果需要给多台设备设置相同的类型：

```
1. 先在分类管理中添加类型
2. 批量编辑设备时统一选择
3. 避免重复创建相似类型
```

### 技巧2: 场景关联

建议将类型和场景关联使用：

```
类型: 拖拉机
场景: 耕地作业、运输作业

类型: 播种机
场景: 播种作业

类型: 收割机
场景: 收获作业
```

### 技巧3: 统一命名规范

保持命名一致性：

```
✅ 推荐:
   - 耕地作业、播种作业、收获作业
   - 拖拉机、播种机、收割机

❌ 避免:
   - 耕地、耕地作业、田间耕地
   - 拖拉机、拖拉机设备、拖拉机械
```

---

## 🔍 高级筛选

### 组合筛选示例

**示例1: 筛选旱地使用的拖拉机**
```
农机类型: 拖拉机
使用场景: 旱地
设备状态: 正常
```

**示例2: 筛选需要维护的播种设备**
```
农机类型: 播种机
设备状态: 待维护
```

**示例3: 按标签和场景筛选**
```
使用场景: 耕地作业
标签: 重点设备
```

### 筛选逻辑

```typescript
// 所有筛选条件为 AND 关系
if (类型匹配 && 场景匹配 && 状态匹配 && 标签匹配 && 关键词匹配) {
  显示该设备
}
```

---

## 📈 统计分析

### 按自定义分类统计

在"分类管理" → "统计分析"页面可以看到：

```
农机类型分布:
├─ 拖拉机      ████████████ 12台 (32%)
├─ 播种机      ████████ 8台     (21%)
├─ 收割机      ██████ 6台       (16%)
├─ 育秧设备    ████ 4台         (11%)  ← 自定义
└─ 烘干设备    ██ 2台           (5%)   ← 自定义

使用场景分布:
├─ 耕地作业    ██████████████ 15台 (39%)  ← 自定义
├─ 播种作业    ██████████ 10台     (26%)  ← 自定义
├─ 收获作业    ████████ 8台       (21%)   ← 自定义
└─ 运输作业    ████ 5台           (13%)   ← 自定义
```

---

## ⚠️ 注意事项

### 1. 类型删除影响

```
⚠️ 删除类型前检查:
- 确认没有设备使用该类型
- 系统会显示关联设备数量
- 建议先修改设备类型再删除
```

### 2. 命名冲突

```
⚠️ 避免重复命名:
- 系统不会阻止重复名称
- 但会导致混淆
- 建议使用唯一的名称
```

### 3. 数据一致性

```
⚠️ 保持数据准确:
- 定期检查分类是否合理
- 清理不再使用的分类
- 统一团队的分类标准
```

---

## 🔧 故障排查

### 问题1: 新类型不显示

**症状**: 添加了类型但表单中看不到

**解决方案**:
```
1. 关闭并重新打开表单
2. 刷新浏览器页面
3. 检查浏览器控制台是否有错误
4. 确认 localStorage 中有数据
```

### 问题2: 筛选不生效

**症状**: 选择类型筛选但列表不更新

**解决方案**:
```
1. 点击"清空筛选"重置
2. 刷新页面
3. 检查设备数据中的类型字段是否匹配
```

### 问题3: 数据丢失

**症状**: 添加的类型突然消失

**解决方案**:
```
1. 检查是否清除了浏览器数据
2. localStorage 数据在清除缓存时会丢失
3. 建议定期导出数据备份（未来功能）
```

---

## 📱 移动端支持

系统在移动设备上同样支持动态分类：

```
✅ 触摸选择类型和场景
✅ 下拉菜单自适应屏幕
✅ 筛选器响应式布局
```

---

## 🔮 未来增强

计划中的功能：

### 1. 批量操作
```
- [ ] 批量修改设备类型
- [ ] 批量修改使用场景
- [ ] 导入时自动匹配分类
```

### 2. 智能推荐
```
- [ ] 根据设备名称智能推荐类型
- [ ] 根据型号推荐使用场景
- [ ] 学习用户的分类习惯
```

### 3. 数据同步
```
- [ ] 云端存储分类数据
- [ ] 团队共享分类体系
- [ ] 跨设备同步
```

---

## 📞 技术支持

### 常见问题

**Q: 可以修改预置的类型吗？**
A: 预置类型不可修改，但你可以添加自定义类型。

**Q: 删除类型会删除设备吗？**
A: 不会，但会显示警告提示该类型下的设备数量。

**Q: 数据存储在哪里？**
A: 存储在浏览器的 localStorage 中。

**Q: 会与其他用户共享吗？**
A: 目前是本地存储，不同浏览器/用户独立。

---

## 🎉 总结

动态分类功能让您可以：

✅ 自由定义农机类型和使用场景
✅ 表单中实时使用自定义分类
✅ 灵活筛选和统计分析
✅ 适应不同的业务需求

现在开始使用吧！

```
农机档案 → 分类管理 → 添加分类 → 在表单中使用 🚀
```

---

**文档版本**: v1.0.0  
**更新时间**: 2025-10-16  
**适用版本**: 智慧农业生产管理系统 v2.0+

---

## 📚 相关文档

- [农机分类管理功能说明](/components/machinery/CLASSIFICATION_MANAGEMENT_README.md)
- [分类管理集成总结](/CLASSIFICATION_INTEGRATION_SUMMARY.md)
- [快速上手指南](/CLASSIFICATION_QUICK_START.md)
