1.一般来讲,关键字查询和分页都是前端传相关条件数据到后端进行查询,只返回要显示的相关数据。
但有时由于远程接口返回的是全部的数据,数据量不大,而且远程接口代码接触不到。这时就需要利用前端来完成需求。(前端:layui)
代码如下:
//前端关键字查询和分页
function fuzzyQuery(data, keyWord, page, limit) {
page = (page - 1) * limit;
var rdata = {};
var length = data.rows.length;
var arr = [];
//筛选出符合”搜索内容“的数据
for (var i = 0; i < length; i++) {
if (data.rows[i].name.indexOf(keyWord) != -1) {
arr.push(data.rows[i]);
}
}
rdata.realLength = arr.length;
var arrs = [];
var pageAndLimit = parseInt(page) + parseInt(limit);
var temp = arr.length < pageAndLimit ? arr.length : pageAndLimit;
//分页显示,筛选出要显示的数据
for (var j = page; j < temp ; j++){
arrs.push(arr[j]);
}
rdata.rows = arrs;
return rdata;
}
parseData: function (res) { //res 即为原始返回的数据
var recodePage = $(".layui-laypage-skip .layui-input").val();
var recodeLimit = $(".layui-laypage-limits").find("option:selected").val();
if (recodePage == undefined || recodeLimit == undefined){
recodePage = 1;
recodeLimit = 10;
}
var getData = fuzzyQuery(res, $("#materialName").val(), recodePage, recodeLimit);
var result = {};
return {
"code": 0,
"msg": "",
"count": getData.realLength,
"data": getData.rows
};
}