123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- 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' };
- },
- };
|