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

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

197
src/lib/materialStorage.ts Normal file
View File

@@ -0,0 +1,197 @@
// 农资物料数据存储管理
import { Material } from '../types/machinery';
const MATERIAL_KEY = 'smart_agriculture_materials';
export const materialStorage = {
// 获取所有农资物料
getAllMaterials(): Material[] {
const data = localStorage.getItem(MATERIAL_KEY);
return data ? JSON.parse(data) : [];
},
// 获取单个农资物料
getMaterial(id: string): Material | undefined {
const all = this.getAllMaterials();
return all.find(m => m.id === id);
},
// 保存农资物料
saveMaterial(material: Material): void {
const all = this.getAllMaterials();
const index = all.findIndex(m => m.id === material.id);
if (index >= 0) {
all[index] = material;
} else {
all.push(material);
}
localStorage.setItem(MATERIAL_KEY, JSON.stringify(all));
},
// 删除农资物料
deleteMaterial(id: string): void {
const all = this.getAllMaterials();
const filtered = all.filter(m => m.id !== id);
localStorage.setItem(MATERIAL_KEY, JSON.stringify(filtered));
},
// 批量保存农资物料
saveMaterials(materials: Material[]): void {
localStorage.setItem(MATERIAL_KEY, JSON.stringify(materials));
},
// 根据类型获取农资
getMaterialsByType(type: string): Material[] {
const all = this.getAllMaterials();
return all.filter(m => m.type === type);
},
// 获取有库存的农资(用于维护记录选择)
getAvailableMaterials(): Material[] {
const all = this.getAllMaterials();
return all.filter(m => m.currentStock > 0 && m.status !== '已过期');
}
};
// 初始化示例农资数据
export function initializeMaterialData() {
const existing = materialStorage.getAllMaterials();
if (existing.length > 0) {
return; // 已有数据,不重复初始化
}
const mockMaterials: Material[] = [
{
id: 'material-1',
code: 'PJ-001',
name: '机油滤芯',
type: '配件',
spec: '10W-40',
model: 'JD-001',
supplier: '约翰迪尔配件中心',
currentStock: 50,
unit: '个',
purchasePrice: 85,
status: '正常',
},
{
id: 'material-2',
code: 'PJ-002',
name: '空气滤芯',
type: '配件',
spec: '标准型',
model: 'AF-2024',
supplier: '农机配件商行',
currentStock: 30,
unit: '个',
purchasePrice: 65,
status: '正常',
},
{
id: 'material-3',
code: 'HC-001',
name: '液压油',
type: '耗材',
spec: '46号',
model: 'HM46',
supplier: '中石化润滑油',
currentStock: 200,
unit: '升',
purchasePrice: 28,
status: '正常',
},
{
id: 'material-4',
code: 'HC-002',
name: '齿轮油',
type: '耗材',
spec: '85W-90',
model: 'GL-5',
supplier: '壳牌石油',
currentStock: 150,
unit: '升',
purchasePrice: 45,
status: '正常',
},
{
id: 'material-5',
code: 'PJ-003',
name: '燃油滤芯',
type: '配件',
spec: '柴油专用',
model: 'FS-1000',
supplier: '康明斯配件',
currentStock: 25,
unit: '个',
purchasePrice: 95,
status: '正常',
},
{
id: 'material-6',
code: 'HC-003',
name: '防冻液',
type: '耗材',
spec: '-35℃',
model: 'AF-35',
supplier: '汽车用品店',
currentStock: 80,
unit: '升',
purchasePrice: 18,
status: '正常',
},
{
id: 'material-7',
code: 'PJ-004',
name: '传动皮带',
type: '配件',
spec: 'A型',
model: 'A-1200',
supplier: '三星皮带',
currentStock: 15,
unit: '条',
purchasePrice: 120,
status: '正常',
},
{
id: 'material-8',
code: 'HC-004',
name: '黄油(润滑脂)',
type: '耗材',
spec: '锂基脂',
model: 'MP-3',
supplier: '长城润滑油',
currentStock: 60,
unit: '公斤',
purchasePrice: 32,
status: '正常',
},
{
id: 'material-9',
code: 'PJ-005',
name: '刀片组',
type: '配件',
spec: '收割机专用',
model: 'KB-688',
supplier: '久保田配件',
currentStock: 8,
unit: '套',
purchasePrice: 580,
status: '库存预警',
},
{
id: 'material-10',
code: 'HC-005',
name: '清洗剂',
type: '耗材',
spec: '工业级',
model: 'CL-100',
supplier: '化工材料店',
currentStock: 40,
unit: '升',
purchasePrice: 22,
status: '正常',
},
];
materialStorage.saveMaterials(mockMaterials);
}