Skip to content

Commit 7e95623

Browse files
Fixing solution for issue #63
1 parent b4a9234 commit 7e95623

File tree

4 files changed

+16
-13
lines changed

4 files changed

+16
-13
lines changed

dist/vuedraggable.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
'use strict';
22

3-
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
4-
53
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
64

75
(function () {
@@ -52,6 +50,7 @@ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr
5250
var readonlyProperties = ['Move'].concat(eventsListened, eventsToEmit).map(function (evt) {
5351
return 'on' + evt;
5452
});
53+
var draggingElement = null;
5554

5655
var props = {
5756
options: Object,
@@ -200,6 +199,7 @@ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr
200199
onDragStart: function onDragStart(evt) {
201200
this.context = this.getUnderlyingVm(evt.item);
202201
evt.item._underlying_vm_ = this.clone(this.context.element);
202+
draggingElement = evt.item;
203203
},
204204
onDragAdd: function onDragAdd(evt) {
205205
var element = evt.item._underlying_vm_;
@@ -238,12 +238,11 @@ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr
238238
if (!relatedContext.element) {
239239
return 0;
240240
}
241-
var relatedElement = evt.related;
242-
var currentDOMIndex = [].concat(_toConsumableArray(evt.to.children)).indexOf(relatedElement);
241+
var domChildren = [].concat(_toConsumableArray(evt.to.children));
242+
var currentDOMIndex = domChildren.indexOf(evt.related);
243243
var currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);
244-
var incialIndex = relatedContext.index;
245-
console.log(currentIndex, incialIndex);
246-
return Math.max(currentIndex, incialIndex);
244+
var draggedInList = domChildren.indexOf(draggingElement) != -1;
245+
return draggedInList ? currentIndex : currentIndex + 1;
247246
},
248247
onDragMove: function onDragMove(evt) {
249248
var onMove = this.move;
@@ -260,6 +259,7 @@ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr
260259
},
261260
onDragEnd: function onDragEnd(evt) {
262261
this.computeIndexes();
262+
draggingElement = null;
263263
}
264264
}
265265
};

dist/vuedraggable.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/Cancel.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ <h2>List 1 draggable</h2>
3333
</draggable>
3434

3535
<h2>List 2 draggable</h2>
36-
<draggable class="dragArea" :list="list2" :options="{group:'people'}">
36+
<draggable class="dragArea" :list="list2" :options="{group:'people'}" :move="checkMove">
3737
<transition-group tag="div" class="dragArea" name="list-complete">
3838
<div v-for="(element, index) in list2" :class="{'target': element===targetElement, 'ok':canDrag , 'ko':!canDrag}" :key="element.name" >
3939
{{element.name}}

src/vuedraggable.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
const eventsListened = ['Start', 'Add', 'Remove', 'Update', 'End']
3939
const eventsToEmit = ['Choose', 'Sort', 'Filter', 'Clone']
4040
const readonlyProperties = ['Move', ...eventsListened, ...eventsToEmit].map(evt => 'on'+evt)
41+
var draggingElement = null
4142

4243
const props = {
4344
options: Object,
@@ -181,6 +182,7 @@
181182
onDragStart (evt) {
182183
this.context = this.getUnderlyingVm(evt.item)
183184
evt.item._underlying_vm_ = this.clone(this.context.element)
185+
draggingElement = evt.item
184186
},
185187

186188
onDragAdd (evt) {
@@ -223,11 +225,11 @@
223225
if (!relatedContext.element){
224226
return 0
225227
}
226-
const relatedElement = evt.related;
227-
const currentDOMIndex = [...evt.to.children].indexOf(relatedElement)
228+
const domChildren = [...evt.to.children]
229+
const currentDOMIndex = domChildren.indexOf(evt.related)
228230
const currentIndex = relatedContext.component.getVmIndex(currentDOMIndex)
229-
const incialIndex = relatedContext.index
230-
return (currentIndex !== incialIndex) ? incialIndex+1 : incialIndex
231+
const draggedInList = domChildren.indexOf(draggingElement) != -1
232+
return draggedInList? currentIndex : currentIndex+1
231233
},
232234

233235
onDragMove (evt) {
@@ -246,6 +248,7 @@
246248

247249
onDragEnd (evt) {
248250
this.computeIndexes()
251+
draggingElement = null
249252
}
250253
}
251254
}

0 commit comments

Comments
 (0)