iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue+elementUI配置表格的列显示与隐藏
  • 750
分享到

vue+elementUI配置表格的列显示与隐藏

2024-04-02 19:04:59 750人浏览 独家记忆
摘要

Vue+elementUI配置表格的列显示与隐藏,供大家参考,具体内容如下 描述: 表格的列过多时,可以根据需要控制列的显示与隐藏,目前是采用Vue+elementUI(适配vue3

Vue+elementUI配置表格的列显示与隐藏,供大家参考,具体内容如下

描述:

表格的列过多时,可以根据需要控制列的显示与隐藏,目前是采用Vue+elementUI(适配vue3的Element Plus)实现的,具体效果与代码如下:

效果图:

完整代码:

<template>
  <div id="app">
    <el-table :data="tableData" border style="width: 100%" ref="table">
      <el-table-column
        fixed
        type="index"
        align="center"
        :index="1">
        <template #header>
          <el-popover
            placement="bottom"
            :width="600"
            :visible="visible"
          >
            <!-- 配置列面板 -->
            <transition name="fade">
              <div>
                <div>选择显示字段</div>
                <div>
                  <el-checkbox v-model="showColumn.date" disabled>日期</el-checkbox>
                  <el-checkbox v-model="showColumn.name">姓名</el-checkbox>
                  <el-checkbox v-model="showColumn.provinces">省份</el-checkbox>
                  <el-checkbox v-model="showColumn.city">市区</el-checkbox>
                  <el-checkbox v-model="showColumn.adreess">地址</el-checkbox>
                  <el-checkbox v-model="showColumn.zipCode">邮编</el-checkbox>
                </div>
              </div>
            </transition>
            <div style="text-align: right; margin: 0">
              <el-button size="mini" type="text" @click="visible = false">取消</el-button>
              <el-button size="mini" type="primary" plain @click="saveColumn">确定</el-button>
            </div>
            <template #reference>
              <i
                class="el-icon-setting"
                style="font-size: 22px; cursor: pointer"
                @click="visible = true"
              ></i>
            </template>
          </el-popover>
        </template>
      </el-table-column>
      <el-table-column
        prop="date"
        label="日期"
        width="150"
        v-if="showColumn.date"
      >
      </el-table-column>
      <el-table-column
        prop="name"
        label="姓名"
        width="120"
        v-if="showColumn.name"
      >
      </el-table-column>
      <el-table-column
        prop="province"
        label="省份"
        width="120"
        v-if="showColumn.provinces"
      >
      </el-table-column>
      <el-table-column
        prop="city"
        label="市区"
        width="120"
        v-if="showColumn.city"
      >
      </el-table-column>
      <el-table-column
        prop="address"
        label="地址"
        minWidth="300"
        v-if="showColumn.adreess"
      >
      </el-table-column>
      <el-table-column
        prop="zip"
        label="邮编"
        width="120"
        v-if="showColumn.zipCode"
      >
      </el-table-column>
      <el-table-column label="操作" fixed="right" width="100" align="center">
        <template #default="scope">
          <el-button @click="handleClick(scope.row)" type="text" size="small"
            >查看</el-button
          >
          <el-button type="text" size="small">编辑</el-button>
        </template>
      </el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      visible: false,
      tableData: [
        {
          date: "2016-05-02",
          name: "王小虎",
          province: "上海",
          city: "普陀区",
          address: "上海市普陀区金沙江路 1518 弄",
          zip: 200333,
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          province: "上海",
          city: "普陀区",
          address: "上海市普陀区金沙江路 1517 弄",
          zip: 200333,
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          province: "上海",
          city: "普陀区",
          address: "上海市普陀区金沙江路 1519 弄",
          zip: 200333,
        },
        {
          date: "2016-05-03",
          name: "王小虎",
          province: "上海",
          city: "普陀区",
          address: "上海市普陀区金沙江路 1516 弄",
          zip: 200333,
        },
      ],
      // 列的配置化对象,存储配置信息
      showColumn: {
        date: true,
        name: true,
        provinces: true,
        city: true,
        adreess: true,
        zipCode: true,
      },
    };
  },
  mounted() {
    // 发请求得到showColumnInitData的列的名字
    if(localStorage.getItem("columnSet")){
      this.showColumn = JSON.parse(localStorage.getItem("columnSet"))
    }else{
      this.showColumn = {
        date: true,
        name: true,
        provinces: true,
        city: true,
        adreess: true,
        zipCode: true,
      };
    }
  },
  methods: {
    handleClick(row) {
      console.log(row);
    },
    saveColumn() {
      localStorage.setItem("columnSet",jsON.stringify(this.showColumn))
      this.visible = false;
    },
  },
};
</script>

<style lang="postCSS" scoped>

.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.3s;
}
.fade-enter,
.fade-leave-to {
  opacity: 0;
}
</style>

问题:

1、可以简单实现,但最好的方法是列的全部字段也通过配置实现;

2、elementUI的popover嵌套在table里使用时,会出现面板的显示bug,例如本文是采用:visible=“visible”,如果按照正常双向绑定v-model:visible=“visible”,则会出现弹窗闪现的现象,弹出后会立马关闭;

现象:

原因猜想:

v-model:visible=“visible”,会自动触发遮罩层关闭,置visible变为false(watch监听visible,点击弹出按钮时,visible变为true后会立马变为false);

3、如果某一列设置minWidth属性,如果隐藏该列,则popover会出现弹出两个窗口的异常现象,例如“地址”列:

故可采用dialog来实现:

<template>
  <div id="app">
    <el-table :data="tableData" border style="width: 100%" ref="table">
      <el-table-column
        fixed
        type="index"
        align="center"
        :index="1">
        <template #header>
          <i
            class="el-icon-setting"
            style="font-size: 22px; cursor: pointer"
            @click="visible = true"
          ></i>
        </template>
      </el-table-column>
      <el-table-column
        prop="date"
        label="日期"
        width="150"
        v-if="showColumn.date"
      >
      </el-table-column>
      <el-table-column
        prop="name"
        label="姓名"
        width="120"
        v-if="showColumn.name"
      >
      </el-table-column>
      <el-table-column
        prop="province"
        label="省份"
        width="120"
        v-if="showColumn.provinces"
      >
      </el-table-column>
      <el-table-column
        prop="city"
        label="市区"
        width="120"
        v-if="showColumn.city"
      >
      </el-table-column>
      <el-table-column
        prop="address"
        label="地址"
        minWidth="300"
        v-if="showColumn.adreess"
      >
      </el-table-column>
      <el-table-column
        prop="zip"
        label="邮编"
        width="120"
        v-if="showColumn.zipCode"
      >
      </el-table-column>
      <el-table-column label="操作" fixed="right" width="100" align="center">
        <template #default="scope">
          <el-button @click="handleClick(scope.row)" type="text" size="small"
            >查看</el-button
          >
          <el-button type="text" size="small">编辑</el-button>
        </template>
      </el-table-column>
    </el-table>
    <el-dialog title="字段配置" v-model="visible">
      <transition name="fade">
        <div>
          <div>选择显示字段</div>
          <div>
            <el-checkbox v-model="showColumn.date" disabled>日期</el-checkbox>
            <el-checkbox v-model="showColumn.name">姓名</el-checkbox>
            <el-checkbox v-model="showColumn.provinces">省份</el-checkbox>
            <el-checkbox v-model="showColumn.city">市区</el-checkbox>
            <el-checkbox v-model="showColumn.adreess">地址</el-checkbox>
            <el-checkbox v-model="showColumn.zipCode">邮编</el-checkbox>
          </div>
        </div>
      </transition>
      <template #footer>
        <span class="dialog-footer">
          <el-button @click="visible = false">取 消</el-button>
          <el-button type="primary" @click="saveColumn">确 定</el-button>
        </span>
      </template>
    </el-dialog>
  </div>
</template>

效果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: vue+elementUI配置表格的列显示与隐藏

本文链接: https://www.lsjlt.com/news/145845.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue+elementUI配置表格的列显示与隐藏
    vue+elementUI配置表格的列显示与隐藏,供大家参考,具体内容如下 描述: 表格的列过多时,可以根据需要控制列的显示与隐藏,目前是采用Vue+elementUI(适配Vue3...
    99+
    2024-04-02
  • vue+elementUI怎么配置表格的列显示与隐藏
    这篇文章主要介绍“vue+elementUI怎么配置表格的列显示与隐藏”,在日常操作中,相信很多人在vue+elementUI怎么配置表格的列显示与隐藏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue+e...
    99+
    2023-06-30
  • vue elementUI表格控制怎么显示隐藏对应列
    这篇文章主要介绍“vue elementUI表格控制怎么显示隐藏对应列”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue elementUI表格控制怎么显示隐藏对应列”文章能帮...
    99+
    2023-06-30
  • vue+elementui实现动态控制表格列的显示和隐藏
    vue+elementui(table,多选框)实现动态控制表格列的显示和隐藏,供大家参考,具体内容如下 imdex.vue <template>   <div&g...
    99+
    2024-04-02
  • vue+elementui怎么实现动态控制表格列的显示和隐藏
    这篇文章主要介绍了vue+elementui怎么实现动态控制表格列的显示和隐藏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue+elementui怎么实现动态控制表格列的显示和隐藏文章都会有所收获,下面我们...
    99+
    2023-06-30
  • vue实现动态控制表格列的显示隐藏
    本文实例为大家分享了vue实现动态控制表格列显示隐藏的具体代码,供大家参考,具体内容如下 一、效果 如上图所示,点击table右上方的表格按钮,弹出菜单栏,进行勾选,从而达到表格对...
    99+
    2024-04-02
  • Vue实现动态控制表格列的显示和隐藏
    本文实例为大家分享了Vue实现动态控制表格列的显示和隐藏的具体代码,供大家参考,具体内容如下 效果如图: 表头标题是重复的、为了能看到滚动效果 v-if=“lists[...
    99+
    2024-04-02
  • vue+elementUI-el-table实现动态显示隐藏列方式
    目录vue elementUI-el-table动态显示隐藏列主要代码如下相关截图总结vue elementUI-el-table动态显示隐藏列 在实际工作场景中,我们在展示数据时,...
    99+
    2023-01-13
    vue elementUI el-table el-table动态显示隐藏列 vue动态显示隐藏列
  • Vue怎么实现动态控制表格列的显示和隐藏
    本篇内容介绍了“Vue怎么实现动态控制表格列的显示和隐藏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果如图:表头标题是重复的、为了能看到...
    99+
    2023-06-29
  • element vue动态显示隐藏列
    在使用 Vue.js 和 Element UI 构建页面时,经常需要使用表格展示数据。有时候会需要动态显示或隐藏某些列,使用户能够根据自己的需求定制所需的信息。Element UI 提供了方便易用且功能强大的表格组件,本文将着重介绍如何在 ...
    99+
    2023-05-24
  • vueelementUI表格控制显示隐藏对应列的方法
    本文实例为大家分享了vue elementUI表格控制显示隐藏对应列的具体代码,供大家参考,具体内容如下 需求:后端返回全部列数据。前端根据选项来显示对应的列,如果不勾选,默认全部隐...
    99+
    2024-04-02
  • vue实现动态控制el-table表格列的展示与隐藏
    本文实例为大家分享了vue动态控制el-table表格列的展示与隐藏的具体代码,供大家参考,具体内容如下 1.引入el-table组件,这里我直接用官网的示例代码 <templ...
    99+
    2024-04-02
  • vue table表格中如何控制下拉框的显示隐藏
    目录vue table表格控制下拉框的显示隐藏vue下拉框清空总结vue table表格控制下拉框的显示隐藏 需求:点击表格的某一个列的吗某个值,显示那值得下拉框,失去焦点时则隐藏 ...
    99+
    2023-01-18
    vue table表格 table下拉框的显示 table下拉框的隐藏
  • vue如何控制元素的隐藏与显示
    vue如何控制元素的隐藏与显示,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。vue控制元素隐藏与显示的方法:1、利用“v-if...
    99+
    2024-04-02
  • Vue中子组件的显示与隐藏方式
    目录子组件的显示与隐藏第一步 使用v-show1.1 父组件1.2 子组件2 第二步 父子组件传参2.1 父组件2.2 子组件子组件的显示与隐藏 在使用Vue开发前端页面的过程中,经...
    99+
    2024-04-02
  • CSS怎么隐藏表格中的列
    本篇内容介绍了“CSS怎么隐藏表格中的列”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、CSS 隐藏表格列的常规方法表格是前端页面中常用的...
    99+
    2023-07-06
  • Vue element-ui中表格过长内容隐藏显示的实现方式
    目录一、el-table表格二、Popover 弹出框总结一、el-table表格 在使用VUE显示后台数据时,经常会遇到数据过长,显示出来的效果很难看,如下图所示: 上图中,红框...
    99+
    2024-04-02
  • elementUI Vue如何实现单个按钮显示和隐藏的变换功能
    小编给大家分享一下elementUI Vue如何实现单个按钮显示和隐藏的变换功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在做后台管理系统中遇到一个需求, 点击一个按钮可以变换里面字的...
    99+
    2024-04-02
  • 怎么利用vue控制元素的显示与隐藏
    这篇文章主要介绍了怎么利用vue控制元素的显示与隐藏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么利用vue控制元素的显示与隐藏文章都会有所收获,下面我们一起来看看吧。 方法:使用 v-...
    99+
    2023-07-04
  • access如何将隐藏的列显示出来
    要将隐藏的列显示出来,可以按照以下步骤进行操作:1. 打开Microsoft Access数据库,并打开需要显示隐藏列的表格。2. ...
    99+
    2023-09-22
    access
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作