elementUI提供了上传的组件,然而项目中可能多次用到,每次都用官网的修改,过于繁琐,封装成组件。
<template>
<el-upload class="upload-demo" :action="uploadPath" :headers="fileHeaders" :data='uploadData' :show-file-list="false" :accept="accept" :on-success="handleSuccess" :on-error="handleError" :before-upload="beforeUpload">
<!--下面是封装的按钮,可修改为你想用的任何东西 -->
<com-button type="btn_import"></com-button>
</el-upload>
</template>
<script>
// axios 请求的路径
import * as url from '@/config/urlConfig'
import ComButton from '@/components/comButton'
export default {
name: 'FileUpload',
components: {
ComButton
},
props: {
fileType: {
type: String,
default: ''
}
},
data () {
return {
// this.$api.getBaseUrl() 返回的是基础请求路径,也可直接使用process.env.baseUrl
uploadPath: this.$api.getBaseUrl() + url.EXCEL_IMPORT,
uploadData: {
userCode: this.$api.sGetObject('userCode'),
fileType: this.fileType
},
fileHeaders: {
token: this.$api.sGetObject('token')
},
accept: '.xlsx, .xls'
}
},
methods: {
handleSuccess (res, file, fileList) { },
handleError (err, file, fileList) { },
beforeUpload (file) { }
},
created () {}
}
</script>
<style scoped>
.upload-demo {
float: left;
height: 40px;
}
</style>
使用方式 引入组件进行注册
import FileUpload from ‘@/components/FileUpload’
<FileUpload fileType='filetype' />