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

这篇具有很好参考价值的文章主要介绍了vue3 antd项目实战——table表格的自定义筛选【纯前端filters过滤、自定义筛选table表格数据】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

文章内容 文章链接
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属性

最终效果:(部分页面)
vue开发给iview的table组件添加自定义表头筛选,Vue,ant design vue,vue.js,前端,javascript,anti-design-vue,typescript


实战演示

下面将用三个具体的项目例子来具体介绍,如何实现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; // 本地筛选
}

官方文档中的详细说明
vue开发给iview的table组件添加自定义表头筛选,Vue,ant design vue,vue.js,前端,javascript,anti-design-vue,typescript
vue开发给iview的table组件添加自定义表头筛选,Vue,ant design vue,vue.js,前端,javascript,anti-design-vue,typescript
vue开发给iview的table组件添加自定义表头筛选,Vue,ant design vue,vue.js,前端,javascript,anti-design-vue,typescript
vue开发给iview的table组件添加自定义表头筛选,Vue,ant design vue,vue.js,前端,javascript,anti-design-vue,typescript
vue开发给iview的table组件添加自定义表头筛选,Vue,ant design vue,vue.js,前端,javascript,anti-design-vue,typescript

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

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

vue开发给iview的table组件添加自定义表头筛选,Vue,ant design vue,vue.js,前端,javascript,anti-design-vue,typescript

解释说明

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

最终实现效果(部分页面)vue开发给iview的table组件添加自定义表头筛选,Vue,ant design vue,vue.js,前端,javascript,anti-design-vue,typescript
其实并不难,看官方文档的教程不如来看看实战操作,立马学会。下面我们来复用一下上面的方法,再实现几个自定义筛选。

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

实例2——筛选通知状态

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

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

vue开发给iview的table组件添加自定义表头筛选,Vue,ant design vue,vue.js,前端,javascript,anti-design-vue,typescript
最终实现效果vue开发给iview的table组件添加自定义表头筛选,Vue,ant design vue,vue.js,前端,javascript,anti-design-vue,typescript
和实例一类似,除了参数和数据以外,逻辑上几乎没有区别,如果还有点模糊的话,来看看第三个实例吧。

实例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,

最终实现效果
vue开发给iview的table组件添加自定义表头筛选,Vue,ant design vue,vue.js,前端,javascript,anti-design-vue,typescript


想必看到这里的你,一定学会了如何自定义筛选表格数据了吧! 若有疑问,欢迎评论区留言或私信~文章来源地址https://www.toymoban.com/news/detail-824834.html


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

到了这里,关于vue3 antd项目实战——table表格的自定义筛选【纯前端filters过滤、自定义筛选table表格数据】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue+Element Ui实现el-table自定义表头下拉选择表头筛选

    用vue+element ui开发管理系统时,使用el-table做表格,当表格列过多的时候,想要做成可选表头的,实现表格列的筛选显示,效果如下: 代码文件结构: 废话不多说,直接上代码: 第一步:新建名为 TableHeaderRender.vue 的文件 template   el-popover     placement=\\\"bottom\\\"     width=\\\"2

    2024年02月02日
    浏览(50)
  • vue3 antd项目实战——radiogroup单选组合、radiobutton单选按钮【v-model双向绑定数据、v-for循环输出options选择项】

    🔥🔥更多内容见Ant Design Vue官方文档 🔥🔥 vue3+ant design vue+ts实战【ant-design-vue组件库引入】 🔥vue3【列表渲染】v-for 详细介绍(vue中的“循环”) 最近在项目开发中需要使用到 ant design vue 组件库的 单选框(Radio)组件 。所以本期文章会详细地教大家 如何使用Radio单选框 。

    2024年02月16日
    浏览(42)
  • Vue3+elementplus动态表格table实现

    描述 :使用el-table的时候,根据需求,能够实现由字段个数动态增加表格列,表格行数固定为3行。 实现效果 : 实现代码 : 总结 :如果需要控制行数,并且动态加载列数,故需要两个变量进行设置,这里采用的就是这个思想,能够实现需求效果。

    2024年03月15日
    浏览(54)
  • 前端vue自定义table 表格 表格组件 Excel组件

    前端组件化开发与Excel组件设计 一、前端开发的复杂性与组件化的必要性 随着技术的发展,前端开发的复杂度越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。

    2024年02月09日
    浏览(39)
  • wangEditor5在Vue3中的自定义图片+视频+音频菜单

    本文适用于wangEditor5用在Vue3中自定义扩展音频、视频、图片菜单;并扩展音频元素节点,保证音频节点的插入、读取、回写功能正常;支持动态修改尺寸。适用于初学者。 ButtonMenu:自定义扩展新功能 | wangEditor ModalMenu:自定义扩展新功能 | wangEditor 注册菜单到wangEditor:定义新

    2024年02月06日
    浏览(37)
  • vue3中el-table实现表格合计行

    el-table标签上加属性 show-summary :summary-method=“getSummary” js中添加函数(合计没有额外的附件参数添加) js中添加函数(合计有额外的附件参数添加的情况)

    2024年02月02日
    浏览(41)
  • vue3 - element-plus表格组件el-table实现鼠标拖曳排序功能,vue3 Table表格拖拽排序,表格每行使用鼠标拖动进行排序功能,表格拖拽排序实现(详细示例代码,一键复制开箱即用

    在vue3+elementPlus网站开发中,详细完成el-table表格的鼠标拖拽/拖曳/拖动排序,vue3使用element plus表格组件进行表格每行的拖动换位置排序功能(支持一键开启和关闭鼠标是否可拖动排序,代码易改造灵活),稍加改造可支持【树形复杂表格的排序】! 详细示例源代码,复制运行

    2024年04月09日
    浏览(47)
  • Vue 3 中 Ant Design Vue 如何自定义表格 Table 的表头(列头)内容?

    项目用到的是 Ant Design Vue (2.2.8) 组件库,开发中遇到一个如下图的表格,有些表头文本后面会有一些自定义图标,鼠标移入图标时显示对应的审批时间提示。当前列如果没有审批时间就会隐藏图标,只展示列头文本。 使用 Ant Design Vue 基础的 Table 组件是无法满足这个场景的

    2024年02月16日
    浏览(39)
  • vue3中el-table实现多表头并表格合并行或列

    1、el-table中添加事件 :span-method=\\\"genderSpanCity\\\" 2、js添加函数 效果图为

    2024年01月23日
    浏览(42)
  • 基于 Vue3 + Webpack5 + Element Plus Table 二次构建表格组件

    基于 Vue3 + Webpack5 + Element Plus Table 二次构建表格组件,开箱即用 A Vue 3.x Table Component built on Webpack 5 该组件库可供学习、参考和用于二次开发。 1.基于 Webpack 5 构建 2.全面支持 Vue 3 3.支持 JSON 序列化表格快速配置 4.已内置 Pagination 分页 5.支持自定义 prop 列名 6.支持单元格内容自

    2024年04月13日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包