el-table 表格自定义排序 (针对某一列名称进行首字母排序)
首先,先写在 table 某一列写个 sortable="custom",然后在监听 sort-change 方法,具体内容如下:
<el-table
:data="tableData"
style="width: 100%"
tooltip-effect="dark"
stripe
border
@sort-change="sort_change"
>
<el-table-column
align="center"
width="150"
label="名称"
prop="name"
show-overflow-tooltip
sortable="custom"
>
</el-table-column>
</el-table>
export default {
data() {
return {
// 表格数据
tableData: [
{ name: "兔子" },
{ name: "老鼠" },
{ name: "狮子" },
{ name: "大象" },
],
};
},
methods: {
// 自定义排序 排序规则:descending降序、ascending升序
sort_change(column) {
if (column.order == "ascending") {
// 升序
this.tableData =
this.tableData.sort(function compareFunction(
item1,
item2
) {
return item1.name.localeCompare(item2.name);
});
consle.log(this.tableData) // [ { name: "大象" },{ name: "老鼠" },{ name: "狮子" },{ name: "兔子" }]
} else {
// 降序
this.tableData = this.tableData.sort(function compareFunction(
item1,
item2
) {
return item2.name.localeCompare(item1.name);
});
consle.log(this.tableData) // [ { name: "兔子" },{ name: "狮子" },{ name: "老鼠" },{ name: "大象" }]
}
},
}
}