table列表支持拖拽排序

有时vue项目中,列表重新拖拽排序,这里就简单讲下怎么实现…

  1. 首先需要下载依赖
    npm install sortablejs -S

Sortable.js是一款优秀的js拖拽库,支持ie9及以上版本ie浏览器和现代浏览器,也可以运行在移动触摸设备中。

  1. 在需要拖拽的页面里引用
    import Sortable from "sortablejs"

  2. 在代码table组件里加上ref属性获取元素

//这里只展示部分代码  主要是ref
 <a-table :columns="columns" :data-source="data" ref="dragTable">
 </a-table>
  1. 在mounted里去调这个拖拽的方法
  mounted() {
    this.rowDrop();
  },
/**列表支持拖拽排序**/
methods:{
   rowDrop() {
      const el = this.$refs.dragTable.$el.querySelectorAll("tbody")[0];//获取table里元素
      this.sortable = Sortable.create(el, {
        ghostClass: "blue-background-class", //选中元素插入属性
        sort: true,//是否允许元素内部排序,
        handle: ".ant-table-row",
        animation: 150, //定义排序动画的时间ms
        onEnd: ({ newIndex, oldIndex }) => {
          if (oldIndex == newIndex) return;
          const targetRow = 
          this.scenceData.splice(oldIndex, 1)[0]; //选中的目标源对象

          this.scenceData.splice(newIndex, 0, targetRow);
          let replacedataRow = this.newScenceData.filter(
            (val, index) => index == newIndex
          )[0]; //拖拽之前,数据原来的位置的数据对象
          
           //根据上面获取的数据 根据后端的接口,传相应的数据
          //这里是调接口====,根据自己需求来写
     
        },
      });
    },
}

  1. 以上就可以实现table拖拽排序了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值