如题,表格没有分页前是按照日期顺序排序的,分页以后日期排序乱了,如下图
这是第一页
这是第二页
很显然,日期顺序乱了,只是在当前页面排序了,没有进行整个排序。
我的代码如下
<template>
<div>
...
<div>
<el-table
:data="tableData.slice((currentPage-1)*pagesize,currentPage*pagesize)"
border
style="width: 100%"
:default-sort = "{prop: 'date', order: 'descending'}">
<el-table-column
prop="date"
label="Modified Date"
width="180">
</el-table-column>
<el-table-column
prop="name"
label="Experiment Name"
width="180">
</el-table-column>
<el-table-column
prop="content"
label="Content"
width="640">
</el-table-column>
</el-table>
<br><br>
<div class="block">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 20, 30, 40]"
:page-size="pagesize"
layout="total, sizes, prev, pager, next, jumper"
:total="tableData.length">
</el-pagination>
</div>
</div>
...
</template>
<script>
...
export default{
data() {
return {
tableData:[{
date: '',
name: '',
content: ''
}],
currentPage: 1,
pagesize:10
}
},
mounted: function(){
this.getAbHistory();
},
methods:{
handleSizeChange(size) {
this.pagesize = size;
},
handleCurrentChange(currentPage) {
this.currentPage = currentPage;
},
getAbHistory(){
axios.get("/historyScan/AbHistory").then(result =>{
var res = result.data;
if(res.status == "0"){
let values = res.result.hbaseRst;
var data = []
for (let i = 0; i < values.length; i++){
var obj = {}
obj.name= values[i].key;
obj.date = moment(values[i].timestamp).format("YYYY-MM-DD HH:mm:ss");
obj.content = values[i].$;
data[i] = obj
}
this.tableData = data;;
}
else{
this.$message.error('错误,无法获取A/B test 历史记录');
}
});
}
}
}
</script>
请大神指教一下,如何对整个数据进行排序,前端代码应该如何修改,谢谢
element table 排序有一个远程排序
sortable 对应列是否可以排序,如果设置为 'custom',则代表用户希望远程排序,需要监听 Table 的 sort-change 事件
然后在后端进行全量数据排序,返回过来的值页面会进行再次排序