效果

如上图所示,点击table右上方的表格按钮,弹出菜单栏,进行勾选,从而达到表格对应列显示和隐藏

1.HTML部分(ant design)

<div class="right-btns"><!-- 按钮 --><a-button class="table" @click="handleTable"><a-icon type="table" /></a-button><!-- 弹出框 --><div class="tableSelect" v-if="tableSelectVisible"><a-checkbox-group :value="checkValue" :options="colOptions"/></div>
</div><!-- 表格内容 -->
<a-table :dataSource="expertList"><a-table-column v-if="colIsTrue[0]" title="专家ID" key="idAsString" /><a-table-column v-if="colIsTrue[1]" title="专家姓名" key="name" /><a-table-column v-if="colIsTrue[2]" title="行业" key="industry" /><a-table-column v-if="colIsTrue[3]" title="年龄" key="age" /><a-table-column v-if="colIsTrue[4]" title="学历" key="education" /><a-table-column v-if="colIsTrue[5]" title="工作单位" key="company" /><a-table-column v-if="colIsTrue[6]" title="入库时间" key="createAt" /><a-table-column title="操作" key="action"><template slot-scope="record"><a-button size="small" icon="edit" type="primary" @click="openUpd(record.id)">编辑</a-button><a-button size="small" icon="delete" type="primary" @click="openDel(record)">删除</a-button></template></a-table-column>
</a-table>

a. 通过v-if="colIsTrue[6]"来判断表格对应列的状态

2.javascript部分

data(){return {colOptions:[{label:'专家ID',value:0,onChange:this.colChange},{label:'专家姓名',value:1,onChange:this.colChange},{label:'行业',value:2,onChange:this.colChange},{label:'年龄',value:3,onChange:this.colChange},{label:'学历',value:4,onChange:this.colChange},{label:'工作单位',value:5,onChange:this.colChange},{label:'入库时间',value:6,onChange:this.colChange},],colIsTrue:[],checkValue:[],}
},
created(){//当所有数据都加载完成之后,将checkbox设置为全部选中状态this.colOptions && this.colOptions.forEach((item,index)=>{this.colIsTrue.push(true)this.checkValue.push(index)})
},
mounted(){//菜单栏弹出后,点击其它地方,关闭菜单栏let that=this;$(document).bind("click", function(e) {var target = $(e.target);if (target.closest(".tableSelect").length == 0 && target[0].className.indexOf('table')==-1) {that.tableSelectVisible=false;}})this.colOptions && this.colOptions.forEach((item,index)=>{this.colIsTrue.push(true)this.checkValue.push(index)})
},
methods:{colChange(e){//当checkbox有修改时const index=e.target.valuethis.colIsTrue[index] ? (this.$set(this.colIsTrue,index,false)) : (this.$set(this.colIsTrue,index,true))if(e.target.checked) this.checkValue.push(index)else{this.checkValue.forEach((item,arrIndex)=>{if(item==index){this.checkValue.splice(arrIndex,1)}})}},handleTable(){//打开菜单栏this.tableSelectVisible=true;},
}

3.css样式部分

.right-btns{position:relative;.tableSelect{position: absolute;background:#fff;border:1px solid #ecedef;display:inline-block;top: 33px;right: 0;z-index: 100;padding: 10px;width: 156px;}
}

Vue动态控制表格列的显示隐藏相关推荐

  1. Vue控制表格列的显示隐藏

    table控制列显示隐藏的功能 当选中时 table列显示,未选中时隐藏该列 首先造轮子 全局拿来用 // 这是子组件 <template><div style="text ...

  2. element-table在实现columns(表格列)显示隐藏过程中由于show-overflow-tooltip导致的渲染问题

    背景 刚开始为了写表格方便所以在使用element时候使用v-for循环来写,所以代码类似于如下 <el-table-columnv-for="(item, index) in tab ...

  3. layui表格列动态显示或隐藏

    问题描述:多个功能使用同一个页面时,有时要求不同的功能中展示的表格列数据不同,这就需要动态设置表格列的显示或隐藏. 解决方案:layui渲染表格数据后有个完成的回调函数,在回调函数中根据你的逻辑条件动 ...

  4. Vue+Element UI表格列的显示和隐藏

    如下代码: <template><div><el-table:data="tabledate"height="400">// ...

  5. iview(View UI)使用 Vue 的 Render 函数,自定义表格列头显示内容(renderHeader)

    开发中遇到这样一个需求,该项目用的是iview UI组件,需求是: 表格列头有一个字段和一个单位,两者样式不同,理想效果如下:"建筑面积四个字为18px.单位(㎡)为16px". ...

  6. antd表格列自定义显示与隐藏

    效果图: 相关定义: ckValues: [], //checkgroup设置值chkAll: true, //全选indeterminate: false, //模糊状态poped: false / ...

  7. element-ui表格列金额显示两位小数

    对于金额的显示,大多情况下需要保留两位小数,比如下面的(表格采用 element-ui): 在vue.js中,对文本的处理通常是通过设置一系列的过滤器,过滤器可以用在两个地方:双花括号插值 和 v-b ...

  8. Vue+iview 密码框输入显示隐藏控制

    Vue+iview 密码框输入控制显示隐藏 1. 背景 2. 最终效果 2.1 隐藏密码 2.2 显示密码 3. 实现步骤 3.1 使用v-if.v-else 3.2 密码隐藏 3.3 密码显示 3. ...

  9. Vue按钮控制身份证号码显示隐藏中间部分

    在实际开发中经常会遇到点击小眼睛图标控制身份证号码显示隐藏的情况.比如: 这是我在实际开发中遇到的问题,或许方法有点笨,但是可以实现,有大神请指教. 1.首先在data中保存数据,并且定义一个布尔值变 ...

最新文章

  1. VSEARCH让你免费使用无内存限制的USEARCH
  2. Codeforces Round #323 (Div. 2) A. Asphalting Roads
  3. python处理流程-分析Python的Django框架的运行方式及处理流程
  4. 中油即时通信电脑版_联想超智能电脑横空出世 电脑适应人已成现实
  5. 单机环境RocketMQ的安装
  6. 12306订票候补是个坑_还在加钱抢票?12306已屏蔽多个抢票软件渠道!
  7. C语言 va_start / va_end / va_arg 自定义 printf 函数 - C语言零基础入门教程
  8. 小米平板5系列获EEC认证:骁龙870加持 预装深度定制MIUI系统
  9. [Ext JS 4] 实战之Grid, Tree Gird 添加按钮列
  10. cpio -H newc参数详解
  11. 根据分隔符将一个长字符串分割保存到动态数组中
  12. pip离线下载安装依赖包,及github包,及常用pip源
  13. 数据库的ACID是什么
  14. Learning Affinity from Attention End-to-End Weakly-Supervised Semantic Segmentation withTransformers
  15. Oracle 根据汉字返回对应拼音的 函数
  16. 图像翻译三部曲:pix2pix, pix2pixHD, vid2vid
  17. 使用 Visio 绘制卷积示意图
  18. 【Python处理EXCEL】--pandas导入Excel文件
  19. 数字IP和iP的转化
  20. 昨日伦镍交易无效静待上海处理结果,橡胶认购大涨,印尼神油强势涨停YP新低2022.3.9

热门文章

  1. 如何免费识别图片文字?这几个软件彻底解放你的双手
  2. 华为云弹性公网IP服务,为企业敲开互联网大门
  3. RISC-V为中国MCU企业打开一个新窗口!
  4. python自带的函数有哪些_内置函数 python自带的函数
  5. Java课设 2048小游戏
  6. 个人电子邮箱如何在网页进行登录?
  7. 深度揭秘:到底什么是“授时”
  8. 今天是2019年大年三十儿,写了几幅字,给大家拜个年啦
  9. Altium Designer之如何显示标题栏内容
  10. ShapeAlias