当前位置: 首页 > news >正文

element-plus 按钮 展开/隐藏

文章目录

  • 1、小记
  • 2、页面
  • 3、typescript事件
  • 4、测试数据
  • 5、样式

1、小记

element-plus中el-table 的 expand,箭头控制子项显示,有点丑。
想实现类似bootstrap ,用按钮 展开/隐藏子项的功能
在这里插入图片描述在这里插入图片描述

2、页面

<!-- 表内容 --><el-table:data="tableData":border="true":preserve-expanded-content="true"style="width: 100%":expand-row-keys="expands":row-key="getRowKeys"><!-- 子项 --><el-table-column type="expand" width="0"><!-- width隐藏列 --><template #default="props"><div m="4" class="expandcontent"><el-table :data="props.row.family" :border="true" :color="'red'"><el-table-column label="Name" prop="name" /><el-table-column label="State" prop="state" /><el-table-column label="City" prop="city" /><el-table-column label="Address" prop="address" /><el-table-column label="Zip" prop="zip" /></el-table></div></template></el-table-column><!-- 其他数据列 --><el-table-column label="Date" prop="date" /><el-table-column label="Name" prop="name" /><!-- 操作 --><el-table-column label="Operations"><template #default="props"><el-button type="primary" @click="toggleExpand(props.row)">{{ isExpanded(props.row) ? '收起' : '展开' }}</el-button></template></el-table-column></el-table>

3、typescript事件

<script setup lang="tsx">
const getRowKeys = (row) => {return row.id
}
//展开自定义
const expands = ref<string[]>([])
const toggleExpand = (row) => {const key = getRowKeys(row)const index = expands.value.indexOf(key)if (index > -1) {expands.value.splice(index, 1) // 收起} else {expands.value.push(key) // 展开}
}
const isExpanded = (row) => {return expands.value.includes(getRowKeys(row))
}
</script>

4、测试数据

const tableData = [{id: 1,date: '2016-05-03',name: 'Tom',state: 'California',city: 'San Francisco',address: '3650 21st St, San Francisco',zip: 'CA 94114',expand: false,family: [{name: 'Jerry',state: 'California',city: 'San Francisco',address: '3650 21st',zip: 'CA 94114'},{name: 'Spike',state: 'California',city: 'San Francisco',address: '3650 21st ',zip: 'CA 94114'},{name: 'Tyke',state: 'California',city: 'San Francisco',address: '3650 21st ',zip: 'CA 94114'}]},{id: 2,date: '2016-05-02',name: 'Tom',state: 'California',city: 'San Francisco',address: '3650 21st St, San Francisco',zip: 'CA 94114',expand: false,family: [{name: 'Jerry',state: 'California',city: 'San Francisco',address: '3650 21st St, San Francisco',zip: 'CA 94114'}]}
]

5、样式

<!-- 样式 -->
<style scoped lang="scss">
// 子项背景色
:deep(.el-table__expanded-cell) {background-color: #cbdde2 !important;
}
// 子项居中
.expandcontent {width: 95%;margin: 0 auto;
}
</style>
http://www.lqws.cn/news/533701.html

相关文章:

  • 百面Bert
  • Ubuntu 搭建Kubernetes 1.28版本集群
  • 代码随想录day16二叉树4
  • 参展回顾 | AI应用创新场景:数据分析助手ChatBI、璞公英教学平台亮相2025四川国际职教大会暨产教融合博览会
  • 装修选木地板还是瓷砖,都有哪些优势?
  • 第一章-人工智能概述-深度学习与AI发展(2/36)
  • MySQL备份和恢复
  • 亚矩阵云手机多开赋能Snapchat矩阵运营:技术原理与场景化破局
  • 解锁企业效率革命:Microsoft 365 Copilot 重塑办公新范式
  • 力扣第14题-最长公共前缀
  • UDP 缓冲区
  • 用Dockerfile点亮你的容器化世界:从零到精通
  • Webshell工具的流量特征分析(菜刀,蚁剑,冰蝎,哥斯拉)
  • aws(学习笔记第四十七课) codepipeline-docker-build
  • LINUX 626 DNS报错
  • WebRTC(十):RTP和SRTP
  • 新手向:Anaconda3的安装与使用方法
  • 【电力物联网】云–边协同介绍
  • C# 项目使用obfuscar混淆
  • ubuntu 下cursor的安装
  • 数据分享:汽车行业-汽车属性数据集
  • 儿童机器人玩具未来的市场空间有多大?
  • kafka命令行操作
  • Maven安装和重要知识点概括
  • 数据结构-第三节-树与二叉树
  • GtkSharp跨平台WinForm实现
  • 七天学会SpringCloud分布式微服务——03——Nacos远程调用
  • 01【C++ 入门基础】命名空间/域
  • vue 开启 source-map 后构建速度会很慢
  • LaTeX之中文支持和设置字体的几种方法