elementUI取消sort-change中间的取消状态,只保留descending和ascending
在工作中我们总会碰到奇奇怪怪的需求,比如我就碰到了取消elementUI sort-change状态为null的需求,话不多说直接上代码
html代码:
<el-table :data="tableData" style="width:100%" fit @sort-change = "sortChange" ref="table">
</el-table>
vue代码:
data(){
return {
prevProp: prop, //记录前一次的prop值,
prevSort: 'descending'//记录前一次的排序状态(elementUI默认有三种,即descending,ascending和null)
}
}
methods: {
sortChange({column, prop, order}) {//接收三个参数,分别是当前列的所有属性值,当前列的prop, 当前列的排序状态
if (order !== null && this.prevProp !== prop) {
var columns = this.$refs.table.columns.find(item => item.property === this.prevProp);//这里需要注意的是需要给el-table加一个ref属性
//如果是elementUI表格会有columns属性,并且该属性下包含property属性,不理解的同学可以在控制台打印一下康康
columns.order = '';
}
if (order === null) {
column.order = this.prevSort === 'descending' ? 'ascending' : 'descending';
this.prevProp = prop;
}
//实现取消null状态的功能后就可以在下面愉快的的玩耍啦~
//dosomething
}
}