要在 Element-UI 的表格中实现行列拖拽排序功能,可以使用 sortablejs 库来实现。首先,需要安装 sortablejs 库:

npm install sortablejs

然后,在你的项目中引入 sortablejs 库:

import Sortable from 'sortablejs';

接下来,你可以在表格的 mounted 钩子函数中初始化 sortablejs:

mounted() {
  this.initSortable();
},

methods: {
  initSortable() {
    const table = document.getElementById('your-table-id');
    const rows = table.getElementsByTagName('tbody')[0].getElementsByTagName('tr');
    const columns = table.getElementsByTagName('thead')[0].getElementsByTagName('th');
    
    // 初始化行拖拽排序
    Sortable.create(table, {
      animation: 150,
      handle: '.drag-handle',
      onEnd: (event) => {
        // 获取拖拽后的行数据
        const newData = Array.from(rows).map((row) => {
          return {
            // 根据你的数据结构来获取每一列的值
            column1: row.cells[0].innerText,
            column2: row.cells[1].innerText,
            // ...
          };
        });
        
        // 更新数据
        this.tableData = newData;
      },
    });
    
    // 初始化列拖拽排序
    Array.from(columns).forEach((column, index) => {
      Sortable.create(column, {
        group: 'table-columns',
        animation: 150,
        onEnd: (event) => {
          // 更新列数据
          this.tableColumns.splice(event.newIndex, 0, this.tableColumns.splice(event.oldIndex, 1)[0]);
        },
      });
    });
  },
},

在上面的代码中,你需要替换your-table-id为你的表格的 id,drag-handle为你的行拖拽排序的拖拽手柄的类名,tableData为你的表格数据,tableColumns为你的表格列数据。

这样,当你拖拽行或列时,表格的数据会跟随改变。请确保你的表格的数据和列的顺序与tableDatatableColumns匹配。

Element-UI 表格实现行列拖拽排序功能

原文地址: https://www.cveoy.top/t/topic/qs91 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录