|
@@ -27,8 +27,8 @@
|
|
|
<div class="d-flex attachment-item my-2 cursor-pointer" v-for="k in attachmentList" :key="k.id">
|
|
|
<v-icon color="primary">mdi-file-account</v-icon>
|
|
|
<div class="file-name ellipsis ml-2">{{ k.title }}</div>
|
|
|
- <!-- <v-icon class="ml-8 mr-2" color="primary" @click="handleDownload(k)">mdi-download-box-outline</v-icon> -->
|
|
|
- <v-icon class="ml-8" color="error" @click="handleDelete(k)">mdi-trash-can-outline</v-icon>
|
|
|
+ <v-icon class="mr-2" color="primary" @click="handleDownload(k)">mdi-download-box-outline</v-icon>
|
|
|
+ <v-icon color="error" @click="handleDelete(k)">mdi-trash-can-outline</v-icon>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -100,14 +100,31 @@ const handleDelete = ({ id }) => {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-// const handleDownload = (k) => {
|
|
|
-// const link = document.createElement('a')
|
|
|
-// link.href = k.url
|
|
|
-// link.setAttribute('download', '')
|
|
|
-// document.body.appendChild(link)
|
|
|
-// link.click()
|
|
|
-// document.body.removeChild(link)
|
|
|
-// }
|
|
|
+const getBlob = (url) => {
|
|
|
+ return new Promise(resolve => {
|
|
|
+ const xhr = new XMLHttpRequest()
|
|
|
+ xhr.open('GET', url, true)
|
|
|
+ xhr.responseType = 'blob'
|
|
|
+ xhr.onload = () => {
|
|
|
+ if (xhr.status === 200) resolve(xhr.response)
|
|
|
+ }
|
|
|
+ xhr.send()
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+const saveAs = (blob, filename) => {
|
|
|
+ var link = document.createElement('a')
|
|
|
+ link.href = window.URL.createObjectURL(blob)
|
|
|
+ link.download = filename
|
|
|
+ link.click()
|
|
|
+}
|
|
|
+
|
|
|
+// 下载附件
|
|
|
+const handleDownload = (k) => {
|
|
|
+ getBlob(k.url).then(blob => {
|
|
|
+ saveAs(blob, k.title)
|
|
|
+ })
|
|
|
+}
|
|
|
|
|
|
</script>
|
|
|
|