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

}

}

posted @ 2020-08-28 10:07  墨知白  阅读(1611)  评论(0编辑  收藏  举报