el-table 字段自定义排序

我在element-ui中使用el-table排序,默认开启就是el-table-column上加个sortable即可,但是后端返回的数据中含有中文

列如tableData中有个字段count 对应值是 类似  13,6,2,3,4,5,10以上,7,含有中文‘以上’两个字,这个时候自带的排序已经无法满足我的要求,

所以需要增加该列的自定义排序

......
<el-table-column prop="count" label="数量" sortable
:sort-method="customSort"> </el-table-column>
.....
methods: {
  customSort(a, b) {
    let valueA = this.parseValue(a['count']);
    let valueB = this.parseValue(b['count']);

    return valueA - valueB;  // 根据解析后的数值进行排序
  },
  parseValue(value) {
    let result = value.match(/(\d+)/);  // 正则表达式提取数字

    if (result) {
      let number = parseInt(result[0], 10);
      return value.includes("以上") ? number + 0.1 : number;  // "以上" 的情况稍微增加数值
    }

    return Number.MAX_VALUE;  // 非数字字符串赋予一个大数值以便于排序
  }
}

 

posted @ 2023-11-24 21:19  夏天的西瓜君  阅读(584)  评论(0编辑  收藏  举报