我是靠谱客的博主 单纯蚂蚁,这篇文章主要介绍详解element上传组件before-remove钩子问题解决,现在分享给大家,希望可以做个参考。

应公司业务要求已上传文件删除前提醒确认代码如下

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if(file && file.status === "success"){ return this.$confirm('此操作将永久删除该文件, 是否继续?', '系统提示',{ confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning', center: true }).then(() => { this.$message({ type: 'success', message: '删除成功!' }); }).catch(() => { this.$message({ type: 'info', message: '已取消删除!' }); reject(false); }); };

确认会直接调用on-remove方法具体业务代码如下

复制代码
1
2
3
if (file && file.status==="success") { this.$axios.delete("url" + data); }

下面是 before-upload 上传文件前的钩子,在遇到大于10M的文件时,我们返回false

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
//图片上传前钩子 beforeUpload(file) { this.loading = true; const isLt2M = file.size / 1024 / 1024 < 10; if (!isLt2M) { this.loading = false; this.$message.error("单个附件大小不能超过 10MB!"); } return isLt2M; // return false; }

但是这时会出现自动调用before-remove on-remove钩子

其实此时我们根本没有上传文件,所以也不会需要删除操作,然后我的代码就报错了。

解决办法如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//删除图片 beforeRemove(file, fileList) { let a = true; if (file && file.status==="success") { a = this.$confirm(`确定移除 ${ file.name }?`); } return a; }, //删除图片 handleRemove(file, fileList) { if (file && file.status==="success") { this.$axios.delete("accessory/one/" + file.response.id).then(resp => { if (resp.status == 200) { this.$message({ message: "删除成功", type: "success" }); } }); } },

把不需要执行的代码放入判断内。

复制代码
1
2
if (file && file.status==="success") { }

到此这篇关于详解element上传组件before-remove钩子问题解决的文章就介绍到这了,更多相关element上传组件before-remove钩子内容请搜索靠谱客以前的文章或继续浏览下面的相关文章希望大家以后多多支持靠谱客!

最后

以上就是单纯蚂蚁最近收集整理的关于详解element上传组件before-remove钩子问题解决的全部内容,更多相关详解element上传组件before-remove钩子问题解决内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(107)

评论列表共有 0 条评论

立即
投稿
返回
顶部