生产管理系统前端 - 更新瓦力提交的产品原型到参考目录
This commit is contained in:
446
src/DYNAMIC_CLASSIFICATION_GUIDE.md
Normal file
446
src/DYNAMIC_CLASSIFICATION_GUIDE.md
Normal file
@@ -0,0 +1,446 @@
|
||||
# 动态农机分类使用指南
|
||||
|
||||
## 🎯 功能说明
|
||||
|
||||
系统现已支持使用手动添加的农机类型和使用场景数据。您在"分类管理"中添加的自定义类型和场景会自动出现在以下位置:
|
||||
|
||||
### 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)
|
||||
Reference in New Issue
Block a user