Skip to content

Commit 15bbfb0

Browse files
author
Jar-bogulak
authored
fix[DndList]: fixed drag bug (#1527)
PanJiaChen/vue-element-admin#1524
1 parent add16d1 commit 15bbfb0

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed

src/components/DndList/index.vue

+14-15
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<h3>{{ list1Title }}</h3>
55
<draggable :list="list1" :options="{group:'article'}" class="dragArea">
66
<div v-for="element in list1" :key="element.id" class="list-complete-item">
7-
<div class="list-complete-item-handle">[{{ element.author }}] {{ element.title }}</div>
7+
<div class="list-complete-item-handle">{{ element.id }}[{{ element.author }}] {{ element.title }}</div>
88
<div style="position:absolute;right:0px;">
99
<span style="float: right ;margin-top: -20px;margin-right:5px;" @click="deleteEle(element)">
1010
<i style="color:#ff4949" class="el-icon-delete"/>
@@ -15,9 +15,9 @@
1515
</div>
1616
<div :style="{width:width2}" class="dndList-list">
1717
<h3>{{ list2Title }}</h3>
18-
<draggable :list="filterList2" :options="{group:'article'}" class="dragArea">
19-
<div v-for="element in filterList2" :key="element.id" class="list-complete-item">
20-
<div class="list-complete-item-handle2" @click="pushEle(element)"> [{{ element.author }}] {{ element.title }}</div>
18+
<draggable :list="list2" :options="{group:'article'}" class="dragArea">
19+
<div v-for="element in list2" :key="element.id" class="list-complete-item">
20+
<div class="list-complete-item-handle2" @click="pushEle(element)">{{ element.id }} [{{ element.author }}] {{ element.title }}</div>
2121
</div>
2222
</draggable>
2323
</div>
@@ -60,16 +60,6 @@ export default {
6060
default: '48%'
6161
}
6262
},
63-
computed: {
64-
filterList2() {
65-
return this.list2.filter(v => {
66-
if (this.isNotInList1(v)) {
67-
return v
68-
}
69-
return false
70-
})
71-
}
72-
},
7363
methods: {
7464
isNotInList1(v) {
7565
return this.list1.every(k => v.id !== k.id)
@@ -90,7 +80,16 @@ export default {
9080
}
9181
},
9282
pushEle(ele) {
93-
this.list1.push(ele)
83+
for (const item of this.list2) {
84+
if (item.id === ele.id) {
85+
const index = this.list2.indexOf(item)
86+
this.list2.splice(index, 1)
87+
break
88+
}
89+
}
90+
if (this.isNotInList1(ele)) {
91+
this.list1.push(ele)
92+
}
9493
}
9594
}
9695
}

0 commit comments

Comments
 (0)