Element UI中el-table中的expand展开表格功能,实现手风琴效果(适用低版本elementUI)

2 篇文章 0 订阅
1 篇文章 0 订阅

问题:在el-table中,当我们在点击小三角图标展开表格时,不能自动关闭其它已展开的行!
实现效果:点击小三角,展开当前行,自动关闭其它已展开的行。
在这里插入图片描述

//示例代码
<template>
	<el-table
	    :data="tableData"
	    :row-key="getRowKeys"
	    :expand-row-keys="expands"
	    @current-change="toggleRowExpansion"
	    >
	    <el-table-column type="expand">
	    	<el-table :data="tableExpandData">
	    		...
	    	</el-table>
	    </el-table-column>
	</el-table>
</template>

data() {
      return {
	      	tableData: [],
	      	tableExpandData: [],
	      	
	      	getRowKeys(row) {
		    	return row.sku // 通过此方法,可以为表格中的每一行设置一个唯一的key值
		  	},
		  	expands: [], // 要展开的行,数值是行的key值
      }
}

methods: {
    // table 展开,实现手风琴的效果
    toggleRowExpansion(row) {
        this.expands = [row.sku] // 要展开的当前行
        
        this.$ajax
            .get('/yypms/pms/hwcDevelopmentProject/getSkuViewInfoBySku?sku=' + row.sku)
            .then((res) => {
                if (res.data.code == '200') {
                    this.tableExpandData = res.data.obj
                }
            }
        );
    }
}

感谢原作者:https://blog.csdn.net/sinat_33312523/article/details/78928236

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Element UI,要展开`el-table`表格的行,你可以使用`expand-row-keys`属性来控制展开的行。首先,你需要在表格的数据添加一个属性用于标识是否展开该行,比如命名为`expanded`。然后,在`el-table`组件上添加`expand-row-keys`属性,并将其绑定到一个数组,用于存储展开的行的唯一标识。最后,在表格的列配置,使用`scoped-slot`来自定义展开的内容。 下面是一个示例代码: ```html <template> <el-table :data="tableData" :expand-row-keys="expandedRows" @expand-change="handleExpandChange" > <!-- 自定义展开内容 --> <template v-slot="{ row }"> <el-form :inline="true"> <el-form-item label="姓名"> {{ row.name }} </el-form-item> <el-form-item label="年龄"> {{ row.age }} </el-form-item> <!-- 其他表单项 --> </el-form> </template> <!-- 表格列配置 --> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="age" label="年龄"></el-table-column> <!-- 其他列配置 --> </el-table> </template> <script> export default { data() { return { tableData: [ { name: '张三', age: 18, expanded: false }, { name: '李四', age: 20, expanded: false }, // 其他数据 ], expandedRows: [] // 存储展开的行的唯一标识 }; }, methods: { handleExpandChange(row, expanded) { // 当展开行变化时更新expandedRows数组 if (expanded) { this.expandedRows.push(row); // 将展开的行添加到数组 } else { const index = this.expandedRows.findIndex(item => item === row); if (index > -1) { this.expandedRows.splice(index, 1); // 从数组移除收起的行 } } } } }; </script> ``` 这是一个基本的示例,你可以根据你的实际需求自定义展开内容和其他列配置。请注意,你需要根据实际情况修改表格数据和列配置的属性名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值