element-plus 官方API 默认表格排序存在问题,一个list 被多组排序 修改后: useSortTable.js [code]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; 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]; } };[/code]到此这篇关于element-plus 官方表格排序问题的文章就介绍到这了,更多相关element-plus 官方表格排序内容请搜刮脚本之家从前的文章或继续浏览下面的相关文章渴望大家以后多多支持脚本之家! 来源:https://www.jb51.net/javascript/328885rse.htm 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|手机版|小黑屋|梦想之都-俊月星空
( 粤ICP备18056059号 )|网站地图
GMT+8, 2025-7-2 03:07 , Processed in 0.034050 second(s), 19 queries .
Powered by Mxzdjyxk! X3.5
© 2001-2025 Discuz! Team.