Files
agent/mock/demoTask.ts

45 lines
1.2 KiB
TypeScript

import { defineMock } from '@umijs/max';
const tasks: any[] = [];
for (let i = 0; i < 20; i += 1) {
tasks.push({
id: `${i}`,
title: `Task Name ${i}`,
status: i % 3 === 0 ? 'todo' : i % 3 === 1 ? 'doing' : 'done',
description: 'This is a description for the task.',
priority: Math.floor(Math.random() * 3), // 0, 1, 2
createdAt: new Date().toISOString(),
});
}
export default defineMock({
'GET /api/demo/tasks': (req, res) => {
const { keyword, current = 1, pageSize = 20 } = req.query as any;
let dataSource = [...tasks].slice().reverse();
if (keyword) {
dataSource = dataSource.filter((item) => item.title.includes(keyword));
}
const start = (current - 1) * pageSize;
const end = start + pageSize;
setTimeout(() => {
res.json({
success: true,
data: dataSource.slice(start, end),
total: dataSource.length,
});
}, 500);
},
'POST /api/demo/tasks': (req, res) => {
res.json({ success: true, data: { ...req.body, id: `${tasks.length}` } });
},
'PUT /api/demo/tasks': (req, res) => {
res.json({ success: true });
},
'DELETE /api/demo/tasks': (req, res) => {
res.json({ success: true });
},
});