element-ui 的upload组件,before-upload验证不通过后为什么会触发了on-remove的执行?

"vue": "^2.5.2",
"element-ui": "^2.2.1",

<el-upload
    action="http://mt.cn:3355/backend/config/uploadImg"
    list-type="picture-card"
    :file-list="themePictures"
    :data="themeData"
    :on-success="themeSuccess"
    :on-remove.self="removeTheme"
    :on-error="uploadError"
    :before-upload="beforeUpload">
    <i class="el-icon-plus"></i>
</el-upload>
removeTheme(file, fileList) {
    req_removeTheme({id:file.id}).then(res => {
        this.$message.success('删除成功')
    })
},
beforeUpload(file) {
    const isMatch = file.type === 'image/jpeg' || file.type === 'image/jpg' || file.type === 'image/png' || file.type === 'image/gif' || file.type === 'image/bmp'
    const isLt2M = file.size / 1024 / 1024 < 1

    if (!isMatch) {
        this.$message.error('图片格式不匹配')
    }
    if (!isLt2M) {
        this.$message.error('上传头像图片大小不能超过 1MB!')
    }
    return isMatch && isLt2M
},
阅读 21.1k
2 个回答

好像新的才会出现这个问题,试了下可以通过file.status的状态来区分
`handleRemove(file, fileList) {

  if (file && file.status==="success") {
      //删除
  }

}`

   在before-remove事件里面加上 添加成功类型的的判断,如果你有上传成功的文件,可以删除
   如果没有 就不会弹这个框了
    beforeRemoveFile(file, fileList) {
        const isXLS = file.name.split('.')[1] === 'xls' || file.name.split('.')[1] === 'xlsx';
        if(isXLS){
            return this.$confirm(`确定移除 ${ file.name }?`);
        }
    },
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏