生产管理系统前端 - 更新瓦力提交的产品原型到参考目录

This commit is contained in:
2025-10-23 10:57:14 +08:00
parent 83523dad64
commit 28229ce795
354 changed files with 147599 additions and 7892 deletions

View File

@@ -0,0 +1,507 @@
# 农机变更历史示例数据 - 快速指南
## 📋 概述
为农机全生命周期档案提供了**25条真实场景的变更历史记录**涵盖5台农机设备展示各种信息修改场景帮助用户了解变更追踪功能。
## 🎯 核心特性
### 简化版变更历史列表
- ✅ 去掉统计卡片
- ✅ 去掉搜索和过滤功能
- ✅ 去掉时间轴视图
- ✅ 去掉按日期分组
- ✅ 只保留简洁的变更记录列表
### 完整的变更追踪
- ✅ 自动记录修改前后的值
- ✅ 记录操作人和操作时间
- ✅ 支持多种数据类型
- ✅ 按时间倒序显示
## 📊 示例数据概览
```
总变更记录: 25条
涉及设备: 5台
变更类型: 9种字段
操作人员: 12位
时间跨度: 50天
```
### 按设备分布
| 设备名称 | 变更次数 | 主要变更 |
|---------|---------|---------|
| 约翰迪尔拖拉机 | 7次 | 状态、位置、价格、保险 |
| 久保田收割机 | 6次 | 名称、位置、状态、标签 |
| 丰疆播种机 | 6次 | 操作人、状态、位置、保险 |
| 大疆植保无人机 | 3次 | 备注、位置、标签 |
| 雷沃拖拉机 | 3次 | 供应商、部门、备注 |
### 变更字段统计
```
设备状态: 6次
当前位置: 6次
备注信息: 4次
标签管理: 3次
操作人员: 2次
保险信息: 2次
价格调整: 1次
供应商: 1次
部门调整: 1次
```
## 🚀 快速开始
### 方法1自动初始化推荐
系统首次运行时会自动创建示例数据:
```typescript
// 在 mockData.ts 中自动调用
initializeChangeHistoryMockData();
```
### 方法2查看示例组件
```typescript
import { ChangeHistoryExamples } from './components/machinery/ChangeHistoryExamples';
function App() {
return <ChangeHistoryExamples />;
}
```
### 方法3在农机详情中查看
```typescript
import { ChangeHistoryList } from './components/machinery/ChangeHistoryList';
const history = machineryStorage.getChangeHistory(machineryId);
<ChangeHistoryList history={history} />
```
## 📝 示例数据详情
### 示例1设备状态变更
```yaml
设备: 约翰迪尔6B-1404拖拉机
字段: 设备状态
修改前: 正常
修改后: 待维护
操作人: 张三
时间: 3天前
说明: 设备需要进行定期维护
```
### 示例2位置信息更新
```yaml
设备: 约翰迪尔6B-1404拖拉机
字段: 当前位置
修改前: 1号地块
修改后: 3号地块
操作人: 李四
时间: 5天前
说明: 设备转场到新的作业地块
```
### 示例3操作人员调整
```yaml
设备: 约翰迪尔6B-1404拖拉机
字段: 操作人员
修改前: 张三
修改后: 王五
操作人: 系统管理员
时间: 7天前
说明: 操作人员轮换安排
```
### 示例4保险信息更新
```yaml
设备: 约翰迪尔6B-1404拖拉机
字段: 保险结束日期
修改前: 2025-03-31
修改后: 2026-03-31
操作人: 财务部-刘会计
时间: 10天前
说明: 保险续保,延长一年
```
### 示例5价格调整
```yaml
设备: 约翰迪尔6B-1404拖拉机
字段: 购机价格
修改前: ¥350,000
修改后: ¥345,000
操作人: 财务部-刘会计
时间: 15天前
说明: 发票金额核对调整
```
### 示例6设备名称规范化
```yaml
设备: 久保田收割机
字段: 设备名称
修改前: 久保田收割机
修改后: 久保田PRO988Q收割机
操作人: 资产管理员
时间: 30天前
说明: 补充完整的型号信息
```
### 示例7标签管理
```yaml
设备: 久保田PRO988Q收割机
字段: 标签
修改前: 高效节能, 进口设备
修改后: 重点设备, 高效节能, 进口设备
操作人: 系统管理员
时间: 12天前
说明: 添加"重点设备"标签
```
### 示例8部门调整
```yaml
设备: 雷沃欧豹1604拖拉机
字段: 所属部门
修改前: 第三生产队
修改后: 第一生产队
操作人: 人事部-郑主管
时间: 45天前
说明: 组织架构调整
```
## 🎨 界面展示
### 变更记录卡片布局
```
┌─────────────────────────────────────────────┐
│ 设备状态 已修改 3天前 │
├─────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────┐ │
│ │ 修改前: 正常 │ │
│ │ ↓ │ │
│ │ 修改后: 待维护 │ │
│ └─────────────────────────────────────────┘ │
├─────────────────────────────────────────────┤
│ 👤 操作人: 张三 🕐 2025-10-13 14:30:25 │
└─────────────────────────────────────────────┘
```
### 简洁列表视图
```
变更历史 (共 7 条记录)
🔹 设备状态 已修改 1天前
修改前: 待维护
修改后: 正常
操作人: 维修班-李师傅
🔹 设备状态 已修改 3天前
修改前: 正常
修改后: 待维护
操作人: 张三
🔹 当前位置 已修改 5天前
修改前: 1号地块
修改后: 3号地块
操作人: 李四
```
## 💾 数据结构
### 完整变更记录
```typescript
{
id: "change-1697461234567-001",
machineryId: "machinery-1",
fieldName: "status",
fieldLabel: "设备状态",
oldValue: "正常",
newValue: "待维护",
operator: "张三",
operatedAt: "2025-10-13T14:30:25.000Z"
}
```
### 支持的字段类型
| 字段类型 | 示例 | 显示格式 |
|---------|------|---------|
| 文本 | 设备名称 | 直接显示 |
| 数字 | 购机价格 | ¥350,000 |
| 日期 | 保险结束日期 | 2025/03/31 |
| 数组 | 标签 | tag1, tag2 |
| 空值 | null/undefined | (空) |
## 📈 变更场景覆盖
### 1. 设备状态管理
```
正常 ↔ 待维护
- 设备需要保养时标记为待维护
- 维修完成后恢复为正常
- 追踪设备可用性变化
```
### 2. 位置追踪
```
机库 → 作业地块 → 机库
- 记录设备转场轨迹
- 追踪设备当前位置
- 优化调度决策
```
### 3. 人员管理
```
操作人员调整
- 记录责任人变更
- 追踪使用历史
- 绩效分析依据
```
### 4. 财务信息
```
价格调整、保险更新
- 资产价值变化
- 保险到期提醒
- 成本核算依据
```
### 5. 设备信息
```
名称规范、标签管理、备注更新
- 信息完善过程
- 分类管理优化
- 知识积累
```
## 🔧 API使用
### 获取变更历史
```typescript
import { machineryStorage } from './lib/machineryStorage';
// 获取指定农机的变更历史
const history = machineryStorage.getChangeHistory('machinery-1');
// 按时间排序
const sorted = history.sort((a, b) =>
new Date(b.operatedAt).getTime() - new Date(a.operatedAt).getTime()
);
```
### 获取统计信息
```typescript
import { getChangeHistoryStatistics } from './lib/changeHistoryMockData';
const stats = getChangeHistoryStatistics();
console.log(stats);
// {
// totalChanges: 25,
// totalMachinery: 5,
// changesByMachinery: { ... },
// changesByField: { ... },
// changesByOperator: { ... },
// avgChangesPerMachinery: 5.0
// }
```
### 清除示例数据
```typescript
import { clearChangeHistory } from './lib/changeHistoryMockData';
// 仅用于测试
clearChangeHistory();
```
## 📦 文件结构
```
lib/
├── changeHistoryMockData.ts # 示例数据生成
└── mockData.ts # 集成初始化
components/machinery/
├── ChangeHistoryList.tsx # 简化列表组件
└── ChangeHistoryExamples.tsx # 示例展示组件
文档/
└── CHANGE_HISTORY_EXAMPLES.md # 本文件
```
## 💡 使用场景
### 1. 查看设备变更轨迹
```
目标: 了解设备信息的修改历史
步骤:
1. 打开农机详情页
2. 切换到"变更历史"标签
3. 查看所有变更记录
4. 了解谁在什么时候修改了什么
```
### 2. 追溯问题根源
```
目标: 查找问题发生的时间点
步骤:
1. 发现设备信息异常
2. 查看变更历史
3. 找到最近的相关修改
4. 联系操作人确认
```
### 3. 审计合规
```
目标: 满足审计要求
步骤:
1. 导出变更历史记录
2. 提供完整的修改轨迹
3. 证明数据可追溯性
4. 符合管理规范
```
## ✅ 最佳实践
### 1. 及时查看
```
✅ 定期检查重要设备的变更记录
✅ 关注异常的频繁修改
✅ 验证关键信息的准确性
```
### 2. 权限管理
```
✅ 限制敏感字段的修改权限
✅ 要求操作人使用真实身份
✅ 定期审查变更记录
```
### 3. 数据分析
```
✅ 统计高频变更字段
✅ 分析变更模式
✅ 优化数据录入流程
```
## 🔍 与原组件的区别
### ChangeHistory.tsx (完整版)
```
✅ 统计卡片 (4个)
✅ 搜索功能
✅ 操作人筛选
✅ 字段筛选
✅ 时间轴视图
✅ 按日期分组视图
✅ 变更统计图表
```
### ChangeHistoryList.tsx (简化版)
```
✅ 只显示变更记录列表
✅ 按时间倒序排列
✅ 简洁的卡片布局
✅ 相对时间显示
✅ 完整时间tooltip
❌ 无统计卡片
❌ 无搜索过滤
❌ 无视图切换
```
## 📊 数据统计
### 按设备统计
```
约翰迪尔拖拉机: 7次变更
久保田收割机: 6次变更
丰疆播种机: 6次变更
大疆植保无人机: 3次变更
雷沃拖拉机: 3次变更
```
### 按字段统计
```
设备状态: 6次 (24%)
当前位置: 6次 (24%)
备注信息: 4次 (16%)
标签管理: 3次 (12%)
操作人员: 2次 (8%)
保险信息: 2次 (8%)
其他: 2次 (8%)
```
### 按操作人统计
```
系统管理员: 3次
张三: 2次
李四: 2次
财务部-刘会计: 2次
维修班相关: 3次
其他人员: 13次
```
## 🎓 学习要点
### 对用户
- 📚 了解变更追踪的重要性
- 💡 学习如何查看变更历史
- 🔧 掌握问题追溯方法
- 📊 理解数据审计流程
### 对开发者
- 🏗️ 学习变更追踪实现
- 🎨 掌握简化组件设计
- 📈 了解数据统计方法
- 🔄 理解自动记录机制
## ✨ 总结
变更历史示例数据功能提供了:
1. **25条真实变更记录**
- 5台农机设备
- 9种字段类型
- 12位操作人员
- 50天时间跨度
2. **简洁的列表展示**
- 去除复杂的过滤功能
- 专注于变更内容展示
- 清晰的视觉层次
- 友好的用户体验
3. **完整的示例场景**
- 设备状态管理
- 位置信息追踪
- 人员调整记录
- 财务信息更新
该功能帮助用户快速了解变更历史的价值和使用方法,建立数据可追溯性意识,提升系统管理规范性。
---
**创建时间**: 2025年10月16日
**版本**: 1.0.0
**状态**: ✅ 已完成