基于ant-design-vue实现表格操作按钮组件

 更新时间:2023年06月06日 11:44:12   作者:我是好人  
这篇文章主要为大家介绍了基于ant-design-vue实现表格操作按钮组件示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

使用效果

先看下默认效果

支持按钮超过一定数量自动放到【更多】下拉按钮里面

按钮支持动态控制是否禁用,是否显示。

下面是一个代码示例。

export default Vue.extend({
  data() {
    return {
      dataSource: [
        { id: 1, username: '张三', disabled: 1 },
        { id: 2, username: '李四', disabled: 0 },
        { id: 3, username: '王二麻子', disabled: 0 },
      ] as MyData[],
      columns: [
        //
        { title: '#', dataIndex: 'id' },
        { title: '姓名', dataIndex: 'username' },
        {
          title: '状态',
          dataIndex: 'disabled',
          customRender: (value: number) => {
            return value === 0 ? (
              <a-tag color="green">启用</a-tag>
            ) : (
              <a-tag>禁用</a-tag>
            );
          },
        },
        useActionButtons<MyData>({
          align: 'center',
          title: '操作',
          limit: 0,
          showDivider: false,
          buttons: [
            { icon: 'search', text: '查看' },
            { icon: 'edit', text: '编辑' },
            {
              text: '禁用',
              visible: (record) => record.disabled === 0,
            },
            {
              text: '启用',
              visible: (record) => record.disabled === 1,
            },
            {
              icon: 'message',
              text(record, index) {
                return `未读消息(${record.id.toString()})`;
              },
            },
            {
              icon: 'delete',
              text: '删除',
              disabled: (record) => record.disabled === 0,
              click: (record, index) => {
                this.$confirm({
                  content: `确认删除${record.username}吗?`,
                });
              },
            },
          ],
        }),
      ],
    };
  },
});

介绍用法

type useActionButtons = (config: ActionButtonsConfig) => Table.Column;

原理就是通过一个函数,返回了一个带customRender的列的配置。

参数介绍 函数声明

export declare interface ActionButtonsConfig<T> extends Table.Column {
  limit: number;
  showDivider: boolean;
  buttons: Array<ActionButtonsColumnConfig<T>>;
}
参数类型描述
limitnumber设置一个数量,超过该数量,则展示【更多】下拉按钮。默认 0,表示按钮将全部展示
showDividerboolean是否展示分隔符,默认展示
buttonsButtonConfig[]要展示的按钮数组,具体配置看下面介绍

ButtonConfig

参数类型描述
text?string 或 (record, index) => string设置按钮文本,同时支持动态设置,参数为当前行的相关数据
icon?string设置按钮图标
click(record, index) => void设置按钮点击事件,参数为当前行的相关数据
disabled?(record, index) => boolean动态设置按钮是否禁用,参数为当前行的相关数据
visible?(record, index) => boolean动态设置按钮是否显示,参数为当前行的相关数据

安装

npm i action-buttons

使用

目前没有写任何样式文件,想修改样式的话,需要自行在项目处理。
按钮的根节点设置了一个 class="action-buttons"

直接在页面引入

import { useActionButtons, ActionButtons } from 'action-buttons';

然后写到 Table Columns 数组里面对应位置即可。

虽然导出了组件ActionButtons,但还是推荐直接使用提供的useActionButtons方法直接去配置表格的操作列。

源码 https://github.com/Tickly/action-buttons

以上就是基于ant-design-vue实现表格操作按钮组件的详细内容,更多关于ant-design-vue表格操作按钮的资料请关注脚本之家其它相关文章!

相关文章

  • vue3 element-plus el-tree自定义图标方式

    vue3 element-plus el-tree自定义图标方式

    这篇文章主要介绍了vue3 element-plus el-tree自定义图标方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Vue+Microapp实现微前端的示例详解

    Vue+Microapp实现微前端的示例详解

    这篇文章主要为大家详细介绍了如何实现以vite+vue3+Microapp为主应用,以vue2+element为子应用的微前端,感兴趣的小伙伴快跟随小编一起学习一下吧
    2023-06-06
  • vue实现html转word与word全过程

    vue实现html转word与word全过程

    本文介绍了如何在Vue中实现HTML转Word功能,通过拖拽组件生成类似Word的界面,并实时预览,主要使用了htmlDocx和htmlToDocx插件将HTML转换为.docx格式,同时,还讨论了检查.docx文件是否损坏的方法
    2026-01-01
  • Vue Router实现新窗口打开的三种方法

    Vue Router实现新窗口打开的三种方法

    在Vue开发中,经常需要实现新窗口打开路由页面的需求,本文将系统介绍Vue Router中实现新窗口打开的三种主要方法,包括router-link组件方式、编程式导航方式和原生window.open方式,需要的朋友可以参考下
    2026-03-03
  • 用vue构建多页面应用的示例代码

    用vue构建多页面应用的示例代码

    这篇文章主要介绍了用vue构建多页面应用的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 使用vue + less 实现简单换肤功能的示例

    使用vue + less 实现简单换肤功能的示例

    下面小编就为大家分享一篇使用vue + less 实现简单换肤功能的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • Vue3+Koa2实现图片上传功能的示例代码

    Vue3+Koa2实现图片上传功能的示例代码

    这篇文章主要为大家详细介绍了如何使用Vue3和Koa2实现图片上传功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-02-02
  • vue cli3配置image-webpack-loader方式

    vue cli3配置image-webpack-loader方式

    这篇文章主要介绍了vue cli3配置image-webpack-loader方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 如何用vue-pdf包实现pdf文件预览,支持分页

    如何用vue-pdf包实现pdf文件预览,支持分页

    这篇文章主要介绍了如何用vue-pdf包实现pdf文件预览,支持分页问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • 在Vue前端实现登录密码加密传输的全流程

    在Vue前端实现登录密码加密传输的全流程

    本文介绍在Vue3前端实现登录密码加密传输的方法,使用非对称加密算法RSA或ECC,前端使用公钥加密密码,后端使用私钥解密,提供了实现方案,包括核心流程设计、前置准备、Vue3代码实现步骤以及后端配合要点,需要的朋友可以参考下
    2026-03-03

最新评论