el-upload上传多张图片及修改和回显的逻辑
时间: 2023-07-28 14:39:47 浏览: 172
el-upload 组件可以方便地实现上传多张图片及修改和回显的逻辑。具体实现步骤如下:
1. 在 el-upload 组件中设置 multiple 属性为 true,以支持多张图片的上传。
```html
<el-upload
action="your-upload-api-url"
:multiple="true"
:default-file-list="defaultFileList"
:on-success="handleUploadSuccess"
>
<el-button>
点击上传
</el-button>
</el-upload>
```
2. 在 data 中定义 defaultFileList 变量,用于存储上传成功后的图片列表。
```javascript
data() {
return {
defaultFileList: []
}
},
```
3. 在上传成功的回调函数 handleUploadSuccess 中,将上传成功后的图片信息加入到 defaultFileList 中。
```javascript
handleUploadSuccess(response, file, fileList) {
// 将上传成功后的图片信息加入到 defaultFileList 中
this.defaultFileList.push({
name: file.name,
url: response.data.url
});
},
```
4. 如果要实现修改图片的逻辑,可以在 el-upload 组件外添加一个图片预览组件,用于显示当前已上传的图片列表,并在点击某张图片时触发修改操作。
```html
<el-image
v-for="(file, index) in defaultFileList"
:key="index"
:src="file.url"
:preview-src-list="defaultFileList.map(item => item.url)"
@click.native="handleImageClick(index)"
>
</el-image>
```
5. 在 handleImageClick 方法中,根据点击的图片索引打开一个对话框或者弹出一个模态框,用于进行图片修改操作。
```javascript
handleImageClick(index) {
// 打开对话框或弹出模态框,进行图片修改操作
// ...
},
```
6. 在修改图片成功后,更新 defaultFileList 中对应图片的信息。
```javascript
handleImageEditSuccess(index, newFile) {
// 更新 defaultFileList 中对应图片的信息
this.defaultFileList.splice(index, 1, {
name: newFile.name,
url: newFile.url
});
},
```
7. 如果需要回显已上传的图片列表,可以在组件挂载时调用一个获取图片列表的接口,并将返回的图片信息加入到 defaultFileList 中。
```javascript
mounted() {
// 获取已上传的图片列表,并将返回的图片信息加入到 defaultFileList 中
// ...
},
```
以上是 el-upload 上传多张图片及修改和回显的逻辑实现方法,需要根据具体场景进行相应的调整和优化。
阅读全文