动态控制表格表头显隐,让表格变得更加智能
生活随笔
收集整理的這篇文章主要介紹了
动态控制表格表头显隐,让表格变得更加智能
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
前言
在日常辦公中,我們經(jīng)常需要操作各種表格。然而,當(dāng)表格數(shù)據(jù)過多時,表頭往往會擠占寶貴的屏幕空間,給我們的工作帶來不便。那么,如何實現(xiàn)動態(tài)控制表頭的顯隱呢?本文將為大家詳細(xì)介紹。
如何實現(xiàn)?
本章節(jié)用的組件
- Popover 彈出框
- Checkbox 多選框
- Button 按鈕
- Table 表格
實現(xiàn)思路
話不多說,下面直接看實例代碼
完整源碼
<template><div class="containerBox"><!-- Popover 彈出框 --><div class="tabControlBox"><el-popover placement="right" trigger="click"><el-checkbox-group v-model="colOptions"><el-checkbox v-for="item in colSelect" :label="item" :key="item" @change="columnChange"></el-checkbox></el-checkbox-group><!-- reference 觸發(fā) Popover 顯示的 HTML 元素 --><el-button icon="el-icon-menu" type="info" size="mini" slot="reference">顯示列</el-button></el-popover></div><!-- Table 表格 --><div class="tableBox"><el-table :data="tableData" border><el-table-column label="姓名" v-if="colData[0].ishide" prop="name"></el-table-column><el-table-column label="性別" v-if="colData[1].ishide" prop="sex"></el-table-column><el-table-column label="年齡" v-if="colData[2].ishide" prop="age"></el-table-column><el-table-column label="電話" v-if="colData[3].ishide" prop="phone"></el-table-column><el-table-column label="郵箱" v-if="colData[4].ishide" prop="email"></el-table-column><el-table-column label="學(xué)歷" v-if="colData[5].ishide" prop="education"></el-table-column><el-table-column label="職業(yè)" v-if="colData[6].ishide" prop="occupation"></el-table-column><el-table-column label="地址" v-if="colData[7].ishide" prop="site"></el-table-column></el-table></div></div> </template><script> export default {data() {return {// 模擬表格數(shù)據(jù)tableData: [{name: "小紅",sex: "女",age: "20",phone: "177****8810",email: "2901626033@qq.com",education: "本科",occupation: "前端開發(fā)",site: "北京昌平",},],//動態(tài)顯示列colData: [{ title: "姓名", ishide: true },{ title: "性別", ishide: true },{ title: "年齡", ishide: true },{ title: "電話", ishide: true },{ title: "郵箱", ishide: false },{ title: "學(xué)歷", ishide: true },{ title: "職業(yè)", ishide: false },{ title: "地址", ishide: true },],// 多選框綁定值colOptions: ["姓名", "性別", "年齡", "電話", "學(xué)歷", "地址"],// 多選框展示的值colSelect: ["姓名","性別","年齡","電話","郵箱","學(xué)歷","職業(yè)","地址"],};},methods: {//動態(tài)顯示列columnChange() {this.colData.filter((i) => {if (this.colOptions.indexOf(i.title) !== -1) {i.ishide = true;} else {i.ishide = false;}});},}, }; </script><style scoped> .containerBox {padding: 20px; } .tabControlBox {margin-bottom: 10px; } </style>實現(xiàn)效果
拓展
filter() 方法通過檢查指定數(shù)組中符合條件的所有元素,filter()方法不會改變原始數(shù)組。
| 參數(shù)1 | 必須。當(dāng)前元素的值。 |
| 參數(shù)2 | 可選。當(dāng)前元素的索引值。 |
| 參數(shù)3 | 可選。當(dāng)前元素屬于的數(shù)組對象。 |
簡單實例
let array = [{ id: 1, name: "小紅" },{ id: 2, name: "小黃" },{ id: 3, name: "小蘭" },{ id: 4, name: "小綠" },]; let fil = array.filter((item) => item.id != 1); // 查找數(shù)組中id不等于1的對象 console.log(fil); // [{id: 2, name: '小黃'},{id: 3, name: '小蘭'},{id: 4, name: '小綠'}]indexOf() 方法可以返回某個指定的字符串值在字符串中首次出現(xiàn)的位置,如果沒有找到匹配的字符串則返回 -1。
| 參數(shù)1 | 必須。要查找的字符串的值(e)。 |
| 參數(shù)2 | 可選。整數(shù)。在字符串的第幾個位置(5)開始查找字符(e)第一次出現(xiàn)的位置,如省略該參數(shù),則將從字符串的首字符開始檢索。 |
簡單實例
var str = 'Hello world, welcome to the universe'; var det = str.indexOf('e', 5); // 在字符串第五個位置開始查找字符'e'第一次出現(xiàn)的位置 console.log(det); // 14總結(jié)
以上是生活随笔為你收集整理的动态控制表格表头显隐,让表格变得更加智能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 交通事故等级预测(附代码)
- 下一篇: C语言家政服务系统