element-ui 通过点击表单标题实现自定义排序
由于需求需要,不让使用饿了吗自带的排序,要实现自定义点击标题即可排序。
最终效果图

实现思路
实现思路,通过点击标题获取该列的字段,然后数组按照该字段进行排序。
用到的事件
header-click 当某一列的表头被点击时会触发该事件 column, event

降序算法
// 点击降序
desc(column, event) {
console.log(column)
let option = this.whichOption(column.label);
this.person.sort(this.descFun(option));
},
// 降序算法,根据字段值降序
descFun(obj) {
return (a, b) => {
let val1 = a[obj];
let val2 = b[obj];
return val2 - val1;
};
},
// 根据标签返回字段值
whichOption(label) {
let title = {
日S单: "num",
日实际销售额: "zsmoney",
日实际订单数: "zsnum",
日本金: "money",
预计金额: "yjMoney",
已评数: "dayNum",
预计刷单: "yjNum"
};
return title[label];
}
如果需要实现以进到页面就按某列排序的话,只需将该列在获取数据后执行一次即可
this.person.sort(this.descFun("num"));