Vue3: 给表格多个字段添加排序功能

36 篇文章 1 订阅
8 篇文章 0 订阅

问题

  • 在Vue3项目中,使用element-plus的表格组件绘制表格后,需要令表格的多个字段可以进行选择排序(选择升序或者降序)
  • 但是排序功能好像有时候会出错,需要排序的字段多了之后,排序功能有时候会不起作用

解决

  • 给表格设置sort-method 属性,并绑定一个方法,该方法与表格的排序功能有关

在这里插入图片描述

  • 排序函数
    给数字类型的字段排序,使用减法运算符来进行数字大小排序

在这里插入图片描述

排序函数的代码:

// 表格多字段排序
function sortTable() {
  const { prop, order } = sortObj;
  return this.tableData.sort((a, b) => {
    if (order === "ascending") {
      if (prop === "study") {
        return a.study - b.study;
      } else if (prop === "visit") {
        return a.visit - b.visit;
      } else if (prop === "date") {
        return a.date - b.date;
      }
    } else if (order === "descending") {
      if (prop === "study") {
        return b.study - a.study;
      } else if (prop === "visit") {
        return b.visit - a.visit;
      } else if (prop === "date") {
        return b.date - a.date;
      }
    }

    return 0;
  });
}

其他

参考文章

小插曲

  • 因为在项目中,涉及到的数字比较大,所以给数字添加了分隔符:每三位数添加一个逗号;比如数字1897645,最后的呈现形式是1,897,645
  • 即数据最后的数据类型已经变成了字符串类型,但是当时在添加排序功能的时候没注意到这一点,导致排序的结果一直不对
  • 因此记录一下,仅供参考~
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值