mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-20 00:42:16 +00:00
bulk-operations fix drop of dragged item
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
<template>
|
||||
<div>
|
||||
<MultiSelected :title="title" :subtitle="subtitle" id="multi-select-ui" v-show="draged" />
|
||||
</div>
|
||||
<MultiSelected :title="title" :subtitle="subtitle" id="multi-select-ui" v-show="dragged" />
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@@ -15,24 +13,24 @@ import {events} from '@/bus'
|
||||
computed: {
|
||||
...mapGetters(['fileInfoDetail']),
|
||||
title(){
|
||||
if(this.fileInfoDetail.length > 1 && this.fileInfoDetail.includes(this.dragedItem)) {
|
||||
if(this.fileInfoDetail.length > 1 && this.fileInfoDetail.includes(this.draggedItem)) {
|
||||
return this.$t('file_detail.selected_multiple')
|
||||
}
|
||||
|
||||
if((this.fileInfoDetail.length < 2 || !this.fileInfoDetail.includes(this.dragedItem)) && this.dragedItem ) {
|
||||
return this.dragedItem.name
|
||||
if((this.fileInfoDetail.length < 2 || !this.fileInfoDetail.includes(this.draggedItem)) && this.draggedItem ) {
|
||||
return this.draggedItem.name
|
||||
}
|
||||
},
|
||||
subtitle(){
|
||||
if(this.fileInfoDetail.length > 1 && this.fileInfoDetail.includes(this.dragedItem) ) {
|
||||
if(this.fileInfoDetail.length > 1 && this.fileInfoDetail.includes(this.draggedItem) ) {
|
||||
return this.fileInfoDetail.length + ' ' + this.$tc('file_detail.items', this.fileInfoDetail.length)
|
||||
}
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
draged: false,
|
||||
dragedItem: undefined
|
||||
dragged: false,
|
||||
draggedItem: undefined
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
@@ -40,11 +38,13 @@ import {events} from '@/bus'
|
||||
// Hnadle Drag & Drop Ghost show
|
||||
|
||||
events.$on('dragstart', (data) => {
|
||||
this.draged = true
|
||||
this.dragedItem = data
|
||||
setTimeout(() => {
|
||||
this.dragged = true
|
||||
}, 50);
|
||||
this.draggedItem = data
|
||||
})
|
||||
events.$on('drop', () => {
|
||||
this.draged = false
|
||||
this.dragged = false
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
v-for="item in data"
|
||||
:key="item.unique_id"
|
||||
class="file-item"
|
||||
:class="dragedItems.includes(item) ? 'draged' : '' "
|
||||
:class="draggedItems.includes(item) ? 'dragged' : '' "
|
||||
/>
|
||||
</transition-group>
|
||||
</div>
|
||||
@@ -59,7 +59,7 @@
|
||||
v-for="item in data"
|
||||
:key="item.unique_id"
|
||||
class="file-item"
|
||||
:class="dragedItems.includes(item) ? 'draged' : '' "
|
||||
:class="draggedItems.includes(item) ? 'dragged' : '' "
|
||||
/>
|
||||
</transition-group>
|
||||
</div>
|
||||
@@ -137,7 +137,7 @@
|
||||
isEmpty() {
|
||||
return this.data.length == 0
|
||||
},
|
||||
dragedItems() {
|
||||
draggedItems() {
|
||||
//Set opacity for dragged items
|
||||
|
||||
if(!this.fileInfoDetail.includes(this.draggingId)){
|
||||
@@ -264,7 +264,15 @@
|
||||
@import '@assets/vue-file-manager/_variables';
|
||||
@import '@assets/vue-file-manager/_mixins';
|
||||
|
||||
.draged {
|
||||
.file-list {
|
||||
.dragged {
|
||||
/deep/.is-dragenter {
|
||||
border: 2px solid transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.dragged {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
@@ -275,11 +283,6 @@
|
||||
|
||||
}
|
||||
|
||||
.draged-clone {
|
||||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
}
|
||||
|
||||
.mobile-multi-select {
|
||||
bottom: 50px !important;
|
||||
}
|
||||
|
||||
@@ -168,8 +168,6 @@
|
||||
dragEnter() {
|
||||
if (this.data.type !== 'folder') return
|
||||
|
||||
if(this.fileInfoDetail.includes(this.data)) return
|
||||
|
||||
this.area = true
|
||||
},
|
||||
dragLeave() {
|
||||
|
||||
@@ -160,8 +160,6 @@ export default {
|
||||
dragEnter() {
|
||||
if (this.data.type !== 'folder') return
|
||||
|
||||
if(this.fileInfoDetail.includes(this.data)) return
|
||||
|
||||
this.area = true
|
||||
},
|
||||
dragLeave() {
|
||||
|
||||
Reference in New Issue
Block a user