element ui +vue table组件实现按列筛选
需求: 根据鼠标移动在按钮时出现popover弹出框以checkbox形式展现表格中所有的列(table label)。用户可在checkbox中选中所要展示的列。
官网是对表格行数据进行筛选,我们要对列进行筛选
<template>
<el-popover placment="top" width="150" trigger="hover">
<el-checkbox-group v-model="checkList">
<el-checkbox v-for="(item,index) in allList" :label="item.label" :key="index"/>
</el-checkbox-group>
<el-button slot="reference" type="primary" size="mini"/>
</el-popover>
</template>
<script>
export default{
data(){
checkList:[], // checkbox
allList:[] // 存放所有label
tableLabel:[] // 表格label
},
// 监听筛选列表
watch:{
checklist:{
handler(val) {
this.tabelLabel = this.allList.filter(item => {
return val.indexOf(item.label) > -1
}
}
}
}
created(){
// 初始化表格筛选
this.allList = JSON.parse(JSON.stringify(this.tableLabel))// 深拷贝
this.getCheckList()
}
methods:{
// 所有checkbox被选中状态
getCheckList() {
this.tableLabel.forEach(element => {
this.checkList.push(element.label)
}
}
}
}
</script>
感兴趣的小伙伴可以自己封装成组件使用~
上一篇:
IDEA上Java项目控制台中文乱码
