// 设备品牌管理 - 本地假数据 API(使用 localStorage 持久化)
|
|
const STORAGE_KEY = 'EQUIPMENT_BRANDS';
|
|
function readStore() {
|
try {
|
const raw = localStorage.getItem(STORAGE_KEY);
|
if (raw) {
|
const parsed = JSON.parse(raw);
|
if (Array.isArray(parsed)) return parsed;
|
}
|
} catch (e) {
|
// ignore
|
}
|
// 初始化一些示例数据
|
const initial = [
|
{ id: 1, name: '西门子', country: '德国', description: '工业自动化与电气工程品牌', createdAt: Date.now() - 86400000 * 10 },
|
{ id: 2, name: '施耐德', country: '法国', description: '能源管理与自动化', createdAt: Date.now() - 86400000 * 7 },
|
{ id: 3, name: '三菱电机', country: '日本', description: '电气与自动化设备', createdAt: Date.now() - 86400000 * 3 },
|
];
|
localStorage.setItem(STORAGE_KEY, JSON.stringify(initial));
|
return initial;
|
}
|
|
function writeStore(list) {
|
localStorage.setItem(STORAGE_KEY, JSON.stringify(list));
|
}
|
|
function nextId(list) {
|
const maxId = list.reduce((max, item) => Math.max(max, Number(item.id) || 0), 0);
|
return maxId + 1;
|
}
|
|
export function getBrandPage(params = {}) {
|
const { current = 1, size = 10, name } = params;
|
const list = readStore();
|
let filtered = list;
|
if (name) {
|
const kw = String(name).trim();
|
filtered = filtered.filter((b) =>
|
(b.name && b.name.includes(kw)) || (b.country && b.country.includes(kw))
|
);
|
}
|
const start = (current - 1) * size;
|
const end = start + Number(size);
|
const records = filtered.slice(start, end);
|
return Promise.resolve({
|
code: 200,
|
data: {
|
total: filtered.length,
|
records,
|
},
|
msg: 'ok',
|
});
|
}
|
|
export function getBrandById(id) {
|
const list = readStore();
|
const item = list.find((i) => String(i.id) === String(id));
|
return Promise.resolve({ code: 200, data: item || null, msg: 'ok' });
|
}
|
|
export function addBrand(data) {
|
const list = readStore();
|
const item = { ...data };
|
item.id = nextId(list);
|
item.createdAt = Date.now();
|
list.unshift(item);
|
writeStore(list);
|
return Promise.resolve({ code: 200, data: item, msg: '新增成功' });
|
}
|
|
export function editBrand(data) {
|
const list = readStore();
|
const index = list.findIndex((i) => String(i.id) === String(data.id));
|
if (index !== -1) {
|
list[index] = { ...list[index], ...data };
|
writeStore(list);
|
return Promise.resolve({ code: 200, data: list[index], msg: '修改成功' });
|
}
|
return Promise.resolve({ code: 404, data: null, msg: '未找到该品牌' });
|
}
|
|
export function delBrand(idOrIds) {
|
const list = readStore();
|
const ids = Array.isArray(idOrIds) ? idOrIds.map(String) : [String(idOrIds)];
|
const newList = list.filter((i) => !ids.includes(String(i.id)));
|
writeStore(newList);
|
return Promise.resolve({ code: 200, data: null, msg: '删除成功' });
|
}
|