el-upload在定义file插槽时删除图片(包括隐藏上传框)

1.上传框隐藏效果图(限制上传两张图片,上传两张图片后隐藏上传框)

 

<template>
    <div>
        <el-form>
            <el-upload 
              ref="uploadPicture"
              action="#" 
              list-type="picture-card"
              :class="{hide:hideVisible}"
              :on-change="handleChange"  
              :auto-upload="false">
                <i slot="default" class="el-icon-plus"></i>
                <div slot="file" slot-scope="{file}">
                  <img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
                  <span class="el-upload-list__item-actions">
                    <span class="el-upload-list__item-delete" @click="handleRemove(file)">
                      <i class="el-icon-delete"></i>
                    </span>
                  </span>
                </div>
              </el-upload>
        </el-form>
    </div>
</template>
<script>
export default {
    data(){
        return{
            hideVisible: false,
        }
    },
    methods: {
        handleChange(file, fileList) {
            this.hideVisible = fileList.length >= 2;  //限制上传两张图片,上传两张图片后隐藏上传框
        },
        handleRemove(file) {
            this.hideVisible= false
            this.$refs.uploadPicture.handleRemove(file)
        },
    }
}
</script>
<style>
>>> .hide .el-upload--picture-card {
  display: none;
}
</style>

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Vue中给el-uploadfile-list添加事件可以通过以下步骤实现: 1. 首先,找到el-upload组件的使用代码,在其中找到file-list部分。 2. 在file-list元素上添加一个自定义属性,用来表示事件触发的方法,例如::on-click="handleClick"。 3. 在Vue实例中定义一个名为handleClick的方法(或者自定义的方法名),该方法将作为事件的处理函数。 4. 在该方法中,可以通过event对象获取到触发事件的相关信息,如文件名、文件大小等。 5. 可以根据需要,在handleClick方法中编写具体的业务逻辑,例如弹出一个提示、执行一些操作等。 6. 最后,在Vue实例中通过methods选项将handleClick方法添加到Vue实例的方法列表中。 完整的代码示例如下: ```html <template> <el-upload action="" :on-click="handleClick" > <el-button slot="trigger" size="small" type="primary">选取文件</el-button> </el-upload> </template> <script> export default { methods: { handleClick(event) { console.log('文件名:', event.file.name); console.log('文件大小:', event.file.size); // 在这里编写具体的业务逻辑 } } } </script> ``` 通过以上步骤,就可以在Vue中给el-uploadfile-list添加事件,并在事件处理函数中进行相应的操作。 ### 回答2: 在Vue中给el-uploadfile-list添加事件,可以通过使用插槽来实现。 首先,确保已经引入了Element-UI库和Vue。 然后,在Vue的模板中,可以这样定义一个el-upload组件: ```html <template> <div> <el-upload action="/upload" :file-list="fileList" :before-upload="beforeUpload" > <el-button slot="trigger">点击上传</el-button> <el-progress slot="default" :percentage="uploadPercentage"></el-progress> </el-upload> </div> </template> ``` 在通过`:file-list`绑定了一个名为`fileList`的数组,该数组用于存储上传的文件列表数据。同,通过`:before-upload`属性绑定了一个名为`beforeUpload`的方法,用于在上传文件前执行一些操作。 接下来,需要在Vue的`data`中定义`fileList`和`uploadPercentage`变量,并在`methods`中定义`beforeUpload`方法: ```javascript <script> export default { data() { return { fileList: [], uploadPercentage: 0 }; }, methods: { beforeUpload(file) { // 在这里可以对上传的文件进行一些处理,比如判断文件的类型、大小等 console.log('before upload:', file); // 添加事件 file.on('progress', this.onProgress); }, onProgress(event, file, fileList) { // 上传进度回调,可以在这里更新进度条等操作 console.log('upload progress:', event.percent + '%', file, fileList); this.uploadPercentage = event.percent; } } }; </script> ``` 在`beforeUpload`方法中,可以对上传的文件进行一些处理,比如验证文件类型、大小等。同,可以通过`file.on('progress', this.onProgress)`添加一个`progress`事件监听器,当文件上传进度发生变化,将触发`onProgress`方法。 在`onProgress`方法中,可以对上传进度进行一些操作,比如更新进度条等。 通过以上步骤,就可以给el-uploadfile-list添加事件,实现文件上传的监听和处理。 ### 回答3: 在Vue中给el-uploadfile-list添加事件,可以通过自定义组件来实现。以下是一个简单的实现方式: 1. 首先,在Vue组件中引入el-upload组件和el-upload的样式文件。 ``` <template> <el-upload class="upload-component" action="/upload" :on-success="handleUploadSuccess" :file-list="fileList" > <el-button slot="trigger" size="small" type="primary">上传文件</el-button> </el-upload> </template> <script> import { ElUpload, ElButton } from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; export default { components: { ElUpload, ElButton }, data() { return { fileList: [] }; }, methods: { handleUploadSuccess(response, file, fileList) { // 处理上传后的逻辑,可以在此处添加与file-list相关的事件 console.log(response); console.log(file); console.log(fileList); } } }; </script> ``` 2. 在模板中引入el-uploadel-button组件,并使用el-upload组件来上传文件。在el-upload上添加了一个handleUploadSuccess方法,用于处理上传成功后的逻辑。 3. 在handleUploadSuccess方法内部,可以获取到上传成功后的响应、上传的文件和当前file-list,可以在此处添加与file-list相关的事件。例如,可以根据响应的内容,动态更新file-list或执行其他操作。 这样,就可以通过自定义组件的方式,在Vue中给el-uploadfile-list添加事件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值