Element 文件删除问题

Element-ui 文件删除功能
图片描述

在移除之前添加 before-remove 事件弹出对话框
这个时候我点击确定 需要请求后台接口,后台返回如果没有权限就不能移除文件

beforeRemove(file){
    this.$confirm(`确定移除 ${ file.name }?`)
}

handleRemove(file, fileList) {
    this.$http("地址", {id}).then(res => {
        //成功就直接删除了
        
        //失败
    })
}

问题:
当我点击确定删除,但是后台返回没有权限,这时候页面文件列表里面也没有这个文件了(真实文件还是在列表里面的,只是在页面上面不展示了)

期望结果:
后台返回没有权限,文件还是还是在页面上展示的

阅读 6.8k
2 个回答
beforeRemove(){
    this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          // 点击确认 发送请求,在请求回调中操作列表数据
        }).catch(() => {
          // 点击取消,什么也不做!     
        });
        return false  // 这一句相当重要!!
}

before-remove: 删除文件之前的钩子,参数为上传的文件和文件列表,若返回 false 或者返回 Promise 且被 reject,则停止上传
返回一个 false,然后在on-remove钩子中处理数据就可以了

跟element-ui,没任何关系的,问题关键是你使用错误造成的,页面的列表操作必须放在服务端正确返回权限后才进行操作,而不是一边操作列表,一边访问服务端;

this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          // 点击确认 发送请求,在请求回调中操作列表数据
        }).catch(() => {
          // 点击取消,什么也不做!     
        });
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题