// 上传之前处理
beforeUpload(newFile) {
this.fileList.push({
name: newFile.name,
url: '',
file: newFile,
status: 'ready',
percentage: 0
})
return false
},
// 上传表单提交
submit(formName) {
this.$refs[formName].validate((valid) => {
if (this.fileForm.fileUrl.substr(-1) !== '/') {
this.$message.error('文件保存路径请以/结尾')
return false
}
if (valid) {
for (const file of this.fileList) {
if (file.status === 'uploading') {
return this.$message.error('已有文件正在上传')
}
}
if (this.fileList.length === 0) {
return this.$message.error('请选取文件')
}
this.number = 0
this.fileList.forEach((item, index) => {
if (this.fileList[index].status === 'success') {
this.number++
return
}
this.fileList[index].status = 'uploading'
const params = new FormData()
params.append('uploadFile', this.fileList[index].file)
const onUploadProgress = (progressEvent) => {
const percent = (progressEvent.loaded / progressEvent.total) * (89 + Math.round(Math.random() * 10)) | 0
this.fileList[index].percentage = percent
}
Upload(
{
path: this.path,
data: params
},
onUploadProgress
).then(
(res) => {
if (res.code === '0') {
this.fileList[index].status = 'success'
this.number++
if (this.number === this.fileList.length) {
this.querySftpFile(this.fileForm.fileUrl)
this.$refs.submitCreateCatalog.resetFields()
this.$refs.uploadingFile.clearFiles()
this.clearUpload()
this.number = 0
this.$notify({
title: 'Success',
message: res.msg,
type: 'success',
duration: 2000
})
}
} else {
this.fileList[index].status = 'ready'
this.fileList[index].percentage = 0
this.$notify({
title: 'Error',
message: res.msg,
type: 'error',
duration: 2000
})
}
},
() => {
this.fileList[index].status = 'ready'
this.fileList[index].percentage = 0
}
)
})
} else {
return false
}
})
},
08-28
4944