首页 VueJS table表格动态筛选列显示

table表格动态筛选列显示

作者:胡同里的砖头 围观群众:53 更新于:2025-04-07

筛选 按钮

<el-popover placement="bottom" :width="100" trigger="click">
<template #reference>
<el-button style="margin-right: 16px">
筛选
</el-button>
</template>
<el-checkbox-group v-model="selectedColumns">
<el-checkbox
v-for="column in columnOptions"
:key="column.prop"
:label="column.prop"
>
{{ column.label }}
</el-checkbox>
</el-checkbox-group>
</el-popover>
2.table的列添加v-if属性
<el-table-column
label="编号"
align="center"
prop="a_Id"
v-if="selectedColumns.includes('a_Id')"
width="80"
/>
3.声明列集合
const columnOptions = ref([
{ prop: "a_Id", label: "编号" },
{ prop: "a_Login", label: "用户名" },
{ prop: "a_Name", label: "用户昵称" },
{ prop: "a_SexText", label: "性别" },
{ prop: "a_Age", label: "年龄" },
{ prop: "a_Tel", label: "手机号码" },
{ prop: "a_Count", label: "登录次数" },
{ prop: "role.r_RoleName", label: "角色" },
{ prop: "a_EndTime", label: "最后登录" },
]);
4.动态筛选保存至本地,方便记忆用户的操作
const selectedColumns = ref(
JSON.parse(localStorage.getItem("selectedColumns")) ||
columnOptions.value.map((col) => col.prop)
);

watch(
selectedColumns,
(newVal) => {
localStorage.setItem("selectedColumns", JSON.stringify(newVal));
},
{ deep: true }
);
实现效果:

  • 本文标题: table表格动态筛选列显示
  • 文章分类:【VueJS】
  • 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.
留言评论
站点声明:
1、本站【胡同里的砖头】个人博客,借鉴网上一些博客模板,取其各优点模块自行拼装开发,本博客开发纯属个人爱好。
2、所有笔记提供给广大用户交流使用,可转载,可复制,纯个人开发所遇问题锦集记录使用
Copyright © huzlblog.com All Rights Reserved. 备案号:苏ICP备2021056683号-8