elment ui table有一个展开行
拿来即用、其中返回this.total即是合计这个字段,只需将this.total修改为你的项目的合计字段即可
getSummaries(param) {
const { columns, data } = param;
const sums = [];
const currentIndex = columns.length-1;
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计';
return;
}else if(currentIndex==index){
sums[index] = this.total;
}else{
sums[index] = '';
}
});
return sums;
},
<el-table
border
show-summary
:summary-method="getSummaries"
:formatter="formatter"
:data="accountCostList"
>
完美撒花!!!!!!!
这个问题可以通过修改Element UI的表格组件来实现。以下是解决问题的步骤和代码:
<template slot-scope="props">
<tr>
<!-- 此处为原始表格的内容 -->
<td>{{ props.row.date }}</td>
<td>{{ props.row.name }}</td>
<td>{{ props.row.value }}</td>
<td>{{ props.row.address }}</td>
</tr>
<tr>
<!-- 此处为详情信息的内容 -->
<td colspan="4">这里是详情信息</td>
</tr>
</template>
expand-row-keys
,将其值设置为一个数组,数组的每个元素代表需要展开的行的key:<el-table :data="formData.tableData" style="width: 100%" :expand-row-keys="expandRowKeys">
expandRowKeys
数组,用于存储需要展开的行的key:data() {
return {
expandRowKeys: [] // 存储需要展开的行的key
}
}
expandRowKeys
数组:methods: {
handleRowClick(row) {
const index = this.expandRowKeys.indexOf(row.key)
if (index === -1) { // 如果点击的行还未展开,则展开
this.expandRowKeys.push(row.key)
} else { // 如果点击的行已经展开,则关闭
this.expandRowKeys.splice(index, 1)
}
}
}
<el-table :data="formData.tableData" style="width: 100%" @row-click="handleRowClick">
现在,点击每一行的时候,就可以展开或关闭对应的详情信息了。
这样,你就成功地实现了在每一行下方添加一个详情信息的功能。希望这个解决方案对你有帮助!