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)
 | 
						|
};
 |