mirror of
https://github.com/crater-invoice/crater.git
synced 2025-10-28 12:11:08 -04:00
121 lines
2.7 KiB
Vue
121 lines
2.7 KiB
Vue
<template>
|
|
<div class="imgbox">
|
|
<vue-dropzone
|
|
id="dropzone"
|
|
ref="myVueDropzone"
|
|
:include-styling="true"
|
|
:options="dropzoneOptions"
|
|
@vdropzone-sending="sendingEvent"
|
|
@vdropzone-success="successEvent"
|
|
@vdropzone-max-files-exceeded="maximum"
|
|
@vdropzone-file-added="getCustomeFile"
|
|
@vdropzone-removed-file="removeFile"
|
|
/>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import vue2Dropzone from 'vue2-dropzone'
|
|
import 'vue2-dropzone/dist/vue2Dropzone.min.css'
|
|
export default {
|
|
components: {
|
|
vueDropzone: vue2Dropzone
|
|
},
|
|
props: {
|
|
additionaldata: {
|
|
type: Array,
|
|
default () {
|
|
return []
|
|
}
|
|
},
|
|
url: {
|
|
type: String,
|
|
default () {
|
|
return ''
|
|
}
|
|
},
|
|
router: {
|
|
type: Object,
|
|
default: null
|
|
},
|
|
paramname: {
|
|
type: String,
|
|
default () {
|
|
return ''
|
|
}
|
|
},
|
|
acceptedfiles: {
|
|
type: String,
|
|
default () {
|
|
return ''
|
|
}
|
|
},
|
|
dictdefaultmessage: {
|
|
type: String,
|
|
default () {
|
|
return ''
|
|
}
|
|
},
|
|
autoprocessqueue: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
method: {
|
|
type: String,
|
|
default: 'POST'
|
|
}
|
|
},
|
|
data () {
|
|
return {
|
|
dropzoneOptions: {
|
|
autoProcessQueue: this.autoprocessqueue,
|
|
url: this.url,
|
|
thumbnailWidth: 110,
|
|
maxFiles: 1,
|
|
paramName: this.paramname,
|
|
acceptedFiles: this.acceptedfiles,
|
|
uploadMultiple: false,
|
|
dictDefaultMessage: '<font-awesome-icon icon="trash"/> ' + this.dictdefaultmessage,
|
|
dictInvalidFileType: 'This file type is not supported.',
|
|
dictFileTooBig: 'File size too Big',
|
|
addRemoveLinks: true,
|
|
method: this.method,
|
|
headers: { 'Authorization': `Bearer ${window.Ls.get('auth.token')}`, 'Company': `${window.Ls.get('selectedCompany')}` }
|
|
}
|
|
}
|
|
},
|
|
watch: {
|
|
url (newURL) {
|
|
this.$refs.myVueDropzone.options.url = newURL
|
|
}
|
|
},
|
|
created () {
|
|
window.hub.$on('sendFile', this.customeSend)
|
|
},
|
|
methods: {
|
|
sendingEvent (file, xhr, formData) {
|
|
var i
|
|
for (i = 0; i < this.additionaldata.length; i++) {
|
|
for (var key in this.additionaldata[i]) {
|
|
formData.append(key, this.additionaldata[i][key])
|
|
}
|
|
}
|
|
},
|
|
successEvent (file, response) {
|
|
// window.toastr['success'](response.success)
|
|
},
|
|
maximum (file) {
|
|
this.$refs.myVueDropzone.removeFile(file)
|
|
},
|
|
getCustomeFile (file) {
|
|
this.$emit('takefile', true)
|
|
},
|
|
removeFile (file, error, xhr) {
|
|
this.$emit('takefile', false)
|
|
},
|
|
customeSend () {
|
|
this.$refs.myVueDropzone.processQueue()
|
|
}
|
|
}
|
|
}
|
|
</script>
|