import { http, HttpResponse, delay } from 'msw'; import { mockProcessParams, type MockProcessParam } from '../data/aps'; // Mutable in-memory store let params = [...mockProcessParams]; let nextId = Math.max(...params.map((p) => p.id)) + 1; export const apsParamHandlers = [ // Get all parameters http.get('/admin-api/aps/param/list', async () => { await delay(200); return HttpResponse.json({ code: 0, data: params, msg: '', }); }), // Get by param name http.get('/admin-api/aps/param/get', async ({ request }) => { await delay(200); const url = new URL(request.url); const paramName = url.searchParams.get('paramName'); const param = params.find((p) => p.paramName === paramName); if (!param) { return HttpResponse.json({ code: 1, data: null, msg: '参数不存在' }); } return HttpResponse.json({ code: 0, data: param, msg: '' }); }), // Batch save parameters http.post('/admin-api/aps/param/save', async ({ request }) => { await delay(500); const body = (await request.json()) as Array<{ paramName: string; paramValue: string; paramUnit?: string; description?: string; }>; for (const item of body) { const existing = params.find((p) => p.paramName === item.paramName); if (existing) { existing.paramValue = item.paramValue; if (item.paramUnit !== undefined) existing.paramUnit = item.paramUnit; if (item.description !== undefined) existing.description = item.description; existing.updateTime = new Date().toISOString().replace('T', ' ').slice(0, 19); } else { const newParam: MockProcessParam = { id: nextId++, paramName: item.paramName, paramValue: item.paramValue, paramUnit: item.paramUnit || '', description: item.description || '', updateTime: new Date().toISOString().replace('T', ' ').slice(0, 19), }; params.push(newParam); } } return HttpResponse.json({ code: 0, data: true, msg: '' }); }), // Reset to defaults http.post('/admin-api/aps/param/reset', async () => { await delay(300); // Reset to mock defaults params = [...mockProcessParams]; return HttpResponse.json({ code: 0, data: true, msg: '' }); }), ];