diff --git a/vueJs/src/icons/components/index.ts b/vueJs/src/icons/components/index.ts
index 6b9c09c91..e67017044 100644
--- a/vueJs/src/icons/components/index.ts
+++ b/vueJs/src/icons/components/index.ts
@@ -52,6 +52,7 @@ import './money'
import './nested'
import './organization-unit'
import './password'
+import './pause'
import './pdf'
import './people'
import './peoples'
diff --git a/vueJs/src/icons/components/pause.ts b/vueJs/src/icons/components/pause.ts
new file mode 100644
index 000000000..79315794e
--- /dev/null
+++ b/vueJs/src/icons/components/pause.ts
@@ -0,0 +1,12 @@
+/* eslint-disable */
+/* tslint:disable */
+// @ts-ignore
+import icon from 'vue-svgicon'
+icon.register({
+ 'pause': {
+ width: 64,
+ height: 64,
+ viewBox: '0 0 1024 1024',
+ data: ''
+ }
+})
diff --git a/vueJs/src/icons/svg/pause.svg b/vueJs/src/icons/svg/pause.svg
new file mode 100644
index 000000000..8a65aad04
--- /dev/null
+++ b/vueJs/src/icons/svg/pause.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/vueJs/src/views/file-management/components/FileDownloadForm.vue b/vueJs/src/views/file-management/components/FileDownloadForm.vue
index 8666de9e5..e613afdb2 100644
--- a/vueJs/src/views/file-management/components/FileDownloadForm.vue
+++ b/vueJs/src/views/file-management/components/FileDownloadForm.vue
@@ -45,18 +45,22 @@
type="success"
icon="el-icon-caret-right"
:disabled="row.downloading"
- @click="handleDownloadFile(row)"
+ @click="handleDownload(row)"
+ />
+
- {{ $t('fileSystem.begin') }}
+
- {{ $t('fileSystem.remove') }}
-
+ @click="handleRemove(row)"
+ />
@@ -72,7 +76,7 @@ export class FileInfo {
path!: string
size!: number
progress!: number
- pause!: boolean
+ pause = true
blobs = new Array()
type!: string
downloading!: boolean
@@ -106,49 +110,51 @@ export default class FileDownloadForm extends Vue {
}
}
- private handleRemoveFile(fileInfo: FileInfo) {
+ private handlePause(fileInfo: FileInfo) {
+ fileInfo.pause = true
+ fileInfo.downloading = false
+ this.$emit('onFilePaused', fileInfo)
+ }
+
+ private handleRemove(fileInfo: FileInfo) {
fileInfo.pause = true
fileInfo.downloading = false
fileInfo.blobs.length = 0
this.$emit('onFileRemoved', fileInfo)
}
- private handleDownloadFile(fileInfo: FileInfo) {
- fileInfo.pause = false
- fileInfo.downloading = true
- if (fileInfo.progress >= 100) {
- this.downloadBlob(fileInfo)
- } else {
- this.downlodFile(fileInfo, (downloadSize: number) => {
- if (downloadSize >= fileInfo.size) {
- this.$emit('onFileDownloaded', fileInfo)
- }
- })
+ private handleDownload(fileInfo: FileInfo) {
+ if (!fileInfo.downloading) {
+ fileInfo.pause = false
+ fileInfo.downloading = true
+ if (this.downloadProgress(fileInfo) >= 100) {
+ this.downloadBlob(fileInfo)
+ } else {
+ this.downlodFile(fileInfo)
+ }
}
}
- private downlodFile(fileInfo: FileInfo, callback: Function) {
+ private downlodFile(fileInfo: FileInfo) {
if (fileInfo.pause) {
return
}
- FileSystemService.downlodFle(fileInfo.name, fileInfo.path, fileInfo.progress).then((res: any) => {
- fileInfo.type = res.headers['content-type']
- // 获取当前下载字节大小
- const downloadByte = res.data.size
- // 当前下载分块入栈
- fileInfo.blobs.push(res.data)
- fileInfo.progress += downloadByte
- if (fileInfo.size > fileInfo.progress) {
- this.downlodFile(fileInfo, callback)
- } else {
- // 合并下载文件
- this.downloadBlob(fileInfo)
- // 下载完成后的回调
- callback(fileInfo.size)
- }
- }).catch(() => {
- callback(fileInfo.size)
- })
+ FileSystemService
+ .downlodFle(fileInfo.name, fileInfo.path, fileInfo.progress)
+ .then((res: any) => {
+ fileInfo.type = res.headers['content-type']
+ // 获取当前下载字节大小
+ const downloadByte = res.data.size
+ // 当前下载分块入栈
+ fileInfo.blobs.push(res.data)
+ fileInfo.progress += downloadByte
+ if (fileInfo.size > fileInfo.progress) {
+ this.downlodFile(fileInfo)
+ } else {
+ // 合并下载文件
+ this.downloadBlob(fileInfo)
+ }
+ })
}
private downloadBlob(fileInfo: FileInfo) {
@@ -160,6 +166,10 @@ export default class FileDownloadForm extends Vue {
document.body.appendChild(link)
link.click()
URL.revokeObjectURL(url)
+
+ fileInfo.pause = true
+ fileInfo.downloading = false
+ this.$emit('onFileDownloaded', fileInfo)
}
private onFormClosed() {