电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

vue iview 隱藏Table組件里的某一列操作

瀏覽:82日期:2022-10-29 18:15:33

1、假設我要隱藏columns里的 “賬戶組名稱”

columns: [{ type: ’selection’, width: 60, align: ’center’},{ title: ’賬號ID’, key: ’accountIdString’},{ title: ’賬號名稱’, key: ’accountName’},{ title: ’賬戶組名稱’, key: ’accountGroupName’}]

2、根據各自需求去判斷

示例:如果是單賬戶表標題顯示'賬號ID、賬號名稱' 如果是賬戶組表標題顯示'賬戶組名稱'

if(this.queryCostComparisonData[i].accountGroupName){ this.columns = this.columns.filter(col => col.key !== ’accountIdString’ ); this.columns = this.columns.filter(col => col.key !== ’accountName’ ); }else{ this.columns = this.columns.filter(col => col.key !== ’accountGroupName’ ); }

補充知識:vue——動態控制表格列的顯示和隱藏

如下所示:

vue iview 隱藏Table組件里的某一列操作

如圖,為要實現的需求,即右鍵table的表頭彈出菜單欄,通過勾選多選框的內容來控制表格列的顯示和隱藏。

1. HTML部分(elemen-ui):

<el-table :data='list' border fit @header-contextmenu='contextmenu'> <el-table-column v-if='colData[0].istrue' label='放射源ID' /> <el-table-column v-if='colData[1].istrue' label='源自編號' /> <el-table-column v-if='colData[2].istrue' label='類型' /> <el-table-column v-if='colData[3].istrue' label='強度' /> <el-table-column v-if='colData[4].istrue' label='還源人' /></el-table><!--右鍵彈出的菜單內容--><!--動態計算菜單出現的位置--><div v-show='menuVisible' : class='menu1'> <el-checkbox-group v-model='colOptions'> <el-checkbox v-for='item in colSelect' :key='item' :label='item' /> </el-checkbox-group></div>

(1) 通過v-if='colData[0].istrue',來判斷表格列的狀態

(2) @header-contextmenu是element-ui的table組件提供的事件,當表格表頭被右鍵點擊時觸發該事件

2. Data部分:

data() { return{ menuVisible: false, //右鍵菜單的顯示與隱藏 top: 0, //右鍵菜單的位置 left: 0, colOptions: [’放射源ID’, ’源自編號’, ’類型’, ’強度’, ’還源人’], //多選框的選擇項 colSelect: [’放射源ID’, ’源自編號’, ’類型’, ’強度’, ’還源人’], //多選框已選擇的內容,即表格中顯示的列 // istrue屬性存放列的狀態 colData: [ { title: ’放射源ID’, istrue: true }, { title: ’源自編號’, istrue: true }, { title: ’類型’, istrue: true }, { title: ’強度’, istrue: true }, { title: ’還源人’, istrue: true } ] }}

3. Js部分:

(1) 在watch部分監聽選中項的變化

<script>watch: { colOptions(newVal, oldVal) { if (newVal) { //如果有值發生變化,即多選框的已選項變化 var arr = this.colSelect.filter(i => newVal.indexOf(i) < 0) // 未選中 this.colData.filter(i => { if (arr.indexOf(i.title) !== -1) { i.istrue = false } else { i.istrue = true } }) } } }, </script>

(2)

methods: { contextmenu(row, event) { //先把菜單關閉,目的是第二次或者第n次右鍵鼠標的時候 它默認的是true this.menuVisible = false // 顯示菜單 this.menuVisible = true window.event.returnValue = false //阻止瀏覽器自帶的右鍵菜單彈出 //給整個document綁定click監聽事件, 左鍵單擊任何位置執行foo方法 document.addEventListener(’click’, this.foo) //event對應的是鼠標事件,找到鼠標點擊位置的坐標,給菜單定位 this.top = event.clientY this.left = event.clientX }, foo() { this.menuVisible = false //關閉菜單欄 document.removeEventListener(’click’, this.foo) //解綁click監聽,很重要,具體原因可以看另外一篇博文 } }

其中鼠標事件的返回值具體如下

vue iview 隱藏Table組件里的某一列操作

這里調用的clientX和clientY(鼠標點擊位置相對于瀏覽器的坐標)來給菜單定位

4. CSS部分:

簡單設置了一下菜單的樣式,具體可以看情況修改

.menu1{ position:fixed; height:auto; width:231px; border-radius: 3px; border: 1px solid #999999; background-color: #f4f4f4; padding: 10px; z-index: 1000}.el-checkbox{ display:block; height:20px; line-height:20px; padding:0 5px; margin-right:0; font-size:12px; border: 1px solid transparent;}.el-checkbox:hover{ border-radius: 3px; border: 1px solid #999999;}

2019-9-25更新:

實際開發中一般表格列比較多的時候才會用到動態顯隱。如果還是一條一條寫el-table-column反而太過復雜,因此嘗試了使用v-for來循環,親測可用,具體代碼如下~

<el-table border :data='list' highlight-current-row @header-contextmenu='contextmenu' > <el-table-column v-for='(item,index) in tableHeader' v-if='colData[index].istrue' :key='item.key' show-overflow-tooltip :label='item.label' :prop='item.key' > <template slot-scope='scope'> <span v-if='(item.key===’qyrq’||item.key===’ccrq’||item.key===’zcsj’)&&scope.row[item.key]'>{{ scope.row.qyrq|parseTime() }}</span> <span v-else>{{ scope.row[item.key] }} </span> </template> </el-table-column> </el-table>

dara() { return{ tableHeader: [ { label: ’放射源ID’, key: ’id’ }, { label: ’源自編號’, key: ’zbh’ }, { label: ’類型’, key: ’kind’ }, { label: ’強度’, key: ’qd’ }, { label: ’還源人’, key: ’user’ }, ] }}

需要注意的是,這里的tableHeader、colOptions、colSelect、colData中列的順序需要一一對應不可錯亂!

以上這篇vue iview 隱藏Table組件里的某一列操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
主站蜘蛛池模板: LED投光灯-工矿灯-led路灯头-工业灯具 - 山东普瑞斯照明科技有限公司 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 解放卡车|出口|济南重汽|报价大全|山东三维商贸有限公司 | 天津仓库出租网-天津电商仓库-天津云仓一件代发-【博程云仓】 | 视觉检测设备_自动化检测设备_CCD视觉检测机_外观缺陷检测-瑞智光电 | 自清洗过滤器,浅层砂过滤器,叠片过滤器厂家-新乡市宇清净化 | 上海律师咨询_上海法律在线咨询免费_找对口律师上策法网-策法网 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 高考志愿规划师_高考规划师_高考培训师_高报师_升学规划师_高考志愿规划师培训认证机构「向阳生涯」 | 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 有机废气处理-rto焚烧炉-催化燃烧设备-VOC冷凝回收装置-三梯环境 | 贝壳粉涂料-内墙腻子-外墙腻子-山东巨野七彩贝壳漆业中心 | 西门子伺服控制器维修-伺服驱动放大器-828D数控机床维修-上海涌迪 | 矿用履带式平板车|探水钻机|气动架柱式钻机|架柱式液压回转钻机|履带式钻机-启睿探水钻机厂家 | 头条搜索极速版下载安装免费新版,头条搜索极速版邀请码怎么填写? - 欧远全 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 成都顶呱呱信息技术有限公司-贷款_个人贷款_银行贷款在线申请 - 成都贷款公司 | 肉嫩度仪-凝胶测试仪-国产质构仪-气味分析仪-上海保圣实业发展有限公司|总部 | 求是网 - 思想建党 理论强党| 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 智能家居全屋智能系统多少钱一套-小米全套价格、装修方案 | 盐城网络公司_盐城网站优化_盐城网站建设_盐城市启晨网络科技有限公司 | 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 | 高速混合机_锂电混合机_VC高效混合机-无锡鑫海干燥粉体设备有限公司 | 机床导轨_导轨板_滚轮导轨-上海旻佑精密机械有限公司 | LCD3D打印机|教育|桌面|光固化|FDM3D打印机|3D打印设备-广州造维科技有限公司 | 挨踢网-大家的导航! | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 温州在线网| 吸污车_吸粪车_抽粪车_电动三轮吸粪车_真空吸污车_高压清洗吸污车-远大汽车制造有限公司 | 体感VRAR全息沉浸式3D投影多媒体展厅展会游戏互动-万展互动 | 专业广州网站建设,微信小程序开发,一物一码和NFC应用开发、物联网、外贸商城、定制系统和APP开发【致茂网络】 | 济南品牌设计-济南品牌策划-即合品牌策划设计-山东即合官网 | 好杂志网-首页| 北京森语科技有限公司-模型制作专家-展览展示-沙盘模型设计制作-多媒体模型软硬件开发-三维地理信息交互沙盘 | 冷库安装厂家_杭州冷库_保鲜库建设-浙江克冷制冷设备有限公司 | 液压压力机,液压折弯机,液压剪板机,模锻液压机-鲁南新力机床有限公司 | 低浓度恒温恒湿称量系统,强光光照培养箱-上海三腾仪器有限公司 | 陕西鹏展科技有限公司|