看了好几篇回答,他们用的都是照片墙,所以删除图片的时候感觉有些复杂。

ElementUI中上传图片信息后是用一个数组存储图片信息的。

// 存放上传的图片信息
   fileList: [],

官方文档里没有写删除的具体方法,而我限定只能上传一张照片。

// :class控制动态显示  

<el-upload
          action="http://localhost:8000"
          list-type="picture-card"
          :auto-upload="false"
          :on-change="handleChange"
          limit:1
          :class="{ disabled: this.fileList.length > 0 }"
        >


..................................................

// CSS样式

.disabled .el-upload--picture-card  {
  display: none;
}

也就是说,我的数组里最多只有一个元素,那这就好办了,上传就是入栈,删除就是出栈,不用判断删除的是哪张照片不是吗。

我直接这样出栈,就实现了上传后删除的效果:

// 上传后移除图片
    handleRemove(file) {
      // 把存储图片信息的数组出栈一位
      this.fileList = this.fileList.pop()
    },

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐