1<template> 2 <div> 3 <BaseFile 4 label="Upload a target file" 5 @file-select="UploadHandler" 6 /> 7 <br> 8 <progress 9 v-if="uploadPercentage > 0" 10 max="100" 11 :value.prop="uploadPercentage" 12 /> 13 </div> 14</template> 15 16<script> 17import BaseFile from '@/components/BaseFile.vue' 18import ApiService from '../services/ApiService.js' 19 20export default { 21 components: { 22 BaseFile, 23 }, 24 data() { 25 return { 26 files: '', 27 uploadPercentage: 0, 28 } 29 }, 30 methods: { 31 async UploadHandler(files) { 32 this.file = files[0] 33 console.log(this.file.name) 34 try { 35 let response = await ApiService.uploadTarget(this.file, (event) => { 36 this.uploadPercentage = Math.round((100 * event.loaded) / event.total) 37 }) 38 console.log(response) 39 this.$emit('file-uploaded') 40 } catch (err) { 41 console.log(err) 42 } 43 }, 44 }, 45} 46</script> 47 48<style scoped> 49progress { 50 width: 100%; 51 height: 40px; 52} 53</style>