涉及的官方文档说明
Table Events
事件名 | 说明 | 参数 |
---|---|---|
sort-change | 当表格的排序条件发生变化的时候会触发该事件 | { column, prop, order } |
Table Methods
方法名 | 说明 | 参数 |
---|---|---|
sort | 手动对 Table 进行排序。参数prop属性指定排序列,order指定排序顺序。 | prop: string, order: string |
实现前台分页后全部排序
通过向el-table增加@sort-change事件,向el-table-column增加sortable='custom'属性,向methods实现sortChange方法,可以实现数据在前台分页后的全部数据排序(不止本页排序)。
<el-table :data="tableData.slice((pageIndex-)*pageSize,pageIndex*pageSize)" @sort-change="sortChange"> ...... <el-table-column prop="reserve" label="库存量" sortable='custom'></el-table-column> ...... sortChange(column) { this.pageIndex = 1; // 排序后返回第一页 if (column.order === "descending") { this.tableData.sort((a, b) => b[column.prop] - a[column.prop]); } else if (column.order === "ascending") { this.tableData.sort((a, b) => a[column.prop] - b[column.prop]); } }
2. 对于其中升序降序实现的方法我没有看懂,有没有大佬可以解释一下...万分感谢!
//降序
this.tableData.sort((a, b) => b[column.prop] - a[column.prop]);
//升序
this.tableData.sort((a, b) => a[column.prop] - b[column.prop]);
可以看下compareFunc的机制
https://developer.mozilla.org...
如果想知道compareFunc是怎么应用到实际排序中的可以看着
https://github.com/PiNengShao...