antd——实现不分页的表格前端排序功能——基础积累

news2024/12/23 9:55:21

最近在写后台管理系统时,遇到一个需求,就是给表格中的某些字段添加排序功能。注意该表格是不分页的,因此排序可以只通过前端处理。

如下图所示:
在这里插入图片描述
antd官网上是有关于表格排序的功能的。
在这里插入图片描述
对某一列数据进行排序,通过指定列的sorter函数即可启动排序按钮,sorter:function(rowA,rowB){...},rowArowB为比较的两个行数据。

官网中的示例如下:

给指定列添加sorter属性

{
  title: 'Age',
  dataIndex: 'age',
  defaultSortOrder: 'descend',
  sorter: (a, b) => a.age - b.age,
},

上面的排序是顺序,如果改为sorter: (a, b) => b.age - a.age,则为逆序。这种排序方法适用于数字大小的比较,或者英文字符的比较,如果是汉字,则不适用。

下面介绍针对 数字 汉字 布尔类型的排序方法

1.针对数字 汉字 布尔类型的排序,都要先指定sorter属性,指定该字段是要进行排序的字段

{
    dataIndex: 'designator',//字符串
    title: '位号',
    sorter: (a, b) => a.designator - b.designator,
    width: 150,
  },
  {
    dataIndex: 'singleDosage',
    title: '单量',
    sorter: (a, b) => a.singleDosage - b.singleDosage,
    type: 'number',//数字
    width: 90,
  },
  {
    dataIndex: 'bomType',
    title: '供料方式',
    scopedSlots: { customRender: 'bomType' },
    sorter: (a, b) => a.bomType - b.bomType,
    type: 'boolean',//布尔类型
    width: 90,
  },

2.监听表格的change事件

<a-table
  :data-source="tableList"
  :columns="bomColumns"
  :pagination="false"
  stripe
  :key="1"
  bordered
  style="width: 100%"
  @change="changeBomTable"
  :scroll="{ y: 400, x: 1000 }"
>
</a-table>

3.表格change事件中判断

changeBomTable(pagination, filters, sorter, arr) {
  if (sorter && sorter.columnKey) {
    if (
      sorter.column &&
      sorter.column.type != 'number' &&
      sorter.column.type != 'boolean'
    ) {
      let list = this.tableList.sort(
        this.sortBy(
          sorter.columnKey,
          sorter && sorter.order == 'ascend' ? true : false
        )
      );
      this.tableList = list;
    }
  }
},
sortBy(field, flag) {
  return function(a, b) {
    if (flag) {
      return b[field].localeCompare(a[field]);
    } else {
      return a[field].localeCompare(b[field]);
    }
  };
},

其实上面的排序方法只对汉字字符串进行了处理,其他的数字和布尔类型都没有单独处理,默认的sorter: (a, b) => a.xx- b.xx,就可以实现数字和布尔类型的排序了。

完成!!!多多积累,多多收获!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/531115.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

字符串运算公式:muParser公式库在linux平台使用

muParser是一个跨平台的公式解析库,它可以自定义多参数函数,自定义常量、变量及一元前缀、后缀操作符,二元操作符等,它将公式编译成字节码,所以计算起来非常快。 1 、muParser源码下载 官方网址http://sourceforge.net/projects/muparser/ gitee下载地址:Gitee 极速下…

使用国产chatglm推理自己的数据文件_闻达

最近大火的chatgpt&#xff0c;老板说让我看看能不能用自己的数据&#xff0c;回答专业一些&#xff0c;所以做了一些调研&#xff0c;最近用这个倒是成功推理了自己的数据&#xff0c;模型也开源了&#xff0c;之后有机会也训练一下自己的数据。 使用国产chatglm推理自己的数…

【C++】引用重新赋值?

&#xff08;点击上方公众号&#xff0c;可快速关注&#xff09; 前段时间解决了一个关于引用的bug&#xff0c;原因是引用“重新赋值”造成的&#xff0c;原来的代码逻辑关于队列的选择&#xff0c;为了凸显问题&#xff0c;这里使用一个简单的例子重写。示例代码如下&#xf…

第七章 TensorFlow实现卷积神经网络

7.2TensorFlow实现简单的CNN import matplotlib.pyplot as plt import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data from tensorflow.python.framework import ops ops.reset_default_graph()# 创建计算图 sess tf.Ses…

SpringBoot及其配置文件

目录 1.SpringBoot简介 2.第一个SpringBoot项目 3.SpringBoot配置文件 3.1 配置文件介绍 3.2 properties配置文件 3.2.1 properties配置文件——写 3.2.2 properties配置文件——读 3.2.3 properties配置文件——缺点 3.3 yml配置文件 3.3.2 yml配置文件——初阶写 …

RocketMQ入门

文章目录 一. 基本概念1. 概述2. 基本概念3. RocketMQ的特性4. 整体架构 二. RocketMQ整体流程1. 流程图2. 流程介绍 一. 基本概念 1. 概述 RocketMQ 是阿里巴巴在 2012 年开源的分布式消息中间件&#xff0c;目前已经捐赠给 Apache 软件基金会&#xff0c;并于 2017 年 9 月…

【数据结构】--- 几分钟走进栈和队列(详解-下)

文章目录 前言&#x1f31f;一、队列的概念及结构&#xff1a;&#x1f31f;二、队列实现的两种方式&#xff1a;&#x1f31f;三、队列的实现&#xff1a;&#x1f30f;3.1队列结构&#xff1a;&#x1f30f;3.2初始化&#xff1a;&#x1f30f;3.3释放(类似单链表)&#xff1…

八股文!这么背!

作者&#xff1a;阿秀 校招八股文学习网站&#xff1a;https://interviewguide.cn 这是阿秀的第「267」篇原创 小伙伴们大家好&#xff0c;我是阿秀。 不知道什么时候八股文这个说法开始流传出去了&#xff0c;以前是没有这个说法的&#xff0c;我印象中就是近三五年流传开来的…

大模型激战正酣,王坚能否带领阿里云王者归来?

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 5月11日&#xff0c;有消息称&#xff0c;十年前卸任阿里云总裁的王坚&#xff0c;将于近日以全新职位&#xff0c;全职加入阿里云。公开资料显示&#xff0c;作为阿里云创始人&#xff0c;王坚在2009年创办阿里云&#xff…

Go 的 IO 流怎么并发

今天聊一个存储的实现细节&#xff0c;数据副本的并发写入。 存储的高可靠性和高可用&#xff0c;必须依赖于数据的冗余机制。比如 3 副本就是把用户数据复制成 3 份。然后把 3 份数据分发到不同的地方。这个写下去的动作是有讲究的&#xff0c;因为肯定不希望时延线性增加&am…

【Win10错误】从0x80190001错误码恢复

目录 一、说明 二、操作过程和错误显示 三、一个可行的修复过程 四、推荐的另一个修复过程 4.1 由控制面板进入 4.2 删除cooki 4.3 进入Tab-高级--->重置 4.4 运行命令重新启动后&#xff1b;执行&#xff1a; 五、网上的其它参考意见 一、说明 出现0x80190001错误码…

Vue3 + TypeScript + Uniapp 开发小程序【医疗小程序完整案例·一篇文章精通系列】

当今的移动应用市场已经成为了一个日趋竞争激烈的领域&#xff0c;而开发一个既能在多个平台上运行&#xff0c;又能够高效、可维护的应用则成为了一个急需解决的问题。 在这个领域中&#xff0c;Vue3 TypeScript Uniapp 的组合已经成为了一种受欢迎的选择&#xff0c;特别…

深度学习 - 48.SIM Search-based Interest Model 搜索兴趣网络

目录 一.引言 二.摘要 Abstract 三.介绍 INTRODUCTION 1.用户序列长度与建模 2.MIMN 记忆网络 3.长序列用户信息提取 四.近期工作 RELATED WORD 1.用户兴趣模型 User Interest Model 2.用户长序列模型 Long-term User Interest 五.SIM 搜索兴趣网络 1.整体流程 Over…

6自由度并联拉线写字机器人实现写字功能

1. 功能说明 本文示例将实现R287样机6自由度并联拉线写字机器人写字&#xff08;机器时代&#xff09;的功能。 该机器人有两部分&#xff1a;绘图机构、走纸机构。绘图机构由6个舵机模块近似正六边形位置分布&#xff0c;共同控制位于中心的画笔&#xff1b;还具备一个走纸机构…

Java进阶-面向对象进阶(多态包权限修饰符代码块)

1 多态 1.1 多态的形式 多态是继封装、继承之后&#xff0c;面向对象的第三大特性。 多态是出现在继承或者实现关系中的。 多态体现的格式&#xff1a; 父类类型 变量名 new 子类/实现类构造器(); 变量名.方法名();多态的前提&#xff1a;有继承关系&#xff0c;子类对象…

数显压力开关NISE30A、PS42、NZSE30A

数显压力开关是一种具有高精度和可靠性的压力开关&#xff0c;广泛应用于工业自动化、石油化工、电力系统等领域。它通过测量压力并将信号转换为数字形式来控制设备或系统的运行。 数显压力开关的主要组成部分包括传感器、微处理器、显示器和输出电路等。传感器通常采用压阻式…

助力 VR/AR 等复杂图像场景极致高清,火山引擎夺得 NTIRE 大赛双料冠军

动手点关注 干货不迷路 近日&#xff0c;CVPR Workshop 下属的 NTIRE2023大赛公布比赛结果&#xff0c;在双目超分双三次插值保真赛道和 360 全景图像超分赛道上&#xff0c;火山引擎多媒体实验室凭借自主研发的算法获得了双料冠军&#xff0c;技术能力达到行业领先水平。 NTIR…

GEE:基于Landsat影像的长时间序列构建(1985-2020NDVI年度合成时间序列)

作者:CSDN @ _养乐多_ 本文记录的代码是一个用于构建年度合成影像集合的脚本。它通过调用一系列函数来获取给定时间范围内的 Landsat 影像集合,并进行预处理和合成。其中包括光谱指数计算、波段调整、遥感影像的中值合成等步骤。 结果如下图所示, 脚本的主要步骤如下: 定…

我让gpt写了一段正则表达式代码,可是运行报错,可以帮忙看看哪里出了问题?...

点击上方“Python爬虫与数据挖掘”&#xff0c;进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 忽闻海上有仙山&#xff0c;山在虚无缥缈间。 大家好&#xff0c;我是皮皮。 一、前言 前几天在Python最强王者群【HZL】问了一个Python正则表达式的问…

如何避免旧代码成包袱?5步教你接手别人的系统

&#x1f449;腾小云导读 老系统的代码&#xff0c;是每一个程序员都不想去触碰的领域&#xff0c;秉着能跑就行的原则&#xff0c;任由其自生自灭。本期就给大家讲讲&#xff0c;接手一套故障频发的复杂老系统需要从哪些地方着手。内容包括&#xff1a;代码串讲、监控建设和告…