vue3.0+antd实现嵌套子表格 一个按钮展开全部

文章详细描述了如何在Vue的表格中使用递归组件展示树形结构数据,并实现展开/收缩功能,包括`expandedRowsChange`处理和`expandAllRows`方法的实现。
摘要由CSDN通过智能技术生成

在这里插入图片描述
直接上代码

<a-table
				:columns="columns"
				:data-source="data"
				size="small"
				:pagination="false"
				@expanded-rows-change="expandedRowsChange"
				:expanded-row-keys="expRowKeys"
			>
				<template #expandIcon="props">
					<span v-if="props.record.children">
						<div
							v-if="props.expanded"
							style="display: inline-block; margin-right: 10px"
							@click="
								(e) => {
									props.onExpand(props.record, e)
								}
							"
						>
							<CaretDownOutlined />
						</div>
						<div
							v-else
							style="display: inline-block; margin-right: 10px"
							@click="
								(e) => {
									props.onExpand(props.record, e)
								}
							"
						>
							<CaretRightOutlined />
						</div>
					</span>
					<span v-else style="margin-right: 29px"></span>
				</template>
				<template #operation="{ record }">
					<a-space v-if="record.children">
						<a-button
							type="link"
							block
							@click="onAddcategoryBtn('addChild', record)"
							v-if="!record.isShow"
							>新增子集</a-button
						>
						<a-button type="link" block @click="onAddcategoryBtn('edit', record)"
							>编辑</a-button
						>
						<a-button type="text" danger @click="onDelete(record)">删除</a-button>
					</a-space>
					<a-space v-else>
						<a-button type="link" block @click="onAddcategoryBtn('edit', record)"
							>编辑</a-button
						>
						<a-button type="text" danger @click="onDelete(record)">删除</a-button>
					</a-space>
				</template>
			</a-table>
const isAllexp = ref<boolean>(true)
const expandedRowsChange = (val) => {
	expRowKeys.value = val
}
// 点击按钮可实现展开与收缩
const expandAllRows = () => {
	if (isAllexp.value) {
		isAllexp.value = false
		// 全部展开
		const expandRows = []
		for (let index = 0; index < data.length; index += 1) {
			const element = data[index]
			expandRows.push(element.key)
		}
		expandedRowsChange(expandRows)
	} else {
		isAllexp.value = true
		// 全部收回
		expandedRowsChange([])
	}
}
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值