效果如圖:
表頭標題是重復(fù)的薛训、為了能看到滾動效果
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
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? })
? ? ? ? ? ? }
? ? ? }
? ? },