console
var Main = {
data() {
return {
tableData: [{
name: 'A',
age: 20
}, {
name: 'B',
age: 30
}, {
name: 'C',
age: 40
}, {
name: 'D',
age: 50
}, {
name: 'E',
age: 60
}]
}
},
mounted() {
const table = document.querySelector('.el-table__body-wrapper tbody')
const self = this
Sortable.create(table, {
onEnd({ newIndex, oldIndex }) {
const targetRow = self.tableData.splice(oldIndex, 1)[0]
self.tableData.splice(newIndex, 0, targetRow)
}
})
}
}
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
<script src="//unpkg.com/sortablejs@1.7.0/Sortable.js"></script>
<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui/lib/index.js"></script>
<div id="app">
<template>
<el-table row-key="age" border :data="tableData" style="width: 100%">
<el-table-column prop="name" label="Name">
</el-table-column>
<el-table-column prop="age" label="Age">
</el-table-column>
</el-table>
<pre>{{ tableData }}</pre>
</template>
</div>
@import url("//unpkg.com/element-ui/lib/theme-chalk/index.css");