当前位置: 首页 > news >正文

antd-vue - - - - - a-table排序

antd-vue - - - - - a-table排序

  • 1. 重点代码:
  • 2. 代码示例:
  • 3. 进阶版写法

1. 重点代码:

sorter: {compare: (a, b) => a.columnsKeys - b.columnsKeys,multiple: 1,
},

解析:
compare: 自定义排序函数,用于比较两个对象。
multiple: 排序优先级权重(数字越大优先级越高)。

2. 代码示例:

<template><a-table :columns="columns" :data-source="data" @change="onChange" />
</template>
<script setup>
const columns = [{title: 'Name',dataIndex: 'name',},{title: 'Chinese Score',dataIndex: 'chinese',sorter: {compare: (a, b) => a.chinese - b.chinese,multiple: 3,},},{title: 'Math Score',dataIndex: 'math',sorter: {compare: (a, b) => a.math - b.math,multiple: 2,},},{title: 'English Score',dataIndex: 'english',sorter: {compare: (a, b) => a.english - b.english,multiple: 1,},},
];
const data = [{key: '1',name: 'John Brown',chinese: 98,math: 60,english: 70,type1: 1,type2: 'star',type3: '张三',},{key: '2',name: 'Jim Green',chinese: 98,math: 66,english: 89,type1: 2,type2: 'moon',type3: '李四',},{key: '3',name: 'Joe Black',chinese: 98,math: 90,english: 70,type1: 3,type2: 'sun',type3: '王五',},
];
function onChange(pagination, filters, sorter, extra) {// 监听表格变化事件,比如分页、排序、过滤等(回调函数)console.log('params', pagination, filters, sorter, extra);
}
</script>

上述代码,分别对chinese、math、english三列设置了排序。

  • multiple的值设置的不一样,数值越大,优先级越高。
  • 比如同时对三列都进行排序,先满足chinese的筛选条件,再满足math的筛选条件,再满足english的筛选条件

3. 进阶版写法

当排序的列类型不仅仅为数字类型时,排序就会出现混乱。解决办法就是针对不同类型,设置不同的compare。

columns.map(col => {if (['type1'].includes(col.dataIndex)) {// 数值型字段排序return {...col,sorter: {compare:(a, b) => Number(a[col.dataIndex]) - Number(b[col.dataIndex]),multiple: 1}};} else if (['type2'].includes(col.dataIndex)) {// 字符串字段排序return {...col,sorter: (a, b) => a[col.dataIndex].localeCompare(b[col.dataIndex]),};} else {// 默认处理:假设其他列都可以按照字符串比较来排序return {...col,sorter: (a, b) => ('' + a[col.dataIndex]).localeCompare('' + b[col.dataIndex]),};}

相关文章:

  • 端到端自动驾驶研究:通过强化学习与世界模型的协同作用向VLA范式演进
  • Android OpenSL ES 音频播放完整实现指南
  • MySQL:InnoDB架构(内存架构篇)
  • 384_C++_unit是4字节大小,能存储32位(bit)bool操作,[7][48]这里用于计划表的时间节点内,二维数组中每一位代表一种AI功能的开关状态
  • 维度建模是什么意思?如何实现维度建模?
  • CPU Idle 状态与中断的关系
  • LocalDate类使用
  • 卷积神经网络参数量计算
  • Linux 阻塞非阻塞
  • Prometheus + Grafana 监控 RabbitMQ 实践指南
  • 【解决串口数据丢包问题】下位机环形缓冲区+上位机串口生产者-消费者不定长接收(基于keil5和Labview)
  • 【单片机期末】接口及应用
  • 中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
  • Linux简单的操作
  • 【51单片机】5. 矩阵键盘与矩阵键盘密码锁Demo
  • 驭码CodeRider 2.0深度测评:助力高效开发【探索化学奇妙世界】网站
  • K8s简述
  • 探秘鸿蒙 HarmonyOS NEXT:鸿蒙定时器,简单倒计时的场景应用
  • Vue3 watch使用
  • OceanBase v4.3.5 特性解读:通过OSS WORM特性进行备份归档
  • 医疗知识普及网站开发/网络推广公司是干嘛的
  • 网站建设百灵鸟优化/百度网盘搜索神器
  • 西安网站建设最新案例/爱站网长尾关键词挖掘工具下载
  • 怎么合作做网站/百度互联网营销顾问
  • 网站做个seo要多少钱/新媒体营销案例分析
  • 网络规划设计师备考需要多久/seo竞价培训