一、后端对结果集进行手动分页
代码:
SearchVo search = new SearchVo(); List<FileStack> collect = stackList.stream().skip(( searchVo.getPageNum() - 1) * searchVo.getPageSize()).limit(searchVo.getPageSize()). collect(Collectors.toList()); search.setTotal(stackList.size()); search.setCollectStackList(collect); return search;
total字段是原本的list长度
前端传pageNum和pageSize,后端主要是要skip进行分页
前端分页代码:
<pagination v-show="FilestackDetailTotal > 0" :total="FilestackDetailTotal" v-model:page="querystack.pageNum"
v-model:limit="querystack.pageSize" @pagination="showIncludedFileStack" />
FilestackDetailTotal 这个变量要进行const 赋值 ref(0)
然后在res的total进行赋值 是总条数
@pagination 翻页点击事件
function showIncludedFileStack(row) {
includedFileStackVisible.value = true
if(row && row.id) {
querystack.value.fileId = row.id
}
queryFileIncludedFileStack(querystack.value).then((res) => {
includedFileStackData.value = res.data.collectStackList
FilestackDetailTotal.value = res.data.total
console.log(FilestackDetailTotal.total)
includedLoading.value = false
}).catch(() => {
includedLoading.value = false
});
}
下面是id变量赋值
if(row && row.id) {
querystack.value.fileId = row.id
}
理应是直接把
querystack.value.fileId = row.id
这个ID赋到传参外面 if是判断这个对象是否存在