element-ui upload自定义el-upload-list
时间: 2023-07-18 16:43:12 浏览: 554
您好,关于 element-ui 的上传组件 el-upload,您可以通过自定义 el-upload-list 来实现自定义上传列表的功能。
具体实现方法如下:
1. 在 el-upload 组件中添加属性 list-type="picture-card",并设置属性 action 为上传文件的地址。
2. 在 el-upload 组件中添加自定义 slot,用于自定义上传列表的显示。
3. 在自定义的上传列表组件中,使用 el-upload-list 组件来展示上传文件的列表。
4. 可以通过监听 el-upload 组件的 change 事件来获取上传的文件信息,并将上传的文件信息传递给自定义的上传列表组件,以展示上传文件的列表。
以下是一个简单的示例代码:
```html
<template>
<div>
<el-upload
class="upload-demo"
action="/upload"
list-type="picture-card"
:on-change="handleChange"
>
<i class="el-icon-plus"></i>
<div class="upload-text">上传图片</div>
</el-upload>
<custom-upload-list :file-list="fileList"></custom-upload-list>
</div>
</template>
<script>
import CustomUploadList from './CustomUploadList.vue';
export default {
components: {
CustomUploadList,
},
data() {
return {
fileList: [],
};
},
methods: {
handleChange(file, fileList) {
this.fileList = fileList;
},
},
};
</script>
```
CustomUploadList.vue 组件的代码如下:
```html
<template>
<el-upload-list class="custom-upload-list" :file-list="fileList">
<template slot-scope="{file}">
<div class="custom-list-item">
<img :src="file.url" class="custom-list-item-thumbnail">
<div class="custom-list-item-name">{{ file.name }}</div>
<div class="custom-list-item-actions">
<el-button size="small" type="text" @click="handleRemove(file)">删除</el-button>
</div>
</div>
</template>
</el-upload-list>
</template>
<script>
export default {
props: {
fileList: {
type: Array,
default: () => [],
},
},
methods: {
handleRemove(file) {
const index = this.fileList.indexOf(file);
if (index !== -1) {
this.fileList.splice(index, 1);
}
},
},
};
</script>
```
希望这个示例能够帮助到您。如果您有任何问题,请随时提出。
阅读全文