【UI】element ui table(表格)expand实现点击一行展开功能

news2024/11/8 12:01:57

文章目录

  • 前言
  • 涉及知识点:
  • 代码部分
  • 隐藏小箭头
  • 总结

前言

element ui是一个非常不错的vue的UI框架,element对table进行了封装,简化了vue对表格的渲染。
element ui表格中有一个功能是展开行,在2.0版本官网例子中,只可以点击右箭头可以展开,我们的很多需求是点击某一行展开,那是不是无法实现呢?其实,借助element ui的一些属性,轻松实现点击某行展开,我们还是用2.0.9版本官网的例子

可以看到官方代码中在这边没有让这个可展开table自动折叠的功能,我点击了别的标签页后上次点击的行仍旧处在一个展开的状态,而且操控的方式也只能点击到左上角的小箭头才可以控制行的展开状态,体验不是特别好,可以说有点糟糕了,但是我后来在后面的文档中发现The methods 里面有写到一个方法叫toggleRowExpansion,这个方法应该是官方本意上想让我们来自由控制展开状态的,从传递的两个参数来看,一个是row(当前点击的行id),另一个是expended(行展开状态,boolean值),看上去有理有据,但是就是不知道怎么用,因为我始终无法获取到expended这个参数的值,有点气,所以这次我们用另一种方式来实现这个功能。

参考文章:
element ui table(表格)实现点击一行展开功能
使用element-ui中table expand展开行控制显示隐藏,隐藏小箭头列的方法,之展开一行内容
使用element-ui中table expand展开行控制显示隐藏(手风琴效果)

在这里插入图片描述

涉及知识点:

1、不点击小箭头,点击其他列中的某个按钮展开行内容。

2、隐藏小箭头列(既然我们点击表格其他单元格展开行内容了,一般就不需要小箭头列了)

3、只展开一行内容

代码部分

对齐改造,使之可以做到这点

<template>
 <el-table
   :data="tableData5"
   style="width: 100%"
   @row-click="handleRowClick"
   ref="expandableTable">
  <el-table-column type="expand">
   <template slot-scope="props">
    <el-form label-position="left" inline class="demo-table-expand">
     <el-form-item label="商品名称">
      <span>{{ props.row.name }}</span>
     </el-form-item>
     <el-form-item label="所属店铺">
      <span>{{ props.row.shop }}</span>
     </el-form-item>
     <el-form-item label="商品 ID">
      <span>{{ props.row.id }}</span>
     </el-form-item>
     <el-form-item label="店铺 ID">
      <span>{{ props.row.shopId }}</span>
     </el-form-item>
     <el-form-item label="商品分类">
      <span>{{ props.row.category }}</span>
     </el-form-item>
     <el-form-item label="店铺地址">
      <span>{{ props.row.address }}</span>
     </el-form-item>
     <el-form-item label="商品描述">
      <span>{{ props.row.desc }}</span>
     </el-form-item>
    </el-form>
   </template>
  </el-table-column>
  <el-table-column
    label="商品 ID"
    prop="id">
  </el-table-column>
  <el-table-column
    label="商品名称"
    prop="name">
  </el-table-column>
  <el-table-column
    label="描述"
    prop="desc">
  </el-table-column>
 </el-table>
</template>
 
<style>
 .demo-table-expand {
  font-size: 0;
 }
 .demo-table-expand label {
  width: 90px;
  color: #99a9bf;
 }
 .demo-table-expand .el-form-item {
  margin-right: 0;
  margin-bottom: 0;
  width: 50%;
 }
</style>
 
<script>
 export default {
  data() {
   return {
    tableData5: [{
     id: '12987122',
     name: '好滋好味鸡蛋仔',
     category: '江浙小吃、小吃零食',
     desc: '荷兰优质淡奶,奶香浓而不腻',
     address: '上海市普陀区真北路',
     shop: '王小虎夫妻店',
     shopId: '10333'
    }, {
     id: '12987123',
     name: '好滋好味鸡蛋仔',
     category: '江浙小吃、小吃零食',
     desc: '荷兰优质淡奶,奶香浓而不腻',
     address: '上海市普陀区真北路',
     shop: '王小虎夫妻店',
     shopId: '10333'
    }, {
     id: '12987125',
     name: '好滋好味鸡蛋仔',
     category: '江浙小吃、小吃零食',
     desc: '荷兰优质淡奶,奶香浓而不腻',
     address: '上海市普陀区真北路',
     shop: '王小虎夫妻店',
     shopId: '10333'
    }, {
     id: '12987126',
     name: '好滋好味鸡蛋仔',
     category: '江浙小吃、小吃零食',
     desc: '荷兰优质淡奶,奶香浓而不腻',
     address: '上海市普陀区真北路',
     shop: '王小虎夫妻店',
     shopId: '10333'
    }],
   }
  },
  methods:{
  	handleRowClick(row, event, column) {
      this.$refs.expandableTable.toggleRowExpansion(row);
    },
  }
 
 }
</script>

这个例子可以直接复制运行起来,一点问题都没有,上面的代码可以实现点击某行展开,对比官网的例子,我们在table添加了

@row-click="handleRowClick"
ref="expandableTable"

隐藏小箭头

自己项目中遇到的问题是想要隐藏小箭头列,无意间发现这篇文章,原来只需要设置 width="1" 就行了。

因为我设置了<el-table-column type="expand" width="1"></el-table-column> 会多出1px的边距,所以我们可以再在最外层放一个空的div,设置样式overflow:hidden;
再设置此table的样式margin-left:1px;好了,完美实现。(自己的项目中没有遇到1px影响效果的情况,可以直接设置宽度为1px即可)

放上项目最终的效果图,无多出的1px边框。

在这里插入图片描述

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2129946.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux和C语言(Day 12)

一、学习内容 存储类型 定义变量语法格式 数据类型 变量名; 存储类型 数据类型 变量名; 【定义变量可以省略存储类型&#xff0c;默认是auto】 定义函数语法格式 数据类型 函数名(参数){} 存储类型 数据类型 函数名(参数){} 【定义函数可以省略存储类型&#xff0c;默认是exte…

【PostgreSQL】安装及使用(Navicat/Arcgis),连接(C#)

简介 PostgreSQL 是一个功能强大的开源对象关系数据库系统 下载地址 PostgreSQL: Downloads 由于我电脑上安装的是arcgispro3.1所以需要下载对应的postgresql版本 PostgreSQL 12 对应的 PostGIS 版本主要是 3.5.0 或更高版本。 安装 一般设置为postgresql 安装扩展插件 此…

计算机的错误计算(九十一)

摘要 讨论自然对数 ln(x)的计算精度问题。 例1. 计算 ln(0.999999999999996) . 不妨用Python计算&#xff0c;则有&#xff1a; 若用Java代码计算&#xff1a; import java.lang.Math; public class Ln{public static void main(String[] args) {double x 0.9999999999999…

JMeter脚本开发

环境部署 Ubuntu系统 切换到root用户 sudo su 安装上传下载的命令 apt install lrzsz 切换文件目录 cd / 创建文件目录 mkdir java 切换到Java文件夹下 cd java 输入rz回车 选择jdk Linux文件上传 解压安装包 tar -zxvf jdktab键 新建数据库 运行sql文件 选择sql文件即…

操作系统 ---- 调度算法的评价指标

一、调度算法评价指标 1.1 CPU利用率 资源利用率。为提高系统的资源利用率&#xff0c;应使系统中的处理机和其它所有资源都尽可能地保持忙碌状态&#xff0c;其中最重要的处理机利用率可用以下方法计算&#xff1a; 例题&#xff1a; 1.2 系统吞吐量 由于吞吐量是指在单位…

Playwright与Selenium的对比:谁是更适合你的自动化测试工具?

在自动化测试领域&#xff0c;Selenium 一直是行业的标杆工具。它功能强大、支持多浏览器、广泛应用于各类项目中。然而&#xff0c;随着技术的发展&#xff0c;新的工具不断涌现&#xff0c;Playwright 作为其中的佼佼者&#xff0c;以其现代化的设计和强大的特性吸引了越来越…

828华为云征文|docker部署kafka及ui搭建

1.介绍 1.1 什么是华为云Flexus X实例 最近华为云828 B2B企业节正在举办&#xff0c;Flexus X实例的促销也非常给力&#xff0c;大家可以去看看。特别是对算力性能有要求&#xff0c;同时对自建MySQL、Redis、Nginx性能有要求的小伙伴&#xff0c;千万不要错过。Flexus云服务器…

你都学会栈和队列了赶紧手搓一个对象池吧!!!(超详细,超简单适合新手宝宝学习)

前置知识&#xff1a;en造数据结构与算法C# 用数组实现个栈还不简单&#xff1f;&#xff1f;&#xff1f;看我一秒破之&#xff01;&#xff01;&#xff01;&#xff08;unity演示&#xff09;-CSDN博客 c#有官方造好的关于stack的轮子&#xff0c;建议学习学习拿来直接用 …

揭开OpenAI草莓模型神秘面纱——重塑大语言模型的逻辑能力

OpenAI即将发布“草莓”模型 来源&#xff1a;medium 据报道&#xff0c;OpenAI计划在未来两周内发布其新的AI模型Strawberry&#xff08;草莓&#xff09;。据 Seeking Alpha周二&#xff08;9 月 10 日&#xff09;援引The Information 的一篇付费文章报道&#xff0c;新模型…

Solana核心漏洞技术详解

8月9日&#xff0c;Solana团队齐心协力解决了一个严重的安全漏洞。这次秘密修复详情可以在GitHub上查询到。CertiK团队对这一漏洞进行了深入分析。 1. Solana漏洞起因 8月9日&#xff0c;Solana验证者和客户端团队齐心协力解决了一个严重的安全漏洞。Solana验证者Laine表示&am…

[WUSTCTF2020]颜值成绩

1.测试输入发现存在数字型sql注入 1 and 1 报错 尝试了几个字符&#xff0c;确定空格被过滤了 空格用/**/替换 1/**/and/**/1 构造轮子尝试成功&#xff0c;所以这里要用布尔注入 后面的思路就是比较常规的了&#xff0c;先爆破库名&#xff0c;再爆破表、字段 写了个脚本简…

第四部分:1---文件基础理解、C语言文件操作、Linux系统文件接口、使用一个变量传递多个标志位

目录 文件基础理解&#xff1a; 文件是如何组成的&#xff1f; 对文件操作的本质是什么&#xff1f; 文件被打开的本质是什么&#xff1a; 进程和文件的调度关系解析&#xff1a; 文件被打开后如何被管理&#xff08;文件描述符/文件描述符表&#xff09;&#xff1f; 文…

深度学习——基础知识

深度学习的重点在于优化&#xff0c;其中很重要的步骤在于如何调参&#xff0c;会涉及到一些微积分等数学知识。不同于以往接触到的数值运算&#xff0c;深度&#xff08;机器&#xff09;学习都是关于张量Tensor&#xff08;向量&#xff09;的计算&#xff0c;Python中最常用…

【oj刷题】滑动窗口篇:滑动窗口的应用场景和注意事项

前言&#xff1a; 滑动窗口其实基本原理还是双指针&#xff0c;但在双指针中左右指针可能会有回退操作&#xff0c;而滑动窗口的左右指针只会向前走&#xff0c;不会回退&#xff0c;下面就来讲解一下滑动窗口的概念和具体操作&#xff08;主要是例题讲解&#xff09; 目录 一、…

【 Linux】基础命令及常用小技巧

文章目录 Linux基础命令常用小技巧基本命令pwd : print work directory 打印当前的工作目录cd : change driectory 改变当前工作目录ls: list 查看指定目录下的文件mkdir: make directory 创建目录 文件操作命令查找命令管道命令和过滤命令wc : word count 单词统计echo 输出命…

Hotohiko Sakamoto算法,以及用其计算星期几【算法 15】

探索Hotohiko Sakamoto算法&#xff1a;构建素数排列的奥秘 在算法领域&#xff0c;Hotohiko Sakamoto算法以其独特的构造方式和深刻的数学背景&#xff0c;吸引了众多算法爱好者和研究者的关注。本文将带您一起探索Hotohiko Sakamoto算法的核心思想&#xff0c;了解它是如何构…

深度学习_GPT2Block详解(casual attention)

一、GTP2Block 整体结构 1.1 block准备 import torch from torch import nn from transformers import GPT2Model, GPT2Config from transformers.models.gpt2.modeling_gpt2 import GPT2Blockcfg GPT2Config() print(cfg.add_cross_attention) blk GPT2Block(cfg, layer_…

“汉语新解” Prompt新高度,火爆的李继刚

“汉语新解” prompt 是由李继刚设计的一个用于启发人工智能模型进行创意性文本生成的指令模板。这个 prompt 的设计初衷是为了让AI能够以一种独特的方式解析和重新诠释常见的中文词汇&#xff0c;从而产生出具有深刻洞察力和幽默感的文本内容&#xff0c;仿佛是由鲁迅或林语堂…

Linux线程同步:深度解析条件变量接口

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;Linux从入门到进阶 欢迎大家点赞收藏评论&#x1f60a; 目录 &#x1f351;Linux线程同步&#x1f409;条件变量---实现线程同步&#x1f4a7;同步概念与竞态条件&#x1f406;条件变量接口*初始…

sqli-labs靶场自动化利用工具——第13关

文章目录 概要整体架构流程技术细节执行效果小结 概要 Sqli-Labs靶场对于网安专业的学生或正在学习网安的朋友来说并不陌生&#xff0c;或者说已经很熟悉。那有没有朋友想过自己开发一个测试脚本能实现自动化化测试sqli-labs呢&#xff1f;可能有些人会说不是有sqlmap&#…