vue elementUI表格控制顯示隱藏對應(yīng)列的方法
本文實例為大家分享了vue elementUI表格控制顯示隱藏對應(yīng)列的具體代碼,供大家參考,具體內(nèi)容如下
需求:后端返回全部列數(shù)據(jù)。前端根據(jù)選項來顯示對應(yīng)的列,如果不勾選,默認(rèn)全部隱藏。
效果圖
勾選后顯示對應(yīng)的列

上代碼
html部分
這里用v-if來顯示隱藏,因為這個elementul組件的原因,v-show不生效,要用v-if
<el-table-column ? ? ? ? v-if="lists[0].ispass" ? ? ? ? ? label="Upper" ? ? ? ? ? prop="db28" ? ? ? ? ? show-overflow-tooltip ? ? ? ? ></el-table-column> ? ? ? ? <el-table-column ? ? ? ? v-if="lists[1].ispass" ? ? ? ? ? label="Lower" ? ? ? ? ? prop="db31" ? ? ? ? ? show-overflow-tooltip ? ? ? ? ></el-table-column> ? ? ? ? <el-table-column ? ? ? ? v-if="lists[2].ispass" ? ? ? ? ? label="UP+LOW" ? ? ? ? ? prop="db34" ? ? ? ? ? show-overflow-tooltip ? ? ? ? ></el-table-column> ? ? ? ? <el-table-column ? ? ? ? v-if="lists[3].ispass" ? ? ? ? ? label="Static" ? ? ? ? ? prop="db36" ? ? ? ? ? key="1" ? ? ? ? ? show-overflow-tooltip ? ? ? ? ></el-table-column> ? ? ? ? <el-table-column ? ? ? ? v-if="lists[4].ispass" ? ? ? ? ? label="LRO-T1 OA" ? ? ? ? ? min-width="90px" ? ? ? ? ? prop="db44" ? ? ? ? ? key="2" ? ? ? ? ? show-overflow-tooltip ? ? ? ? > </el-table-column>
data部分
ispass是用來控制顯示或隱藏的,label是用來判斷的。
lists:[
? ? ? ? ? {label:'Upper',ispass:false},
? ? ? ? ? {label:'Lower',ispass:false},
? ? ? ? ? {label:'UP+LO',ispass:false},
? ? ? ? ? {label:'Static',ispass:false},
? ? ? ? ? {label:'LRO-T1 OA',ispass:false},
? ? ? ? ? {label:'LRO-T2 OA',ispass:false},
? ? ? ? ? {label:'LRO-B1 OA',ispass:false},
? ? ? ? ? {label:'LRO-B2 OA',ispass:false},
? ? ? ? ? {label:'RRO-C OA',ispass:false},
? ? ? ? ? {label:'LRO-T1 Buige',ispass:false},
? ? ? ? ? {label:'LRO-T2 Buige',ispass:false},
? ? ? ? ? {label:'LRO-B1 Buige',ispass:false},
? ? ? ? ? {label:'LRO-B2 Buige',ispass:false},
? ? ? ? ? {label:'LRO-T1 Dent',ispass:false},
? ? ? ? ? {label:'LRO-T2 Dent',ispass:false},
? ? ? ? ? {label:'LRO-B1 Dent',ispass:false},
? ? ? ? ? {label:'LRO-B2 Dent',ispass:false},
? ? ? ? ],
? ? ? ? check:[
? ? ? ? "Upper",
? ? ? ? "Lower",
? ? ? ? "UP+LO",
? ? ? ? "Static",
? ? ? ? "LRO-T1 OA",
? ? ? ? "LRO-T2 OA",
? ? ? ? "LRO-B1 OA",
? ? ? ? "LRO-B2 OA",
? ? ? ? "RRO-C OA",
? ? ? ? "LRO-T1 Buige",
? ? ? ? "LRO-T2 Buige",
? ? ? ? "LRO-B1 Buige",
? ? ? ? "LRO-B2 Buige",
? ? ? ? "LRO-T1 Dent",
? ? ? ? "LRO-T2 Dent",
? ? ? ? "LRO-B1 Dent",
? ? ? ? "LRO-B2 Dent",
? ? ? ],
? ? ? checkList: [
? ? ? ],方法部分
直接用watch監(jiān)聽,復(fù)制就行。這里注意checkList和check
checkList:代表你多選框的默認(rèn)選中,我沒寫就是默認(rèn)全不選
check:這個也要寫和lists里的label一樣,用來判斷的。
watch:{
? ? ? checkList(newVal){
? ? ? ? ? ? if (newVal) {
? ? ? ? ? ? ? var arr = this.check.filter(i => newVal.indexOf(i) < 0) //未選中
? ? ? ? ? ? ? this.lists.map(i => {
? ? ? ? ? ? ? ? if (arr.indexOf(i.label) !== -1) {
? ? ? ? ? ? ? ? ? i.ispass = false
? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? i.ispass = true
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? })
? ? ? ? ? ? }
? ? ? }
? ? },
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
淺談Vue2.4.0 $attrs與inheritAttrs的具體使用
這篇文章主要介紹了淺談Vue2.4.0 $attrs與inheritAttrs的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
vue項目使用高德地圖時報錯:AMap?is?not?defined解決辦法
這篇文章主要給大家介紹了關(guān)于vue項目使用高德地圖時報錯:AMap?is?not?defined的解決辦法,"AMap is not defined"是一個錯誤提示,意思是在代碼中沒有找到定義的AMap,需要的朋友可以參考下2023-12-12
HBuilder導(dǎo)入vue項目并通過域名訪問的過程詳解
這篇文章主要介紹了HBuilder導(dǎo)入vue項目并通過域名訪問,一般情況下運行vue項目需要安裝node.js,通過npm命令來安裝vue組件和運行vue項目,本文給大家介紹的非常詳細,需要的朋友可以參考下2022-05-05
vue+node+socket io實現(xiàn)多人互動并發(fā)布上線全流程
這篇文章主要介紹了vue+node+socket io實現(xiàn)多人互動并發(fā)布上線全流程,本文給大家提到了socket.io相關(guān)用法概覽及開發(fā)流程,需要的朋友可以參考下2021-09-09

