vue实现动态控制el-table表格列的展示与隐藏
作者:zhougl996 发布时间:2024-05-05 09:07:26
标签:vue,展示,隐藏
本文实例为大家分享了vue动态控制el-table表格列的展示与隐藏的具体代码,供大家参考,具体内容如下
1.引入el-table组件,这里我直接用官网的示例代码
<template>
? ? <div class="page">
? ? ? ? <el-popover width="60" trigger="click">
? ? ? ? ? ? <el-checkbox-group v-model="columnSelecteds">
? ? ? ? ? ? ? ? <el-checkbox v-for="item in columnHeaders" :label="item.title" :key="item.title" ></el-checkbox> ? ?
? ? ? ? ? ? </el-checkbox-group>
? ? ? ? ? ? <el-button slot="reference" icon="el-icon-more" circle style="margin-left: 100px;"></el-button>
? ? ? ? </el-popover>
? ? ? ? <el-table
? ? ? ? ? ? :data="tableData"
? ? ? ? ? ? ref="dataTable"
? ? ? ? ? ? stripe
? ? ? ? ? ? style="width: 100%">
? ? ? ? ? ? <el-table-column v-if="columnHeaders[0].isShow" prop="date" label="日期"></el-table-column>
? ? ? ? ? ? <el-table-column v-if="columnHeaders[1].isShow" prop="name" label="姓名"></el-table-column>
? ? ? ? ? ? <el-table-column v-if="columnHeaders[2].isShow" prop="address" label="地址"></el-table-column>
? ? ? ? </el-table>
? ? </div>
</template>
页面效果图:
2.数据绑定与监听
<script>
export default {
? ? name: 'ElTableTest',
? ? data() {
? ? ? ? return {
? ? ? ? ? ? // 表格数据
? ? ? ? ? ? tableData: [{
? ? ? ? ? ? ? ? date: '2016-05-02',
? ? ? ? ? ? ? ? name: '王小虎',
? ? ? ? ? ? ? ? address: '上海市普陀区金沙江路 1518 弄'
? ? ? ? ? ? }, {
? ? ? ? ? ? ? ? date: '2016-05-04',
? ? ? ? ? ? ? ? name: '王小虎',
? ? ? ? ? ? ? ? address: '上海市普陀区金沙江路 1517 弄'
? ? ? ? ? ? }, {
? ? ? ? ? ? ? ? date: '2016-05-01',
? ? ? ? ? ? ? ? name: '王小虎',
? ? ? ? ? ? ? ? address: '上海市普陀区金沙江路 1519 弄'
? ? ? ? ? ? }, {
? ? ? ? ? ? ? ? date: '2016-05-03',
? ? ? ? ? ? ? ? name: '王小虎',
? ? ? ? ? ? ? ? address: '上海市普陀区金沙江路 1516 弄'
? ? ? ? ? ? }],
? ? ? ? ? ? //表头信息
? ? ? ? ? ? columnHeaders: [?
? ? ? ? ? ? ? ? {index: 0, title: "日期", isShow: true},
? ? ? ? ? ? ? ? {index: 1, title: "姓名", isShow: true},
? ? ? ? ? ? ? ? {index: 2, title: "地址", isShow: true}
? ? ? ? ? ? ], ?
? ? ? ? ? ? //已选择的项
? ? ? ? ? ? columnSelecteds: ["日期","姓名", "地址"]?
? ? ? ? } ??
? ? },
? ? watch: {
? ? ? ? /**
? ? ? ? ?* @title 监听列显示隐藏
? ? ? ? ?*/
? ? ? ? columnSelecteds(newArrayVal) {
? ? ? ? ? ? // 计算为被选中的列标题数组
? ? ? ? ? ? var nonSelecteds = this.columnHeaders
? ? ? ? ? ? ? ? ? ? ? ? .filter(item => newArrayVal.indexOf(item.title) == -1)?
? ? ? ? ? ? ? ? ? ? ? ? .map(item => item.title)
? ? ? ? ? ? // 根据计算结果进行表格重绘
? ? ? ? ? ? this.columnHeaders.filter(item => {
? ? ? ? ? ? ? ? let isNonSelected = nonSelecteds.indexOf(item.title) != -1
? ? ? ? ? ? ? ? if (isNonSelected) {
? ? ? ? ? ? ? ? ? ? // 隐藏未选中的列
? ? ? ? ? ? ? ? ? ? item.isShow = false
? ? ? ? ? ? ? ? ? ? this.$nextTick(() => {
? ? ? ? ? ? ? ? ? ? ? ? this.$refs.dataTable.doLayout()
? ? ? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? // 显示已选中的列
? ? ? ? ? ? ? ? ? ? item.isShow = true
? ? ? ? ? ? ? ? ? ? this.$nextTick(() => {
? ? ? ? ? ? ? ? ? ? ? ? this.$refs.dataTable.doLayout()
? ? ? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? ? }
? ? ? ? ? ? })
? ? ? ? }
? ? }
}
</script>
监听到已选择和未选择的列,调用doLayout()方法对表格进行重绘。
最终效果:
来源:https://blog.csdn.net/Aoutlaw/article/details/120459076
0
投稿
猜你喜欢
- 打包pyinstaller 02.py --noconsole --hidden-import PySide2.QtXml报错0:The &
- 前言php转go是大趋势,越来越多公司的php服务都在用go进行重构,重构过程中,会发现php的json解析操作(系列化与反序列化)是真的香
- 朴素贝叶斯算法简单高效,在处理分类问题上,是应该首先考虑的方法之一。通过本教程,你将学到朴素贝叶斯算法的原理和Python版本的逐步实现。更
- 如果你电脑是Mac的,使用homebrew安装MySQL是一个非常便捷的方式,但是还是会出现一些问题;首先保证你已经安装了mysql,如果是
- 游戏规则用pygame动画实现神庙逃亡类似的小游戏,当玩家移动的时候躲避 * ,如果 * 命中玩家或者名字龙都会减速,玩家躲避 * 使更多的 * 打
- 有四个变量影响磁带备份设备的性能,并使 SQL Server 备份及还原性能操作得以在大体上随添加更多磁带设备而提高线性比例。◆软件数据块大
- 前言最近在工作中遇到了这个需求,估计搞了一个多小时才把这个远程连接搞好。一台本地电脑,一台云服务器,都是linux系统。下面来看看详细的介绍
- 以网页表格为例:https://www.kuaidaili.com/free/该网站数据存在table标签,直接用requests,需要结合
- 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持。1、定时任务定时任务,顾名思义: 定时执行的任
- 1.数据集分割通过datasets可以直接分别获取训练集和测试集。通常我们会将训练集进行分割,通过torch.utils.data.rand
- 一、实战场景Flask 框架实现用户的注册,登录和登出。二、主要知识点flask_login 插件使用SQLAlchemy 基础操作用户基础
- 1、公式推导 对幂律分布公式:对公式两边同时取以10为底的对数:所以对于幂律公式,对X,Y取对数后,在坐标轴上为线性方程。2、可视化 从图形
- 前言在《Python中if语句的使用方法》中提到,对于一种可能性、两种可能性或者多种可能性的情况,可以通过if语句来实现。而用if语句实现多
- YOLOv5的Backbone设计在上一篇文章《YOLOV5的anchor设定》中我们讨论了anchor的产生原理和检测过程,对YOLOv5
- vue中代码的复用, 为我们提供了 mixnis. 模板的复用, 为我们提供了 插槽( slot )插槽的分类默认插槽具名插槽作用域插槽当我
- SQL Server从2005起开始支持xml类型,这个数据类型对于后期的改变非常有用。一对多的关系在后期变成了多对多的关系,XML类型就是
- python遍历字符串中的每一个字符有4种方式:1. for in ;2.iter内置函数;3.内置函数range()或xrange();4
- 本文实例讲述了Python 日志logging模块用法。分享给大家供大家参考,具体如下:demo.py(日志,输出到控制台):import
- 事务的实现redo log保证事务的持久性,undo log用来帮助事务回滚及MVCC的功能。InnoDB存储引擎体系结构redo logW
- 前言Golang中当程序发生致命异常时(比如数组下标越界,注意这里的异常并不是error),Golang程序会panic(运行时恐慌)。当程