Vue實現(xiàn)動態(tài)控制表格列的顯示和隱藏
更新時間:2022年04月11日 16:23:13 作者:禿頭程序員
這篇文章主要為大家詳細介紹了Vue實現(xiàn)動態(tài)控制表格列的顯示和隱藏,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Vue實現(xiàn)動態(tài)控制表格列的顯示和隱藏的具體代碼,供大家參考,具體內(nèi)容如下
效果如圖:
表頭標題是重復的、為了能看到滾動效果
v-if=“lists[0].ispass” 來判斷表格列的狀態(tài)每一列是否顯示或隱藏 勾選則展示、取消勾選隱藏、默認勾選
<el-dropdown :hide-on-click="false"> ? ? ? ? ? ? <i class="iconfont icon-shaixuan" ></i> ? ? ? ? ? ? <el-dropdown-menu slot="dropdown" > ? ? ? ? ? ? ? <el-scrollbar style="height: 60vh">//作用是數(shù)據(jù)過多把表單數(shù)據(jù)的整體高度固定、多出的區(qū)域可以下拉展示 ? ? ? ? ? ? ? ? <el-checkbox-group v-model="check"> ? ? ? ? ? ? ? ? ? <el-dropdown-item v-for="(item,index) in checkList" :key="index"><el-checkbox :label="item" :key="item"></el-checkbox> ? ? ? ? ? ? ? ? ? </el-dropdown-item> ? ? ? ? ? ? ? ? </el-checkbox-group> ? ? ? ? ? ? ? </el-scrollbar> ? ? ? ? ? ? </el-dropdown-menu> </el-dropdown> <el-table :data="institutionalTypeList" border align="center" v-loading="listLoading" style="width: 100%;" :header-cell-style="tableBg"> ? ? ? ? <af-table-column type="index" :index="indexMethod" label="序號" width="90"> ? ? ? ? </af-table-column> ? ? ? ? <af-table-column v-if="lists[0].ispass" prop="id" label="編碼" > ? ? ? ? </af-table-column> ? ? ? ? <af-table-column v-if="lists[1].ispass" prop="name" label="名稱" > ? ? ? ? </af-table-column> ? ? ? ? <af-table-column v-if="lists[2].ispass" prop="updatetime" label="更新時間" > ? ? ? ? </af-table-column> </el-table>
lists是所有表頭標題,check是多選框默認全選,checkList也是所有表頭標題、跟多選框綁定的
data() { ? ? ? return { ? ? ? ? check:['編碼','名稱','更新時間'], ? ? ? ? checkList:['編碼','名稱','更新時間'], ? ? ? ? lists:[ ? ? ? ? ? {label:'編碼',ispass:true}, ? ? ? ? ? {label:'名稱',ispass:true}, ? ? ? ? ? {label:'更新時間',ispass:true}, ? ? ? ? ], ? ? ? } },
動態(tài)監(jiān)聽值選中的選項
watch:{ ? ? ? check(newVal){ ? ? ? ? ? ? if (newVal) { ? ? ? ? ? ? ? var arr = this.checkList.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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。