初始化 antd-pro
This commit is contained in:
131
admin-web/mock/rule.js
Normal file
131
admin-web/mock/rule.js
Normal file
@@ -0,0 +1,131 @@
|
||||
import { parse } from 'url';
|
||||
|
||||
// mock tableListDataSource
|
||||
let tableListDataSource = [];
|
||||
for (let i = 0; i < 46; i += 1) {
|
||||
tableListDataSource.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],
|
||||
name: `TradeCode ${i}`,
|
||||
title: `一个任务名称 ${i}`,
|
||||
owner: '曲丽丽',
|
||||
desc: '这是一段描述',
|
||||
callNo: Math.floor(Math.random() * 1000),
|
||||
status: Math.floor(Math.random() * 10) % 4,
|
||||
updatedAt: new Date(`2017-07-${Math.floor(i / 2) + 1}`),
|
||||
createdAt: new Date(`2017-07-${Math.floor(i / 2) + 1}`),
|
||||
progress: Math.ceil(Math.random() * 100),
|
||||
});
|
||||
}
|
||||
|
||||
function getRule(req, res, u) {
|
||||
let url = u;
|
||||
if (!url || Object.prototype.toString.call(url) !== '[object String]') {
|
||||
url = req.url; // eslint-disable-line
|
||||
}
|
||||
|
||||
const params = parse(url, true).query;
|
||||
|
||||
let dataSource = tableListDataSource;
|
||||
|
||||
if (params.sorter) {
|
||||
const s = params.sorter.split('_');
|
||||
dataSource = dataSource.sort((prev, next) => {
|
||||
if (s[1] === 'descend') {
|
||||
return next[s[0]] - prev[s[0]];
|
||||
}
|
||||
return prev[s[0]] - next[s[0]];
|
||||
});
|
||||
}
|
||||
|
||||
if (params.status) {
|
||||
const status = params.status.split(',');
|
||||
let filterDataSource = [];
|
||||
status.forEach(s => {
|
||||
filterDataSource = filterDataSource.concat(
|
||||
dataSource.filter(data => parseInt(data.status, 10) === parseInt(s[0], 10))
|
||||
);
|
||||
});
|
||||
dataSource = filterDataSource;
|
||||
}
|
||||
|
||||
if (params.name) {
|
||||
dataSource = dataSource.filter(data => data.name.indexOf(params.name) > -1);
|
||||
}
|
||||
|
||||
let pageSize = 10;
|
||||
if (params.pageSize) {
|
||||
pageSize = params.pageSize * 1;
|
||||
}
|
||||
|
||||
const result = {
|
||||
list: dataSource,
|
||||
pagination: {
|
||||
total: dataSource.length,
|
||||
pageSize,
|
||||
current: parseInt(params.currentPage, 10) || 1,
|
||||
},
|
||||
};
|
||||
|
||||
return res.json(result);
|
||||
}
|
||||
|
||||
function postRule(req, res, u, b) {
|
||||
let url = u;
|
||||
if (!url || Object.prototype.toString.call(url) !== '[object String]') {
|
||||
url = req.url; // eslint-disable-line
|
||||
}
|
||||
|
||||
const body = (b && b.body) || req.body;
|
||||
const { method, name, desc, key } = body;
|
||||
|
||||
switch (method) {
|
||||
/* eslint no-case-declarations:0 */
|
||||
case 'delete':
|
||||
tableListDataSource = tableListDataSource.filter(item => key.indexOf(item.key) === -1);
|
||||
break;
|
||||
case 'post':
|
||||
const i = Math.ceil(Math.random() * 10000);
|
||||
tableListDataSource.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],
|
||||
name: `TradeCode ${i}`,
|
||||
title: `一个任务名称 ${i}`,
|
||||
owner: '曲丽丽',
|
||||
desc,
|
||||
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),
|
||||
});
|
||||
break;
|
||||
case 'update':
|
||||
tableListDataSource = tableListDataSource.map(item => {
|
||||
if (item.key === key) {
|
||||
Object.assign(item, { desc, name });
|
||||
return item;
|
||||
}
|
||||
return item;
|
||||
});
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return getRule(req, res, u);
|
||||
}
|
||||
|
||||
export default {
|
||||
'GET /api/rule': getRule,
|
||||
'POST /api/rule': postRule,
|
||||
};
|
||||
Reference in New Issue
Block a user