<template>
<el-upload
class="upload-demo"
action="/upload"
:before-exceed="handleBeforeExceed"
:on-exceed="handleExceed"
:limit="3"
:file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</template>
<script>
export default {
data() {
return {
fileList: []
};
},
methods: {
handleBeforeExceed(files, fileList) {
// 当文件数量超过限制时,返回 false 隐藏上传图标
return false;
},
handleExceed(files, fileList) {
this.$message.warning(`当前限制为 ${this.limit} 个文件,请删除一些文件后再上传。`);
}
}
};
</script>
<style scoped>
.upload-demo {
display: flex;
justify-content: center;
align-items: center;
border: 1px dashed #409EFF;
border-radius: 6px;
cursor: pointer;
overflow: hidden;
width: 200px;
height: 200px;
}
</style>
在这个例子中,当文件数量超过限制时,handleBeforeExceed方法会返回false,从而隐藏上传图标。
handleExceed方法会在文件超过限制时触发,提示用户当前的上传限制。