element的el-table自定义最后一行的实现代码
element的el-table自定义最后一行
场景:
最后一行要显示一些其他结果,用的是element ui 自带的数据总计的属性;返回一个数组,会按下标进行展示。
代码:
<el-table
:summary-method="getSummaries"
show-summary
:data="tableData"
stripe
style="width: 50% ;margin-top: 20px;font-size: 15px;">
<el-table-column prop="date" label="日期" width="180">
</el-table-column>
<el-table-column prop="name" label="姓名" width="180">
</el-table-column>
<el-table-column prop="address" label="地址">
</el-table-column>
</el-table>
重点在于getSummaries这个自定义的方法,返回一个数组即可以显示
getSummaries(param) {
const { columns } = param
const sums = []
columns.forEach((column, index) => {
switch (index) {
case 0:
sums[index] = '是否通过'
break
case 1:
sums[index] = 'erewrwr'
break
case 2:
sums[index] = 'erewrwr'
break
case 3:
sums[index] = 'erewrwr'
break
}
})
return sums
},element-ui中的el-table底部固定指定行
1,固定一行合计的情况
https://element.eleme.cn/#/zh-CN/component/table
直接使用官方文档上的summary-method
2,固定指定行或者多行
使用样式去固定
例子:(计算列表数据的平均值,最大值,最小值并固定底部)
1,计算数据的值
protected calcData(data: any) {
const sums: any = {};
const max: any = {};
const min: any = {};
const columns = this.$refs["coverTable"]?.columns;
columns.forEach((column: any, index: number) => {
if (index === 0) {
sums[column.property] = "平均值";
max[column.property] = "最大值";
min[column.property] = "最小值";
return;
}
const values = data.map((item: any) => Number(item[column.property]));
if (!values.every((value: any) => isNaN(value))) {
// 总和
sums[column.property] = values.reduce((prev: any, curr: any) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
// 最大值
max[column.property] = values.reduce((prev: any, curr: any) => {
const value = Number(curr);
if (!isNaN(value) && curr > prev) {
return curr;
} else {
return prev;
}
});
// 最小值
min[column.property] = values.reduce((prev: any, curr: any) => {
const value = Number(curr);
if (!isNaN(value) && curr > prev) {
return prev;
} else {
return curr;
}
});
} else {
sums[column.property] = "N/A";
max[column.property] = "N/A";
min[column.property] = "N/A";
}
});
const average: any = {};
for (const i in sums) {
if (!isNaN(sums[i])) {
average[i] = (sums[i] / data.length).toFixed(3);
} else {
average[i] = sums[i];
}
}
if (this.tableData.length > 0) this.tableData.push(average, max, min);
}2,对要固定的三行设置class
// 行固定
tableRowClassName(params: any) {
const { row, rowIndex } = params;
row.index = rowIndex;
// 最后三行固定
if (rowIndex + 1 === this.tableData.length - 2) {
return `tr-fixed fixed-row2`;
} else if (rowIndex + 1 === this.tableData.length - 1) {
return `tr-fixed fixed-row1`;
} else if (rowIndex + 1 === this.tableData.length) {
return `tr-fixed fixed-row`;
} else {
return ``;
}
}3, 样式控制
.el-table {
.tr-fixed{
display: table-row;
position: sticky;
bottom: 0;
width: 100%;
td {
border: 1px solid #f3f5fa;
background: #fff;
}
}
.fixed-row{
bottom: 0;
}
.fixed-row1{
bottom: 0.5rem;
}
.fixed-row2{
bottom: 1rem;
}
}4,效果
栏 目:JavaScript
本文标题:element的el-table自定义最后一行的实现代码
本文地址:https://zz.feitang.co/wangluobiancheng/246.html
您可能感兴趣的文章
- 07-25如何使用 Deepseek 写的uniapp油耗计算器
- 07-25JavaScript其他类型的值转换为布尔值的规则详解
- 07-25JavaScript实现给浮点数添加千分位逗号的多种方法
- 07-25ReactNative环境搭建的教程
- 07-25JavaScript获取和操作时间戳的用法详解
- 07-25通过Vue实现Excel文件的上传和预览功能
- 07-25Node使用Puppeteer监听并打印网页的接口请求
- 07-25在Node.js中设置响应的MIME类型的代码详解
- 07-25Vue3解决Mockjs引入后并访问404(Not Found) 的页面报错问题
- 07-25如何利用SpringBoot与Vue3构建前后端分离项目


阅读排行
推荐教程
- 04-23JavaScript Array实例方法flat的实现
- 04-23Vue3使用v-if指令进行条件渲染的实例代码
- 04-23THREE.JS使用TransformControls对模型拖拽的代码实例
- 07-21JavaScript判断数据类型的四种方式总结
- 07-22JavaScript随机数生成各种技巧及实例代码
- 07-21JavaScript检查变量类型的常用方法
- 07-21基于vue3与supabase系统认证机制详解
- 04-23vue3+ts项目搭建的实现示例
- 07-21JavaScript双问号操作符(??)的惊人用法总结大全
- 07-22使用Node.js实现GitHub登录功能









