el-table拖动排序,使用Sortable.js,el-table一定要加row-key

Sortable.js使用可参考文档sortable.js sort属性是否允许组内排序 - itxst.com

  一要给 el-table 加 row-key="sort",值一定要是唯一的,就因为忘记加这个了,排序一直不生效/(ㄒoㄒ)/~~

 

   <el-table :data="list" id="sortExample" :key="randomKey" row-key="sort">
     ........
  </el-table>

引入依赖

  import Sortable from 'sortablejs';   

 单独写一个初始化排序的方法


  initSort() {
      this.$nextTick(() => {
        const example1 = document.getElementById('sortExample').querySelector('.el-table__body-wrapper tbody');;
        const _this = this;
        Sortable.create(example1, {
          draggable: '.el-table__row', //指定样式类的元素才允许拖动
          animation: 800,//过渡动画时间
          //拖拽结束时事件
          onEnd: function (evt) {
            const { newIndex, oldIndex } = evt;
            //实时更换list中的数据
            const currRow = _this.list.splice(oldIndex, 1)[0];
            _this.list.splice(newIndex, 0, currRow);
          },
        });
      })
    },

在获取到el-table的数据时调用初始化排序的方法


  getList() {
      //....
      getCellList(data).then((res) => {
          this.list= res.data.List;
          if (this.list!= null && this.list.length > 0) {
            //在获取el-table的数据后调用initSort方法
            this.initSort();
          }
      });
    },

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值