element-plus 官方表格排序问题
element-plus 官方API 默认表格排序存在问题,一个list 被多组排序

修改后:


注意点: 这里一定要使用 sortable="custom",自定义 sort-change 方法 使用 sortable true 的情况排序会冲突,出现莫名奇妙的问题
<template><el-table:data="stateTable.table.data"@sort-change="(data) => handleSort(data, stateTable)"><el-table-columnsortable="custom"prop="collect_at"label="时间"></el-table-column></el-table>
<template><script setup>
import { reactive, nextTick } from "vue";
import { copyTableData, handleSort } from "@/hooks/useSortTable.js";let stateTable = reactive({sortColumnData: null,table: {border: true,currentPage: 1,pageSize: 10,// 接口返回数据data: [],// 表头数据columns: [],},
});const getTableData = async (data) => {copyTableData.value = [...stateTable.table.data]//获取完数据,手动调用下排序方法,主要用于重新查询,切换分页等情况nextTick(()=>{if(stateTable.sortColumnData) handleSort(stateTable.sortColumnData, stateTable)})
};getTableData()
</script>
useSortTable.js
import { ref } from "vue";export const copyTableData = ref([]);export const sortByFieldDesc = (arr, field, order) => {arr.sort((a, b) => {const aValue = a?.[field];const bValue = b?.[field];let numA =typeof aValue === "string" && !isNaN(Number(aValue))? Number(aValue): aValue;let numB =typeof bValue === "string" && !isNaN(Number(bValue))? Number(bValue): bValue;if (typeof numA === "string" &&typeof numB === "string" &&!isNaN(Date.parse(numA)) &&!isNaN(Date.parse(numB))) {// 如果是日期类型的字符串,则按照日期排序const dateA = new Date(numA);const dateB = new Date(numB);if (order === "descending") {return dateB - dateA;} else {return dateA - dateB;}} else {// 非日期类型,按照数字或其他类型的逻辑排序if (order === "descending") {return numB - numA;} else {return numA - numB;}}});return arr;
};// 修改handleSort函数,使其接受stateTable作为参数
export const handleSort = (data, stateTable) => {const { prop, order } = data;stateTable.sortColumnData = data;let reserveData = copyTableData.value.filter((item) =>item?.[prop] !== undefined &&item?.[prop] !== null &&item?.[prop] !== "-");let filterData = copyTableData.value.filter((item) =>item?.[prop] === undefined ||item?.[prop] === null ||item?.[prop] === "-");if (order !== null) {sortByFieldDesc(reserveData, prop, order);stateTable.table.data = reserveData.concat(filterData);} else {stateTable.table.data = [...copyTableData.value];}
};
相关文章:
element-plus 官方表格排序问题
element-plus 官方API 默认表格排序存在问题,一个list 被多组排序 修改后: 注意点: 这里一定要使用 sortable"custom",自定义 sort-change 方法 使用 sortable true 的情况排序会冲突,出现莫名奇妙的问题…...
AI语音模型在家宽业务中的应用
在运营商家宽业务支撑场景中,存在多个APP和系统需要与装维人员交互,传统的功能按钮点击型操作交互界面,越来越难以满足装维人员工作提效的迫切需求。家宽施工调度系统所需的AI语音能力主要包括ASR(音转字)和TTS&#x…...
零七生活API-文字转语音API使用示例
//官网地址:零七生活API - 提供免费接口调用平台function getAud(){axios({method: get,url: https://api.oick.cn/api/txt?text你好&spd5&apikeyyourApikey,responseType: blob, // 确保 axios 处理为二进制数据}).then((response) > {// 将 Blob 转换…...
rpc的客户端为什么称为stub
1.client为什么是stub Stub 在分布式系统中是一种 代理对象(Proxy Object),它本质上是一个在本地系统中扮演远程服务角色的代理。 在早期的 RPC 术语中,客户端端叫做 Stub,而服务器端的处理部分叫做 Skeleton。这种对…...
RHCE--nginx实现多IP访问多网站
方法一:nmtui 1.目录挂载 2.下载nginx 3.关闭防火墙 4.在一个网卡创建多个虚拟地址 1. 2. 3. 方法二:nmcil 1.手动配置 2.如图所示重新连接后创建ip成功 3.创建目录以及写入 结果...
TikTok运营对IP有什么要求?
TikTok在进行直播带货时,网络环境的配置尤为关键,网络质量直接影响到直播效果,因此选择稳定的IP地址很重要。那么,TikTok直播时该选择什么样的IP地址呢?接下来,我们来深入分析一下。 TikTok对IP地址的要求 …...
大白话讲解:多模态大模型综述,通俗易懂!
多模态大型语言模型(Multimodal Large Language Models, MLLM)的出现是建立在大型语言模型(Large Language Models, LLM)和大型视觉模型(Large Vision Models, LVM)领域不…...
大数据-184 Elasticsearch - 原理剖析 - DocValues 机制原理 压缩与禁用
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...
Java设计模式:工厂模式详解
引言 1. 工厂模式的定义 2. 工厂模式的类型 2.1 简单工厂模式 2.1.1 结构 2.1.2 示例代码 2.2 工厂方法模式 2.2.1 结构 2.2.2 示例代码 2.3 抽象工厂模式 2.3.1 结构 2.3.2 示例代码 3. 工厂模式的优点 4. 工厂模式的缺点 5. 实际应用场景 6. 总结 引言 工厂模…...
《Python游戏编程入门》注-第3章1
《Python游戏编程入门》的第三章是“I/O、数据和字体:Trivia游戏”,介绍了print()函数、input()函数、异常处理以及文件的输入输出,最后根据以上内容完成了Trivia游戏。 本章的“3.1 了解Trivia游戏”介绍了Trivia游戏的界面和玩法。“3.2 P…...
Java爬虫:获取数据的入门详解
在数字化时代,数据已成为最宝贵的资产之一。无论是市场研究、客户洞察还是产品开发,获取大量数据并从中提取有价值的信息变得至关重要。Java,作为一种成熟且功能强大的编程语言,为编写爬虫提供了强大的支持。Java爬虫可以帮助我们…...
GAMES104:17 游戏引擎的玩法系统:高级AI-学习笔记
文章目录 课前QA一,层次任务网络(Hierarchical Tasks Network,HTN)1.1 HTN Framework1.2 HTN Task Types1.2.1 Primitive Task基本任务1.2.2 Compound Task符合任务 1.3 Planning1.4 Replan1.5 总结 二,目标导向行为规…...
【Unity】Unity中获取网络时间进行每日和每月刷新
直接上代码 using System; using System.Collections; using System.Collections.Generic; using UnityEngine;public class DateChecker : MonoBehaviour {private DateTime lastCheckedDate; //上次刷新日数据的日期private DateTime lastMonthUtc; //上次刷新月数据的日期T…...
微信小程序上传组件封装uploadHelper2.0使用整理
一、uploadHelper2.0使用步骤说明 uploadHelper.js ---上传代码封装库 cos-wx-sdk-v5.min.js---腾讯云,对象存储封装库 第一步,下载组件代码,放置到自己的小程序项目中 第二步、 创建上传对象,执行选择图片/视频 var _this th…...
力扣每日打卡挑战 3184. 构成整天的下标对数目 I
给你一个整数数组 hours,表示以 小时 为单位的时间,返回一个整数,表示满足 i < j 且 hours[i] hours[j] 构成 整天 的下标对 i, j 的数目。 整天 定义为时间持续时间是 24 小时的 整数倍 。 例如,1 天是 24 小时,…...
The First:Starknet如何让以太坊更快更安全?
随着区块链技术需求的持续增长,当前技术在可扩展性和隐私保护方面的局限性愈发凸显,以太坊网络便是其中的典型代表。为有效应对这些挑战,第二层扩展解决方案的重要性日益凸显。这些方案旨在将部分交易处理转移至以太坊主链之外,以…...
【计算机网络 - 基础问题】每日 3 题(五十三)
✍个人博客:https://blog.csdn.net/Newin2020?typeblog 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞…...
便携式移动消防炮:灵活灭火新选择
在当今快速发展的社会中,火灾安全问题一直是公众安全的重要组成部分。无论是家庭、办公场所还是大型工业区,火灾的发生都可能带来不可预测的巨大损失,传统消防固定系统往往无法迅速适应多变的火场环境,特别是对于那些发生在高层建…...
18.VScode写Java项目的教程
VScode写Java项目的教程 1.首先必选先安装Java解释器2.安装插件Java Extension Pack3.创建项目创建项目结构选择项目类型 4.测试结果源码内容 今天用一台老式笔记本写代码,IDEA跑不动就准备用VScode突然间就蒙了,怎么创建项目啊?于是就有了这…...
本地生活便民信息服务小程序源码系统 PHP+MySQL组合开发 带完整的安装代码包以及搭建部署教程
系统概述 地方门户分类信息网站源码系统是一个基于PHP和MySQL开发的强大平台,旨在帮助用户轻松搭建地方性的分类信息网站。该系统集成了众多实用功能,支持用户自由发帖、浏览和搜索各类信息,如二手交易、求职招聘、房屋租售、生活服务、商家…...
基于MCP协议的学术成果商业化AI管道:从论文到商业机会的自动化桥梁
1. 项目概述:从象牙塔到市场的自动化桥梁看到apifyforge/academic-commercialization-pipeline-mcp这个项目标题,我的第一反应是:终于有人把学术界和产业界之间那道无形的墙,用代码给砌出了一条自动化通道。这个项目本质上是一个“…...
AgentDock:构建可控AI智能体的开源框架与工程实践
1. 项目概述:构建可控的智能体应用框架如果你正在寻找一个既能利用大语言模型(LLM)的创造力,又能确保关键业务流程稳定可靠的开发框架,那么 AgentDock 的出现可能正合你意。我最近深度体验了这个开源项目,它…...
【NotebookLM企业级部署避坑清单】:37家技术团队踩过的12个合规/安全/集成雷区,现在不看下周就宕机
更多请点击: https://intelliparadigm.com 第一章:NotebookLM企业级部署的核心价值与适用边界 NotebookLM 作为 Google 推出的基于文档理解的 AI 助手,其企业级部署并非简单地将 Web 版本私有化,而是围绕数据主权、合规闭环与业…...
大疆智图+B3DM切片+Cesium:5分钟搞定倾斜摄影三维模型在线发布
大疆智图B3DM切片Cesium:零代码实现倾斜摄影三维模型Web发布全指南 当无人机航拍的倾斜摄影数据需要快速在Web端展示时,技术栈的衔接往往成为最大障碍。本文将手把手带您实现从大疆智图生成B3DM切片到Cesium可视化呈现的完整流程,全程无需编写…...
【JWT】JWS与JWE实战解析:从结构差异到安全选型指南
1. JWT、JWS与JWE的核心概念解析 第一次接触JWT相关技术时,我也曾被各种缩写搞得晕头转向。直到在真实项目中踩过几次坑,才真正理解它们之间的关系。简单来说,JWT就像是一个快递包裹,而JWS和JWE则是两种不同的包装方式——前者像…...
C# Winform高效分页实践:SunnyUI uiPagination控件详解与数据绑定
1. 初识SunnyUI uiPagination控件 第一次接触SunnyUI的uiPagination控件是在开发一个订单管理系统时。当时客户抱怨系统加载5000多条记录时会卡顿近10秒,我试过各种传统分页方案都不够理想,直到发现了这个宝藏控件。它就像Winform界的"瑞士军刀&quo…...
基于多智能体架构的AI股票分析系统PRISM-INSIGHT部署与实战
1. 项目概述:一个由13个AI智能体驱动的股票分析与交易系统如果你对AI如何应用于金融投资感兴趣,或者正在寻找一个能自动分析市场、生成专业报告甚至执行交易的开源工具,那么PRISM-INSIGHT值得你花时间深入了解。这不是一个简单的数据可视化工…...
声明式数据转换利器:Refiner 实战指南与架构集成
1. 项目概述与核心价值最近在折腾一个老项目的数据清洗和转换,被一堆格式混乱、结构不一的JSON文件搞得焦头烂额。手动写脚本处理吧,每次需求一变就得重写,维护成本太高;用现成的ETL工具吧,又觉得过于笨重,…...
3步打造你的专属游戏串流服务器:Sunshine终极指南
3步打造你的专属游戏串流服务器:Sunshine终极指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 还在为无法在客厅大电视上玩PC游戏而烦恼吗?想在平板上继…...
构建可靠AI编码代理:OpenClaw-Build工作流详解与实战
1. 项目概述:一个能“闭环”的AI编码代理工作流如果你用过市面上那些号称能自动编程的AI代理,大概率经历过这样的挫败感:你满怀期待地丢给它一个需求,它吭哧吭哧干了两三个任务,然后要么开始“神游”,写出来…...
