html实现table的行列拖拽,el-table实现行列拖拽

import Sortable from'sortablejs';

exportdefault{

data () {return{

col: [ { label:'日期', prop: 'date' }, { label: '姓名', prop: 'name' }, { label: '地址', prop: 'address'} ],

dropCol: [ { label:'日期', prop: 'date' }, { label: '姓名', prop: 'name' }, { label: '地址', prop: 'address'} ],

tableData: [

{

id:'1',

date:'2016-05-02',

name:'王小虎1',

address:'上海市普陀区金沙江路 100 弄'},

{

id:'2',

date:'2016-05-04',

name:'王小虎2',

address:'上海市普陀区金沙江路 200 弄'},

{

id:'3',

date:'2016-05-01',

name:'王小虎3',

address:'上海市普陀区金沙江路 300 弄'},

{

id:'4',

date:'2016-05-03',

name:'王小虎4',

address:'上海市普陀区金沙江路 400 弄'}

]

};

},

mounted () {this.rowDrop();this.columnDrop();

},

methods: {//行拖拽

rowDrop () {//此时找到的元素是要拖拽元素的父容器

const tbody = document.querySelector('.el-table__body-wrapper tbody');

const _this= this;

Sortable.create(tbody, {//指定父元素下可被拖拽的子元素

draggable: ".el-table__row",

onEnd ({ newIndex, oldIndex }) {

const currRow= _this.tableData.splice(oldIndex, 1)[0];

_this.tableData.splice(newIndex,0, currRow);

}

});

},//列拖拽

columnDrop () {

const wrapperTr= document.querySelector('.el-table__header-wrapper tr');this.sortable =Sortable.create(wrapperTr, {

animation:180,

delay:0,

onEnd: evt=>{

const oldItem= this.dropCol[evt.oldIndex];this.dropCol.splice(evt.oldIndex, 1);this.dropCol.splice(evt.newIndex, 0, oldItem);

}

});

}

}

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值