在使用中发现开启了expand后我点击一个展开后,在点击其他的上一个不会收起来,导致页面被拉的很长,不方便阅读,使用下面的方式可以实现展开下一个的同时收起其他已经展开的
原理是借助了文档中的_expanded来进行控制,原文中_expanded=true就是展开,我们只要循环这个表格数据把当前展开的_expanded设置为true其他为fasle就可以了
1.设置@on-row-click事件,点击当前行就触发展开事件,但是我发现我点击表格里面的编辑按钮也会触发点击当前行事件,后面就在编辑按钮加一个.stop修饰符防止他去触发点击当前行事件就可以了
<Table
ref="table"
:columns="columns"
:data="tabList"
class="ivu-mt"
:loading="loading"
no-data-text="暂无数据"
@on-row-click="rowClick"
no-filtered-data-text="暂无筛选结果"
>
<template slot-scope="{ row, index }" slot="right">
<Button @click.stop="editRotation(row, index)" style="margin: 0 2px">
编辑</Button
>
</template>
2.rowClick代码
//点击当前行
rowClick(row, index) {
// row._expanded=true
console.log("查看当前行", row);
this.tabList.forEach((item,i)=>{ //这个循环是为了每次只能展开一个,其他自动收起,不需要可以去掉
i !== index ? this.tabList[i]._expanded = false : '';
})
this.tabList[index]._expanded = !this.tabList[index]._expanded;
this.tabList.sort()
},
这样就实现了iVuew展开一个功能