生产管理系统前端 - 更新瓦力提交的产品原型到参考目录
This commit is contained in:
487
src/LOAD_DEVICE_MOUNT_UPDATE.md
Normal file
487
src/LOAD_DEVICE_MOUNT_UPDATE.md
Normal file
@@ -0,0 +1,487 @@
|
||||
# ✅ 负载管理功能更新 - 从设备库选择设备
|
||||
|
||||
## 🎯 更新内容
|
||||
|
||||
将**负载管理**(挂载设备)功能从"选择设备类型"改为"从设备库选择具体设备"。
|
||||
|
||||
## 🔄 变更对比
|
||||
|
||||
### ❌ 旧功能(选择设备类型)
|
||||
|
||||
```
|
||||
挂载设备对话框
|
||||
├── 设备类型 [下拉选择]
|
||||
│ ├── 北斗终端
|
||||
│ ├── 高清摄像头
|
||||
│ └── 油耗传感器
|
||||
├── 设备名称 [输入框]
|
||||
├── 序列号 [输入框]
|
||||
└── 备注 [文本框]
|
||||
```
|
||||
|
||||
**问题**:
|
||||
- ❌ 需要手动输入设备名称和序列号
|
||||
- ❌ 无法追溯设备来源
|
||||
- ❌ 容易输入错误
|
||||
- ❌ 与设备库数据不关联
|
||||
|
||||
### ✅ 新功能(选择设备)
|
||||
|
||||
```
|
||||
挂载设备对话框
|
||||
├── 选择设备 [下拉选择]
|
||||
│ ├── 北斗定位终端-001 (北斗定位终端 - 华为 - BD-200)
|
||||
│ ├── 高清摄像头-A01 (高清摄像头 - 海康威视 - DS-2CD2345)
|
||||
│ └── 油耗传感器-F01 (油耗传感器 - 博世 - FS-100)
|
||||
└── 备注 [文本框]
|
||||
```
|
||||
|
||||
**优点**:
|
||||
- ✅ 从设备库直接选择
|
||||
- ✅ 自动获取设备信息
|
||||
- ✅ 数据完整关联
|
||||
- ✅ 避免重复和错误
|
||||
|
||||
## 📊 数据流程
|
||||
|
||||
### 完整的数据关系链
|
||||
|
||||
```
|
||||
┌─────────────────┐
|
||||
│ 负载类型 │ 定义类型规格
|
||||
│ (LoadType) │ - 名称、品牌、型号
|
||||
└────────┬────────┘ - 参数模板
|
||||
│
|
||||
↓ 关联
|
||||
┌─────────────────┐
|
||||
│ 负载设备库 │ 管理具体设备
|
||||
│(LoadDeviceLib) │ - 设备名称
|
||||
└────────┬────────┘ - 负载类型ID
|
||||
│ - 采购/使用时间
|
||||
│
|
||||
↓ 选择
|
||||
┌─────────────────┐
|
||||
│ 负载管理 │ 挂载到农机
|
||||
│ (LoadDevice) │ - 农机ID
|
||||
└─────────────────┘ - 设备ID
|
||||
- 挂载/卸载时间
|
||||
```
|
||||
|
||||
### 数据关联示例
|
||||
|
||||
**负载类型**:
|
||||
```json
|
||||
{
|
||||
"id": "type-1",
|
||||
"name": "北斗定位终端",
|
||||
"manufacturer": "华为",
|
||||
"model": "BD-200"
|
||||
}
|
||||
```
|
||||
|
||||
**负载设备库**:
|
||||
```json
|
||||
{
|
||||
"id": "device-1",
|
||||
"deviceName": "北斗定位终端-001",
|
||||
"loadTypeId": "type-1", ← 关联类型
|
||||
"purchaseDate": "2024-01-15"
|
||||
}
|
||||
```
|
||||
|
||||
**挂载记录**:
|
||||
```json
|
||||
{
|
||||
"id": "mounted-1",
|
||||
"machineryId": "machinery-1",
|
||||
"deviceId": "device-1", ← 关联设备
|
||||
"mountedAt": "2024-01-20T08:00:00",
|
||||
"status": "mounted"
|
||||
}
|
||||
```
|
||||
|
||||
## 🎨 界面变化
|
||||
|
||||
### 统计卡片
|
||||
|
||||
```
|
||||
┌──────────┬──────────┬──────────┬──────────┐
|
||||
│总挂载数 │已卸载 │设备库总数│可挂载设备│
|
||||
│ 1 │ 0 │ 3 │ 2 │
|
||||
└──────────┴──────────┴──────────┴──────────┘
|
||||
```
|
||||
|
||||
**说明**:
|
||||
- **总挂载数**: 当前已挂载的设备数量
|
||||
- **已卸载**: 历史卸载的设备数量
|
||||
- **设备库总数**: 负载设备库中的设备总数
|
||||
- **可挂载设备**: 设备库中未被挂载的设备数量
|
||||
|
||||
### 设备列表
|
||||
|
||||
```
|
||||
┌──────────────┬────────────┬──────────┬────────┬──────┬──────┬────────┐
|
||||
│设备名称 │设备类型 │挂载时间 │操作员 │备注 │状态 │操作 │
|
||||
├──────────────┼────────────┼──────────┼────────┼──────┼──────┼────────┤
|
||||
│北斗定位终端 │北斗定位终端│2024-01-20│技术员 │用于 │已挂载│👁 ❌ │
|
||||
│-001 │(华为) │08:00 │张三 │实时 │ │ │
|
||||
│采购:2024-01 │BD-200 │ │ │定位 │ │ │
|
||||
│-15 │ │ │ │ │ │ │
|
||||
└──────────────┴────────────┴──────────┴────────┴──────┴──────┴────────┘
|
||||
```
|
||||
|
||||
**新增显示**:
|
||||
- 设备采购日期(小灰字)
|
||||
- 设备类型型号(小灰字)
|
||||
- 查看详情按钮
|
||||
|
||||
### 挂载设备对话框
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────┐
|
||||
│ 挂载设备 [X] │
|
||||
├─────────────────────────────────────────┤
|
||||
│ 从设备库中选择设备挂载到农机上 │
|
||||
├─────────────────────────────────────────┤
|
||||
│ │
|
||||
│ 选择设备 * │
|
||||
│ ┌─────────────────────────────────────┐ │
|
||||
│ │ 从设备库选择设备 [▼] │ │
|
||||
│ └─────────────────────────────────────┘ │
|
||||
│ 只显示设备库中未被当前农机挂载的设备 │
|
||||
│ │
|
||||
│ 备注 │
|
||||
│ ┌─────────────────────────────────────┐ │
|
||||
│ │ 挂载说明、注意事项等 │ │
|
||||
│ │ │ │
|
||||
│ └─────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ [取消] [🔗 挂载] │
|
||||
└─────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 设备选择器
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────┐
|
||||
│ 从设备库选择设备 [▼] │
|
||||
├─────────────────────────────────────────┤
|
||||
│ 北斗定位终端-001 │
|
||||
│ 北斗定位终端 (华为) - BD-200 ← 小灰字│
|
||||
├─────────────────────────────────────────┤
|
||||
│ 高清摄像头-A01 │
|
||||
│ 高清摄像头 (海康威视) - DS-2CD2345 │
|
||||
├─────────────────────────────────────────┤
|
||||
│ 油耗传感器-F01 │
|
||||
│ 油耗传感器 (博世) - FS-100 │
|
||||
└─────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 查看详情对话框
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────┐
|
||||
│ 挂载详情 [X] │
|
||||
├─────────────────────────────────────────┤
|
||||
│ 设备名称 │ 设备类型 │
|
||||
│ 北斗定位终端-001 │ 北斗定位终端 (华为) │
|
||||
├─────────────────────────────────────────┤
|
||||
│ 品牌 │ 型号 │
|
||||
│ 华为 │ BD-200 │
|
||||
├─────────────────────────────────────────┤
|
||||
│ 采购时间 │ 设备使用时间 │
|
||||
│ 2024-01-15 │ 2024-01-20 │
|
||||
├─────────────────────────────────────────┤
|
||||
│ 挂载时间 │ 挂载状态 │
|
||||
│ 2024-01-20 08:00 │ [已挂载] │
|
||||
├─────────────────────────────────────────┤
|
||||
│ 操作员 │ 创建时间 │
|
||||
│ 技术员张三 │ 2024-01-20 08:00 │
|
||||
├─────────────────────────────────────────┤
|
||||
│ 备注 │
|
||||
│ 用于实时定位 │
|
||||
├─────────────────────────────────────────┤
|
||||
│ 设备备注 │
|
||||
│ 用于拖拉机实时定位 │
|
||||
├─────────────────────────────────────────┤
|
||||
│ [关闭] │
|
||||
└─────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## 🔧 核心功能
|
||||
|
||||
### 1️⃣ 智能设备过滤
|
||||
|
||||
**只显示可挂载的设备**:
|
||||
```typescript
|
||||
const getAvailableDevices = (machineryId: string) => {
|
||||
const currentMounted = mountedDevices
|
||||
.filter(m => m.machineryId === machineryId && m.status === 'mounted')
|
||||
.map(m => m.deviceId);
|
||||
|
||||
return loadDevices.filter(d => !currentMounted.includes(d.id));
|
||||
};
|
||||
```
|
||||
|
||||
**规则**:
|
||||
- ✅ 设备库中的所有设备
|
||||
- ❌ 已被当前农机挂载的设备
|
||||
- ✅ 已被其他农机挂载的设备(可选择)
|
||||
- ✅ 已卸载的设备(可重新挂载)
|
||||
|
||||
### 2️⃣ 设备信息自动获取
|
||||
|
||||
挂载时自动获取设备的完整信息:
|
||||
- 设备名称
|
||||
- 设备类型
|
||||
- 品牌型号
|
||||
- 采购日期
|
||||
- 使用日期
|
||||
- 设备备注
|
||||
|
||||
### 3️⃣ 挂载记录管理
|
||||
|
||||
**挂载记录接口**:
|
||||
```typescript
|
||||
interface MountedDeviceRecord {
|
||||
id: string;
|
||||
machineryId: string; // 农机ID
|
||||
deviceId: string; // 设备ID(关联设备库)
|
||||
mountedAt: string; // 挂载时间
|
||||
unmountedAt?: string; // 卸载时间
|
||||
status: 'mounted' | 'unmounted';
|
||||
remarks?: string; // 挂载备注
|
||||
operator: string; // 操作员
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
```
|
||||
|
||||
### 4️⃣ 数据关联查询
|
||||
|
||||
**获取设备信息**:
|
||||
```typescript
|
||||
const getDevice = (deviceId: string) => {
|
||||
return loadDevices.find(d => d.id === deviceId);
|
||||
};
|
||||
```
|
||||
|
||||
**获取设备类型**:
|
||||
```typescript
|
||||
const getDeviceType = (deviceId: string) => {
|
||||
const device = getDevice(deviceId);
|
||||
if (!device) return null;
|
||||
return loadTypes.find(t => t.id === device.loadTypeId);
|
||||
};
|
||||
```
|
||||
|
||||
**获取完整名称**:
|
||||
```typescript
|
||||
const getDeviceTypeName = (deviceId: string) => {
|
||||
const type = getDeviceType(deviceId);
|
||||
if (!type) return '未知类型';
|
||||
return `${type.name}${type.manufacturer ? ` (${type.manufacturer})` : ''}`;
|
||||
};
|
||||
```
|
||||
|
||||
## 📝 使用流程
|
||||
|
||||
### 流程1: 挂载设备
|
||||
|
||||
1. 选择农机,点击"挂载设备"按钮
|
||||
2. 从下拉列表选择设备(只显示可挂载的设备)
|
||||
3. 填写备注(可选)
|
||||
4. 点击"挂载"按钮
|
||||
5. 系统自动保存挂载记录
|
||||
|
||||
### 流程2: 查看详情
|
||||
|
||||
1. 在已挂载列表中找到设备
|
||||
2. 点击"查看"按钮(眼睛图标)
|
||||
3. 查看完整的设备和挂载信息
|
||||
4. 包括设备库信息和挂载记录
|
||||
|
||||
### 流程3: 卸载设备
|
||||
|
||||
1. 在已挂载列表中找到设备
|
||||
2. 点击"卸载"按钮(断链图标)
|
||||
3. 确认卸载操作
|
||||
4. 设备状态变为"已卸载"
|
||||
5. 可在卸载历史中查看
|
||||
|
||||
### 流程4: 重新挂载
|
||||
|
||||
1. 卸载的设备会重新出现在可选列表
|
||||
2. 可以挂载到相同或不同的农机
|
||||
3. 创建新的挂载记录
|
||||
|
||||
## 💾 数据存储
|
||||
|
||||
### LocalStorage Keys
|
||||
|
||||
```javascript
|
||||
// 负载类型
|
||||
smart_agriculture_load_types
|
||||
|
||||
// 负载设备库
|
||||
smart_agriculture_load_devices
|
||||
|
||||
// 挂载记录
|
||||
smart_agriculture_mounted_devices
|
||||
```
|
||||
|
||||
### 示例数据
|
||||
|
||||
**挂载记录**:
|
||||
```json
|
||||
{
|
||||
"id": "mounted-1",
|
||||
"machineryId": "machinery-1",
|
||||
"deviceId": "device-1",
|
||||
"mountedAt": "2024-01-20T08:00:00.000Z",
|
||||
"status": "mounted",
|
||||
"remarks": "用于实时定位",
|
||||
"operator": "技术员张三",
|
||||
"createdAt": "2024-01-20T08:00:00.000Z",
|
||||
"updatedAt": "2024-01-20T08:00:00.000Z"
|
||||
}
|
||||
```
|
||||
|
||||
## 🎯 优势分析
|
||||
|
||||
### 数据完整性
|
||||
|
||||
| 特性 | 旧方式 | 新方式 |
|
||||
|------|--------|--------|
|
||||
| 设备名称 | 手动输入 ❌ | 自动获取 ✅ |
|
||||
| 设备类型 | 选择后丢失 ❌ | 完整关联 ✅ |
|
||||
| 采购信息 | 无 ❌ | 自动显示 ✅ |
|
||||
| 设备备注 | 无 ❌ | 自动显示 ✅ |
|
||||
| 重复挂载 | 可能 ❌ | 自动过滤 ✅ |
|
||||
|
||||
### 用户体验
|
||||
|
||||
| 操作 | 旧方式 | 新方式 |
|
||||
|------|--------|--------|
|
||||
| 挂载设备 | 3个输入框 ❌ | 1个选择器 ✅ |
|
||||
| 查看信息 | 只有名称 ❌ | 完整信息 ✅ |
|
||||
| 追溯来源 | 不可能 ❌ | 完整追溯 ✅ |
|
||||
| 重复检查 | 手动 ❌ | 自动过滤 ✅ |
|
||||
|
||||
### 数据管理
|
||||
|
||||
| 方面 | 旧方式 | 新方式 |
|
||||
|------|--------|--------|
|
||||
| 数据来源 | 手动输入 | 设备库 ✅ |
|
||||
| 数据一致性 | 低 ❌ | 高 ✅ |
|
||||
| 数据追踪 | 困难 ❌ | 容易 ✅ |
|
||||
| 数据复用 | 不支持 ❌ | 支持 ✅ |
|
||||
|
||||
## 🔄 迁移影响
|
||||
|
||||
### 对现有数据的影响
|
||||
|
||||
**旧数据结构**:
|
||||
```typescript
|
||||
interface OldMountedDevice {
|
||||
deviceTypeId: string; // 设备类型ID
|
||||
deviceName: string; // 手动输入
|
||||
serialNumber: string; // 手动输入
|
||||
}
|
||||
```
|
||||
|
||||
**新数据结构**:
|
||||
```typescript
|
||||
interface NewMountedDevice {
|
||||
deviceId: string; // 设备库ID(关联)
|
||||
// 其他信息自动从设备库获取
|
||||
}
|
||||
```
|
||||
|
||||
### 兼容性
|
||||
|
||||
- ✅ 新旧数据互不影响
|
||||
- ✅ 使用不同的LocalStorage key
|
||||
- ✅ 可以并存
|
||||
|
||||
## 📚 相关页面
|
||||
|
||||
### 三个页面的关系
|
||||
|
||||
```
|
||||
1. 负载类型 (LoadType)
|
||||
└── 定义设备类型规格
|
||||
↓
|
||||
2. 负载设备库 (LoadDeviceLibrary)
|
||||
└── 管理具体设备
|
||||
↓
|
||||
3. 负载管理 (LoadDevice)
|
||||
└── 挂载到农机
|
||||
```
|
||||
|
||||
### 操作顺序
|
||||
|
||||
1. **先**: 在"负载类型"中创建类型
|
||||
2. **再**: 在"负载设备库"中添加设备
|
||||
3. **最后**: 在"负载管理"中挂载设备
|
||||
|
||||
## ✨ 功能特点
|
||||
|
||||
### 核心特点
|
||||
|
||||
- ✅ 从设备库选择,避免重复输入
|
||||
- ✅ 自动获取设备完整信息
|
||||
- ✅ 智能过滤可挂载设备
|
||||
- ✅ 完整的数据关联链
|
||||
- ✅ 支持设备重新挂载
|
||||
- ✅ 详细的挂载记录
|
||||
|
||||
### 智能功能
|
||||
|
||||
- 🔍 只显示未挂载的设备
|
||||
- 📊 统计可挂载设备数量
|
||||
- 👁️ 查看完整设备信息
|
||||
- 📝 支持挂载备注
|
||||
- 🔄 支持卸载和重新挂载
|
||||
- 📅 记录挂载/卸载时间
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
### 访问路径
|
||||
|
||||
```
|
||||
智能农机管理系统 → 农机负载管理 → 负载管理
|
||||
```
|
||||
|
||||
### 初始化数据
|
||||
|
||||
确保以下数据已准备:
|
||||
1. 负载类型数据(LoadType)
|
||||
2. 负载设备库数据(LoadDeviceLibrary)
|
||||
3. 农机档案数据(MachineryArchive)
|
||||
|
||||
### 第一次使用
|
||||
|
||||
1. 刷新页面加载数据
|
||||
2. 选择农机
|
||||
3. 点击"挂载设备"
|
||||
4. 从设备库选择设备
|
||||
5. 完成挂载
|
||||
|
||||
## 🎉 更新状态
|
||||
|
||||
- ✅ 数据结构重构完成
|
||||
- ✅ 界面功能完成
|
||||
- ✅ 设备选择器完成
|
||||
- ✅ 智能过滤完成
|
||||
- ✅ 详情查看完成
|
||||
- ✅ 挂载/卸载完成
|
||||
- ✅ 统计功能完成
|
||||
|
||||
**状态**: 🟢 **已完成,可以使用**
|
||||
|
||||
---
|
||||
|
||||
**更新时间**: 2025-10-17
|
||||
**版本**: v2.0
|
||||
**重大变更**: 从选择类型改为选择设备
|
||||
Reference in New Issue
Block a user