二次封装el-upload上传图片

二次封装el-upload,可单个、多个图片上传

<template>
  <div class="uploadImg">
    <div class="imgList_box" :class="{ maxHidden: hideUploadImg }">
      <div
        v-for="(item, index) in imgfileList"
        :key="item.imageUrl + index"
        class="imgItem"
        :style="{ width: width + 'px', height: height + 'px' }"
      >
        <el-image
          :z-index="3000"
          :src="baseUrl + item.imageUrl"
          :preview-src-list="[baseUrl + item.imageUrl]"
        ></el-image>
        <div class="shadow" @click="handleRemove(index)">
            <i class="el-icon-delete"></i>
        </div>
      </div>
      <el-upload
        :action="uploadImgUrl"
        list-type="picture-card"
        :show-file-list="false"
        :headers="importHeaders"
        :limit="limit"
        :multiple="isMultiple"
        :file-list="fileList"
        :before-upload="handleBeforeUpload"
        :on-success="handleSuccess"
        :on-exceed="handleExceedLength"
        :on-progress="uploadImgProcess"
        :style="{ width: width + 'px', height: height + 'px' }"
        ref="uploadImgRef"
        class="uploadImgBox"
      >
        <el-progress
          v-if="showProgress"
          type="circle"
          :percentage="uploadPercent"
        ></el-progress>
        <i v-else class="el-icon-plus avatar-uploader-icon">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要实现二次封装el-upload并回显多个图片,你可以按照以下步骤进行: 1. 在el-upload组件的基础上封装一个新组件,并命名为MultiUpload。 2. 在MultiUpload组件中,添加一个data属性,用于存储已上传的图片路径数组。 3. 在el-upload组件中,添加一个success事件处理函数。在该函数中,将上传成功的图片路径添加到data属性中保存。 4. 在MultiUpload组件中,添加一个template模板。该模板中,可以使用v-for指令遍历data属性中的图片路径数组,并将每个图片路径渲染到页面上。 下面是一个简单的MultiUpload组件示例代码: ``` <template> <el-upload action="/upload" :on-success="handleSuccess" multiple :show-file-list="false"> <el-button type="primary">点击上传</el-button> </el-upload> <div v-for="url in imageUrlList" :key="url"> <img :src="url" alt="uploaded image" style="max-width: 100%;"> </div> </template> <script> export default { data() { return { imageUrlList: [] } }, methods: { handleSuccess(response, file, fileList) { this.imageUrlList.push(response.url) } } } </script> ``` 在这个示例代码中,MultiUpload组件使用了element-ui中的el-upload组件,并通过v-for指令遍历了imageUrlList数组中的图片路径,并将每个图片路径渲染到页面上。在handleSuccess方法中,将上传成功的图片路径添加到imageUrlList数组中保存。 使用这个二次封装的MultiUpload组件时,只需要像使用el-upload组件一样使用即可。例如: ``` <multi-upload></multi-upload> ``` 这里没有传递任何属性或事件处理函数,因为MultiUpload组件中已经处理了所有必要的逻辑。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值