首先,写一个基础的表格。(参考element-ui基础表格)

export default {

data() {

return {

tableData: [

{

date: "2016-05-02",

name: "王小虎",

address: "上海市普陀区金沙江路 1518 弄",

},

{

date: "2016-05-04",

name: "王小虎",

address: "上海市普陀区金沙江路 1517 弄",

},

{

date: "2016-05-01",

name: "王小虎",

address: "上海市普陀区金沙江路 1519 弄",

}

],

};

},

};

然后,优化模板。

将表格的列数据tableColumns定义在data中,在模板中通过v-for指令遍历列数据。

v-for="column in tableColumns"

:key="column.prop"

:prop="column.prop"

:label="column.label"

>

export default {

data() {

return {

tableColumns: [

{

prop: "date",

label: "日期",

},

{

prop: "name",

label: "姓名",

},

{

prop: "address",

label: "地址",

},

],

};

},

};

其次,优化列数据tableColumns,给每一个column添加show属性,用于表示列的显示与隐藏。默认为true,即默认展示所有列。

export default {

data() {

return {

tableColumns: [

{

prop: "date",

label: "日期",

show: true

},

{

prop: "name",

label: "姓名",

show: true

},

{

prop: "address",

label: "地址",

show: true

},

],

};

},

};

再次,添加一个computed属性bindTableColumns,用于过滤出需要展示的列,并绑定到模板上。

这样,后续对列的配置都只会操作tableColumns中列的显示与隐藏属性show,bindTableColumns会自动更新,页面也会自动重新渲染。

v-for="column in bindTableColumns"

:key="column.prop"

:prop="column.prop"

:label="column.label"

>

export default {

computed: {

bindTableColumns() {

return this.tableColumns.filter((column) => column.show);

}

}

};

然后,实现表格列配置模板,用于设置列的显示与隐藏。

这里使用一组复选框,默认选中所有可供配置的表格列。

请选择表格需要展示的列:

v-for="column in columns"

:key="column.prop"

:label="column.prop"

>{{ column.label }}

>

export default {

computed: {

/* 这里使用了getter和setter,这样写的好处是不用自己手动监听复选框的选中事件 */

checkedTableColumns: {

get() {

// 返回选中的列名

return this.bindTableColumns.map(column => column.prop);

},

set(checked) {

// 设置表格列的显示与隐藏

this.tableColumns.forEach(column => {

// 如果选中,则设置列显示

if(checked.includes(column)) {

column.show = true;

} else {

// 如果未选中,则设置列隐藏

column.show = false;

}

})

}

}

}

}

表格html5 隐藏字段,element-ui表格组件table实现列的动态显示与隐藏相关推荐

  1. Vue Element UI 表格组件 利用插槽实现按下按钮后获得本行数据(内容)

    Vue Element UI 表格组件 利用插槽实现按下按钮后获得本行数据(内容) 能够解决的问题 需要在表格中添加一个类似修改或编辑的按钮,按下按钮,弹出的窗口需要本行的渲染数据 需要向服务端提交一 ...

  2. 《前端》Element ui 表格(Table)组件中前端实现数据分页和模糊查询--未看

    我是用的Element ui 表格(Table)组件中的例子 下面是别人自己写的方法: Element ui 表格(Table)组件中前端实现数据分页和模糊查询_明天也要努力的博客-CSDN博客  h ...

  3. element UI 表格实现 表尾合计行 ——小肉包

    element UI 表格实现 表尾合计行 --小肉包 可以根据需要计算任意列的合计,效果图如下 说明:elementUI 官网提供了标为合计行的计算方法,参考elementUI 官网table组件 ...

  4. element ui 表格合并行和列

    element ui 表格合并行和列 <el-table:data="tableData":span-method="arraySpanMethod"bo ...

  5. element UI表格绑定动态数据与selection复选操作

    element UI表格绑定动态数据与selection复选操作的坑 案例介绍:此案例是要求完成对客户的批量删除功能,因为客户有多条数据所以要结合分页组件来实现,并且批量删除按钮默认是禁用的,当有数据 ...

  6. element UI 表格做下滑滚动效果,请求接口数据

    element UI 表格做下滑滚动效果,请求接口数据,内容记录 import { ElMessage } from "element-plus"; // vue3.0 引入方式/ ...

  7. Element UI 表格嵌套表单、输入框、选择框

    Element UI 表格嵌套表单.输入框.选择框 有时候我们需要一次添加多条数据,这个时候我们就可以使用表格嵌套表单.输入框和选择框等等的方式,添加保存和修改数据. 直接展示代码 <el-fo ...

  8. element ui表格中的algin属性无效

    我们在使用element ui表格中,经常需要调整表格内容的文字对齐位置,例如: 文档中描述是使用algin="left / right / center"调整文字对齐,但是我们使 ...

  9. element ui 表格,通过下载按钮下载生成Excel表格

    element ui 表格,通过下载按钮下载生成Excel表格,内容记录 // 安装插件 xlsx 和 file-saver import XLSX from "xlsx"; im ...

最新文章

  1. TensorFlow练习27: 验证码生成器-从文本生成图像
  2. 23种设计模式之责任链模式
  3. Python 代码优化常见技巧
  4. nginx php上传大小设置
  5. Python_base_正则表达式
  6. jq获取页面高度_JQuery获取页面高度宽度
  7. 利用partial关键字声明分部类和分部方法
  8. mac版有道云笔记切换笔记后内容仍展示前一个笔记内容问题解决
  9. 旋转式直流无刷Maxon电机与copley驱动器调试
  10. 烽火服务器查询服务器型号,烽火服务器应该起的进程
  11. uiuc大学计算机排名2019,2019年QS世界大学排名伊利诺伊大学香槟分校排名第71
  12. Java求两个数组的交集、差集、并集
  13. 简单的proxy之TinyHTTPProxy.py
  14. 动手学深度学习(四十)——长短期记忆网络(LSTM)
  15. font-face使用的web字体格式介绍、浏览器兼容和字体转换
  16. 【有图有真相】北京地区午饭线下活动——香山行圆满结束
  17. INCONEL 617 耐腐蚀性能
  18. 驱动开发——解决驱动黑屏问题
  19. 机器视觉工业缺陷检测的那些事(二、相机)
  20. 学习kotlin的一些笔录7

热门文章

  1. LeetCode 738 单调递增的数字
  2. 最新!进返京不再查核酸、健康码
  3. 微讲坛:六西格玛在软件管理中的应用 总结
  4. 【python 可视化】数据透视表的用法及画饼图
  5. isis宣告网络_ISIS知识点总结
  6. FLstudio-编曲一般流程
  7. 趁着疫情在家学点什么?
  8. HTML中的XMP标签
  9. 【新书推荐】【2021】弹性力学:理论、应用与数值分析(第四版)
  10. 关于mysql innodb的监控