45 lines
1.2 KiB
TypeScript
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 });
|
|
},
|
|
});
|