const uploadFile = (param)=> {
// 上传新文件时,将进度条值置为零
// progressPercent.value = 0
console.log(param,'param')
const file = param.file
let type = file.name.split(".").slice(-1)[0].toLowerCase()
let fileName = file.name.split(".").slice(0,1).toString()
// 判断文件是否读取完毕,读取完毕后执行
if (window.FileReader) {
let reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = async function(e) {
let base64String = e.target.result;
// console.log("bese64编码:", base64String);
reportData.value.file = base64String
reportData.value.extName = type
reportData.value.fileName = fileName
reportData.value.createTime = file.lastModifiedDate
reportData.value.type = '送审报告'
reportData.value.uploadUserID = getItem('userInfo')[0].fID
reportData.value.reportID = reportID.value
console.log(reportData.value,'reportData.value')
if(reportData.value.file){
// 上传送审报告附件
// const res1 = await
AddAttachment(reportData.value).then(res=>{
console.log(res,'resresresres')
param.onSuccess(res)
}).catch(rej=>{
console.log(rej,'rejrej')
param.onError(rej)
})
// if(res1.code == 200){
// succesMsg('上传成功')
// }
}
}
}
}
// 上传成功后的钩子
const uploadSuccess = (response,fileList, row) =>{
console.log(response,fileList, row,'lllllll')
succesMsg('文件上传成功')
}
// 上传失败后的钩子
const uploadError = (rej) =>{
warnMsg('文件上传失败',rej)
}
<el-col :span="12" >
<el-form-item label="送审报告" prop="submittedReport" >
<el-upload ref="uploadSubmittedReport" :disabled="isDetail" :file-list="submittedReportFileList" :on-change="handleChanges" :on-preview="handlePreview" :before-remove="beforeRemove" class="upload-demo" :http-request="uploadFile" action="#" :auto-upload="true"
:multiple="false" :accept="acceptFileType" :on-success="(response, file, fileList) => {uploadSuccess(fileList, row)}" :on-error="uploadError"
>
<el-button type="primary" :disabled="isDetail">选择文件</el-button>
<template #tip>
<span class="el-upload__tip">
最大10M/个
</span>
</template>
</el-upload>
</el-form-item>
</el-col>
我就是这样实现的,做个笔记以免忘记,如有错误代码请大佬指出