elementui表格自定义排序
时间: 2023-11-12 13:59:44 浏览: 203
SortSelect vue + elementui自定义按首字母排序下拉列表组件
element-ui 表格组件提供了 `sort-method` 属性来自定义排序规则。你可以在 `sort-method` 中传入一个函数,该函数接收两个参数:`prop` 和 `order`,分别表示当前排序的字段和排序的顺序(升序或降序)。函数需要返回一个数字,表示两个数据的大小关系,如果返回值小于 0,则表示第一个数据应该排在第二个数据前面,如果返回值大于 0,则表示第一个数据应该排在第二个数据后面,如果返回值等于 0,则表示两个数据相等。
下面是一个示例代码:
```html
<template>
<el-table :data="tableData" :sort-method="sortTable">
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="age" label="年龄"></el-table-column>
<el-table-column prop="score" label="分数"></el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: [
{ name: '张三', age: 18, score: 90 },
{ name: '李四', age: 20, score: 80 },
{ name: '王五', age: 22, score: 70 },
],
};
},
methods: {
sortTable(prop, order) {
return (a, b) => {
const valueA = a[prop];
const valueB = b[prop];
if (order === 'ascending') {
return valueA - valueB;
} else {
return valueB - valueA;
}
};
},
},
};
</script>
```
在上面的代码中,我们定义了一个 `sortTable` 方法来处理表格的排序。该方法接收两个参数:`prop` 和 `order`,分别表示当前排序的字段和排序的顺序。在方法中,我们返回一个函数,该函数接收两个参数:`a` 和 `b`,分别表示两个数据。在函数中,我们根据当前排序的字段和排序的顺序来比较两个数据的大小关系,并返回一个数字。
阅读全文