vue上传excel模板根据el-dropdown-menu点击的类型自动上传对应的模板详细代码
时间: 2023-12-08 09:03:55 浏览: 159
好的,下面是一个大致的代码实现,供你参考:
```
<template>
<div>
<el-dropdown @command="handleCommand">
<span class="el-dropdown-link">
请选择上传模板类型<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="type1">模板类型1</el-dropdown-item>
<el-dropdown-item command="type2">模板类型2</el-dropdown-item>
<el-dropdown-item command="type3">模板类型3</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-upload
ref="upload"
:action="uploadUrl"
:name="fileName"
:headers="headers"
:on-success="handleSuccess"
:on-error="handleError"
:before-upload="beforeUpload"
:on-exceed="handleExceed"
:auto-upload="false"
>
<el-button slot="trigger" type="primary">点击上传</el-button>
<el-button slot="tip" type="text" style="color: #f00">支持Excel文件格式</el-button>
</el-upload>
</div>
</template>
<script>
export default {
data() {
return {
uploadUrl: 'your_upload_url', // 上传文件的地址
fileName: '', // 上传的文件名
headers: {}, // 请求头信息
fileType: '', // 上传的文件类型
}
},
methods: {
handleCommand(command) {
// 获取上传文件类型
this.fileType = command
},
handleSuccess(response, file, fileList) {
// 上传成功处理
// TODO: 根据后端返回的数据进行相关的操作
},
handleError(error, file, fileList) {
// 上传失败处理
// TODO: 提示上传失败信息
},
beforeUpload(file) {
// 设置上传文件名
this.fileName = `${this.fileType}_template.xlsx`
// TODO: 根据需要设置请求头信息
},
handleExceed(files, fileList) {
// 文件超出个数限制处理
// TODO: 提示文件超出个数限制信息
},
},
}
</script>
```
以上代码中,el-dropdown-menu中的el-dropdown-item用于设置不同的上传文件类型,通过@command事件获取到用户选择的类型,从而设置上传文件名。el-upload组件用于实现文件上传功能,通过设置不同的属性实现不同的功能。其中,before-upload函数用于在上传文件之前进行一些操作,例如设置上传文件名和请求头信息。handleSuccess函数和handleError函数分别用于处理上传成功和上传失败的情况。handleExceed函数用于处理上传文件超出个数限制的情况。
希望以上代码能够帮到你实现需求!
阅读全文