1. 增删改查
import Mock from 'mockjs'
// 模拟数据列表
var arr = [];
for (let i = 0; i < 10; i++) {
let newArticleObject = {
name: '小明',
content: '内容',
id: i
}
arr.push(newArticleObject); //将模拟的数据放到数组中
}
// 数据的删除操作
let list = function (options) {
// console.log(options.type);
let rtype = options.type.toLowerCase(); //获取请求的类型并转换为小写
switch (rtype) {
case 'get':
break;
case 'post':
let id = parseInt(JSON.parse(options.body).params.id); // 获取请求的id,将options.body转换为JSON对象
arr = arr.filter(function (val) {
return val.id != id; // 过滤掉前台传过来的id对应的相应数据,并重新返回
});
break;
default:
break;
}
return {
data: arr
}
}
Mock.mock('/list', /get|post/i, list);
// 数据的添加操作
let listAdd = function (options) {
// console.log("传过来的数据"+JSON.parse(options.body).params.obj);
let obj = JSON.parse(options.body).params.obj;
// console.log("数据获取"+ obj);
arr = arr.concat(obj); // 将前台返回来的数据,拼接到数组中。
return {
data: arr
}
}
Mock.mock('/listAdd', /get|post/i, listAdd);
// 数据的修改操作
let listUpdate = function (options) {
let obj = JSON.parse(options.body).params.obj;
// console.log(JSON.parse(options.body).params);
// let id = parseInt(JSON.parse(options.body).params.obj.id);
arr = arr.map(val => { // 将需要替换的数据替换掉
// console.log(val)
return val.id == obj.id ? obj : val;
});
return {
data: arr
}
}
Mock.mock('/listUpdate', /get|post/i, listUpdate);
2.分页
if(MOCK == 'true'){
// url获取查询参数
function getUrlParams(url, name) {
if(url.indexOf('?')>-1){
var paramsAry = url.substr(url.indexOf('?')+1).split('&');
// 循环数据
for (var i = 0; i < paramsAry.length; i++) {
var tmp = paramsAry[i].split('=');
if (tmp[0] == name) {
return tmp[1];
}
}
return -1;
}else{
return -1
}
}
Mock.mock(/\/posts/,'get', function(options){
let page = parseInt(getUrlParams(options.url, 'page'))
//当前页码
if(page == -1) page = 1
let total = 10 //总共条数
let size = 3 //每页条数
let pages = Math.ceil(total/size) //共多少页
let startIndex = (page - 1) * size //开始下标
let endIndex = (startIndex + size) < total ? (startIndex + size) : total //结束下标
let records = []
for (; startIndex < endIndex; startIndex++) {
let o = Mock.mock({
_id: "@id()",
title: '@ctitle',
author: {nickName: '@cname'},
category: {title: '@cword(3)'},
createAt: '@datetime',
"state|1": [0,1]
})
records.push(o)
}
let display = []
for (let i = 0; i < pages; i++) {
display.push(i+1)
}
return {
page: page,
total: total,
size: size,
pages: pages,
records: records,
display: display
}
})
}