vue实现checkbox点击选择控制element-ui table表单动态列展示与隐藏
1. checkbox控制表单列的显示与隐藏展示效果代码<template><div class="app-container"><div class="filter-container"><el-checkbox-group v-model="checkboxVal"><el-chec...
·
1. 实现展示效果
2. 实现代码如下
1:默认第一次先遍历 默认的头
formThead
里面设置的列。
2:通过 watch 侦听 checkbox v-model 的数据点击时候,filter
方法过滤,会遍历checkbox数组,返为 true 的值, 返回一个新的数组,并重新赋值给formThead
<template>
<div class="app-container">
<div class="filter-container">
<el-checkbox-group v-model="checkboxVal">
<el-checkbox label="apple">
apple
</el-checkbox>
<el-checkbox label="banana">
banana
</el-checkbox>
<el-checkbox label="orange">
orange
</el-checkbox>
</el-checkbox-group>
</div>
<el-table :key="key" :data="tableData" border fit highlight-current-row style="width: 100%">
<el-table-column prop="name" label="水果名称" width="180" />
<el-table-column v-for="fruit in formThead" :key="fruit" :label="fruit">
<template slot-scope="scope">
{{ scope.row[fruit] }}
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
const defaultFormThead = ['apple', 'banana']
export default {
data() {
return {
tableData: [
{
name: '水果01',
apple: '苹果-10',
banana: '香蕉-10',
orange: '橘子-10'
},
{
name: '水果02',
apple: '苹果-20',
banana: '香蕉-20',
orange: '橘子-20'
}
],
key: 1, // table key
formTheadOptions: ['apple', 'banana', 'orange'],
checkboxVal: defaultFormThead, // checkboxVal
formThead: defaultFormThead // 默认表头
}
},
watch: {
checkboxVal(valArr) {
this.formThead = this.formTheadOptions.filter(i => valArr.indexOf(i) >= 0)
this.key = this.key + 1// 为了保证table 每次都会重渲
}
}
}
</script>
更多推荐
已为社区贡献58条内容
所有评论(0)