element ui 表格节点 expand - change 控制每次只展开一行
element ui 表格控件每次只展开一行
在项目中经常会有表格嵌套表格或者表格嵌套表单动态渲染的情况,这时候就可以使用表格的原生控件expand属性具体用法看官网文档https://element.eleme.cn/#/zh-CN/component/table,但是官网给的是点开一行,再点击下一行时上一次点开的不收起,依然打开,这样数据渲染的时候会有问题。expand - change的使用方法为当用户对某一行展开或者关闭的时候会触发该事件(展开行时,回调的第二个参数为 expandedRows;树形表格时第二参数为 expanded)同时可以调用接口 具体参考官网
代码如下
<el-table
v-loading="loading"
ref="refTable"
:data="eqTableData"
:max-height="hight"
:row-key="getRowKeys" //获取当前行id
:expand-row-keys="expands" //只展开一行放入当前行id
@expand-change="exChange"
>
<el-table-column type="expand">
<template slot-scope="scope">
<el-table
ref="tableChild"
:data="dataList"
align="center"
>
<el-table-column
align="center"
label="时间"
prop="recordDate"
/>
<el-table-column
label="参数"
prop="param"
min-width="50%"/>
<el-table-column
label="异常原因"
prop="reason"
min-width="50%"/>
<el-table-column
align="center"
label="预计读数"
prop="predictData"
min-width="50%"/>
<el-table-column
align="center"
label="实际读数"
prop="actualData"
min-width="50%"
/>
<el-table-column
align="center"
label="操作"
>
<template slot-scope="scope">
<el-button
size="mini"
@click="handleIgnore(scope.$index, scope.row)">忽略</el-button>
<el-button
size="mini"
type="danger"
@click="handleCorrect(scope.$index, scope.row)">修正</el-button>
</template>
</el-table-column>
</el-table>
</template>
</el-table-column>
<el-table-column
label="设备ID"
prop="eqId"/>
<el-table-column
label="所在大厦"
prop="blName"/>
<el-table-column
label="所在楼层"
prop="flName"/>
</el-table>
export default {
data() {
return {
//设置row-key只展示一行
expands: [],//只展开一行放入当前行id
getRowKeys: (row) => {/获取当前行id
// console.log(row)
return row.eqId //这里看这一行中需要根据哪个属性值是id
},
eqTableData: [],
dataList: []
}
}
methods:{
exChange(row, rowList) {
// console.log(row)
this.loading = true
var that = this
if (rowList.length) { // 只展开一行//说明展开了
that.expands = []
if (row) {
that.expands.push(row.eqId)// 只展开当前行id
}
// this.tablaData(row.eqId) 这里可以调用接口数据渲染
} else { // 说明收起了
that.expands = []
}
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本