控制el-table的列显示隐藏

控制el-table的列显示隐藏,一般的话可以通过循环来实现,但是假如业务及页面比较复杂的话,list数组循环并不好用。

在我们的页面中el-table-column是固定的,因为现在是对现有的进行维护和迭代更新。

对需要控制列显示隐藏的页面进行控制。

1.封装的组件代码如下:

1.1 el-tooltip用于文字提示:不明白el-tooltip点击此处了解

1.2 el-row内3个按钮分别为form表单显示隐藏,页面刷新,控制列弹层。

1.3 el-transfer为打开的弹层(穿梭框):不明白el-transfer点击此处了解

<template>
  <div class="top-right-btn" :style="style">
    <el-row>
      <el-tooltip class="item" effect="dark" :content="showSearch ? '隐藏搜索' : '显示搜索'" placement="top" v-if="search">
        <el-button size="mini" circle icon="el-icon-search" @click="toggleSearch()" />
      </el-tooltip>
      <el-tooltip class="item" effect="dark" content="刷新" placement="top">
        <el-button size="mini" circle icon="el-icon-refresh" @click="refresh()" />
      </el-tooltip>
      <el-tooltip class="item" effect="dark" content="显隐列" placement="top" v-if="columns">
        <el-button size="mini" circle icon="el-icon-menu" @click="showColumn()" />
      </el-tooltip>
    </el-row>
    <el-dialog :title="title" :visible.sync="open" append-to-body>
      <el-transfer
        :titles="['显示', '隐藏']"
        v-model="value"
        :data="columns"
        @change="dataChange"
      ></el-transfer>
    </el-dialog>
  </div>
</template>

 2.js代码:

<script>
export default {
  name: "RightToolbar",
  data() {
    return {
      // 显隐数据
      value: [],
      // 弹出层标题
      title: "显示/隐藏",
      // 是否显示弹出层
      open: false,
    };
  },
  props: {
    showSearch: {
      type: Boolean,
      default: true,
    },
    columns: {
      type: Array,
    },
    search: {
      type: Boolean,
      default: true,
    },
    gutter: {
      type: Number,
      default: 10,
    },
  },
  computed: {
    style() {
      const ret = {};
      if (this.gutter) {
        ret.marginRight = `${this.gutter / 2}px`;
      }
      return ret;
    }
  },
  created() {
    // 显隐列初始默认隐藏列
    for (let item in this.columns) {
      if (this.columns[item].visible === false) {
        this.value.push(parseInt(item));
      }
    }
  },
  methods: {
    // 搜索
    toggleSearch() {
      this.$emit("update:showSearch", !this.showSearch);
    },
    // 刷新
    refresh() {
      this.$emit("queryTable");
    },
    // 右侧列表元素变化
    dataChange(data) {
      for (let item in this.columns) {
        const key = this.columns[item].key;
        this.columns[item].visible = !data.includes(key);
      }
    },
    // 打开显隐列dialog
    showColumn() {
      this.open = true;
    },
  },
};
</script>

3.页面样式如下两图所示:

左边为页面的三个按钮,下面为弹层样式(一眼知道蒸馍操作了哦)

4.在data中·定义变量

用于控制form表单显示隐藏showSearch,以及table的列名数组columns

 data() {
    return {
      showSearch:true,
      columns: [
        { key: 0, label: `多选列`, visible: true },
        { key: 1, label: `序号列`, visible: true },
        { key: 2, label: `库存编号`, visible: true },
        { key: 3, label: `库区名称`, visible: true },
        { key: 4, label: `状态`, visible: true },
        { key: 5, label: `平台仓库`, visible: true },
        { key: 6, label: `负责人`, visible: true },
        { key: 7, label: `拣货方式`, visible: true },
        { key: 8, label: `库区类型`, visible: true },
        { key: 9, label: `操作`, visible: true },
      ],

5.在页面中引入使用:

(搞成全局的就不用一个个引入了)

  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns" />

其中showSearch和colums上面讲了,还有一个getList就是页面获取数据的函数

6.对搜索和列进行显示隐藏:

对需要显示隐藏的列加上如下就行,并且和定义的columns设定的key需要一致哦。

if="columns[num].visible"
    表单:
 <el-form :model="queryParams" ref="queryForm" size="small" :inline="true"
     v-show="showSearch">

btn按钮:
<el-button icon="el-icon-search" size="small" @click="handleQuery"
 v-show="showSearch">搜索</el-button>

<el-button icon="el-icon-refresh-left" size="small" @click="resetQuery" 
class="white_black2" v-show="showSearch">重置</el-button>

需要控制显示隐藏的el-table-column列:
     <el-table-column prop="branchName" align="center" label="平台仓库"
 v-if="columns[5].visible"></el-table-column>

控制el-talbe列的显示隐藏完成。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot 集成WebSocket详解

一、WebSocket概述 1、WebSocket简介 WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。 2、为什么需要WebSocket HTTP 是基于请求响应式的&#xff0c;即通信只能由客户端发起&#xff0c;服…

mybatis(动态sql及分页)

mybatis-动态sql及分页 1. 动态sql简述2. 动态sql示例2.1 if2.2 choose2.3 foreach2.4 sql 及 include2.5 sql中的特殊字符 3. 后台分页实现4. 数据版本号处理并发问题 1. 动态sql简述 mybatis的动态sql语句是基于OGNL表达式的。可以方便的在sql语句中实现某些逻辑. 总体说来m…

Vue 封装的 axios 类的使用(小bug 改进)

http类 import { baseUrl } from "./config"; //引入config.js中的配置 import axios from "axios"; //引入axios import qs from "querystringify"; //form-Data请求时的工具类class Http{axios null;lastRequestIntercept null…

Android BUG 之 Error: Activity class {} does not exist

项目场景&#xff1a; 更换包名&#xff0c;运行报错 问题描述 原因分析&#xff1a; 在替换包名的时候要确认&#xff0c;配置文件跟build中的保持一致&#xff0c;在更换后还要将旧包的缓存数据清理掉 解决方案&#xff1a; 1 替换后删除 app 下的build 文件夹 2 Rebuild Pr…

Leetcode2976. 转换字符串的最小成本 I

Every day a Leetcode 题目来源&#xff1a;2976. 转换字符串的最小成本 I 解法1&#xff1a;最短路 建图&#xff0c;从 original[i] 向 changed[i] 连边&#xff0c;边权为 cost[i]。没边的边权设为 INF。 然后用 Floyd 算法求图中任意两点最短路&#xff0c;得到 g 矩阵…

MT6785安卓核心板_联发科MTK6785/Helio G95/曦力G95核心板定制

MT6785安卓核心板是基于MT6785(Helio G95)处理器&#xff0c;具备八核处理器结构&#xff0c;包括2颗主频为2.05GHz的Cortex A76处理器和6颗主频为2.0GHz的Cortex A55处理器&#xff0c;以及六颗Cortex-A55处理器。而在GPU方面&#xff0c;采用了Arm Mali-G76 MC4&#xff0c;频…

zabbix监控windows主机

下载安装zabbix agent安装包 Zabbix官网下载地址: https://www.zabbix.com/cn/download_agents?version5.0LTS&release5.0.40&osWindows&os_versionAny&hardwareamd64&encryptionOpenSSL&packagingMSI&show_legacy0 这里使用zabbix agent2 安装 …

22、Kubernetes核心技术 - 整合Rancher通过界面管理k8s集群

目录 一、概述 二、Rancher API Server 的功能 2.1、授权和角色权限控制 2.2、使用 Kubernetes 的功能 2.3、配置云端基础信息 2.4、查看集群信息 三、Rancher 安装 3.1、前置环境 3.2、通过 Docker 来进行安装Rancher 3.3、在 Rancher 的界面上绑定k8s集群 3.4、在 …

C语言入门教程,C语言学习教程(第二部分:C语言初探)二

十、C语言的三套标准&#xff1a;C89、C99和C11 我们今天使用的 Windows、Linux、Mac OS 等操作系统都是由一种叫做 Unix 的系统演化而来。Unix 作为80年代主流的操作系统&#xff0c;是整个软件工业的基础&#xff0c;是现代操作系统的开山鼻祖&#xff0c;C语言就是为 Unix …

html的全选反选

一、实验题目 html实现选择框的全选和反选 二、实验代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>全选和反选</title></head><body><ul>兴趣爱好</ul><input id"all"…

国芯科技荣膺高工智能汽车“年度车规MCU高成长供应商”,加速产品精准化系列化布局

2023年12月13—15日&#xff0c;2023&#xff08;第七届&#xff09;高工智能汽车年会在上海召开&#xff0c;大会以“寻找拐点”为主题&#xff0c;通过超80场主题演讲及多场圆桌对话&#xff0c;为智能汽车赛道参与者「备战2024」提供全方位的决策支持。 作为汽车电子芯片领…

网络安全漏洞的常见类型

网络犯罪分子可以利用的常见网络安全漏洞包括凭证薄弱、缺乏数据加密、配置错误、软件过时和零日漏洞。这些漏洞通常会导致网络攻击&#xff0c;绕过组织的安全措施并窃取机密数据。组织需要识别并缓解这些漏洞&#xff0c;以防止安全漏洞。 继续阅读以了解有关网络安全漏洞的…

Apache ECharts | 一个数据可视化图表库

文章目录 1、简介1.1、主要特点1.2、使用场景 2、安装方式一&#xff1a;从下载的源代码或编译产物安装方法二&#xff1a;从 npm 安装方法三&#xff1a;⭐定制安装echarts.js 3、使用 官网&#xff1a; 英语&#xff1a;https://echarts.apache.org/en/index.html 中文&a…

ChatGLM2-6B 大语言模型本地搭建

ChatGLM模型介绍&#xff1a; ChatGLM2-6B 是清华 NLP 团队于不久前发布的中英双语对话模型&#xff0c;它具备了强大的问答和对话功能。拥有最大32K上下文&#xff0c;并且在授权后可免费商用&#xff01; ChatGLM2-6B的6B代表了训练参数量为60亿&#xff0c;同时运用了模型…

[VSCode] VSCode 常用快捷键

文章目录 VSCode 源代码编辑器VSCode 常用快捷键分类汇总01 编辑02 导航03 调试04 其他05 重构06 测试07 扩展08 选择09 搜索10 书签11 多光标12 代码片段13 其他 VSCode 源代码编辑器 官网&#xff1a;https://code.visualstudio.com/ 下载地址&#xff1a;https://code.visua…

在学习爬虫前的准备

1. 写一个爬虫程序需要分几步 获取网页内容。 我们会通过代码给一个网站服务器发送请求&#xff0c;它会返回给我们网页上的内容。 在我们平时使用浏览器访问服务器内容是&#xff0c;本质上也是向服务器发送一个请求&#xff0c;然后服务器返回网页上的内容。只不过浏览器还会…

Oracle VM VirtualBox xx needs the Micrsoft Visual C++ 2019错误

错误展示 解决方法 重修安装 Visual C 文件 1、前往官网 C 中 Windows 编程概述 | Microsoft Learn 2、找到对应的包 左边导航栏依次选择&#xff1a; 部署本机桌面应用程序-----重新分发Visual C 文件-----最新受支持的Visual C可再发型程序包下载 根据自己电脑系统进行选…

数据结构期末复习笔记

文章目录 数据结构期末复习第一章&#xff1a;数据结构绪论第二章&#xff1a;顺序表与单链表第三章&#xff1a;其它链表第四章&#xff1a;栈如何中缀转后缀后缀如何计算 第五章&#xff1a;队列第六章&#xff1a;串第七章&#xff1a;树的概念和遍历第八章&#xff1a;赫夫…

创建一个郭德纲相声GPTs

前言 在这篇文章中&#xff0c;我将分享如何利用ChatGPT 4.0辅助论文写作的技巧&#xff0c;并根据网上的资料和最新的研究补充更多好用的咒语技巧。 GPT4的官方售价是每月20美元&#xff0c;很多人并不是天天用GPT&#xff0c;只是偶尔用一下。 如果调用官方的GPT4接口&…

Win10 自带微软输入法怎么切换成简体字 快捷鍵是什么?

环境&#xff1a; Win10专业版 问题描述&#xff1a; 微軟輸入法怎麽切換中文簡體 快捷鍵&#xff0c;之前不小心按了快捷键 解决方案&#xff1a; 1.按CtrlShiftF快捷键转换简体字或繁体字 2.可以在“设置-时间和语言-区域和语言-语言-中文&#xff08;中华人民共和国&a…