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

Vue3(elementPlus) el-table替换/隐藏行箭头,点击整行展开

element文档链接:

https://element-plus.org/zh-CN/component/form.html

一、el-table表格行展开关闭箭头替换成加减号

注:Vue3在样式中修改箭头图标无效,可能我设置不对,欢迎各位来交流指导

       转变思路:隐藏箭头,添加一行显示展开关闭所需图标

1、隐藏箭头

.el-table__expand-icon .el-icon svg {display: none;
}

此时只是箭头不可见,但是箭头的占位还在,显得很空

2、去掉箭头空白,添加替换箭头的图标列

在显示展开内容的列标签中设置width="1"

<el-table-column type="expand" width="1" ><template #default="props"><div class="tableItem" :style="{ width: 'calc(100%)'}" ><el-table :data="props.row.family"><el-table-column type="index" width="70" label="排名" prop="name" align="center"/><el-table-column prop="projectNum" label="项目编号" align="left"/><el-table-column prop="projectName" label="项目名称"  align="left"/></el-table></div></template>
</el-table-column><el-table-column width="40" align="center" ><template #default="scope" ><el-icon :size="15" v-if="scope.row.expanded" color="#000000"><Minus/></el-icon><el-icon :size="15" v-else color="#000000"><Plus/></el-icon></template></el-table-column>

二、点击整行展开数据

表格数据:

const tableData = ref([{projectNum:'YCA20241120001',id:'5862458213',projectName:'项目名称项目名称项目名称',month: '2024-10',expanded:false,family: [{projectNum:'YCA20241120001',projectName:'项目名称项目名称项目名称',},{projectNum:'YCA20241120001',projectName:'项目名称项目名称项目名称',}]},{id:'5862456248',projectNum:'YCA20241120001',projectName:'项目名称项目名称项目名称',month: '2024-11',expanded:false,}
])

使用到el-table的三个属性,含义请看element文档

        row-key="id"

        :expand-row-keys="expands"

        @row-click="clickRowHandle"

<el-table :data="tableData" v-loading="state.loading"  @selection-change="selectionChangHandle"@sort-change="sortChangeHandle":border="false" style="width: 100%" row-key="id":expand-row-keys="expands"@row-click="clickRowHandle">
</el-table>

逻辑代码:

const expands = ref([])
//点击事件
const clickRowHandle = (row: any) => {row.expanded=!row.expandedif (expands.value.includes(row.id)) {expands.value = expands.value.filter(val => val !== row.id)}else {expands.value.push(row.id)}
}

三、外部表格序号和排名序号对齐

设置表格el-table-column的padding-left和magin-left是无效的

解决方法:

 :cell-style="productiontableStyle"

 :headerCellStyle="productiontableStyle"

<el-table-column type="expand" width="1" ><template #default="props"><div class="tableItem" :style="{ width: 'calc(100%)'}" ><el-table :data="props.row.family" :cell-style="productiontableStyle" :headerCellStyle="productiontableStyle"><el-table-column type="index" width="70" label="排名" prop="name" align="center"/><el-table-column prop="projectNum" label="项目编号" align="left"/><el-table-column prop="projectName" label="项目名称"  align="left"/></el-table></div></template>
</el-table-column>

逻辑代码:

const productiontableStyle=(column:any) =>{if(column.columnIndex === 0) {return {'padding-left':'15px'}}
}

http://www.lryc.cn/news/517997.html

相关文章:

  • oracle闪回恢复数据:(闪回查询,闪回表,闪回库,回收站恢复)
  • C语言——结构体,位段,枚举和联合
  • 期末概率论总结提纲(仅适用于本校,看文中说明)
  • Python视频处理:噪声矩阵与并行计算的完美融合
  • 如何使用SparkSql
  • YOLOv8实战人员跌倒检测
  • QT-TCP-server
  • 【STM32+QT项目】基于STM32与QT的智慧粮仓环境监测与管理系统设计(完整工程资料源码)
  • robot 仿真环境安装测试 [持续更新]
  • 【FlutterDart】 拖动边界线改变列宽类似 vscode 那种拖动改变编辑框窗口大小(11 /100)
  • R语言的循环实现
  • Web应用安全-漏洞扫描器设计与实现
  • 视频生成Sora的全面解析:从AI绘画、ViT到ViViT、TECO、DiT、VDT、NaViT等
  • 【已解决】如何让容器内的应用程序使用代理?
  • DC/AC并网逆变器模型与仿真MATLAB
  • P10424 [蓝桥杯 2024 省 B] 好数
  • 【Word_笔记】Word的修订模式内容改为颜色标记
  • oracle位运算、左移右移、标签算法等
  • spring boot学习第二十三篇:Spring Boot集成RocketMQ
  • 去掉el-table中自带的边框线
  • C语言gdb调试
  • Spring项目创建流程及配置文件bean标签参数简介
  • reactor中的并发
  • 太速科技-418-基于AD9361 +ZYNQ7020 的软件无线电 SDR 套件
  • 监控易:一体化智能运维的扩展性优势深度解析
  • 朴素贝叶斯算法:从生活到数学的完整解析
  • Echarts的认识和基本用法
  • Linux文件系统的安全保障---Overlayroot!
  • 【Linux 之一 】Linux常用命令汇总
  • 【线性代数】通俗理解特征向量与特征值