84 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { HttpRequest } from '@angular/common/http';
 | |
| import { MockRequest } from '@delon/mock';
 | |
| 
 | |
| const list: any[] = [];
 | |
| 
 | |
| for (let i = 0; i < 46; i += 1) {
 | |
|   list.push({
 | |
|     key: i,
 | |
|     disabled: i % 6 === 0,
 | |
|     href: 'https://ant.design',
 | |
|     avatar: [
 | |
|       'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
 | |
|       'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png'
 | |
|     ][i % 2],
 | |
|     no: `TradeCode ${i}`,
 | |
|     title: `一个任务名称 ${i}`,
 | |
|     owner: '曲丽丽',
 | |
|     description: '这是一段描述',
 | |
|     callNo: Math.floor(Math.random() * 1000),
 | |
|     status: Math.floor(Math.random() * 10) % 4,
 | |
|     updatedAt: new Date(`2017-07-${i < 18 ? '0' + (Math.floor(i / 2) + 1) : Math.floor(i / 2) + 1}`),
 | |
|     createdAt: new Date(`2017-07-${i < 18 ? '0' + (Math.floor(i / 2) + 1) : Math.floor(i / 2) + 1}`),
 | |
|     progress: Math.ceil(Math.random() * 100)
 | |
|   });
 | |
| }
 | |
| 
 | |
| function getRule(params: any): any {
 | |
|   let ret = [...list];
 | |
|   if (params.sorter) {
 | |
|     const s = params.sorter.split('_');
 | |
|     ret = ret.sort((prev, next) => {
 | |
|       if (s[1] === 'descend') {
 | |
|         return next[s[0]] - prev[s[0]];
 | |
|       }
 | |
|       return prev[s[0]] - next[s[0]];
 | |
|     });
 | |
|   }
 | |
|   if (params.statusList && params.statusList.length > 0) {
 | |
|     ret = ret.filter(data => params.statusList.indexOf(data.status) > -1);
 | |
|   }
 | |
|   if (params.no) {
 | |
|     ret = ret.filter(data => data.no.indexOf(params.no) > -1);
 | |
|   }
 | |
|   return { data: { records: ret, total: ret.length }, success: true };
 | |
| }
 | |
| 
 | |
| function removeRule(nos: string): any {
 | |
|   nos.split(',').forEach(no => {
 | |
|     const idx = list.findIndex(w => w.no === no);
 | |
|     if (idx !== -1) {
 | |
|       list.splice(idx, 1);
 | |
|     }
 | |
|   });
 | |
| 
 | |
|   return { data: true, success: true };
 | |
| }
 | |
| 
 | |
| function saveRule(description: string): void {
 | |
|   const i = Math.ceil(Math.random() * 10000);
 | |
|   list.unshift({
 | |
|     key: i,
 | |
|     href: 'https://ant.design',
 | |
|     avatar: [
 | |
|       'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
 | |
|       'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png'
 | |
|     ][i % 2],
 | |
|     no: `TradeCode ${i}`,
 | |
|     title: `一个任务名称 ${i}`,
 | |
|     owner: '曲丽丽',
 | |
|     description,
 | |
|     callNo: Math.floor(Math.random() * 1000),
 | |
|     status: Math.floor(Math.random() * 10) % 2,
 | |
|     updatedAt: new Date(),
 | |
|     createdAt: new Date(),
 | |
|     progress: Math.ceil(Math.random() * 100)
 | |
|   });
 | |
| }
 | |
| 
 | |
| export const RULES = {
 | |
|   'POST /rule': (req: MockRequest) => getRule(req.queryString),
 | |
|   'POST /delete/rule': (req: MockRequest) => removeRule(req.body.nos)
 | |
|   // 'POST /rule': (req: MockRequest) => saveRule(req.body.description)
 | |
| };
 |