【vue】动态控制表格列的显隐(element-ui)

复制代码
 1 <template>
 2 
 3   <div class="app-container">
 4     <el-table :data="tableData" stripe border style="width: 98%" ref="tableDataRef">
 5       <el-table-column type="selection" width="55" align="center"></el-table-column>
 6       <el-table-column type="index" width="55" label="序号" align="center"></el-table-column>
 7       <el-table-column v-if="colData[0].istrue" prop="name" label="名称" align="center"></el-table-column>
 8       <el-table-column v-if="colData[1].istrue" prop="select" label="性别" align="center"></el-table-column>
 9       <el-table-column v-if="colData[2].istrue" prop="kafang" label="年龄" align="center"></el-table-column>
10       <el-table-column v-if="colData[3].istrue" prop="fengbi" label="时间" align="center"></el-table-column>
11       <el-table-column v-if="colData[4].istrue" prop="isETF" label="事件" align="center"></el-table-column>
12       <el-table-column v-if="colData[5].istrue" prop="range" label="地点" align="center"></el-table-column>
13  </el-table>
14  
15  
16 <el-popover placement="right" width="400" trigger="click">
17     <el-checkbox-group v-model="colOptions">
18         <el-checkbox v-for="item in colSelect" :label="item" :key="item" ></el-checkbox>
19     </el-checkbox-group>
20     <el-button slot="reference">设置</el-button>
21 </el-popover>
22   </div>
23 </template>
24 
25 <script>
26 import Treeselect from '@riophae/vue-treeselect'
27 import '@riophae/vue-treeselect/dist/vue-treeselect.css'
28 import CRUD, { presenter, header, form, crud } from './Crud/crud'
29 import FixedThead from './el-mode/FixedThead'
30 import crudOperation from './Crud/CRUD.operation'
31 export default {
32   data(){
33     return {
34       tableData:[
35         {name:"a",select:"b",kafang:"c",fengbi:"d",isETF:"e",range:"f"},
36         {name:"a",select:"b",kafang:"c",fengbi:"d",isETF:"e",range:"f"}
37       ],
38       colData: [{title: "名称",istrue: true},
39           {title: "性别",istrue: true},
40           {title: "年龄",istrue: true},
41           {title: "时间",istrue: true},
42           {title: "事件",istrue: true},
43           {title: "地点",istrue: true}],
44       colOptions: ["名称","性别", "年龄","时间","事件","地点",], //默认全选
45       colSelect: ["名称", "性别","年龄","时间","事件", "地点",]
46     }
47   },
48   watch: {
49     colOptions(valArr) {
50       var arr = this.colSelect.filter(i => valArr.indexOf(i) < 0); // 未选中
51       this.colData.filter(i => {
52         if (arr.indexOf(i.title) != -1) {
53           i.istrue = false;
54           this.$nextTick(() => {
55             this.$refs.tableDataRef.doLayout();
56           });
57         } else {
58           i.istrue = true;
59           this.$nextTick(() => {
60             this.$refs.tableDataRef.doLayout();
61           });
62         }
63       });
64     }
65   }
66   
67 }
68 </script>
test
复制代码

 

posted on   longlinji  阅读(2951)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
历史上的今天:
2018-04-14 省市区三级联动
2018-04-14 js多选下拉框
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示