背景
做表格排序,支持分页功能,发现翻页后,排序状态在,但是内容不对,检查发现,翻页没有触发排序函数,只有点击排序按钮才会触发,sort-method和sort-change都一样,翻页不触发。这个感觉是一个bug,老版本印象中没有这个问题
解决办法
1、使用后端排序
使用sort-change事件,记录下排序prop和按钮状态(倒序或者正序),点击翻页时候,传递参数给后端接口,这个方法不详细说了
2、详细说下前端排序(只贴了主要代码)
html部分
<el-table :data="tableData" ref="tableRef" row-key="id" @sort-change="handleSortChange">
<el-table-column prop="realValue" width="210" label="数值" sortable />
<el-table-column prop="eventTime" width="200" label="时间" sortable />
</el-table>
<el-pagination @current-change="querySensorInfo" />
js部分
const tableRef=ref();
//保存排序按钮状态
const sortColumnData=ref();
const handleSortChange=(data:{column: any, prop: string, order: any })=>{
sortColumnData.value=data;
}
//获取表格数据接口
const querySensorInfo = () => {
const params = {
//分页信息
}
getSensorInfo(params).then((res: any) => {
//获取完数据,手动调用下排序方法
nextTick(()=>{
// tableRef.value.sort('realValue','descending');
tableRef.value.sort(sortColumnData.value.prop,sortColumnData.value.order);
})
})
}