4.0 KiB
4.0 KiB
维护记录配件与耗材数量功能更新
更新日期
2025年10月16日
更新内容
1. 数据结构优化
新增 MaterialUsage 接口
export interface MaterialUsage {
materialId: string; // 农资物料ID
quantity: number; // 使用数量
}
更新 MaintenanceRecord 接口
将 partsAndMaterials 字段从 string[] 更新为 MaterialUsage[],支持记录每个配件的使用数量。
export interface MaintenanceRecord {
// ...其他字段
partsAndMaterials?: MaterialUsage[]; // 农资物料使用情况(含数量)
}
2. 组件功能增强
MaintenanceRecords 组件更新
-
配件选择区域:
- 每个配件卡片现在包含复选框和数量输入框
- 选中配件后,自动显示数量输入框(默认值为1)
- 数量输入框支持小数输入(精确到0.01)
- 自动限制最大值为当前库存
- 实时显示每项配件的小计金额
-
智能统计:
- 显示已选择的配件数量
- 自动计算预估配件费用总额
- 费用 = Σ(配件单价 × 使用数量)
-
列表展示优化:
- 在维护项目下方显示使用的配件详情
- 格式:
配件名称 × 数量单位 - 示例:
机油滤芯 × 2个、液压油 × 15升
3. 数据迁移
自动迁移机制
在 lib/machineryStorage.ts 中实现了自动数据迁移功能:
- 检测旧格式数据(string[] 格式)
- 自动转换为新格式(MaterialUsage[] 格式)
- 为旧数据设置默认数量为 1
- 自动保存迁移后的数据
// 旧格式
partsAndMaterials: ['material-1', 'material-2']
// 新格式(自动迁移)
partsAndMaterials: [
{ materialId: 'material-1', quantity: 1 },
{ materialId: 'material-2', quantity: 1 }
]
4. 用户界面改进
配件选择卡片
┌─────────────────────────────────────────────┐
│ ☑ 机油滤芯 [配件] 10W-40 库存: 50个 │
│ 约翰迪尔配件中心 | ¥85/个 │
│ │
│ 使用数量: [ 2 ] 个 小计: ¥170.00 │
└─────────────────────────────────────────────┘
费用统计
已选择 3 项配件与耗材
预估配件费用: ¥325.50
主要优势
- 精确记录:准确记录每种配件和耗材的使用数量
- 成本控制:实时计算配件费用,便于成本核算
- 库存管理:自动限制使用数量不超过库存
- 数据完整:完整的维护记录数据支持后续分析
- 向后兼容:自动迁移旧数据,无需手动处理
使用说明
添加维护记录时:
- 点击"新增维护记录"按钮
- 填写基本信息(维护类型、时间、人员等)
- 在"配件与耗材"区域选择所需配件
- 为每个选中的配件输入使用数量
- 系统自动计算预估费用
- 提交保存
查看维护记录时:
- 在维护项目下方查看使用的配件及数量
- 格式:
配件名称 × 数量单位
技术实现
文件修改清单
/types/machinery.ts- 新增 MaterialUsage 接口,更新 MaintenanceRecord/lib/machineryStorage.ts- 添加数据迁移逻辑/components/machinery/MaintenanceRecords.tsx- 更新UI和交互逻辑
关键功能
- 复选框控制配件选择
- 数量输入框(仅在选中时显示)
- 实时费用计算
- 自动数据迁移
注意事项
- 数量输入支持小数,最小值为 0.01
- 数量不能超过当前库存
- 未选中的配件不会保存到记录中
- 预估费用仅供参考,不影响维护费用字段
- 旧数据会自动迁移,默认数量为 1
后续建议
- 添加库存扣减功能(维护记录提交后自动扣减库存)
- 支持批量导入配件使用清单
- 添加常用配件组合模板
- 统计配件使用频率和成本分析
- 生成配件采购建议