vue+element-ui,前端控制显示隐藏列

因为功能需要,element框架目前没有开放此功能,所以对比element发布的最新版本,做了点尝试,结果还不错

先看html代码
<el-popover
  placement="bottom"
  width="200"
  trigger="click">
  <div style="padding:4px;" v-for="item in colSelect" :key="item" :label="item" :value="item">
    <el-checkbox v-model="colOptions" :label="item" border></el-checkbox>
  </div>
说明:colSelect用来存放需要筛选显示的列的字段  数组形式
colOptions: 需要再Watch里面监听变化的值  数组形式

  <el-button slot="reference">筛选列</el-button>
<el-table-column  v-for="item in tableHead":label="item.label" v-if="item.istrue" :property="item.property"
                width="180">
            <template slot-scope="scope"  >
                {{scope.row[scope.column.property]}}
            </template>
        </el-table-column>
        说明: tableHead:[] 数组,存放展示的表头
js部分   字段已经上面说明,就不解释了
creatd(){
 var _this = this;
  for (let i = 0; i < _this.tableHead.length; i++) {
     _this.colSelect.push(_this.tableHead[i].label);
    if (_this.tableHead[i].label == '名称') { //初始化不想展示的列可以放在这个条件里
      continue;
     }
     _this.colOptions.push(_this.tableHead[i].label); 
      
  }
}
  watch: {
  colOptions(valArr) {
    var arr = this.colSelect.filter(i => valArr.indexOf(i) < 0); // 未选中
    this.tableHead.filter(i => {
      if (arr.indexOf(i.label) != -1) {
        i.istrue = false;
        this.$nextTick(() => {
          this.$refs.tableDataRef.doLayout();
        });
      } else {
        i.istrue = true;
        this.$nextTick(() => {
          this.$refs.tableDataRef.doLayout();
        });
      }
    });
  }
}
说明:doLayout() 是重新动态计算表格的宽度

实现效果
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
Vue + ElementUI 是一个用于构建后台管理系统的前端项目。它结合了Vue框架和ElementUI组件库,提供了丰富的UI组件和开发工具,使开发者能够快速构建出美观、易用的后台管理界面。\[1\] 在开始使用Vue + ElementUI项目之前,你需要先安装ElementUI。你可以通过在项目路径下的终端中输入以下命令来安装ElementUI:npm i element-ui -S。然后,在项目的main.js文件中,通过import导入ElementUI,并使用Vue.use(ElementUI)来全局使用ElementUI组件。如果你只想按需引入某个组件,你可以使用import {ComponentName} from 'element-ui'来导入指定的组件,然后使用Vue.use(ComponentName)来使用该组件。\[2\] 在Vue + ElementUI项目中,你可以使用computed属性来定义一个函数来渲染组件。例如,你可以在computed中定义一个名为noChildren的函数,用于过滤出没有子级的一级菜单。然后,你可以使用v-for指令来遍历过滤出来的一级菜单,并在相应位置进行呈现。例如,你可以使用<el-menu-item>来呈现每个一级菜单项,并使用相应的数据来设置index、key、图标和标题等属性。\[3\] 总结起来,Vue + ElementUI是一个用于构建后台管理系统的前端项目,它结合了Vue框架和ElementUI组件库。你可以通过安装ElementUI并在项目中使用它的组件来构建出美观、易用的后台管理界面。在渲染组件方面,你可以使用computed属性来定义函数来过滤和呈现数据。 #### 引用[.reference_title] - *1* *2* *3* [Vue + Element-UI —— 项目实战(一)](https://blog.csdn.net/qq_45902692/article/details/125079634)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玖逸少女梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值