/**
* @description 数据分组
* @param array 需要分组的数组
* @param key 唯一展示字段的key
* @returns {[]} JSON数组
* 调用 groupData(list,'commit_time2')
*/
function groupData(array, key){
let newArray = [];
array.forEach((item, i) => {
// 没有搜索到则该数据不分组
let index = -1;
let keyVal = item[key].split(' ')[0]; // 后台的时间格式是 YYMMDD hh:mm
let isExists = newArray.some((newItem, j) => {
if (keyVal === newItem[key]) {
index = j;
return true;
}
});
if (!isExists) {
let rows = {
subList: [item]
};
rows[key] = keyVal;
newArray.push(rows);
} else {
newArray[index].subList.push(item);
}
});
return newArray;
}
/**
* @description 分页数据叠加:适用于数据分组
* @param newList 需要叠加的新数据
* @param oldList 需要接收叠加数据的老数据
* @param key 唯一展示字段的key
* @param currPage 当前第几页
* @returns {[]} JSON数组
*/
function addPageData(newList, oldList, key, currPage){
// 如果是第一页则不需要叠加数据,否则需要叠加数据并判断是否有重复项
let totalList = [];
if (currPage > 1) {
// 上一页的最后一条和当前加载数据的第一条比较,如果相等则合并
let oldListLast = oldList[oldList.length - 1];
if (oldListLast[key] === newList[0][key]) {
oldListLast.subList = oldListLast.subList.concat(newList[0].subList);
totalList = oldList.concat(newList.splice(1));
} else {
totalList = oldList.concat(newList);
}
} else {
totalList = newList;
}
return totalList;
}
/*调用
*page自定义分页 当自定义分页大于1调用
*arry 页面数据 listArry和总数对比,当相同停止加载数据
let totalGroup;
if(this.page>1){
this.arry = totalGroup;
this.listArry.push(...list1);
}else{
this.listArry = list1;
this.arry = groupData1;
}
*/