mock实现增删改查、分页
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
}
})
}
上一篇:
IDEA上Java项目控制台中文乱码
