Vue3 Element Plus el-table-column Sortable 排序失效

问题描述:

vue3中 element plus 中 el-table 的 el-table-column使用了插槽后,为什么sortable不起效果,不能点击排序

html 复制代码
          <el-table-column
            label="记账日期"
            width="110"
            fixed="left"
            header-align="left"
            sortable
            show-overflow-tooltip>
            <template #default="scope">
              {{ formatDate(scope.row.jzDatetime, "YYYY-MM-DD") }}
            </template>
          </el-table-column>

在 Element Plus 的 el-table 中,当 el-table-column 使用插槽自定义内容时,若未指定 prop 属性,会导致 sortable 排序功能失效。因为表格需要根据 prop 确定排序的字段。即使内容经过格式化,排序仍基于原始数据字段。

解决方案 :为 el-table-column 添加 prop 属性,指向对应的数据字段名:

vue

复制

下载

复制代码
<el-table-column
  prop="jzDatetime" <!-- 添加 prop 指定排序字段 -->
  label="记账日期"
  width="110"
  fixed="left"
  header-align="left"
  sortable
  show-overflow-tooltip
>
  <template #default="scope">
    {{ formatDate(scope.row.jzDatetime, "YYYY-MM-DD") }}
  </template>
</el-table-column>

注意事项:

  1. 数据类型正确性 :确保 jzDatetime 字段的值是适合排序的类型(如时间戳或 Date 对象)。若为字符串,需保证格式可直接比较(如 YYYY-MM-DD)。

  2. 自定义排序规则 :若需按格式化后的值排序(如字符串日期),可使用 sort-method 自定义排序逻辑:

    vue

    复制

    下载

    复制代码
    <el-table-column
      :sort-method="(a, b) => customSort(a.jzDatetime, b.jzDatetime)"
      <!-- 其他属性 -->
    >

    js

    复制

    下载

    复制代码
    const customSort = (a, b) => {
      // 实现自定义排序逻辑
      return new Date(a) - new Date(b);
    };

添加 prop 后,表格即可根据指定字段触发默认排序,点击表头即可正常排序。

html 复制代码
          <el-table-column
            prop="jzDatetime"
            label="记账日期"
            width="110"
            fixed="left"
            header-align="left"
            sortable
            show-overflow-tooltip>
            <template #default="scope">
              {{ formatDate(scope.row.jzDatetime, "YYYY-MM-DD") }}
            </template>
          </el-table-column>
相关推荐
夏殇之殁10 小时前
包中创建自定义列表项。 . 使用自定义列表项进行数据绑定 . 将天气预报数据保存到本地内存表,通过LiveBindings进行显示。 ...
服务器·前端·javascript
新中地GIS开发老师11 小时前
WebGIS开发学生作品|低空航天管理与航线规划系统
前端·javascript·webgis·三维gis开发
丙氨酸長鏈11 小时前
Web前端入门第 问:JavaScript 一个简单的 IndexedDB 数据库入门示例
前端·javascript·数据库
kyriewen12 小时前
面试官让我手写虚拟列表——AI生成的版本,快速滚动几下就白屏了
前端·javascript·面试
林焱_RPAAI13 小时前
影刀RPA技术深度:CSS选择器高级实战指南——伪类属性选择器与性能对比完全解析
vue.js·react.js
许彰午15 小时前
政务督办的分合模式:主办协办的并发审批
前端·javascript·政务
陳陈陳15 小时前
🚀 前端流式输出革命:SSE + BFF 架构从零到一实战指南
vue.js·架构·node.js
易筋紫容15 小时前
创建型模式:对象的诞生艺术
开发语言·前端·javascript
0_Error_16 小时前
猫国建设者 修改资源 自动采集
javascript
贩卖黄昏的熊17 小时前
NestJS简明教程——安全
开发语言·javascript·安全·typescript·nest.js