跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 卖家故事 > vue3 antd项目实战——table表格的自定义筛选【纯前端filters过滤、自定义筛选table表格数据】

vue3 antd项目实战——table表格的自定义筛选【纯前端filters过滤、自定义筛选table表格数据】

时间:2024-04-06 10:25:39 来源:网络cs 作者:利杜鹃 栏目:卖家故事 阅读:

标签: 表格  定义  筛选  过滤  数据  项目  实战 
阅读本书更多章节>>>>

vue3 antd项目实战——table表格自定义筛选(使用filters属性实现表头列columns自定义筛选)

往期知识调用(步骤不懂就看这儿)场景复现实战演示实例1——筛选发布状态🔥1、双向绑定表格列目录、表格数据2、编写列目录内容及参数类型3、在columns中添加自定义筛选功能🔥 实例2——筛选通知状态实例3——筛选部门1、列目录columns数据、参数类型columnType2、在columns中添加filters和onFilter实现自定义筛选

往期知识调用(步骤不懂就看这儿)

文章内容文章链接
vue3 antd table表格的基础搭建https://blog.csdn.net/XSL_HR/article/details/128072745
ant design vue组件库的引入与使用https://blog.csdn.net/XSL_HR/article/details/127396384

场景复现

后台管理系统中,我们需要对大量的数据进行展示、处理和操作,table表格也因此无处不在。而ant design vue组件库中的table表格,给出了诸多属性来方便数据管理。本期文章向大家介绍的是filters属性——在表头添加自定义筛选功能,实现对表格列数据自定义筛选

需求:表格数据能够在表头进行自定义筛选操作
方法:借助ant design vue组件库的filters属性

最终效果:(部分页面)
请添加图片描述


实战演示

下面将用三个具体的项目例子来具体介绍,如何实现table表格的自定义筛选

项目的UI框架依旧采用ant design vue组件库(移步官方文档查看详情)

实例1——筛选发布状态🔥

页面的实现这里就不过多阐述了,直接进入正题,怎么实现自定义筛选

1、双向绑定表格列目录、表格数据

<a-table    :columns="columns"    :dataSource="tableData"    style="margin-top:5px"     >    <!--表格内的插槽及数据渲染--></a-table>

2、编写列目录内容及参数类型

(1)目录内容:

const columns = ref<columnsType[]>([    {        title: "新建人",        dataIndex: "create_user",        key: "create_user",        width: 120,        align: "center",    },    {        title: "新建日期",        dataIndex: "create_date",        key: "create_date",        width: 120,        align: "center",        customRender:function({text} : any) {            return dayjs(text).format("YYYY-MM-DD");        },    },    {        title: "发布状态",        dataIndex: "enable",        key: "enable",        width: 100,        align: "center",          },    {        title: "邮箱状态",        dataIndex: "email",        key: "email",        width: 100,        align: "center",    },    {        title: "操作",        dataIndex: "operation",        key: "operation",        width: 200,        align: "center",    },]) 

(2)参数类型(里面的每个参数分别对应什么,已注释表明)

export interface columnsType {    title: string; // 标题    dataIndex: string; // 数据    key: string; // 键值    width: number; // 宽度    align: string; // 位置    customRender?: any; // 插槽    sorter?: any; // 排序    sortDirections?: any; // 排序方式     fixed?: string; // 固定列    filters?: any; // 筛选    onFilter?: any; // 本地筛选}

官方文档中的详细说明
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、在columns中添加自定义筛选功能🔥

        filters: [            {                 text: '已发布',                 value: 1             },            {                 text: '未发布',                value: 0             },        ],        onFilter: (value: number | string | boolean, record: tableDataType) =>            record.state === value,     

在这里插入图片描述

解释说明

filters中存放的是一个数组,数组的元素个数即为筛选项的个数,每一个元素对应两个参数,分别是textvaluetext对应页面展示出来的筛选项文本value则与数据的属性值一一对应。(当然在我的表格数据中,代表发布状态的属性值state为1即已发布,为0则未发布onFilterfilters可谓成对出现,有filters的地方,onFilter也一定存在。(前提为本地筛选onFilter对应的是一个函数,函数有两个变量valuerecord,分别对应筛选项对应的值表单中该列数据所对应的值,当这两个值相等时,则表示筛选成功,并将筛选后的数据展示在页面中。

最终实现效果(部分页面)请添加图片描述
其实并不难,看官方文档的教程不如来看看实战操作,立马学会。下面我们来复用一下上面的方法,再实现几个自定义筛选。

自己写数据的时候,如果有报错,要么是数据类型出了问题,要么是少了数据,要么是少了逗号等标识符

实例2——筛选通知状态

我们接着上面的框架,对邮箱通知状态进行自定义筛选。

        filters: [            {                 text: '已通知',                 value: 1             },            {                 text: '未通知',                value: 0             },        ],        onFilter: (value: number | string | boolean, record: tableDataType) =>            record.email === value,

在这里插入图片描述
最终实现效果请添加图片描述
和实例一类似,除了参数和数据以外,逻辑上几乎没有区别,如果还有点模糊的话,来看看第三个实例吧。

实例3——筛选部门

1、列目录columns数据、参数类型columnType

interface columnType {    title: string;    dataIndex: string;    key: string;    width: number;    align: string;    customRender?: any;    filters?: any;    onFilter?: any;    children?: any; // 子表格    tags?: any; // 标签    fixed?: any}
const columns = ref<columnType[]>([    {        title: "部门",        dataIndex: "files_department",        key: "files_department",        width: 195,        align: "center",    {        title: "入职档案",        dataIndex: "files_onboard",        key: "files_onboard",        width: 270,        align: "left",    },]) 

2、在columns中添加filters和onFilter实现自定义筛选

          filters: [            {                 text: '技术研发与测试部',                 value: '技术研发与测试部'             },            {                 text: '产品与UED部',                value: '产品与UED部'             },            {                 text: '综合管理部',                value: '综合管理部'             },            {                 text: '学科教研部部',                value: '学科教研部'             },            {                 text: '校园媒体部',                value: '校园媒体部'             },        ],        onFilter: (value: string, record: tableDataType) =>            record.files_department === value,

最终实现效果
请添加图片描述


想必看到这里的你,一定学会了如何自定义筛选表格数据了吧! 若有疑问,欢迎评论区留言或私信~


后期文章将进一步介绍table表格的一些骚操作,比如各种规则排序
感兴趣的小伙伴可以订阅本专栏,方便后续了解学习~
觉得这篇文章有用的小伙伴们可以点赞➕收藏➕关注哦~
阅读本书更多章节>>>>

本文链接:https://www.kjpai.cn/gushi/2024-04-06/154702.html,文章来源:网络cs,作者:利杜鹃,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论