123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- const { parse } = require("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);
- }
- module.exports = {
- "GET /api/rule": getRule,
- "POST /api/rule": postRule
- };
|