<a-table :columns="columns1" :pagination="false" :data-source="data1" rowKey='id' :customRow="customRow" bordered> <span slot="customTitle">Name</span> </a-table>
data1为获取到的数据 rowKey为key值(值唯一即可)
下面为拖拽方法
customRow (record,index) { return { // FIXME: draggable: true 先使用鼠标移入事件设置目标行的draggable属性 props: { // draggable: 'true' }, style: { cursor: 'pointer' }, on: { // 鼠标移入 mouseenter: (event) => { // 兼容IE var ev = event || window.event ev.target.draggable = true }, // 开始拖拽 dragstart: (event) => { // 兼容IE var ev = event || window.event // 阻止冒泡 ev.stopPropagation() // 得到源目标数据 this.sourceObj = record }, // 拖动元素经过的元素 dragover: (event) => { // 兼容 IE var ev = event || window.event // 阻止默认行为*/ ev.preventDefault() }, // 鼠标松开 drop: (event) => { // 兼容IE var ev = event || window.event // 阻止冒泡 ev.stopPropagation() // 得到目标数据 this.targetObj = record let data2 = this.data1.filter(item=>item.id === this.sourceObj.id) // 过滤出来源目标数据 this.data1 = this.data1.filter(item=>item.id !== this.sourceObj.id) // 过滤出来除了源数据的数据 this.data1.splice(index, 0,...data2) // 将源数据插入到相应的数据中去 } } } },
上图为初始
上图为正在操作
上图为拖拽完毕
另外,该方法仅为拖拽位置,并不能使两条数据互换位置,想要互换位置,在得到目标数据后进行相应的数据处理即可。