分享项目中使用 vxe-table 进行数据分组汇总斌支持排序

news/2025/11/29 11:07:09/文章来源:https://www.cnblogs.com/qaz666/p/19285538

分享项目中使用 vxe-table 进行数据分组汇总斌支持排序,通过配置 aggregate-config.groupFields 指定分组字段

查看官网:https://vxetable.cn
gitbub:https://github.com/x-extends/vxe-table
gitee:https://gitee.com/x-extends/vxe-table

效果

Video_2025-11-14_143549-ezgif.com-video-to-gif-converter (2)

代码

通过 aggFunc 自动显示子项计数,如果需要自定义计算逻辑,比如合计数量,可以通过 aggregate-config.calcValuesMethod 自定义列的汇总计算值。

<template><div><vxe-grid v-bind="gridOptions"></vxe-grid></div>
</template><script setup>
import { reactive } from 'vue'const gridOptions = reactive({height: 500,aggregateConfig: {groupFields: ['role']},columns: [{ field: 'name', title: 'Name', minWidth: 300, rowGroupNode: true },{ field: 'role', title: 'Role' },{ field: 'sex', title: 'Sex' },{ field: 'age', title: 'Age', sortable: true, aggFunc: true },{ field: 'address', title: 'Address' }],data: [{ id: 10001, name: 'Test1', role: 'Develop', sex: 'Woman', age: 28, date: '2025-02-01', address: 'test abc' },{ id: 10002, name: 'Test2', role: 'Test', sex: 'Man', age: 22, date: '2025-01-01', address: 'Guangzhou' },{ id: 10003, name: 'Test3', role: 'PM', sex: 'Woman', age: 32, date: '2025-05-01', address: 'Shanghai' },{ id: 10004, name: 'Test4', role: 'Designer', sex: 'Man', age: 32, date: '2025-01-01', address: 'test abc' },{ id: 10005, name: 'Test5', role: 'Develop', sex: 'Man', age: 30, date: '2025-01-01', address: 'Shanghai' },{ id: 10006, name: 'Test6', role: 'Designer', sex: 'Man', age: 30, date: '2025-03-01', address: 'test abc' },{ id: 10007, name: 'Test7', role: 'Test', sex: 'Woman', age: 29, date: '2025-05-01', address: 'test abc' },{ id: 10008, name: 'Test8', role: 'PM', sex: 'Woman', age: 35, date: '2025-11-01', address: 'test abc' },{ id: 10009, name: 'Test9', role: 'Test', sex: 'Man', age: 21, date: '2025-05-01', address: 'test abc' },{ id: 10010, name: 'Test10', role: 'PM', sex: 'Woman', age: 28, date: '2025-03-01', address: 'test abc' },{ id: 10011, name: 'Test11', role: 'Test', sex: 'Woman', age: 29, date: '2025-03-01', address: 'test abc' },{ id: 10012, name: 'Test12', role: 'Develop', sex: 'Man', age: 37, date: '2025-10-01', address: 'test abc' },{ id: 10013, name: 'Test13', role: 'Test', sex: 'Woman', age: 24, date: '2025-02-01', address: 'test abc' },{ id: 10014, name: 'Test14', role: 'Develop', sex: 'Man', age: 34, date: '2025-08-01', address: 'test abc' },{ id: 10015, name: 'Test15', role: 'Designer', sex: 'Man', age: 21, date: '2025-05-01', address: 'test abc' },{ id: 10016, name: 'Test16', role: 'Designer', sex: 'Woman', age: 21, date: '2025-10-01', address: 'test abc' },{ id: 10017, name: 'Test17', role: 'Test', sex: 'Man', age: 31, date: '2025-12-01', address: 'test abc' },{ id: 10018, name: 'Test18', role: 'Develop', sex: 'Woman', age: 32, date: '2025-10-01', address: 'test abc' },{ id: 10019, name: 'Test19', role: 'Test', sex: 'Man', age: 37, date: '2025-02-01', address: 'test abc' },{ id: 10020, name: 'Test20', role: 'Develop', sex: 'Man', age: 41, date: '2025-03-01', address: 'test abc' }]
})
</script>

自定义汇总方式

通自定义 aggregate-config.calcValuesMethod 对子项进行汇总合计,具体计算逻辑自己写非常灵活。

image

<template><div><vxe-grid v-bind="gridOptions"></vxe-grid></div>
</template><script setup>
import { reactive } from 'vue'const gridOptions = reactive({height: 500,showOverflow: true,aggregateConfig: {groupFields: ['role'],calcValuesMethod ({ column, children }) {if (column.field === 'num') {let numSum = 0children.forEach(item => {numSum += item.num})return numSum}if (column.field === 'age') {let ageCount = 0children.forEach(item => {ageCount += item.age})return Math.floor(ageCount / children.length)}return 0}},columns: [{ type: 'seq', width: 70 },{ field: 'name', title: 'Name', minWidth: 300, rowGroupNode: true },{ field: 'role', title: 'Role' },{ field: 'num', title: 'Num', aggFunc: true },{ field: 'age', title: 'Age', aggFunc: true },{ field: 'address', title: 'Address' }],data: [{ id: 10001, name: 'Test1', role: 'Develop', sex: 'Woman', age: 28, num: 63, date: '2025-02-01', address: 'test abc' },{ id: 10002, name: 'Test2', role: 'Test', sex: 'Man', age: 22, num: 63, date: '2025-01-01', address: 'Guangzhou' },{ id: 10003, name: 'Test3', role: 'PM', sex: 'Woman', age: 32, num: 10, date: '2025-05-01', address: 'Shanghai' },{ id: 10004, name: 'Test4', role: 'Designer', sex: 'Man', age: 32, num: 24, date: '2025-01-01', address: 'test abc' },{ id: 10005, name: 'Test5', role: 'Develop', sex: 'Man', age: 30, num: 98, date: '2025-01-01', address: 'Shanghai' },{ id: 10006, name: 'Test6', role: 'Designer', sex: 'Man', age: 30, num: 46, date: '2025-03-01', address: 'test abc' },{ id: 10007, name: 'Test7', role: 'Test', sex: 'Woman', age: 29, num: 35, date: '2025-05-01', address: 'test abc' },{ id: 10008, name: 'Test8', role: 'PM', sex: 'Woman', age: 35, num: 84, date: '2025-11-01', address: 'test abc' },{ id: 10009, name: 'Test9', role: 'Test', sex: 'Man', age: 21, num: 25, date: '2025-05-01', address: 'test abc' },{ id: 10010, name: 'Test10', role: 'PM', sex: 'Woman', age: 28, num: 32, date: '2025-03-01', address: 'test abc' },{ id: 10011, name: 'Test11', role: 'Test', sex: 'Woman', age: 29, num: 24, date: '2025-03-01', address: 'test abc' },{ id: 10012, name: 'Test12', role: 'Develop', sex: 'Man', age: 37, num: 28, date: '2025-10-01', address: 'test abc' },{ id: 10013, name: 'Test13', role: 'Test', sex: 'Woman', age: 24, num: 38, date: '2025-02-01', address: 'test abc' },{ id: 10014, name: 'Test14', role: 'Develop', sex: 'Man', age: 34, num: 46, date: '2025-08-01', address: 'test abc' },{ id: 10015, name: 'Test15', role: 'Designer', sex: 'Man', age: 21, num: 48, date: '2025-05-01', address: 'test abc' },{ id: 10016, name: 'Test16', role: 'Designer', sex: 'Woman', age: 21, num: 59, date: '2025-10-01', address: 'test abc' },{ id: 10017, name: 'Test17', role: 'Test', sex: 'Man', age: 31, num: 81, date: '2025-12-01', address: 'test abc' },{ id: 10018, name: 'Test18', role: 'Develop', sex: 'Woman', age: 32, num: 75, date: '2025-10-01', address: 'test abc' },{ id: 10019, name: 'Test19', role: 'Test', sex: 'Man', age: 37, num: 80, date: '2025-02-01', address: 'test abc' },{ id: 10020, name: 'Test20', role: 'Develop', sex: 'Man', age: 41, num: 60, date: '2025-03-01', address: 'test abc' }]
})
</script>

https://gitee.com/x-extends/vxe-table

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

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

相关文章

告别“提示词焦虑”:猛犸AI智能体培训,旨在培养真正的“AI指挥官”

随着人工智能技术的普及,一场围绕“AI能力”的军备竞赛已在职场全面展开。然而,当市面上绝大多数课程仍停留在“如何写好提示词”的初级阶段时,一种更深层次的智能体培训模式正悄然兴起,并迅速成为企业和个人寻求构…

【窗口】set这类有序容器的使用和自定义

这个题目我使用的是使用set的容器思路; 关于set容器: 1.set默认排序是从小到大,并且默认的比较器只支持int,double,string,pair<int,int>,tuple的自动排序; 一般来说,我们使用的较多的都是自定义的结构体:…

【URP】Unity[内置Shader]简单光照SimpleLit

SimpleLit Shader的作用与原理 SimpleLit Shader是Unity通用渲染管线(URP)中的一种轻量级着色器,主要用于低端设备或需要高效渲染的场景。它采用简化的Blinn-Ph【从UnityURP开始探索游戏渲染】专栏-直达SimpleLit Sha…

2025年口碑好的医药冷链国际空运专业技术口碑榜

2025年口碑好的医药冷链国际空运专业技术口碑榜医药冷链国际空运行业背景与市场趋势随着全球医药产业的快速发展,特别是生物制药、疫苗、诊断试剂等温度敏感型医药产品的需求激增,医药冷链国际空运市场迎来了前所未有…

2025年河北沥青路面摊铺公司权威推荐榜单:河道护坡工程/市政道路大修/停车场路面改造服务商精选

在河北省基础设施建设持续升级的背景下,沥青路面摊铺市场需求稳步增长。数据显示,2025年河北省道路建设投资额较2024年预计提升18%,其中沥青混凝土路面在新建及改造项目中的应用占比高达75%以上。为帮助需求方精准筛…

中老年人钙片推荐哪款好?2025年12月十大中老年钙片品牌推荐

随着年龄增长,中老年人面临骨质疏松、腰腿酸痛等健康问题,补钙成为刚需。然而,传统碳酸钙类产品常因需依赖胃酸、易引起肠胃不适等问题,难以满足中老年群体需求。本文聚焦中老年人补钙核心痛点:吸收能力下降、肠胃…

2025年口碑好的钐钴永磁器件用户好评厂家排行

2025年口碑好的钐钴永磁器件用户好评厂家排行钐钴永磁材料行业背景与市场趋势钐钴永磁材料作为高性能永磁材料的重要组成部分,因其优异的温度稳定性、高矫顽力和良好的耐腐蚀性,在高端应用领域占据着不可替代的地位。…

廊坊市农村自建房找谁好?河北廊坊市自建房公司/机构深度评测口碑推荐榜

廊坊市农村自建房找谁好?河北廊坊市自建房公司/机构深度评测口碑推荐榜 一、引言:廊坊农村自建房的“专业化转型” 地处京畿腹地的廊坊,素有“京津走廊明珠”之称,其农村自建房的风格与需求,始终深深烙印着地域特…

2025年知名的赣州装修公司别墅装修/赣州装修公司别墅设计方案

2025年知名的赣州装修公司别墅装修/赣州装修公司别墅设计方案赣州别墅装修市场现状与趋势随着赣州经济的持续发展和居民生活水平的提升,别墅装修市场呈现出蓬勃发展的态势。2024年赣州房地产市场数据显示,高端住宅成…

2025年家电产品外观设计公司推荐排行榜前十强

摘要 2025年家电行业外观设计需求持续增长,智能化、个性化成为主流趋势。本文基于市场调研和用户反馈,整理出2025年家电产品外观设计公司推荐排行榜前十强,为行业从业者提供参考。榜单结合推荐指数、口碑评分等维度…

在石家庄市老家农村盖房子哪个平台靠谱?河北省石家庄市自建房公司/机构权威测评推荐排行榜

在石家庄市老家农村盖房子哪个平台靠谱?河北省石家庄市自建房公司/机构权威测评推荐排行榜 一、引言 十年前,石家庄市农村盖房还停留在“找本村工匠、画简易草图”的粗放模式。从藁城、晋州的平原砖瓦房,到平山、灵…

2025年评价高的环保咨询技术服务热门推荐榜

2025年评价高的环保咨询技术服务热门推荐榜行业背景与市场趋势随着全球环保意识的不断提升和各国环保法规的日趋严格,环保咨询技术服务行业在2025年迎来了前所未有的发展机遇。根据市场调研数据显示,全球环保咨询市场…

2025年知名的标书制作/成都标书优质服务榜

2025年知名的标书制作/成都标书优质服务榜行业背景与市场趋势随着中国招投标市场的日益规范化和专业化,标书制作服务行业迎来了快速发展期。2024年数据显示,全国政府采购规模已突破4万亿元,企业招投标活动更加频繁,…

河北石家庄市农村自建房口碑推荐榜,2026年自建房公司权威测评优选

河北石家庄市农村自建房口碑推荐榜,2026年自建房公司权威测评优选 一、引言:建房是一辈子的事,选对伙伴比省钱更重要 “石家庄农村建房,找哪家公司靠谱?”——这是鹿泉区准备翻新石窑民居的张大哥、元氏县计划建采…

2025年LED户外灯具定做厂家权威推荐榜单:LED洗墙灯/LED地埋灯/LED霓虹灯带源头厂家精选

在城市化进程加速与夜经济蓬勃发展的背景下,LED户外灯具定制需求显著增长。数据显示,2025年中国LED户外照明市场规模预计突破800亿元,其中定制化灯具占比达35%,较2023年提升12%。为帮助用户精准筛选供应商,本文基…

2025年市面上四川密封件优质厂家推荐榜

2025 年市面上四川密封件优质厂家推荐榜随着工业制造升级与基建工程扩容,密封件作为关键配套产品,其质量与性能直接影响项目安全稳定性。四川凭借完善的工业体系与技术研发实力,成为西南地区密封件产业核心产区。20…

2025年优质成都制氢设备厂家推荐及采购指南

2025 年优质成都制氢设备厂家推荐及采购指南随着 “双碳” 战略深入推进,氢能作为清洁能源的重要组成部分,市场需求呈爆发式增长。据中国氢能联盟数据,2024 年国内制氢设备市场规模突破 300 亿元,其中西南地区因工…

完整教程:【机器学习入门】55.[第5章 监督学习算法] 逻辑回归的真正实力:可解释与稳健的基线王者

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年家电产品外观设计公司排行 top 5:专业选择与经验分享

摘要 2025年家电产品外观设计行业正迎来智能化、个性化浪潮,随着消费者对产品美感和功能融合的需求提升,专业设计公司成为企业成功的关键。本文基于市场数据和行业洞察,为您推荐top 5设计公司,并提供详细排行和案例…

河北廊坊市农村自建房口碑推荐榜,2026年自建房公司权威测评优选

河北廊坊市农村自建房口碑推荐榜,2026年自建房公司权威测评优选 一、引言:建房是一辈子的事,选对设计公司比省钱更重要 “在廊坊农村建房,找哪家公司靠谱?”——这是环京腹地廊坊市无数准备翻建老宅、新建家宅的农…