element plus解决单文件上传后无法替换问题

在使用 element plus 框架 el-upload 组件时,如果想上传单个文件可能会设置limit:1, 但是用户在上传单个文件后发现自己想替换之前上传的文件, 此时你会发现此时重新点击上传组件并没有触发任何事件,哪怕你设置了on-changeon-exceed方法

如果我们此时去掉limit:1的限制发现是可以调用on-change方法的, 而且on-change中有两个参数uploadFileuploadFiles, 虽然此时会每次上传都会产生一个文件, 我们只需要对多出的文件进行数组操作即可

通过on-change事件我们直接对uploadFiles进行操作, 代码如下

<el-upload
        ref="uploadRef"
        v-model:file-list="fileList"
        accept=".xlsx, .xls"
        :headers="upload.headers"
        :action="upload.url"
        :data="upload.extraData"
        :disabled="upload.isUploading"
        :on-change="handleFileChange"
        :on-progress="handleFileUploadProgress"
        :on-success="handleFileSuccess"
        :on-remove="handleRemove"
        :auto-upload="false"
        drag
      >
        <el-icon class="el-icon--upload"><upload-filled /></el-icon>
        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
        <template #tip>
          <div class="el-upload__tip text-center">
            <span>仅允许导入xls、xlsx格式文件。</span>
            <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="handleTempDownload">下载模板</el-link>
          </div>
        </template>
      </el-upload>

/** change事件 */
function handleFileChange (file, files) {
  if (files.length > 1) {
    fileList.value = [files[files.length - 1]]
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值