项目初始化
This commit is contained in:
103
_mock/_img.ts
Normal file
103
_mock/_img.ts
Normal file
@ -0,0 +1,103 @@
|
||||
import { MockRequest, MockStatusError } from '@delon/mock';
|
||||
import { deepCopy } from '@delon/util';
|
||||
import { genMp } from './utils';
|
||||
|
||||
interface ImgCat {
|
||||
id: number;
|
||||
parent_id: number;
|
||||
title: string;
|
||||
}
|
||||
interface Img {
|
||||
cat_id: number;
|
||||
id: number;
|
||||
title: string;
|
||||
mp: string;
|
||||
size: number;
|
||||
width: number;
|
||||
height: number;
|
||||
created: Date;
|
||||
}
|
||||
|
||||
const CAT: ImgCat[] = [
|
||||
{ id: 1, parent_id: 0, title: '店铺' },
|
||||
{ id: 2, parent_id: 1, title: '产品图' },
|
||||
{ id: 3, parent_id: 1, title: '品牌图' },
|
||||
{ id: 4, parent_id: 0, title: '营销' },
|
||||
{ id: 5, parent_id: 4, title: '双11' },
|
||||
{ id: 6, parent_id: 4, title: '日常' },
|
||||
{ id: 7, parent_id: 0, title: '其他' },
|
||||
];
|
||||
const DATA: Img[] = [];
|
||||
|
||||
for (let i = 1; i <= 50; i += 1) {
|
||||
DATA.push(gen(i));
|
||||
}
|
||||
|
||||
function gen(i: number): any {
|
||||
return {
|
||||
cat_id: [1, 2, 3, 4, 5, 6, 7][Math.floor(Math.random() * 10) % 7],
|
||||
id: i * 10000,
|
||||
title: `title ${i}`,
|
||||
mp: genMp(),
|
||||
size: Math.floor(Math.random() * 1000) % 1000,
|
||||
width: Math.floor(Math.random() * 1000) % 1000,
|
||||
height: Math.floor(Math.random() * 1000) % 1000,
|
||||
created: new Date(),
|
||||
};
|
||||
}
|
||||
|
||||
function get(params: any): any {
|
||||
let ret = deepCopy(DATA);
|
||||
const cat_id = +(params.cat_id || '0');
|
||||
if (cat_id > 0) {
|
||||
ret = ret.filter((data: any) => data.cat_id === cat_id);
|
||||
}
|
||||
if (params.q) {
|
||||
ret = ret.filter((data: any) => data.title.indexOf(params.q) > -1);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
function getIdx(id: number): number {
|
||||
id = +id;
|
||||
const idx = DATA.findIndex((w) => w.id === id);
|
||||
if (idx === -1) {
|
||||
throw new MockStatusError(404);
|
||||
}
|
||||
return idx;
|
||||
}
|
||||
|
||||
export const IMGS = {
|
||||
'/img/cat': () => deepCopy(CAT),
|
||||
'/img': (req: MockRequest) => {
|
||||
const pi = +(req.queryString.pi || 1);
|
||||
const ps = +(req.queryString.ps || 10);
|
||||
const data = get(req.queryString);
|
||||
return {
|
||||
total: data.length,
|
||||
list: data.slice((pi - 1) * ps, pi * ps),
|
||||
};
|
||||
},
|
||||
'POST /img': (req: MockRequest) => {
|
||||
const id = req.body.id || 0;
|
||||
if (id > 0) {
|
||||
const idx = getIdx(id);
|
||||
DATA[idx] = { ...DATA[idx], ...req.body };
|
||||
return { msg: 'ok', item: DATA[idx] };
|
||||
}
|
||||
|
||||
const item = Object.assign(gen(DATA.sort((a, b) => b.id - a.id)[0].id + 1), req.body);
|
||||
DATA.push(item);
|
||||
return { msg: 'ok', item };
|
||||
},
|
||||
'/img/:id': (req: MockRequest) => {
|
||||
const idx = getIdx(req.params.id || 0);
|
||||
const item = { ...DATA[idx], ...req.body };
|
||||
return item;
|
||||
},
|
||||
'DELETE /img/:id': (req: MockRequest) => {
|
||||
const idx = getIdx(req.params.id || 0);
|
||||
DATA.splice(idx, 1);
|
||||
return { msg: 'ok' };
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user