一,实现效果
二 ,实现代码
<el-upload
:action="host"
list-type="picture"
multiple
:limit="1"
:data="{'sessionSecret':sessionSecret}"
name='image'
ref="my-upload"
:show-file-list="false"
:before-upload="beforeAvatarUpload"
:on-exceed="handleExceed"
:on-success="handleSuccess"
:file-list="fileList">
<div class="pic-uploader">
<div class="maskbox" v-if="fileList.length>=1">
<img :src="item.url" class="pic" v-for="(item,index) in fileList" :key="index">
<div class="mask">
<button @click.stop="deleteImg">删除</button>
</div>
</div>
<img v-else src="@/assets/picture.png" class="default-pic" />
</div>
<el-button class="redBtn dpb borderBtn" type="primary" >选择图片(200*200)</el-button>
</el-upload>
handleSuccess(res, file) {
this.fileList.push(file)
if(res.code=='10000'){
this.ruleForm['img_url']=res.img_url
}
},
beforeAvatarUpload(file) {
const isLt2M = file.size / 1024 / 1024 < 5;
if (!isLt2M) {
this.$message.error('上传头像图片大小不能超过 5MB!');
}
return isLt2M;
},
handleExceed() {
this.$message.warning(`当前限制选择 1 张图片,鼠标移动到图片上可删除现有图片`);
},
deleteImg() {
this.fileList=[]
this.ruleForm['img_url']=''
this.$refs['my-upload'].clearFiles();
},