iview隐藏表格的某一列,iview中的table组件

  iview隐藏表格的某一列,iview中的table组件

  本文主要介绍vue iview在表格组件中隐藏了一个列操作,有很好的参考价值。希望对大家有帮助。来和边肖一起看看吧。

  1、假设我要隐藏columns里的 “账户组名称”

  列:[

  {

  类型:“选择”,

  宽度:60,

  对齐:“居中”

  },

  {

  标题:帐户ID ,

  密钥:“accountIdString”

  },

  {

  标题:帐户名,

  密钥:“帐户名”

  },

  {

  标题:“帐户组名称”,

  密钥:“帐户组名”

  }]

  2、根据各自需求去判断

  例如:“帐户ID和帐户名称”显示在单个帐户表的标题中,“帐户组名称”显示在帐户组表的标题中。

  if(this . querycostcomparisondata[I].accountGroupName){

  this . columns=this . columns . filter(col=col . key!== account id string );

  this . columns=this . columns . filter(col=col . key!== account name );

  }否则{

  this . columns=this . columns . filter(col=col . key!== account group name );

  }

  补充知识:vue——动态控制表格列的显示和隐藏

  如下所示:

  如图,对于要实现的需求,即在表头上点击右键弹出菜单栏,勾选多选框的内容,控制表格列的显示和隐藏。

  1. HTML部分(elemen-ui):

  El-table:data= list border fit @ header-context menu= context menu

  El-table-column v-if= coldata[0]。istrue label=放射源ID align=center/

  El-table-column v-if= coldata[1]。is true label= from number align= center /

  El-table-column v-if= coldata[2]。is true label= type align= center /

  El-table-column v-if= coldata[3]。is true label= strength align= center /

  El-table-column v-if= coldata[4]。is true label= return person align= center /

  /el-table

  !-右键单击弹出的菜单内容-

  !-动态计算菜单出现的位置-

  div v-show= menuVisible :style= { top:top quot;pxquot,left:left quot;pxquot} class=menu1

  El-checkbox-group v-model= co options

  El-checkbox v-for= item in col select :key= item :label= item /

  /el-checkbox-group

  /div

  (1)使用v-if=colData[0]。判断表列的状态。

  (2) @header-contextmenu是element-ui的表格组件提供的事件,当表格表头被右键点击时触发。

  2. Data部分:

  data() {

  返回{

  MenuVisible: false,//显示和隐藏右键菜单

  Top: 0,//右键菜单的位置

  左:0,

  选项:[放射源ID ,来源号,类型,强度,//多选框的选择

  ColSelect: [放射源ID ,来源号,类型,强度,归源],//多选框选择的内容是表格中显示的列。

  //istrue属性存储列的状态。

  colData: [

  {title:放射源ID ,istrue: true},

  {标题:从号码,istrue: true},

  {title: type ,istrue: true},

  {title:力量,istrue: true},

  {title:回归本源,istrue: true}

  ]

  }

  }

  3. Js部分:

  (1)监视观察部分中所选项目的变化。

  脚本

  观察:{

  选项(newVal,oldVal) {

  If (newVal) {//如果任意值发生变化,即多选框的选中项发生变化。

  var arr=this . col select . filter(I=new val . index of(I)0)//未选择

  this.colData.filter(i={

  if (arr.indexOf(i.title)!==-1) {

  i.istrue=false

  }否则{

  i.istrue=true

  }

  })

  }

  }

  },

  /脚本

  (2)

  方法:{

  上下文菜单(行,事件){

  //先关闭菜单,这样第二次或者第n次鼠标右键的时候默认为真。

  this.menuVisible=false

  //显示菜单

  this.menuVisible=true

  window . event . return value=false//防止浏览器自带的右键菜单弹出。

  //将click listening事件绑定到整个文档,左键单击任意位置执行foo方法。

  document . addevent listener( click ,this.foo)

  //事件对应于鼠标事件。找到鼠标点击位置的坐标,定位菜单。

  this.top=event.clientY

  this.left=event.clientX

  },

  foo() {

  This.menuVisible=false //关闭菜单栏

  document . removeeventlistener( click ,this . foo)//解除绑定点击监控非常重要。具体原因见另一篇博文。

  }

  }

  鼠标事件的返回值如下

  这里调用的clientX和客户(鼠标点击位置相对于浏览器的坐标)来给菜单定位

  4. CSS部分:

  简单设置了一下菜单的样式,具体可以看情况修改。菜单1{

  位置:固定;

  高度:自动;

  宽度:231像素

  边框半径:3px

  边框:1px固体# 999999

  背景色:# f4f4f4

  填充:10px

  z指数:1000

  }。埃尔-复选框{

  显示:块;

  高度:20px

  行高:20px

  填充:0 5px

  右边距:0;

  字体大小:12px

  边框:1px纯色透明;

  }。埃尔-复选框:悬停{

  边框半径:3px

  边框:1px固体# 999999

  }

  2019-9-25更新:

  实际开发中一般表格列比较多的时候才会用到动态显隐。如果还是一条一条写埃尔-表格-列反而太过复杂,因此尝试了使用迭代来循环,亲测可用,具体代码如下~

  埃尔表

  边界

  :data=list

  突出显示-当前行

  @ header-context menu=上下文菜单

  埃尔-表格-列

  表头中的v-for=(项目,索引

  v-if=colData[index].伊斯特鲁

  :key=item.key

  显示溢出工具提示

  :label=item.label

  :prop=item.key

  模板槽-范围="范围"

  span v-if=(item。key=== qyrq item。key=== ccrq item。key=== zcsj )范围。行[项目。key]“{ { scope。划。qyrq parse time()} }/span

  span v-else { { scope。行[项目。key]} }/span

  /模板

  /El-表格-列

  /el-table

  达拉(){

  返回{

  表格标题:[

  {标签: 放射源ID ,键: id },

  {标签: 源自编号,key: zbh },

  {标签: 类型,key: kind },

  {标签: 强度,键: qd },

  {标签: 还源人,键:"用户"},

  ]

  }}

  需要注意的是,这里的tableHeader、colOptions、colSelect、colData中列的顺序需要一一对应不可错乱!

  以上这篇vue iview隐藏桌子组件里的某一列操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: