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

el-table vue3统计计算数字

固定合计在最下列

父组件

<template><el-tablev-loading="loading"tooltip-effect="light":data="list"style="width: 100%":max-height="maxHeight"element-loading-text="拼命加载中...":header-cell-style="{backgroundColor: '#d3d7e3',color: '#303030',}"><!-- 此处省略 --></el-table><!-- 合计固定最下面 --><div v-if="sum.length !== 0" style="height: calc(100vh - 320px); padding-top: 11px"><tables :sum="sum"></tables></div>
</template>
<script lang="ts" setup>
const sum = ref<any>([])
const list = ref<any>([])
const loading = ref(false)
onMounted(() => {createdTable()
})
const createdTable = () => {sum.value = []loading.value = truelist.value = [{num1: 0,num2: 0,id: '001',num3: 0,num4: 0,num5: 0,num6: 0,nonum6: 2,name: 'y杨妮',num7: 0,num8: 2,taskObjectivesLoading: false,},{num1: 0,num2: 0,id: '002',num3: 0,num4: 0,num5: 0,num6: 0,nonum6: 1,name: '乌鸦你',num7: 0,num8: 1,taskObjectivesLoading: false,},{num1: 1,num2: 0,id: '00G01',num3: 0,num4: 0,num5: 0,num6: 0,nonum6: 1,name: '菜百',num7: 0,num8: 1,taskObjectivesLoading: false,},]if (list.value.length !== 0) {const sums = reactive({num8: 0,num6: 0,nonum6: 0,num1: 0,num4: 0,num2: 0,num3: 0,num7: 0,num5: 0,name: '合计',})list.value.forEach((item: any) => {sums.num8 += item.num8sums.num6 += item.num6sums.nonum6 += item.nonum6sums.num1 += item.num1sums.num4 += item.num4sums.num2 += item.num2sums.num3 += item.num3sums.num7 += item.num7sums.num5 += item.num5})sum.value = [sums]}loading.value = false
}
</script>

子组件

<template><el-tabletooltip-effect="light":data="props.sum"style="width: 100%":show-header="false":row-style="getRowStyle":highlight-current-row="false"class="table-style"><!-- 此处省略 --></el-table>
</template>
<script lang="ts" setup>
const props = defineProps({sum: {type: Array,},
})
const getRowStyle = (row: any) => {const v = rowif (v.rowIndex === 0) {return {backgroundColor: '#f5f7fa',}}
}
</script>
<style scoped>
.el-table tr {background: #d3d7e3 !important;
}
::v-deep .el-table__row:hover {background: rgba(14, 95, 255, 0.5) !important;
}::v-deep.el-table .el-table__row:hover {background-color: inherit !important;
}
.table-color .el-table__body .el-table__row.hover-row td {background-color: #eec591 !important;
}
</style>

数据

const ui = [{num1: 0,num2: 0,id: '001',num3: 0,num4: 0,num9: 0,num6: 0,nonum6: 2,name: '兔鳄',num7: 0,num10: 2,taskObjectivesLoading: false,},{num1: 0,num2: 0,id: '002',num3: 0,num4: 0,num9: 0,num6: 0,nonum6: 1,name: '以恶',num7: 0,num10: 1,taskObjectivesLoading: false,},{num1: 1,num2: 0,id: '00G01',num3: 0,num4: 0,num9: 0,num6: 0,nonum6: 1,name: '后世',num7: 0,num10: 1,taskObjectivesLoading: false,},
]
计算num10,num6,nonum6,num1,num4,num2,num3,num7,num9// 初始化总和对象
const sums = {num10: 0,num6: 0,nonum6: 0,num1: 0,num4: 0,num2: 0,num3: 0,num7: 0,num9: 0,
};// 遍历数组并累加每个字段的值
ui.forEach(item => {sums.num10 += item.num10;sums.num6 += item.num6;sums.nonum6 += item.nonum6;sums.num1 += item.num1;sums.num4 += item.num4;sums.num2 += item.num2;sums.num3 += item.num3;sums.num7 += item.num7;sums.num9 += item.num9;
});// 输出总和
console.log(sums);

http://www.lryc.cn/news/490911.html

相关文章:

  • IDE应当具备的功能
  • Stable Diffusion初步见解(二)
  • 前端框架 react 性能优化
  • RK3568平台开发系列讲解(Input子系统篇)输入子系统介绍
  • 准备阶段 Profiler性能分析工具的使用(一)
  • go-rod vs Selenium:自动化测试工具的比较与选择
  • 探索免费的Figma中文版:开启高效设计之旅
  • 功能齐全,支持协作 | Docker部署一款支持多人共享的私密浏览器『n.eko』
  • 部署实战(二)--修改jar中的文件并重新打包成jar文件
  • Ubuntu24.04——软件包系统已损坏
  • 2024年华为OD机试真题-空栈压数-C++-OD统一考试(E卷)
  • 嵌入式Linux基于IMX6ULL tslib学习总结
  • go中的参数传递是值传递还是引用传递?
  • 记录一种在内核空间向用户空间通知中断的方法
  • .NetCore 过滤器和拦截器 的区别
  • 【笔记】自动驾驶预测与决策规划_Part7_数据驱动的预测方法
  • React渲染相关内容——渲染流程API、Fragment、渲染相关底层API
  • Python中dict支持多个key的方法
  • 丹摩 | 基于PyTorch的CIFAR-10图像分类实现
  • C#变量和函数如何和unity组件绑定
  • AI模型---安装cuda与cuDNN
  • 【大数据学习 | Spark-Core】Spark提交及运行流程
  • 内网渗透横向移动1
  • 现代密码学
  • Pod 动态分配存储空间实现持久化存储
  • Jackson、Gson、FastJSON三款JSON利器比拼
  • php:nginx如何配置WebSocket代理?
  • 3349、检测相邻递增子数组 Ⅰ
  • C++笔记之函数入参传递std::unique_ptr 时使用 std::move的场景
  • 怎么只提取视频中的声音?从视频中提取纯音频技巧