对el-table只做升降排序,去除中间默认状态

概述

大家都知道 el-table 排序存在升序降序、默认不排序的状态。本次做项目时遇到了需要对表格进行排序的功能,要求排序时只对数据进行升序、降序排序,本次开发使用了 el-table 组件,且去除了中间默认不排序状态,本次排序功能是后端实现的,调用了 sort-change 事件,具体代码如下,希望对有需要的小伙伴有所帮助。

html

<el-table
    :data="newTable" style="width: 100%"
    ref="tabSort"
    :default-sort="{ prop: 'tmd', order: 'descending' }"
    @sort-change="changeTableSort"
    :show-overflow-tooltip="true"
>
    <el-table-column align="center" prop="date" label="序号" width="60" type="index">
    </el-table-column>
    <el-table-column align="center" prop="provinceName" label="省份" width="100">
    </el-table-column>
    <el-table-column align="right" prop="tmd" label="月率" width="150" sortable="custom">
    </el-table-column>
    <el-table-column align="right" prop="tyd" label="年率" width="150" sortable="custom">
    </el-table-column>
</el-table>

JS

<script>
    export default {
        data() {
            return {
                order: 'ascending',
                orderDirection: 'DESC',  // 默认降序
                orderBy: 'tmd' // 表格排序字段
            }
        },
        methods: {
            changeTableSort(row) {
                if(this.orderBy != row.prop) {
                    row.column.order = 'descending';
                    let columns = this.$refs.tabSort.columns;
                    columns.forEach(item => {
                        if(item.property === this.orderBy) {
                            item.order = '';
                        }
                    })
                }
                this.orderBy = row.prop;
                if (row.order == 'ascending') {
                    this.orderDirection = 'DESC'
                    this.order = 'ascending'
                } else if (row.order == 'descending') {
                    this.orderDirection = 'DESC';
                    this.order = 'ascending';
                } else {
                    if(this.order.indexOf('asc') != -1) {
                        this.orderDirection = 'ASC';
                        row.order = 'ascending';
                    }else{
                        this.orderDirection = 'DESC';
                        row.order = 'descending';
                    }
                    row.column.order = row.order;
                }
                if (row.order) {
                    this.getData() // 调接口获取数据
                }
            },
        }
    }
</script>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值