import mockjs from 'mockjs'; import { format, delay } from 'roadhog-api-doc'; import { campusList } from './mock/campus'; import * as api from './src/utils/api'; // mock数据持久化 global.campusList = campusList; // 操作成功响应内容 const successMsg = { code: 200, success: true, message: null }; // 查询 const query = (dataset, params) => { const pageSize = parseInt(params.pageSize) || 10; const pageNo = parseInt(params.pageNo) || 1; delete params['pageSize']; delete params['pageNo']; const queryKeys = Object.keys(params); const newDataset = dataset.filter(item => { let flag = true; for (let key of queryKeys) { if (item[key] !== params[key]) { flag = false; break; } } return flag; }); const totalSize = newDataset.length || 0; const list = newDataset.slice(pageSize * (pageNo - 1), pageSize * pageNo); return { ...successMsg, data: { pageSize, pageNo, totalSize: newDataset.length, list } }; } // 添加 const create = (dataset, params) => { const last = dataset[dataset.length - 1]; const data = { ...params, id: last.id + 1 }; dataset.push(data); return { ...successMsg, data, }; } // 更新 const update = (dataset, params) => { for (let index in dataset) { if (dataset[index].id === params.id) { dataset[index] = { ...dataset[index], ...params }; } } return { ...successMsg, } } // mock数据 const proxy = { [`GET ${api.campuses}`]: (req, res) => { console.log('[CampusList]', req.query); res.send(query(global.campusList, req.query)); }, [`POST ${api.campus.replace('/:id', '')}`]: (req, res) => { console.log('[CampusCreate]', req.body); res.send(create(global.campusList, req.body)); }, [`PUT ${api.campus.replace('/:id', '')}`]: (req, res) => { console.log('[CampusUpdate]', req.body); res.send(update(global.campusList, req.body)); }, }; // 是否禁用代理 const noProxy = process.env.NO_PROXY === 'true'; // 根据是否禁用代理来选择是mock数据还是真实接口 export default noProxy ? {} : delay(proxy, 1000);