<el-upload
:limit="1"
v-if="audioType == 0"
class="upload-content"
ref="upload"
action="string"
:accept="acceptFileFormat"
:file-list="fileList"
:auto-upload="false"
:on-change="fileChange">
<el-button slot="trigger" size="small" :loading="submitState" type="primary">选取文件</el-button>
<el-button
style="margin-left: 10px;"
size="small"
:loading="submitState"
type="success"
@click="submitUpload">上传到服务器</el-button>
<div slot="tip" class="el-upload__tip">音频格式为:.m4a,.wav,.mp3,.amr,小于200MB的音频文件</div>
</el-upload>
//添加文件、上传文件、文件失败
fileChange(file, fileList) {
console.log('file',file);
//console.log('this.fileList',this.fileList);
this.fileList = fileList;
this.submitUpload();
}
//文件上传
submitUpload() {
this.submitState = true;
// let newFileList = [];
// newFileList = [...this.fileListData,...this.fileList];
let fileSize = 0;
//let length = 0;
//length = newFileList.length;
//超出20个文件
// if (length > 20) {
// this.$message({ message: '最多只能上传20个文件!', type: 'warning' });
// this.submitState = false;
// return;
// }
//没有选取文件时 上传
let fileLength = this.fileList;
if (fileLength <= 0) {
this.$message({ message: '请先选取文件再上传!', type: 'warning' });
this.submitState = false;
return;
}
let formData = new FormData();
formData.append('typeName','audio')
formData.append('modularName','interlocution');
if (this.fileList && this.fileList.length > 0) {
this.fileList.forEach((item) => {
fileSize += item.size;
formData.append('file',item.raw)
})
}
const isLt20M = fileSize / 1024 / 1024 < 200;
//单次上传不能超过20M 可以上传多次
if (!isLt20M){
this.$message({ message: '上传文件大小不能超过 200MB!', type: 'warning' });
this.submitState = false;
this.$refs.upload.clearFiles();
return;
} else {
knowledgeFileUpload(formData).then(res => {
//console.log('data',res);
this.$message({
message: '上传成功!',
type: 'success'
});
//console.log('knowledgeFileUpload',res);
this.audioUrl = res;
this.submitState = false;
//this.$refs.upload.clearFiles();
//上传文件成功之后,清空选中的文件
this.fileList = [];
// res.forEach((item) => {
// this.fileListData.push(item);
// })
this.fileListData = [res];
}).catch(() => {
this.submitState = false;
this.$refs.upload.clearFiles();
this.fileList = [];
})
}
},
//删除文件
deleteFileEvent() {
let data = {
fileUrl: item.filePath
}
delFileByUrl(data).then(() => {
let objData = {
processId: this.reModelId
}
updateUploadUrlById(objData).then(itemRes => {
console.log('itemRes',itemRes);
this.fileListData = this.fileListData.filter(function(it) {
return item.filePath != it.filePath;
});
this.$message({
type: 'success',
message: itemRes
})
})
})
},