qq_54187184 2023-06-15 16:15 采纳率: 13.6%
浏览 14

ant design vue 1.7.8版本怎么实现表格拖拽换行功能

项目里面使用到vue2,但是ant design vue版本还是一版本,所以不会写,版本过低怎么进行表格拖拽功能。

  • 写回答

2条回答 默认 最新

  • 打工很辛苦吧 2023-06-15 16:34
    关注

    1.安装 sortablejs 插件。
    使用 npm 安装 sortablejs 插件:

    npm install sortablejs --save
    

    在组件中引入 sortablejs 插件。
    在组件中引入 sortablejs 插件:

    import Sortable from 'sortablejs';
    

    在表格上添加 ref 属性。
    在表格上添加 ref 属性,以便在组件代码中引用该表格。

    <Table
      ref="table"
      :columns="columns"
      :dataSource="dataSource"
      ...
    />
    

    在表格渲染后初始化 sortable 对象。
    在表格渲染后使用 this.$nextTick() 获取到表格的 DOM 元素并初始化 sortable 对象。

    mounted() {
      this.$nextTick(() => {
        const el = this.$refs.table.$el.querySelector('.ant-table-tbody');
        const sortable = new Sortable(el, {
          draggable: 'tr',
          handle: '.ant-table-draggable-handle',
          onEnd: this.handleDragEnd // 拖拽结束时的回调函数
        });
      });
    },
    

    其中 draggable 属性表示可以被拖拽的元素,这里为表格中的 tr;handle 属性表示拖拽的手柄元素,这里为表格中的 .ant-table-draggable-handle 类;onEnd 属性表示拖拽结束时的回调函数,这里为 handleDragEnd。

    实现拖拽结束时的回调函数。
    在组件中定义 handleDragEnd 方法,用于在拖拽结束时更新数据源(dataSource)。

    methods: {
      handleDragEnd(event) {
        const oldIndex = event.oldIndex;
        const newIndex = event.newIndex;
    
        // 更新数据源
        const newData = [...this.dataSource];
        const [removed] = newData.splice(oldIndex, 1);
        newData.splice(newIndex, 0, removed);
    
        this.dataSource = newData;
      }
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 6月15日

悬赏问题

  • ¥15 Hadoop的部署与安装的一些疑问
  • ¥15 短剧的sdk在哪里接入
  • ¥30 智能割草机自动化割草
  • ¥15 求:可不可以提供一些 在国内可以用,低代码不要太难 在电脑上可以下载的 制作app的软件
  • ¥60 找人回答kibana8.14.3二次集成开发,自定义插件ui导航栏如何设置
  • ¥15 fluke高精度万用表8845A型号测交流电压一直跳动,且去掉输入后显示不归零
  • ¥15 不同模型怎么用同一个shader
  • ¥15 安卓启动没有ais proxy与v4l2的log打印
  • ¥15 go怎么读取mdb文件里面的数据
  • ¥60 Matlab联合CRUISE仿真编译dll文件报错