diff --git a/components/datatable/DataTable.vue b/components/datatable/DataTable.vue index 9ce0125cb..e54de07da 100755 --- a/components/datatable/DataTable.vue +++ b/components/datatable/DataTable.vue @@ -1685,7 +1685,7 @@ export default { let dropIndex = this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1; let processedData = [...this.processedData]; - ObjectUtils.reorderArray(processedData, this.draggedRowIndex, dropIndex); + ObjectUtils.reorderArray(processedData, this.draggedRowIndex + this.d_first, dropIndex + this.d_first); this.$emit('row-reorder', { originalEvent: event, diff --git a/components/utils/ObjectUtils.js b/components/utils/ObjectUtils.js index 8183b4ca5..e637e6632 100755 --- a/components/utils/ObjectUtils.js +++ b/components/utils/ObjectUtils.js @@ -106,15 +106,10 @@ export default { }, reorderArray(value, from, to) { - let target; - if (value && from !== to) { if (to >= value.length) { - target = to - value.length; - - while (target-- + 1) { - value.push(undefined); - } + to %= value.length; + from %= value.length; } value.splice(to, 0, value.splice(from, 1)[0]);