生产管理系统前端 - 更新瓦力提交的产品原型到参考目录
This commit is contained in:
197
src/lib/materialStorage.ts
Normal file
197
src/lib/materialStorage.ts
Normal 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);
|
||||
}
|
||||
Reference in New Issue
Block a user